Agent modeling systems let you build experimental worlds easily and accurately. They have been used to model negotiations in societies, the spread of disease, and the forming of peer networks like Gnutella. In one famous case studying innocent segregation, it is easily shown that wanting to live with only 30% similar neighbors, one ends up with well over 70% similar neighbors. Thus segregation results not from bad headed racism but an innocent desire for modest diversity. Lets look at how the recently released NetLogo from Northwestern University can let you set up a tiny world with critters and rules, and push the button to see them evolve in surprising ways.
While at the Santa Fe Institute's Complex Systems Summer School in June of 2000, I was introduced to the fascinating world of Agent Modeling Systems. There are several of these, such as, Swarm, the grandfather of them all, Repast and Ascape , two modern Java based systems, and StarLogo and NetLogo, the entry level but still powerful systems.
|
All of them have two interesting features:
|
|
The command center accepts commands for the global Observer, or for each of the individual turtles or patches. You choose which sort via the small dropdown menu. In the image below left we show the patches being selected. The center image shows the result of one command: "set pcolor (pxcor + pycor)" which simply sets the color (a number between 0 and 140) to the sum of the x and y coordinates. Silly but illustrative! We then switch to Observer mode and reset the display and create 36 turtles: "clear-patches" and "create-turtles 36". We then switch to Turtle mode, and do "set heading who * 10" and "forward 15" which turns the turtles in all directions ("who" is the number of the turtle from 0 to 35) then has them moves them forward one unit, resulting in the image on the right.
|
|
|
Programs are run using a very simple Logo-like language, along with an easy to use GUI for building sliders, buttons, and graphs.
The NetLogo documentation which is included in the download, both the pdf manual and the html pages, provide very useful programming help.
Well, I hope this quick drive through has motivated you, gentle reader, to check out NetLogo and/or one of the other modeling systems. They offer truly surprising ways to investigate complex systems. We use them in Sun Labs to evaluate security models for one of our peer document systems, and to prove the closure property for peer networks .. among other things. I hope you get a chance to try these nifty tools.