Introduction NetLogo Agent
Download
Report
Transcript Introduction NetLogo Agent
What is NetLogo
Multi-agent programmable modeling environment
Well suited for modeling complex systems evolving over
time
Hundreds or thousands of independent agents operating
concurrently
Exploring the connection between the micro-level
behavior of individuals and the macro-level patterns that
emerge from the interaction of many individuals
Department of Computer Science
UH-DMML
What is NetLogo
Easy-to-use application development environment
Opening simulations and playing with them
Creating custom models: quickly testing hypotheses about
self-organized systems
Models library: large collection of pre-written simulations in
natural and social sciences that can be used and modified
Simple scripting language & User-friendly graphical interface
Department of Computer Science
UH-DMML
What is NetLogo
History
LOGO (Papert & Minsky, 1967)
• Theory of education based on Piaget’s constructionism (“hands-on”
creation and test of concepts)
• Simple language derived from LISP
• Turtle graphics and exploration of “microworlds”
StarLogo (Resnick, 1991), MacStarLogo, StarLogoT
• Agent-based simulation language
• Exploring the behavior of decentralized systems through concurrent
programming of 100s of turtles
Department of Computer Science
UH-DMML
What is NetLogo
History
NetLogo (Wilensky, 1999)
• Further extending StarLogo (continuous turtle
coordinates, cross-platform, networking, etc.)
• Most popular today (growing cooperative library of
models)
Department of Computer Science
UH-DMML
What is NetLogo
World of NetLogo
NetLogo is a 2-D world made of 4 kinds of agents:
1) patches – make up the background or “landscape”
2) turtles – move around on top of the patches
3) observer – oversees everything going on in the world
4) links – agents that connect two turtles
patch-only models
Department of Computer Science
UH-DMML
What is NetLogo
turtle-only models
turtle & patch models
Department of Computer Science
UH-DMML
Graphic Interface
Controls
Allow to run and control the flow of execution
1) buttons
2) command center
Buttons - initialize, start, stop, step through the model
1) “once” buttons execute one action (one piece of code)
2) “forever” buttons repeat the same action (the same piece of code)
until pressed again
Command center – ask observer, patches or turtles to execute
specific commands “on the fly”
Department of Computer Science
UH-DMML
What is NetLogo
Settings
Allow to modify parameters
1) sliders
2) switches
3) choosers
sliders – adjust a quantity from min to max by an increment
initial-number-sheep = 82
switches – set a Boolean variable (true/false)
show-energy? = false
Department of Computer Science
UH-DMML
What is NetLogo
Settings
choosers – select a value from a list
file = “Beats/seth2.csv”
Department of Computer Science
UH-DMML
What is NetLogo
Views
output text areas – log text info
1) monitors
2) Plots
3) output text areas
4) graphics window
monitors – display the current value of variables
plots – display the history of a variable’s value
Department of Computer Science
UH-DMML
What is NetLogo
Views
output text areas – log text info
graphics window
Department of Computer Science
UH-DMML
Programming Concepts
Agents -- carry out their own activity, all imultaneously.
1) patches
2) turtles
3) observer
4) links
Patches
1) don’t move, form a 2-D wrap-around grid
2) have integer coordinates (pxcor, pycor)
Turtles
1) move on top of the patches, not necessarily in their
center
2) have decimal coordinates (xcor, ycor) and orientation
(heading)
Department of Computer Science
UH-DMML
Programming Concepts
Observer
1) can create new turtles
2) can have read/write access to all the agents and
variables
Links
1) Links do not have coordinates.
2) Every link has two ends, and each end is a turtle
Department of Computer Science
UH-DMML
Programming Concepts
Procedures
Commands
actions for the agents to carry out (“void” functions)
to setup
ca
crt 10
end
Department of Computer Science
UH-DMML
Programming Concepts
Reporters
report a result value (functions with return type)
to-report absolute-value [ number ]
ifelse number >= 0
[ report number ]
[ report 0 -number ]
end
Department of Computer Science
UH-DMML
Programming Concepts
Primitives
o built-in commands or reporters (language keywords)
o some have an abbreviated form:
create-turtles crt
clear-all ca, etc.
Procedures
o custom commands or reporters (user-made)
Department of Computer Science
UH-DMML
Programming Concepts
1)
2)
3)
Variables – places to store values (such as numbers or text)
global variables
turtle & patch variables
local variables
Global variables
1) only one value for the variable
2) every agent can access it
Turtle & patch variables
1) each turtle/patch has its own value for every turtle/patch variable
Local variables
1) defined and accessible only inside a procedure
2) scope = narrowest square brackets or procedure itself
Department of Computer Science
UH-DMML
Tutorial
Build Termite Module
Two buttons
Setup observer, once
Go turtles, forever
Two sliders
1) number1 →300
2) density0 →100%
Department of Computer Science
UH-DMML
Tutorial
Randomly strew yellow wood chips (patches) with given density
to setup-chips
ask patches [ if random-float 100 < density
[ set pcolor yellow ] ]
end
to setup-termites
create-turtles number
ask turtles [ set color white
setxy random-float screen-size-x
random-float screen-size-y ]
end
to setup
ca setup-chips setup-termites
end
Department of Computer Science
UH-DMML
Tutorial
Termites (turtles) follow 3 rules:
1 look around for a wood chip and pick it up
2 look around for a pile of wood chips
3 look around for an empty spot in the pile and drop off the chip
to go
; turtle code
pick-up-chip
find-new-pile
drop-off-chip
end
Department of Computer Science
UH-DMML
Tutorial
1)
2)
3)
Variables – places to store values (such as numbers or text)
global variables
turtle & patch variables
local variables
Global variables
1) only one value for the variable
2) every agent can access it
Turtle & patch variables
1) each turtle/patch has its own value for every turtle/patch variable
Local variables
1) defined and accessible only inside a procedure
2) scope = narrowest square brackets or procedure itself
Department of Computer Science
UH-DMML
Tutorial
1)
2)
3)
Variables – places to store values (such as numbers or text)
global variables
turtle & patch variables
local variables
Global variables
1) only one value for the variable
2) every agent can access it
Turtle & patch variables
1) each turtle/patch has its own value for every turtle/patch variable
Local variables
1) defined and accessible only inside a procedure
2) scope = narrowest square brackets or procedure itself
Department of Computer Science
UH-DMML