390 likes | 525 Views
Slides and model files will be at www.is.wayne.edu/drbowen > NetLogo workshop. NetLogo Workshop. Complexity And Business Analytics October 10, 2008, UM-Dearborn David Bowen, WSU Physics d.r.bowen@wayne.edu. 12:30 – 2:10 Describe agent-based modeling Download & install NetLogo
E N D
Slides and model files will be at www.is.wayne.edu/drbowen > NetLogo workshop NetLogo Workshop Complexity And Business Analytics October 10, 2008, UM-Dearborn David Bowen, WSU Physics d.r.bowen@wayne.edu
12:30 – 2:10 Describe agent-based modeling Download & install NetLogo Find & use existing models installed with NetLogo & on NetLogo website 2:30 – 4:10 Modify an existing NetLogo model Build a new NetLogo model As a result of this workshop, (I hope) you will be able to: NetLogo Workshop
NetLogo Workshop Part 1 Agent-based modeling Download and Install Find and run
Agent-Based Modeling • What is agent-based modeling? • Simulating a set of acting/interacting agents • Examples of agents: people, organs, molecules, planets, family units, corporations, ribosomes • Modeler assigns (programs): • Characteristics or properties of agent • Homogenous or diverse agents • Rules or methods of interaction • Example: Preferentially link to the most popular agent (the one that already has the most links) NetLogo Workshop
Agent-Based Modeling • What is agent-based modeling? • Agent-based modeling environment/toolkit: • Steps agents through actions/interactions • Displays agents, charts indicators, saves data • NetLogo has four basic types of agents A: always • A Observer: sees all • A Turtles (agents), modeler can create subtypes • S Links between turtles, can have subtypes • A Patches or pieces of background • Can be “invisible” but sometimes important (grass in Sheep and Wolves) NetLogo Workshop
Agent-Based Modeling • Where is agent-based modeling used? • Everywhere, e.g. all academic departments • Natural systems (science, engineering etc.) • Many existing simulation techniques, question is purpose, strengths, weaknesses • Social systems (humanities, social science, business/marketing etc.) • Often the best or only laboratory available NetLogo Workshop
Agent-Based Modeling • Types of use • Real-world simulation, optimization • Research • Classroom: learning, demo, homework • Alternatives to making your own models • Models Library downloads with installation • Publicly available models • Modify and existing model NetLogo Workshop
Agent-Based Modeling • About NetLogo • Uri Wilensky et al. at Center for Connected Learning and Computer-Based Modeling at Northwestern University • “Low floors, high ceilings” • Free download • Java-based (run anywhere) but private Java copy • Discussion forums, technical support, continuous development NetLogo Workshop
Download and Install • URL: ccl.northwestern.edu/netlogo/ • Notice: mail lists, Resources (more models) • Download on the left • Save to desktop (because of rights on these computers, elsewhere you can accept the default) • Double-click on downloaded file to install (NetLogo4.0.3Installer.exe) • Location: up-arrow to desktop, add \NetLogo > Next • Accept all other defaults NetLogo Workshop
Run • Start > All Programs > NetLogo > NetLogo 4.0.3 • Notice: • File menu item (top left) – Models Library, etc • Interface – “the model” • Information – How to use & change the model • Procedures – the code NetLogo Workshop
Models Library • File > Models Library • Checked except for (unverified) • Biology > Heatbugs (famous) • Double-click model name or picture to open • Setup then Go (Go again pauses) • Information – what the model is doing • Procedures • Turtles-own establishes properties (characteristics) • Button name starts “to” procedure with that name • ; for comment, can be whole or last part of line NetLogo Workshop
Models Library • File > Models Library > Computer Science > Cellular Automata > Life • Cellular Automaton • Here, patches = cells, no turtles • Dark = cell alive, background color = dead • Cell with 3 live neighbors comes to life • Live cell with two live neighbors continues to live • Otherwise cell dies NetLogo Workshop
Models Library • Social Science > Party (famous in another form) • Schelling model – two types of people • Here, men and women • Originally, Black and White • Otherwise the same – properties and methods • How comfortable are these agents with those of the other type – slider • Even a slight preference can lead to complete segregation NetLogo Workshop
Models Library • File > Models Library > Networks > Small Worlds (famous – six degrees of separation) • Uses links • Path along links from one agent to another • Setup = ring, links to 2 nearest on each side • Average path length for all pairs of agents • Even a few links across the ring reduces the average path length significantly • Significant in organizations, e.g. businesses NetLogo Workshop
Models Library • File > Open > Biology > Wolf Sheep Predation • Different kinds of agents, including patches • Click grass? Switch to On • Boom-and-bust cycles very common NetLogo Workshop
Models on NetLogo site • URL: ccl.northwestern.edu/netlogo/ >Community Models • Possible problems if models are written for earlier versions of NetLogo • My Two-color gas works with 4.0.3 • My Brownian motion doesn’t NetLogo Workshop
NetLogo Models on the Web • Solves problems with old versions since Java Virtual Machine (VM) downloaded also (but different versions can coexist) • www.is.wayne.edu/drbowen/ > Classroom Models • Brownian motion works • Big Bang model • Other things NetLogo can do NetLogo Workshop
Extensions • Array, Table, GoGo, Profiler, GIS, Sample, and Sound are in the standard installation • In Extensions subfolder of NetLogo installation folder • Each is explained in Help > NetLogoUser Manual > Extensions • Some (GIS, Table) come with existing models NetLogo Workshop
NetLogo Workshop Part 2 Modify Roll your own
Programming Resources • Help > User Manual • Tutorials • Interface Guide – World, Menu items, Controls • World - Settings: size, wrapping Vs reflecting • Programming Guide – big picture • Types: observer (starts off), turtle, patch, link • What can I do with agents? • NetLogo Dictionary – the nitty gritty • Alphabetical list • By type NetLogo Workshop
Modify One • File > Model Library > Computer Science > Cellular Automata > Life • Procedures – scan to numbers 3 and 2 • On the way • patches-own – creates properties for patches • Built-in: pxcor, pycor, pcolor • living? - ? makes this logical (true/false only) • 3 4, 2 3 • File > Save As a new name, e.g. LifeDB on desktop NetLogo Workshop
Modify Life • Add a slider to vary number on interface • Click on down-arrow to select slider • Global variable init-number, 1 to 5, value 2 • Then right-click to Select, squeeze it in • In Procedures, 2 init-number, 3 init-number + 1 / Save, Setup then Go NetLogo Workshop
Modify Life • You now load this modified version from the desktop or by double-clicking the desktop icon • “Back home” you can keep the .NLOGO file in any folder you choose NetLogo Workshop
Modify Small Worlds • File > Models Library > Networks >Small Worlds • On interface, put in a slider: • Global variable init-links • Minimum 1 • Increment 1 • Maximum 3 • Value 2 • Save on desktop under a new name • Add initials? NetLogo Workshop
Modify Small Worlds • Procedures, scroll through (bigger than Life) • Find to setup, then see make-turtles then wire-them (this creates the links) • About 75% down (Find?) find to wire-them • What we want to do: • Always link to n+1 • If init-links = 2 or 3 then also link to n + 2 • If init-links = 3 then also link to n + 3 • Dictionary: if condition [ commands ] NetLogo Workshop
Modify Small Worlds • Error when running with init-links = 1; divide by zero • Divide by clustering-coefficient-of-lattice divide by dum, protect dum from being zero • We might eventually want a better fix NetLogo Workshop
Modifying Models • Find a model that does something close to what you want, and modify it to suit • For these modified models, we should go back and update the information • Structured and commented code helps – do this for yourself, too NetLogo Workshop
Roll Your Own • Decisions needed • System to be modeled • What do the agents represent? • What are the rules of action and interaction? • How will you approximate these rules for entry into the modeling environment? • What does a tick (cycle) represent? NetLogo Workshop
Other • You might want to change the World settings • Size • Location of 0, 0 • Wrapping or box • Patch size (also determines size of world screen) NetLogo Workshop
Programming in NetLogo • Case-insensitive • To set a equal to b: set a b • Arithmetic operators must have space on either side: set a 3 * b • Can use parentheses to control order • Use [ ] to block code statements • White space ignored after minimum space • Routines start with to, end with end • No number types • Logical variables end in ? NetLogo Workshop
Programming in NetLogo • Context: who is acting? • ask turtles [ commands ] sets context to turtles • Agents can ask other agents or even other types of agents • ask turtles [ … ask links [ … ]… ] • Only that particular agent can find the value or change a value that it owns • If one agent (e.g. a turtle) is acting, other turtles is set of all other turtles, one-of other turtles is a random other • stop to stop asking • breed to subtype an agent: breed [ cats cat ] NetLogo Workshop
Simple Model • Model will: • Setup • Create turtles with random headings (this is the default), positions, speed • Go • Let turtles go with speed and headings • Randomly change speed and headings • Sliders to control speed range and size of heading changes NetLogo Workshop
Simple Model • Built-in turtle variables (each turtle has its own) • breed (sub-type) • Color (defaults to random for each turtle) • Heading (degrees, 0 = up, 90 = right) • hidden? • label, label-color • pen-mode, pen-size • shape • size • Who (a number) • xcor, ycor (by default 0, 0) NetLogo Workshop
Network Model • Model will: • Setup • Create a set of turtles with random positions • Create a random set of links between the turtles • Each turtle has same chance of having links • Go Once • Pick a random turtle and a random one of its links, and replace it within one attached preferentially • Higher chance of linking to a turtle with the most links NetLogo Workshop
Network Model • Start new model, save it to desktop as Network • Go to Model Library, open Network > Preferential Attachment, copy layout and limit-magnitude to clipboard and then into Procedures window, and resave • Will make a better World plot NetLogo Workshop
Network Model • Agentset – a list set of agents • Defaults to a random order but can be sorted • Can be “traversed” – go through all agents in the list by asking • Can also pick a random agent from the list • If we want angentset to persist, must set it to a name we have previously declared in globals or locally • If we have picked a turtle, other turtles is an agentset of all of the other turtles NetLogo Workshop
Agentsets and Lists • Agentset: an unordered set of agents of any type, including breeds • Order is randomized on each use • Can ask agentset [ list of commands ] • Current agent in “ask” sequence: self • List: an ordered list of any objects, including agents • Order is always the same unless you change it • Can be sorted, etc. • Current list item in “for each” sequence: ? Return to slide 36 NetLogo Workshop
Jumpers • Transport • Agents jump by patches left to right • Have to wait at each patch for its individual wait count, can’t jump on top of another • Setup: • Initialize patches with wait counts, color-code • Go: • Turtles jump to right if wait count reached and that patch is empty • After jumping off last patch on right, turtle dies NetLogo Workshop
And… • 3D • Numerical modeling (modeling number of agents, etc.) • Flying behind a turtle • Back NetLogo Workshop