Home
        NetLogo User's Guide - Centre de Recherches sur la Cognition
         Contents
1.  now have to set this variables in setup to reasonable values  e g  fireflies should be yellow when flashing  and gray otherwise     to setup  ca  crt nombre  ask turtles   setxy random xcorr random ycorr  set shape  circle   set compteur random  round 10     10 est la duree d un cycle  set seuil 1  set niveau seuil  set fenetre  1    pas de periode insensible  ifelse  compteur  lt  seuil     set color yellow      set color gray      end    We used here a new NetLogo command  ifelse  test    commands     commands2    that executes  commands  if test is T  true   commands2 otherwise  Note also that it is quite unnatural for fireflies to  turn around completely randomly in the bouge routine  they rather do a random left wiggle and a random  right wiggle before continuing their path  The new bouge routine thus becomes    to bouge  ask turtles    set heading heading   random 90   random 90  fd 1     end    In vas y we have to add a routine that increases compteur at each step and resets the firefly color  according to the value of compteur     to vas y  bouge  ask turtles    augmente compteur    file    Users jost Documents enseignement lectures Cours TD 20AutomateCellulaire NetLogo 2Otutorial firefly tutorial html Page 6 sur 10    NetLogo User s Guide 17 09 09 18 50    ifelse  compteur  lt  seuil     set color yellow      set color gray      end    to augmente compteur  set compteur  compteur   1   if compteur   10    set compteur 0     end    We use here the new command if  tes
2. 20AutomateCellulaire NetLogo 2Otutorial firefly tutorial html Page 1 sur 10    NetLogo User s Guide 17 09 09 18 50       Command Center                They now moved forward 10 steps  You can move them further away a random number of steps   between 0 and 9  with    T gt  fd  random 10   Finally  with the command ca  clear all  in the observer line O gt   you will make disappear all the turtles     Typing all these commands on the command line permits to explore the functioning of NetLogo  commands  but this is not very efficient if we want to repeat this sequence of commands several times   NetLogo permits to write commands also in a procedure  Start doing this by creating a once button  called  setup   This button will do just that    initialize your project  You create this button by clicking on  the Button icon on the Graphics Toolbar  and then clicking where you want the button to be in the  Graphics Window  When the button appears  click on  edit  on the Toolbar  and type  setup  in the code  box  When clicking ok  a button will be created that is called  setup  and will execute the procedure   setup  when pressed    In fact  you could name it something else  for example Initialisation  Try it out  move the cursor on  the button  click the right mouse button and select the Edit menu  type Initialisation in the Display  Name Window and click ok        Component Type  Button    i Display Name Code  Edit     L  Forever       At this point   Errors  will turn red  That s be
3. NetLogo User s Guide 17 09 09 18 50    NetLogo is a freeware program written in Java  it runs on all major platforms   You can download a  version for your computer from  http   ccl northwestern edu netlogo     This tutorial was updated for NetLogo 4 0 and should work fine     1  Creating a New Project   2  Developing Your Model   3  Adding local vision and synchronization   4  Adding observer windows and visualization of the synchronizing process  5  Homework  the bad news        This tutorial describes a complete project  built up stage by stage  with every step explained along the  way     1  Creating a New Project  Getting Started    To create a new project  select  New  from the the File Menu  Let us first explore the Command Center  which has a command line  as in Scilab  the other freeware program we will use in this module   We  first create 100 turtles by the command    O gt  crt 100    NetLogo creates with this command 100 turtles  why turtles  well  that s the name the creators of  NetLogo gave to their virtual individuals and we will adopt their terminology for the moment   But  where are they  In fact you will only see one on the screen because one turtle sits on the other  To show  them all we have to make them move away from the center  Since this only concerns the turtles we have  to click on the o gt  in the command center and change it to T gt   like Turtle   then type the command    T gt  fd 10    file    Users jost Documents enseignement lectures Cours TD 
4. Turn it off  and you ll see that all turtles stop in their tracks     You could probably jump off from here and start experimenting with other turtle commands  That isn t  such a bad idea  Type commands into the Command Window  like set color red   or add them to setup   vas y  or vas y un pas  Note that when you enter commands in the Command Center  you must choose  T gt   P gt   or O gt  in the drag down menu on the left  depending on which agents are going to execute the  commands  T gt commands is identical to O gt  ask turtles  commands    and P gt commands is identical to  O gt  ask patches   commands   patches are a way to incorporate a dynamic environment  e g  grains  transported by ants  but we won t use them in this tutorial      We will make now the number of turtles a user defined variable  Instead of saying crt 100 in setup   say crt nombre  where nombre is a slider variable  and create a slider from the graphics toolbar just as  you created the buttons  with minimum value 0 and maximum value 2000 in steps of 10   When you  change now the number of turtles with the slider and click Setup again NetLogo will display the new  number of Turtles  Play around  It s easy and the results are immediate and visible    one of NetLogo s  many strengths  Regardless  the tutorial project continues       2  Developing Your Model  From Turtles to Fireflies with their variables    So now we ve got 100 turtles aimlessly moving around  completely unaware of anything else around  t
5. cause there is no procedure called  setup      file    Users jost Documents  enseignement lectures Cours TD 20AutomateCellulaire NetLogo 20tutorial firefly tutorial html Page 2 sur 10    NetLogo User s Guide 17 09 09 18 50       Errors  im      Compile All Halt   Error  as    Now go to the Procedures Window and create the  setup  procedure like this     Procedures  2     PD B    Compile Halt Find Find Again          ask turtles     setxy random xcorr random ycorr  set shape  circle     One line at a time     ca is short for clear all  another acceptable NetLogo primitive that does the same thing   This command  will blank out the screen  initialize any variables you might have to 0  and kill all turtles  basically it  wipes the screen clean for a new run of the project     crt 100 will then create 100 turtles  Each of these turtles will begin at the origin  at location 0 0   That s  why you only see what looks like one turtle  they re all on top of each other    lots of turtles can share  the same patch  Each of these newly created turtles has its own color  evenly distributed through the  range of NetLogo colors  and its own heading  evenly distributed around the circle     ask turtles     tells each turtle to execute  independently  the instructions inside the brackets   This is  equivalent to selecting the command line T gt     Note that ert is not in brackets  If the agent is not  specified  the observer executes it  The third agent in NetLogo is  patches  which are used 
6. e  different environmetal variables on the synchronization process  How long does it take to synchronize  80  of the fireflies  How does the number of fireflies influence this time  How does the value of  fenetre influence this time  This playing around with the model helps to detect new patterns and to  formulate new hypotheses that can then be tested under natural conditions     To do so we first need to add a global variable tempsSimu that keeps track of the number of steps our    file     Users jost Documents enseignement lectures Cours TD 20AutomateCellulaire NetLogo 20tutorial firefly tutorial html Page 7 sur 10    NetLogo User s Guide 17 09 09 18 50    simulation has run  Add the line  globals   tempsSimu      after the turtles own         command  Add a command in the setup routine to set it to 0  you should  now know how to do this  and increase it by 1 in the vas y routine  Then we should display this number  on the screen  Have you already seen the button we need to do that  Exactly  we will monitor the  tempsSimu  so simply click on the Monitor button and create it in the Graphics window  telling it to  display the value of tempsSimu  Now  you should see 0 in this monitor after setup and it should  increase by one each time you click on vas y un pas     Similarly  it would be nice to know how many fireflies are flashing at each time step  For this we need a  second global variable allume  this should be allum    but using accents in english software is always  pla
7. he time it takes to  synchronize at least 80  of the fireflies  set nombre to 10  20  50  100  200  500  1000  and get a  confidence interval of this duration by repeating each simulation a couple of times  With a fixed number  of fireflies  e g  500   guess intuitively how the value of fenetre influences this time  Modify your  program to explore whether your intuition gave you the correct answer  use the values 0  1  2  and 3 for  fenetre   How do you interpret this effect biologically  Any other intuitions  Write a nice little report  that summarizes your results and interpretations  1 3 pages   It may be in French     file     Users jost Documents enseignement lectures Cours TD 20AutomateCellulaire NetLogo 2Otutorial firefly tutorial html Page 9 sur 10 file    Users jost Documents  enseignement lectures Cours TD 20AutomateCellulaire NetLogo 20tutorial firefly tutorial html Page 10 sur 10    
8. hem  Actually  we want our turtles to be fireflies and to behave like them  that is to synchronize their    file     Users jost Documents enseignement lectures Cours TD 20AutomateCellulaire NetLogo 20tutorial firefly tutorial html Page 5 sur 10    NetLogo User s Guide 17 09 09 18 50    flashing when they meet other flashing fireflies  For this we have to give our fireflies some variables   compteur which is the internal clock of the firefly  it will flash when its value is 0 and increase at each  step to a maximum of 9 after which it is set back to 0   seuil which is the value of the compteur at  which the firefly stops flashing  niveau which is the level the compteur is set to when seeing a flashing  firefly  and fenetre which is an insensitivity period after flashing during which the firefly doesn t see any  other fireflies  Well  let s do all this step by step  First  add the variables at the top of the procedures  window     turtles own    compteur horloge de chaque luciole  va de 0 a 9 auquel valeur elle    clignote    7   7  seuil   seuil du compteur auquel la luciole arrete le clignotement  niveau   niveau auquel une luciole met son compteur quand elle voit     un voisin clignoter  fenetre   une luciole ne peut changer son compteur s il est  lt   fenetre         The semicolon indicates that the rest of the line contains comments that are ignored by NetLogo and help  a reader to understand the code  but you do not have to include these comments in your current code  We 
9. model  edit it and change its name to  In order for set current   plot  Lucioles allumees Lucioles allumees   the exact same name used in the code     Now reset the project and run it again  Watch the graph in the Plot Window  You might try running the  model several times under different settings  i e  different values of nombre  and watch how fast the  graph reaches 80      Ser rdrvinteweadesieaa l  B  n   pyha Sliger Switch Meniter Tert Pit    OH PH TH   Tti     Compile Heit            wep very         y       aneren 1    Lecietes Allames                    So now you have a nice framework for exploring the fireflies synchronization problem  using all sorts of  NetLogo modeling features  buttons  sliders  monitors  and the graphics and plot window displays   You ve even written a quick and dirty procedure to give the turtles something to do  And that s where  this tutorial leaves off  You can continue it if you d like  experimenting with different variables and  algorithms to see what works the best  what makes the most turtles reach the peaks   Alternatively you  can look at other models  or go ahead and build your own  You don t even have to model anything  It can  be pleasant just to watch patches and turtles forming patterns  or whatever  Hopefully you will have  learned a few things  both in terms of syntax and general methodology for model building     5  Homework  the bad news        As a homework  use your program to explore how the number of fireflies influences t
10. ot window axes  useful if you re plotting some value over  time  as we are    e Set the range of the x axis  both minimum  0  and maximum  100     file    Users jost Documents enseignement lectures Cours TD 20AutomateCellulaire NetLogo 20tutorial firefly tutorial html Page 8 sur 10    NetLogo User s Guide 17 09 09 18 50 NetLogo User s Guide 17 09 09 18 50    e Set the range of the y axis  again both minimum and maximum  because we ll have  at most  ps  for more information on NetLogo and the detailed definitions of NetLogo commands you can view  nombre fireflies at peaks  our maximum is the number of fireflies  the documentation provided with your installation of NetLogo  Start your web browser  Netscape   e Set the plot pen color to be red Explorer       and open the local file     docs index htm1  in your Netlogo Folder  with the menu   File  gt Open File       or suchlike    Then in faire graph  we select the plot  Lucioles allumes  and the plot pen  lucioles   currently You can also visit directly the NetLogo internet site   redundant  since there s just one   but maybe we ll add more later      and then we plot a point  http   ccl northwestern edu netlogo     l l it has lot s of useful information   The plot command draws a connected graph at the current x coordinate and y coordinate and then    updates the x coordinate by 1 automatically  But where will it draw  Go back to the  Interface  window  16 octobre 2003  Christian Jost   there you can add a plot widget to your 
11. sk turtles     says that each turtle should execute the commands in the brackets     set heading random 360 is another two step command  First  each turtle picks a random integer  between 0 and 359  random doesn t include the number you give it   Then it sets its heading to be this  number  Heading is measured in degrees  clockwise around the circle  starting with 0 degrees at twelve  o clock     fd 1  After each turtle does that  it moves forward one step in this new direction     Why couldn t we have just written that in vas y   We could  but during the course of building your  project  it s likely that you ll add many other parts  We d like to keep vas y as simple as possible  so that  it is easy to understand  It could include many other things you want to have happen as the model runs   such as calculating something or plotting the results  Each of these sub procedures could have its own  name     Each time you click now on vas y NetLogo will execute the commands in bouge  But it would be nice if  NetLogo would repeat bouge indefinitely until you click again on the button  This can be done easily    create another button with the Name  vas y  and the code vas y  but this time check the  forever  box in  the editing dialog box     The  vas y  button is a forever button  meaning that it will continually execute its code until you shut it  off  by clicking on it again   After you have pressed  setup  once  to create the burls  press the  vas y   button  Watch what happens  
12. t   commands  that is a simplified version of ifelse  If you go back  to your interface window and click on vas y un pas you will see that yellow turtles become gray on the  next step     3  Adding local vision and synchronization    Our fireflies move now around in a rather natural manner and flash every 10 steps  Why are they not  synchronizing  Well  simply because we still haven t implemented the mechanism that is supposed to  lead to synchronisation  when a neighbouring firefly flashes  then the compteur is set back to seuil  We  therefore need a routine regarde that detects flashing fireflies in the neighbourhood     to regarde  if   count turtles in radius 4 with  color   yellow   gt   1     set compteur niveau    end    Do you understand what the test does  It first counts the flashing fireflies in a Moore neighbourhood and  then checks if this number is larger than one  This routine is called after augmente compteur if the  firefly is not flashing itself and is again sensitive for other flashes     to vas y  bouge  ask turtles     augmente compteur  if    compteur  gt  fenetre  and  compteur  gt   seuil       regarde    ifelse  compteur  lt  seuil     set color yellow      set color gray      end    Thats it  the mechanism that should synchronize flashing is now implemented  Does it work   4  Adding observer windows and visualization of the synchronizing process    We now have a functioning model of synchronizing fireflies  It can be used to study the influence of th
13. t  it s time to  write your next procedure  But first you should save your work  in order to preserve it in case of a  computer crash   create a folder with your name on the harddisk C and then use the menu File   gt  Save  As     to save your project in this folder  During this tutorial it will be a good idea to save your work  from time to time with the menu File   gt  Save     Now to the next procedure  make first a button called  vas y un pas   Again  begin by creating a button  with the Display Name  vas y un pas  and the code command  vas y      dures    G f Component Type  Button  Delete Edit    Display Name vas y un p Code     _  Forever   Observer      Then write the procedure             to vas y  bouge  end    But what is bouge   Is it a primitive  like fd is  No  it s a procedure that you re about to write  right after  the vas y procedure     to bouge  ask turtles    set heading random 360  fd 1    file    Users jost Documents  enseignement lectures Cours TD 20AutomateCellulaire NetLogo 20tutorial firefly tutorial html Page 4 sur 10    NetLogo User s Guide 17 09 09 18 50  end    Did you notice anything unusual like a change to smaller characters  Bad luck  you have a french  keyboard  and to type   you have to press Alt   which is interpreted by NetLogo as a shortcut to reduce  letter size  You can revert the change with the menu Zoom Normal Size  or Ctrl    and avoid this bug  in the future by copying and pasting J     Now  look at the procedure line by line   a
14. to define a  static environment  We won t use them in this tutorial     Set shape  circle  sets all turtle shapes to one that you ve created in the shapes editor  in the Tools in  the menu bar   In this case  we made a shape that was a simple circle  then named it  circle   If you don t  make a shape  the turtles will have a default shape     Finally  setxy  random screen size x   random screen size y is really a pair of commands  Each turtle  will first evaluate the commands random screen edge x and random screen size y which will return  each a random value between 0 and  screen edge   the dimension from the center to the edge of the  screen along the x axis or y axis  maybe 20 or so   It then takes this pair of numbers  and sets the turtles  at these random coordinates     Press your  setup  button when you ve written the code  You can see the turtles quickly spread out in a  rough cluster     file     Users jost Documents enseignement lectures Cours TD 20AutomateCellulaire NetLogo 2Otutorial firefly tutorial html Page 3 sur 10    NetLogo User s Guide 17 09 09 18 50       Notice the density distribution of the turtles on the Graphics Screen  Press  setup  a couple more times   and watch how the turtles  arrangement changes  Can you think of other ways to randomly distribute the  turtles over the screen   There are lots of ways   Note that if a turtle moves off the screen  it  wraps    that is  comes in the other side  When you re satisfied that the button does what you wan
15. ying with the devil  most english programmers don t even know accents exist and thus have often  simply forgotten to tell the program what to do with such strange characters  that is displayed in its own  monitor and a routine that counts the number of flashing fireflies     globals   tempsSimu  allume      to compte allume  set allume  count turtles with  color   yellow     end    compte allume can be called at the end of the vas y routine  and the monitor for allume is created as  the one for tempsSimu  Simulating now step by step permits to determine exactly at which step more  than 80  of the fireflies are flashing synchronously  Try to do it     Got it  Takes too much time  I agree completely  It would be nice to have a graph that plots the number  of allume as a function of tempsSimu  Again  NetLogo provides the tools to do this  We first need  routines that initialize and update this graph during run time  In the setup procedure  add a call to the  routine creer graph    to creer graph  set current plot  Lucioles allumees   auto plot on  set plot x range 0 100  set plot y range 0 nombre  set plot pen color red   end    and in the vas y routine  add a call to faire graph    to faire graph  set current plot  Lucioles allumees   plot allume   end    What we re plotting is the number of flashing fireflies at some given time  Step by step  the commands in  our creer graph procedure do the following     e Select the first plot window   e Turn on automatic rescaling of the pl
    
Download Pdf Manuals
 
 
    
Related Search
    
Related Contents
GSR Professional  Nokia 2280 Manual do Usuário    White Rodgers 36h User's Manual  Web Browser Interface User's Guide  AV6416 Palm OTDR    Copyright © All rights reserved. 
   Failed to retrieve file