1 / 95

An Introduction to NetLogo

A comprehensive introduction to NetLogo, a discrete simulation environment based on the programming languages Logo and Lisp. Learn how to create agent-based simulations and explore various applications in art, biology, chemistry, physics, computer science, and earth science.

cpetersen
Download Presentation

An Introduction to NetLogo

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. AnthropologischeGesellschaftWien An Introduction to NetLogo These slides are a slightly updated version of Gabriel Wurzer, Vienna University of Technology www.iemar.tuwien.ac.at

  2. NetLogo free* agent-based simulation environment by Uri Wilensky, Northwestern University, which is based on programming language "Logo" by Seymour Papert, MIT which is based on programming language "Lisp" by John McCarthy, Stanford __ * http://ccl.northwestern.edu/NetLogo/ Wilensky 1999 Papert 1968 McCarthy 1958

  3. NetLogo is a discrete simulation Simulation environment with discretized world ("patches"), on which agents ("turtles") perform actions in discrete time steps ("ticks")

  4. What NetLogo is used for…

  5. Art: Fireworks

  6. Biology: Termites

  7. Biology: Virus

  8. Biology: Fireflies

  9. Chemistry: Kinetics

  10. Chemistry: Kinetics 3

  11. Physics: Sand

  12. Physics: Wave Machine

  13. Computer Science: Dining Philosophers

  14. Earth Science: Erosion

  15. The NetLogo Environment

  16. Main screen of a model forsimulation fordocumentation forcode • simulation performedin interface area • documentation area lists what to do with the model • programming is done in the procedures area world discretized into grid, visible in center of screen Interface Info Code Model world (grid)

  17. Co-ordinate space • origin (0,0) in middle ofgrid • X+ right, Y+ up • world composed of grid cells ("patches") • each patch is identified by the coordinate at its center, Interface Info Code

  18. Co-ordinate space • origin (0,0) in middle ofgrid • X+ right, Y+ up • world composed of grid cells ("patches") • each patch is identified by the coordinate at its center, e.g. patch 0 0 at origin Interface Info Code

  19. Co-ordinate space • origin (0,0) in middle ofgrid • X+ right, Y+ up • world composed of grid cells ("patches") • each patch is identified by the coordinate at its center, e.g. patch 0 0 at origin patch 1 1 elsewhere Interface Info Code

  20. Properties and abilities of turtles

  21. Turtles are... • movable entities within the NetLogo world heading • 0..360 degrees • 0 is north, 90 east, etc. xcor ycor • in grid coordinates • e.g. 0, 0

  22. Turtles are... • movable entities within the NetLogo world heading • 0..360 degrees • 0 isnorth, 90 east, etc. xcor ycor • in gridcoordinates • e.g. 0, 0 or 0.5, 0.5

  23. Turtles are... • taking form (they represent an active, animated entity) shape • e.g. "default" size color

  24. Turtles are... • taking form (they represent an active, animated entity) shape • e.g. "default" or "person" size • relative to patch size • 1 is the default color

  25. Turtles are... • taking form (they represent an active, animated entity) shape • e.g. "default" or "person" size • relative topatchsize • 1 isthedefault • but canbe 2 as well color • e.g. RED, GREEN, BLUE

  26. Turtles are... • taking form (they represent an active, animated entity) shape • e.g. "default" or "person" size • relative topatchsize • 1 isthedefault • but canbe 2 as well color • e.g. RED, GREEN, BLUE • or MAGENTA

  27. Turtles are... • by default visible, but can be hidden as well hidden? • true or false

  28. Properties • unique id for each turtle in • NetLogo who heading xcor turtle 0 ycor shape size color hidden?

  29. Commands observer create-turtles 1

  30. Commands turtle 0 observer inspect turtle 0

  31. Commands who heading xcor turtle 0 ycor shape observer size color hidden?

  32. Your turn... • Start NetLogo • In the observer>input box, entercreate-turtles 1 • in the same location, enter inspect turtle 0 • enter RED as color,0 as heading1 as xcor1 as ycor"person" as shape create-turtles 1 inspect turtle 0

  33. A closer look at the inspected properties... who heading xcor numbers (e.g. 0) turtle 0 ycor shape size color Booleans (true or false) hidden? strings (e.g. "person") note the quotes!

  34. Data types In detail… numbers… ordinal type (1,2,3) comparison: (1<2) operators: +,-,*,/ Booleans… truth type (true, false) comparison: (true != false) operators: and, or, not strings… character chains ("abra") comparison "test" != "abra" operators: concatenation ("abra" + "cadabra" = "abracadabra") slicing ("abracadabra"[4:6] = "cad") … • Numbers, Booleans and strings are data types • Each data type has its own syntax (e.g. "xyz" for strings) • Each data type has its own benefits • numbers are made for calculations (+, -, /, *, sin, cos, etc.) • Booleans are made for conditions (if hidden? ...) • strings are made for supplying names (e.g. use the "default" shape)

  35. The ask command who Observercalled, askingmeto... heading xcor turtle 0 ycor ask turtle 0 [ ] shape observer size color hidden?

  36. The set command who heading xcor turtle 0 ycor ask turtle 0 [ ] shape set color blue observer size color hidden?

  37. The set command who heading xcor turtle 0 ycor shape observer size color hidden?

  38. Ask explained • The ask command calls a set of turtles or patches, passing commands to them • These commands are supplied in brackets, i.e. asksomebody[do thisdo that ] • The commands are executed by the called turtle or patch, and influence its properties

  39. Context Turtles and patches are inherently different, only commands that the called entity understands can be issued who heading xcor ask turtle 0 [ ] turtle 0 create-turtles 1 ycor shape size color hidden?

  40. Context Turtles and patches are inherently different, only commands that the called entity understands can be issued YOU KNOW PRETTY WELL THAT ONLY OBSERVER CAN CREATE TURTLES #*! who heading xcor ask turtle 0 [ ] create-turtles 1 ycor shape size color hidden?

  41. Context Because observer, turtles and patches are inherently different, only commands that the called entity understands can be issued who heading xcor ycor shape size color hidden?

  42. Commands for turtles set property value sets a property to a specified value forwardpatch-units,backpatch-unitsmoves a turtle in the current direction leftdegrees, right degrees alters the heading of a turtle ...and every other command listed in the NetLogo Dictionary under "Turtle-related" (see: Menu - Help – NetLogo Dictionary)

  43. Have you seen it? The NetLogo Dictionary is NetLogo’s central source for help.

  44. Hands on ! • let observer ask turtle 0 - to set its property "color" to yellow - to issue the following commands: forward 1 left 45 forward 1 • see for yourself what happens when you run:ask turtle 0 [create-turtles 1] • look inside the NetLogo Dictionary and find the meaning ofthe following commands: - pen-up, pen-down then, experiment with these using forward, left and right as additional commands!

  45. Results (Probably) • pen-down and pen-up change the state of a property named "pen-mode" • color of track equals color of turtle • thickness of track can be set using the property "pen-size" (also found in a turtle) • observer may erase the tracks by using the command "clear-drawing" or everythingincluding turtles with "clear-all" pen-up pen-down "up" or "down" a number (default is 1) pen-mode clear-drawing pen-size clear-all

  46. Summing up

  47. Writing Programs

  48. General NetLogo program layout Example from Models Library • set up the program (once), e.g. • clear everything, • set the environment • create agents • simulation loop (called repeatedly) • simulate worlde.g. grain growth on patches • simulate agent behavior e.g. movement, interaction • update charts & plots 1. open the"Models Library" 1. type "histogram" and choose Histogram Example

  49. Exploring the "Histogram Example" • the two buttons "setup" and "go" are used to interact with the model • setup clears and fills the world, • go simulates and generates the histogram (repeatedly, in time steps – "ticks") • click setup, then go buttons plot world

  50. Forever or not forever 0. (Toggle the "go" button) • Right-click on the go button • Select Edit... 3. A dialogappears 4. Unclick "Forever" 5. Choose "OK"  click on "setup", then "go" • Buttons are used to call setup and simulation procedures • Choosing "Forever" on a button will repeatedly call it,therefore establishing a loop

More Related