Home

NetLogo Ant Patterns

image

Contents

1. By convention when building NetLogo models we refer to this cleanup amp preparation operation as the model setup our immediate task is to teach NetLogo how to do this setup for our ant model To teach NetLogo to perform an operation we instruct it in much the same way we would a very literal minded human being To do X first do A then do B then with each step spelled out unambiguously In this case the first thing we will tell NetLogo to do as part of the setup operation is to clear the NetLogo world of any previously created ants and reset all of the patches to the color black Then we tell it to create a single ant in the middle of the NetLogo world 1 In NetLogo click on the tab or button labeled Procedures You will see a blank area for writing the instructions that NetLogo will use to execute the various parts of the model 2 Write the following in the space provided CO Siwy clear all Creare iiuceleas L set color red set shape bug set size 15 set heading 0 end This code tells NetLogo that in order to perform the operation called setup which it didn t previously know how to do and which we are teaching it to do it must perform the following steps a Execute the clear all command which is one of the instructions NetLogo already knows how to do and which among other things removes any turtles that might have already been created and sets the color of all the patches to black 2 This
2. Note that NetLogo automatically knows that this procedure is only valid for execution by turtle agents since neither the observer nor the patches can move or turn If we try to tell NetLogo to have patches links or the observer execute this procedure it will display an error message Now that we have a procedure containing the steps that we want our ant to follow let s create a button that will tell the ant to execute that procedure 1 Switch back to the Interface pane 2 Follow the same steps as those you previously followed to create the Setup button this time we ll create a Go button 3 In the button definition dialog that appears make the following changes as necessary a Select Turtles from the Agent s pull down menu b Select check the Forever checkbox This tells NetLogo to hold the button down when it is pressed and to ask the specified agents to execute the specified commands repeatedly as long as the button is down c In Commands type go d If desired type the text that you want to appear as the button title in Display name e If desired specify in Action key a shortcut key that can be used to press the button using the keyboard Ant Patterns with NetLogo Page 11 You should now have something like this Button res El A 4 Click the OK button to place your Go button in the NetLogo interface Task 4 A Final Check Before Running the Model If the titles of either of the but
3. as complexity 4 Will it be sufficient to produce results you would describe as chaotic 5 Do your answers to any of the above questions change if there are two ants or three or more instead of one We could try to answer the above questions by doing the exercise on paper but it would probably become very tedious very quickly possibly long before the result is clear 1 Although the ants in this model behave nothing like real ants we ll call them that for now NetLogo agents that can move are referred to generically as turtles we ll use ants and turtles more or less interchangeably in this exercise NetLogo Tutorials Concept The NetLogo Coordinate System In building our model it will be useful to know a little bit about the coordinate system used by NetLogo This diagram and the explanations that follow illustrate some important points to remember y max pxcor max pycor world height turtle at 4 6 8 oe etre min pycor Y world width Ant Patterns with NetLogo Page 2 1 Like the Cartesian coordinate system traditionally used in algebra analytic geometry and calculus the NetLogo world has X and Y axes The center of the coordinate system is the origin which is usually but not always located in the physical center of the NetLogo world as well where X and Y have values of zero 0 2 Overlaid on the coordinate system is a grid of patches squares Each patch has a colo
4. specific functionality etc We can augment this further by installing or writing new programs for the computer to execute when we do this we are quite literally teaching the computer to perform new operations Some computer programs have the interesting property of being instruction translators they allow users to write new programs without the users having to understand much or sometimes anything at all of the internal workings of the computer these translators then convert the instructions the user has written into a form that the computer can execute NetLogo is one such program it allows us to write programs in a specialized language which we use to describe the behaviors of agents NetLogo then converts these programs or Ant Patterns with NetLogo Page 6 models we have written into a form that the computer can execute without our having to know anything about how that conversion takes place Nonetheless we can still think of the NetLogo models we write as being sets of instructions that we teach to the computer possibly more usefully we can think of our task when building NetLogo models as being that of teaching NetLogo itself Task 2 Setting Up the Model Since we typically run a model several times in a single session without closing and re opening the model or closing and re opening NetLogo itself we need a way to prepare a model for execution and clean out anything left over from the previous execution if any
5. Ant Patterns with NetLogo Introduction One condition which can sometimes produce complexity is that of high throughput This throughput can be the product of a large number of agents operating simultaneously and interacting with each other a large amount of some physical material or property e g electrical charge fluid gas molecules acting in a constrained space or medium etc It can also be due to a smaller number of agents repeating simple behaviors a large number of times with feedback i e the agents current actions affect the future state of the system which in turn affects the agents future actions In this activity we Il build a NetLogo model inhabited by ants that follow a simple rule At each time step tick an ant will perform the following actions 1 Move forward one space 2 If the space on which the ant is now standing is black then a Paint the space the same color as the ant itself b Turn left 90 Otherwise a Paint the space black b Turn right 90 We ll begin with a single ant starting at the center of the NetLogo world Then we ll extend the model with additional ants at different initial positions 1 What pattern if any will result from a single ant following the programmed behavior described above 2 How many repetitions of the above steps do you think will it take a pattern to emerge 3 Will the behavior described above be sufficient to produce what you would describe
6. aps horizontally checkbox is checked f Set the Patch size value to 1 0 Make sure the Turtle shapes checkbox is checked Often when using very small patches it is pointless to display turtle shapes since turtles are the same size as patches by default In this case however we ll be making our ants much larger than the patches so we might as well show turtle shapes g Ant Patterns with NetLogo Page 4 The World amp View window should now look like this 3 Click the OK button we now have a world that is 501 patches tall and 501 patches wide with each patch displayed on a single pixel Adjust the size and position of the NetLogo application window as necessary to display the entire world 4 Save your model using the File Save menu option it is strongly recommended that you do this after completing each task in this activity Ant Patterns with NetLogo Page 5 Concept NetLogo Topology Notice that we can specify that the NetLogo world should wrap horizontally vertically both horizontally and vertically or not at all When wrapping is turned on horizontally for example a turtle moving off the right edge of the world will reappear on the left edge and vice versa If horizontal wrapping is not enabled a turtle will be unable to move off the right or left edge 1 What is the logical shape of the NetLogo world if wrapping is turned on horizontally but not vertically 2 What is the shape of t
7. e that procedure and continue doing so until we tell it to stop Task 3 Teaching Our Ant How to Behave Let s write a procedure containing the ant behavior described at start of this document By convention we offen call the procedure containing the main behavior s of our turtles the go procedure 1 Click the Procedures tab button so that you can add more instructions to the model 2 Below the end that marks the end of the setup procedure add the following lines of code as a rule you might also want to leave a blank line between the end of one procedure and the start of the next EO CS forward 1 ifelse pcolor black set pcolor color left 90 set pcolor black eae 9O end Be sure to put a space before and after the equals sign in the line that begins with ifelse those spaces like many in NetLogo are essential Ant Patterns with NetLogo Page 10 The code we ve just written tells NetLogo that in order for a turtle to execute the go procedure the turtle must do the following a Move forward a distance of 1 b Test to see if the color of the patch pcolor on which the turtle is now standing is black or more precisely equal to the color value referred to by the predefined constant black If so then i Set the color of the patch to be the same as the color of the turtle color ii Turn left 90 Otherwise i Set the color of the patch to black ii Turn right 90
8. figured as a tie where motion of one endpoint turtle will force movement of the other endpoint turtle Link and turtles are the only agents which can be created or destroyed by the instructions contained within the model itself Also links and turtles are the only agents which can be organized into breeds Turtles can interact with other turtles by reading and writing the attributes of those turtles and or asking those turtles to execute instructions they can also interact with patches in the same ways Patches can interact with turtles and other patches Links generally interact with their endpoint turtles but they can also be made to interact with other links turtles and patches Obviously the observer can ask turtles to perform specified operations in fact that is what is happening in the instruction list following create turtles in our setup procedure the observer can do the same with patches and links On the other hand turtles patches and links cannot interact directly with the observer in the sense that they cannot ask the observer to perform any actions However models have global variables some predefined by NetLogo as well as others we might define in general patches links and turtles can modify the values of these variables and the observer s actions might be affected by such changes In the next task we ll create a procedure containing the rule that our ant will follow and a button that will tell the ant to execut
9. go world These variables are related to the overall size of the canvas by the formulas world width max pxcor min pxcor and world height max pycor min pycor 1 Concept NetLogo Angles and Directions All angles in NetLogo are specified in degrees and directions are based on compass headings with 0 being upward i e north 90 being towards the right i e east etc When instructing a turtle to face a particular direction we can do so by setting the heading of the turtle to the desired compass heading or by telling the turtle to turn right or left by the number of degrees required to orient the turtle as desired Ant Patterns with NetLogo Page 3 Task 1 Getting Started 1 From the Macintosh Applications folder or from the Windows Start All Program NetLogo menu launch the NetLogo v4 0 2 application not NetLogo 3D 2 Because we want to give our ants lots of room to maneuver and because NetLogo colors an entire patch at once i e no matter how large a patch is we can t split it into different colored regions let s set up the NetLogo world with a large number of very small patches To do this click the Settings button near the top of the NetLogo window and make these changes a Leave Location of origin set to center b c Set the max pycor value to 250 d e Make sure the World wraps vertically checkbox is checked Set the max pxcor value to 250 Make sure the World wr
10. he NetLogo world if wrapping is turned on vertically but not horizontally 3 What is the shape of the NetLogo world if wrapping is turned on both vertically and horizontally Concept Programming as Teaching the Computer Although computers more precisely the processors inside computers are capable of manipulating data very efficiently and though modern processors include floating point processing units that can perform impressive arithmetic trigonometric and logarithmic calculations they are also quite simple minded they are generally incapable of performing almost any task the average user would consider meaningful until they are taught to do these meaningful tasks We teach computers to do this through programming encoding an algorithm into a form that the computer can understand for which it will take specified inputs and from which it can present a meaningful result as output Fortunately for us virtually every modern commercially available computer comes with millions of lines of these algorithmic instructions already written and pre loaded on hard drives programmable memory chips etc These instructions make up the operating system which lets us create and manipulate files drivers which tell the computer how to connect to and make use of hardware devices such as video display adapters disk drives printers external memory devices etc applications special files which can be executed on demand by the user for more
11. he results what you expected Did the overall aggregate behavior differ from that observed with only one ant If so in what way s did it differ Do you think the aggregate behavior would be affected by the relative position and facing directions of the two ants Optional Tasks If you have time try one or more of the following l Read in the NetLogo user manual about the NetLogo reporters a reporter is simply an instruction that returns a value that can be used in your code that generate random numbers Then incorporate one or more of these reporters in your model to place the second turtle at a random initial position and facing a direction chosen at random from the four basic compass directions As it turns out with two ants taking turns moving always in the same order the ants will always draw for a while and then erase what was previously drawn returning to their starting positions but trading places in the process of doing so Even without taking turns in an orderly fashion this will often but not always happen Normally NetLogo shuffles agents each time there is an ask statement so that the order in which the agents move is always changing However we can use lists of agents to make them move in the same order each time Review the documentation of the sort and foreach statements and use them to create a list of ants during setup and iterate over this list at each tick to make the ants always take turns in the
12. is actually a slight over simplification NetLogo is built on top of Java so it converts models into instructions which the Java Virtual Machine can understand The JVM then translates those into instructions the computer hardware and operating system can execute directly Ant Patterns with NetLogo Page 7 b Create a single turtle eventually we ll learn how to teach NetLogo that our turtles are really ants people cells etc for now we ll just stick with the generic term in our code In the create turtles command the numeric value following the command is the number of turtles to be created and the subsequent set of square brackets is a list of commands that the newly created turtles s are asked to execute In this case we are asking our single turtle to do the following i Set its color to red NetLogo uses a spectrum in which each color is identified by a number from 0 to 139 9 however there are some symbolic constants suchas red which are pre assigned to the correct number value so we don t always have to remember the numbers themselves To see the entire NetLogo color spectrum select the Tools Color Swatches menu option ii Set its shape to the one called bug in the shapes library To see all of the standard shapes which we can add to as needed select the Tools Turtle Shapes Editor menu option iii Set its size to 15 times the default size otherwise we won t be able to see the cool bug shape since we ve config
13. ou will now see the button you created in the NetLogo interface To test your work so far click the button you created you should see a single ant ok so it doesn t look that much like an ant created in the middle of the NetLogo world Concept Different Kinds of Agents in NetLogo Note that when we created our Setup button we specified that the command we specified in the button setup in this case should be performed by the Observer agent There are three types of agents in NetLogo each is capable of different kinds of following different kinds of instructions and thus serves a different purpose in a NetLogo model i Observer There is always exactly one of this kind of agent we can think of this as being NetLogo itself This agent is not displayed on the NetLogo world but it is the only agent that can perform certain global operations in a model e g clear a11 Patches These are stationary agents and there is exactly one such agent per square in the grid of the NetLogo world They cannot be displayed with different shapes but the color of a patch can be modified Turtle These are agents that can move about the NetLogo world and can be displayed with different shapes and colors Links These are agents which connect one turtle to another There are no instructions to move links around a link moves when one or both of the turtles at the endpoints move Ant Patterns with NetLogo Page 9 A link can also be con
14. r and an optional label a NetLogo program can also define additional variables for a patch 3 The center of a patch is a point in the coordinate system where the X and Y values are integers these coordinates are used to refer to the patch For example patch 3 2 in the diagram is a square with its center at 3 2 this square is the region where 2 5 2 X lt 3 5and 1 5 Y lt 2 5 4 A patch s coordinates are always integer values but that s not necessarily the case for a turtle In the diagram there is a turtle located at 4 6 8 3 which is on the patch centered at 5 8 Though a turtle may be drawn so that it looks like it is on two or more patches at once the turtle s center point is what matters this center point is treated as the actual location of the turtle and the patch in which the center point falls is considered to be the patch on which the turtle is standing 5 The user can change the width or height of the NetLogo world at any time in fact we will do that very thing in a few minutes however a NetLogo program can always use world width and world height to get the current values of the height and width 6 The patches on the extreme right hand side of the NetLogo world have an X value of max pxcor those on the top of the canvas have a Y value of max pycor Similarly min pxcor and min pycor are the X and Y coordinates respectively of the patches on the extreme left hand side and bottom respectively of the NetLo
15. same order when moving Add a third ant of a new color of course and in a new location to the model see what changes if anything in the aggregate behavior Add a slider to allow the user to set the number of ants that will appear Be sure that when the ants are created they all have distinct colors Ant Patterns with NetLogo Page 14
16. t behavior seem to be more orderly at some times than at others A Did knowing exactly what the ant is doing in each iteration help you to predict what the accumulated effect of thousands of iterations would be 5 We have configured the NetLogo world as a torus given that what do you think would change in the aggregate behavior _ if the ant were to start in a different initial position or face a different direction 6 Do you think adding a second ant to the model would make the aggregate behavior more predictable or less so Task 6 Adding a Second Ant to the Model Now that your Ant Patterns NetLogo model is running we ll make some changes but this time the specific code to write and even the steps to follow will be mostly left up to you Let s begin by placing the new ant on a patch which is as far from the first ant as possible Even with a torus topology it is fairly easy to see that the patches located at the four corners of the NetLogo world are as far as it is possible to get from the center patch Pick any one of these patches and referring to the information previously given on the NetLogo coordinate system figure out what the X and Y coordinates of the selected patch are Now can you figure out what additions should be made to the setup procedure so that after creating the first ant in the center another one of a different color and located in the corner you selected will be created Hint NetLogo includes a setx
17. tons you have created are displayed in red text then NetLogo is informing you that there is an error in the button definition or that the procedure s being invoked by the button are not valid for the type of agent specified Similarly if there is a yellow bar displayed at the top of the Procedures pane this means that one or more procedures has an error Pay very close attention to spelling computers are very poor at recognizing that you meant turtles when you wrote trutles for example Also note that square brackets and parentheses are not interchangeable in NetLogo the same goes for dashes underscores and spaces e g NetLogo understands clear a11 but not clear_a11 nor clear all If you have any such errors try to use the displayed error messages to locate the problem If you can t find the problem or don t know how to fix it please don t hesitate to ask for help Task 5 The Moment of Truth Running the Model 1 Click the Setup button you created to prepare your model for execution 2 Click the Go button to execute the model You may want to use the speed slider located at the top of the NetLogo world to slow execution down so that you can see more clearly what is happening Ant Patterns with NetLogo Page 12 Discussion What Happened 1 Are the results what you expected 2 How would you characterize the results 3 Could you identify different kinds of patterns in the result In other words did the an
18. ured the NetLogo world to use only only pixel for each patch iv Sets its initial heading to O i e north the increasing Y direction in the NetLogo coordinate system Note that we didn t include any instructions for setting the initial location of the ant We ll learn how to do that soon enough for now we ll take advantage of the fact that NetLogo initially places turtles at the 0 0 coordinates We now need to create a button that will execute the new setup command when it is clicked l 2 Click on the Interface tab button so that the NetLogo world is visible again On the toolbar at the top of the Interface pane click on the button labeled Add and select Button from the pull down menu next to Add then click on the white space to the left of the NetLogo world In the button properties dialog that appears make the following changes as necessary a b c d From the pull down menu labeled Agent s select Observer Make sure that the Forever checkbox is not checked In Commands type setup If desired type the text that you want to appear as the button title in Display name by default whatever you have typed in Command will be used as a button title Ant Patterns with NetLogo Page 8 e If desired specify in Action key a shortcut key that can be used to press the button using the keyboard You should now have something like this Button observer el a Click the OK button y
19. y command which instructs a turtle to move to the specified coordinates Details on that command as well as all of the other commands variables and reporters built in to NetLogo can be found by selecting the Help NetLogo Dictionary menu option Do your best to make the necessary changes to the setup procedure don t forget that you can use your Setup button to see if the modified procedure is doing what you expect it to do As always if you get stuck feel free to ask for help Remember that the rules followed by the second ant are identical to those followed by the first Given that do you think we need any changes to the go procedure Do we need a second procedure with the same instructions Review the definition of the Go button by clicking and extending a selection rectangle around the button and then double clicking on the selected button Does it appear that when Ant Patterns with NetLogo Page 13 this button is pressed only the first ant will be instructed to execute the go procedure or will all ants be so instructed Task 7 Running the Model with Two Ants Once you ve completed the necessary changes to the model and ensured that two ants are created correctly when you click the Setup button run the modified model Observe the model for several minutes if necessary until you are reasonably confident that you can describe the aggregate behavior you have observed Discussion What Happened This Time l 2 Were t

Download Pdf Manuals

image

Related Search

Related Contents

Tanaka THB-300 User's Manual  User`s Manual - Stemmer Imaging  170KB - 株式会社シーピーアイテクノロジーズ CPI Technologies  

Copyright © All rights reserved.
Failed to retrieve file