Ideas for models

Table of contents

(ideas for ideas)

Networks

We need network models, including any basic well known models that are considered the standard examples used in teaching and referred to by researchers. These could be gotten from the standard network books, e.g. Barabasi's books.

The Repast demos are a likely source of basic network example we should replicate as well, particularly their JinGerNew and JainModel examples. The latter looks like it would be particularly easy to do.

Basic math

We need more simple math models: topics that school or freshman/sophmores in high school would be studying. The first thing that comes to my mind is basic algebra...I have no ideas what but that seemed to be the need.

Code Examples

The "Code Examples" section of NetLogo is not all that great -- many of the StarLogoT code examples were not converted ("Mutual Exclusion" and "Order of Execution", for example). "Inspect Patches" and "Inspect Turtles" could be converted now that we have "inspect" in 1.1pre2. And there are probably new features of NetLogo that could use new code examples -- for example, turtle sizes and exact turtle positioning. (Check the code examples folder in "under development", though.)

Science museum

Go to the Museum of Science and Industry in Chicago, or the Exploratorium in San Francisco, and look for exhibits that could be turned into models... you might see things (either computer-based or not) that could be translated pretty much directly into NetLogo, or you might just be inspired by something.

(sources for more ideas)

make a model based off of [1] (http://volokh.com/2004_04_25_volokh_archive.html#108319321341086042) which talks about a estimated disproportion of the number of male and female children in china in 2040.

the models listed at http://cs.gmu.edu/~eclab/projects/mason/ include many things we already have, but also some things we don't have

the models at http://www.xjtek.com/models/agent_based_models/ include some we have (Segregation, Flocking) and others we don't, including some map-based models. nice production values.

like 'dice' is to 'disease,' there is interesting fun stuff here for future models: http://www.mathdance.org/

[http://www.amazon.com/exec/obidos/tg/detail/-/0691012113/002-1212325-6812815 Self-Organization in Biological Systems] by Scott Camazine has a bunch of associated StarLogo models on the web at http://www.scottcamazine.com/personal/selforganization/starlogo/starlogo.htm . It'd be great to have NetLogo versions of these (some we already have).

David Wade's book Li: Dynamic Form in Nature has a lot of graphics in it that are beautiful and would make good NetLogo models: "...sand and wave patterns, big-cat markings, bark and leaf designs, soap and marbling swirls, crystalline and rock forms, tree branching types..."

there's a bunch of cool starlogo models at http://www.asap.um.maine.edu/starlogo/models/ and cool biology starlogo models at http://www.psu.edu/dept/beehive/R-so/starlogo/starlogo.htm

there's a lot of cellular automata Java applets at http://cell-auto.com/ some of which are ridiculously cool, and more applets that use freely moving particles instead of grids at http://atoms.org.uk/ , all of which are even more ridiculously cool

a site called "Virtual labs in evolutionary game theory" at http://www.univie.ac.at/virtuallabs/ has Java applets of a bunch of NetLogo-type, Prisoner's Dilemma-type models of cooperators and defectors, rewards and punishment, etc.

http://www.theatlantic.com/issues/2002/04/rauch.htm discusses about a half dozen societal models, two of which already exist in NetLogo (Segregation and Wealth Distribution), but the others would make great NetLogo models. There's a model of the sizes of cities, a model of genocide, a model of corruption in economies, and a model of the growth of Anasazi society.

Uri: "I had a fun meeting today with several complexity folks at NWU. Many of them use the Ising model -- Sara Solla uses it in physics and Dan Diermeier uses it for economic and social simulations at Kellogg. Dan has also got a lot of models that he does using time series that could be really fun to do in NetLogo. He has said he would welcome having students from CCL come by and he would explain the models enough to run them." [Ben Shapiro did one of Dan's models, "demonstrations"; it's in under development. He met with Dan, who was very helpful. I think at least one MAM student has done a model with Dan as well.]

some of the Ascape demos would make good NetLogo models (although at least at present [Dec. 2003] Ascape has been pulled from the net, so finding a copy in order to view the demos might be difficult)

Epstein and Axtell's book Growing Artificial Societies: Social Science from the Bottom Up, published in 1996, is a likely source of models

(brief ideas)

There is also a 3-D version posted to netlogo-users.

(longer ideas)

3-D network layout

a super cool demo of Jim's NetLogo 3-D prototype would be a conversion of Owen Densmore's spring-based network Layout model to 3-D

Owen is already working on this

Genetic diversity

This looks pretty neat. It's a 1-D CA type model that ought to be straightforward to do in NetLogo as far as I can tell?

- - - - - - - - - - - - - - - - - - - - - - -
-> Nature Paper <-
E. M. Rauch and Y. Bar-Yam, Theory predicts the
uneven distribution of genetic diversity within
species, Nature 431, pp. 449-452, Sept. 23, 2004.
We studied genealogical trees and discovered that
they have quite general properties that imply
a population will have small groups that are very
distinct from all the rest. These small groups are
like diversity hotspots that we have been trying to
protect in conservation efforts. Since we need to
protect biodiversity to ensure species survival,
we should identify these small groups and protect
them from going extinct.
For more information:
http://necsi.org/projects/evolecol/diversity1.html
http://necsi.org/projects/evolecol/diversitynaturepr.html
http://necsi.org/projects/evolecol/BBCTodayInterview.mp3

Cicadas evolving prime numbers

Emergence of Prime Numbers as the Result of Evolutionary Strategy, Paulo R. A. Campos, Viviane M. de Oliveira, Ronaldo Giro, Douglas S. Galvo, Phys. Rev. Lett. 93, 098107, 04/08/27

"We investigate by means of a simple theoretical model the emergence of prime numbers as life cycles, as those seen for some species of cicadas. The cicadas, more precisely the Magicicadas, spend most of their lives below the ground and then emerge and die in a short period of time. The Magicicadas display an uncommon behavior: their emergence is synchronized and these periods are usually prime numbers. In the current work, we develop a spatially extended model at which preys and predators coexist and can change their evolutionary dynamics through the occurrence of mutations. We verified that prime numbers as life cycles emerge as a result of the evolution of the population. Our results seem to be a first step in order to prove that the development of such strategy is selectively advantageous, especially for those organisms that are highly vulnerable to attacks of predators."

I've looked at the paper (which is linked from [2] (http://www.comdig.org/issue.php?id_issue=2004.35#17764)) and the model looks extremely amenable to being implemented in NetLogo.

Snowflakes

Make a model that grows realistic looking snowflakes. Wolfram's A New Kind of Science includes some treatment of snowflakes, and there must be other sources out there. (See Hex Cells Example for a very simple snowflake-type model.)

Hypercycles

One of the Repast demos, "Hypercycles", would be amenable to NetLogo. It's a social network model that happens on a grid. It's an implementation of the simulation described in John Padgett's "The Emergence of Simple Ecologies of Skill: A Hypercycle Approach to Economic Organization" in The Economy as an Evolving Complex System II, Eds. Arthur, Durlauf, and Lane. SFI Studies in the Sciences of Complexity, Vol. XXVII, Addison-Wesley, 1997, pp. 199-221. the model is also described at: http://faculty.babson.edu/krollag/org_site/org_theory/march_articles/padgett_hyper.html .

Craig is working on this

Cultural Evolution

at http://groups.yahoo.com/group/netlogo-users/message/471 , Robert Axtell writes:

The so-called Axelrod 'culture model' (R. Axelrod, "The Complexity
of Cooperation," Princeton U. Press, 1997) was advanced by its author
as a minimal model of the spatial evolution of "language, art,
technical standards and social norms". Each site/agent has a cultural
'chromosome' in the model and these evolve based on local
interactions. Depending on parameters like the length of the
chromosome (number of features) and the number of cultural traits per
feature, the model evolves into global states characterized by either
a few widespread cultural formations or many minor cultures. This
model has received significant attention beyond the social
sciences. Castellano, Marsili and Vespignani (Physics Review Letters,
85 (16)) studied the phase transition in the model, and San Miguel and
others have studied the effect of noise added to the model. Other
work on multi-agent modeling of language evolution includes Les
Gasser's group at Illinois (http://www.isrl.uiuc.edu/amag/langevgroup)

GasLab Geyser

Seth: "I was in San Francisco I visited the Exploratorium and they had a neat working model of a geyser (I mean a real model, made of plastic and water and a heater). Could we replicate this phenomenon using GasLab? We could call it GasLab Geyser."

Droplet Condensation

See http://www.necsi.org/projects/gavin/interact.html for a Java applet version and a page reference to Yaneer Bar-Yam's Dynamics of Complex Systems (http://www.necsi.org/publications/dcs/index.html).

Paterson's Worms

see http://maa.org/editorial/mathgames/mathgames_10_24_03.html : "Worms eat sediment, delineating some sort of path. The 21 November 1969 issue of Science had computer simulations of worms, side by side with images of actual worm trail fossils. The ancient slimetrails enthralled John Conway and Mike Paterson. Mike started drawing algorithmic doodles for worms eating from an isometric grid (sometimes during lectures). His simple rules led to simple patterns for some worms, but many other doodles wound up being decidedly non-simple. Mike Beeler, who worked in the MIT Artificial Intelligence Laboratory, became interested in 'Paterson's Worms', and came up with a method of rendering their patterns on the cutting-edge green CRTs of the era. In 1973, Martin Gardner wrote a column: 'Fantastic patterns traced by programmed worms.' Inspired by this, Sven Kahrkling developed a web page about isometric worms."

See the web page for some nice images of the worms. Note that the page actually contains a plug for NetLogo!

Margolus Dynamics

Yet another 1-D cellular automaton. See http://www.necsi.org/projects/gavin/interact.html for a Java applet version and a page reference to Yaneer Bar-Yam's Dynamics of Complex Systems (http://www.necsi.org/publications/dcs/index.html).

Bee Thermoregulation

Thomas Schmickl has a neat StarLogo model online at http://zool33.uni-graz.at/schmickl/Self-organization/Thermoregulation/Bee_thermoregulation/bee_thermoregulation.html : "This program simulates the cluster formation of bees in times of low ambient temperatures. It represents a comb with a set of bees moving on. Only one bee can be located at the same time on a place (= one patch). While bees move randomly in their preferred temperature range, they move directed when they are outside this range to find places with better environment. Below a certain temperature they fall into a chill coma (cannot move anymore). Moving bees produce heat according to the temperature in the environment. Heat diffuses between patches, whereby chilled bees hinder this flow a bit and therefore have an insulating effect."

It's not too different from the Heatbugs model from the Swarm demos.

Schmickl comments: "Unfortunately, StarLogo does not support differently scaled lattices and is not fast enough for multiple diffusions." Presumably NetLogo fixes the speed problem; not sure whether the differently scaled lattice stuff could be done or not.

Most of Schmickl's other models are in NetLogo, and we've been in regular contact with him. I'm sure he'd welcome help converting his older models to NetLogo.

Voter Coordination

(from Daniel Diermeier, a Kellogg prof)

"Probably easiest if I explain the project in person. It is about voting in elections with many candidates (like California Recall). The point is to find out how voters can coordinate on one candidate without wasting their vote. If you have students interested in this project, please have the contact Kristen Lueking (Kristen Lueking, k-lueking@kellogg.northwestern.edu) to set up a meeting."

Granular Materials

from prof. umbanhowar - a physics prof at northwestern:

"I would like to see if anyone can develop a model of granular materials in 2D or 3D (3D preferred). Here are the basic requirements:

  1. Between collisions, particles either move freely or under the influence of gravity (accelerating).
  2. Particles have internal states specifying their mass, velocity and possibly rotation and radius.
  3. When particles collide they lose a fraction of their normal velocity (given by a restitution coefficient) and possibly change their rotation rate via tangential forces derived from a friction coefficient.
  4. Either give the system some initial energy via particle velocities and rotations and/or drive the system by having a moving wall or some sort of random heating.

Minimal Connective Network

model of making a minimal connective network -- is there a way to make it emerge? (like how soap bubbles will find the minimum surface for connecting a wireframe, but in 2d)

Erosion

Wind, rain, stream flow, etc.

Greg Dunham built one for MAM class in fall 2003, but there are almost certainly other aspects of the phenomenon that could be explored.

Fingering

seems like this'd make a neat model: http://www.esam.northwestern.edu/~matkowsky/fingering.html

Phyllotaxis

regarding sunflower: I (Seth) got the idea of John H. Conway and Richard K. Guy's The Book of Numbers (pp 113-24). Conway and Guy cite a book called The Algorithmic Beauty of Plants which I don't have. http://www.math.smith.edu/~phyllo/ is a whole website about this stuff. (undoutedly there are other interesting models to be made based on info from these sources)

Termites and Ant Cemeteries (activation/inhibition)

Ben Shargel sent an E-mail to ccl-models on 7/30/01 and attached a paper that described some theoretical models that are very similar to our Termites model, but more sophisticated; the agents use a technique called LALI (local activation and long-range inhibition). This would make a good new model or set of new models.

This might be very similar, or could be very different: http://www.nature.com/nsu/020708/020708-1.html says: "Ants arrange their dead using the same principles that are thought to produce the markings on animal skin and on tropical sea shells. This is the first clear example of so-called Turing patterns in communities of higher organisms, say researchers Guy Theraulaz of the Universite Paul Sabatier in Toulouse, France, and co-workers."

(see the Fur model for an example of this)

Animal Democracy

"But no one deer or bee or buffalo decides when the group moves. If democracy means that actions are taken based not on a ruler's preference, but the preferences of a majority, then animals have democracy..." (http://www.nytimes.com/2003/01/14/science/life/14DEMO.html)

Uri: "interesting, though it sounds like some of their models show only the calculated benefits without postulating a mechanism for the 'democracy'. Alife folks have shown a mechanism for birds and fish -- maybe one of us will try to do the same with some of the data in this paper. It could be interesting."


Earthquake

The earthquake stuff at http://www.cz3.nus.edu.sg/~chenk/gem2503_1/lab4.htm seems like it would make a great (and fairly simple) sample model to flesh out our rather thin Earth Science section...

Mixing

Uri E-mailed ccl-models on 9/5/01 with info on possible models of mixing phenomenon:

Try taking some dry white sand and mixing in a few pieces of metal shot. Shake the sand shot mixture. Would you expect the more dense metal particles to sink to the bottom? The actual result appears to contradict "entropy" as the system becomes more ordered.

See the actual E-mail for more info.

Ulam Spiral

the "Ulam spiral" would make a good model about prime numbers: http://yoyo.cc.monash.edu.au/~bunyip/primes/primeSpiral.htm

Firms

Ascape's Firms demo is a model of growing businesses, described in this paper: http://www.brook.edu/dybdocroot/dynamics/papers/firms/

Osmosis

Uri: "One of the student teachers here heard me talk about osmosis related to the local high school. She has 'begged' me to create some NetLogo models of osmosis for her."

Anthrax

10/31/01, Uri sent message to ccl-models with subject "NYTimes.com Article: Particles Are Tiny, but Damage Can Be Great" about how anthrax particles enter the body, and suggested this could be modeled

Angolan Traditional Designs

http://plus.maths.org/issue19/features/liki/index.html says: "Inspiration from Angolan traditional designs: Since the middle of the 1980's I have been analysing mathematical properties of traditional ideo- and pictograms of the Tchokwe population in Angola. Above is an example of a typical Tchokwe pictogram. It belongs to a very particular class of curves that I call 'mirror curves'. I discovered that these curves share interesting mathematical properties, and decided to define the class of designs they generate as 'Lunda-designs'..."

The article includes pretty pictures, too.

Demonstrating Algorithms

Matt Goto writes:

recently i wrote to one of my comp sci profs from college and i remembered that he was interested in the use of graphics in explaining and demonstrating algorithms. if you want to take a look at the software that he is creating go to http://csf9.acs.uwosh.edu/ . there is some info about it there and you can also download it if you like to test it.

anyway, i thought that some good comp sci model ideas would be

using netlogo to graphically display how some algorithms work. i think that this might be able to work out especially for something like merge sort. each of the turtles could be a piece of data in the array (list, etc.) being sorted.

i guess just pick your favorite comp sci algorithm and take a

crack at it. a list of possible algorithms might be: bubble sort, heap sort, quicksort, merge sort, binary search, red-black trees, convex hull problem, and many, many more- if you want more, just pick up a book on algorithms and flip through it. you are bound to find lots that i didn't mention here.

SET Card Game

Josh writes:

we should make a hubnet version of this game.
it's one of my favorites.
http://www.setgame.com/set/index.html

Aggressors & Defenders

http://icosystem.com/game.htm has a nice Java applet, that you could easily reproduce in NetLogo, of a system where the rules are:

Each agent is threatened by an aggressor and wants to be protected by a defender.
The agents move to keep their defender between them and their aggressor.
Initially, each agent chooses, at random, an aggressor and defender within its sight.

You get a lot of interesting emergent behavior out of this.

Prisoner's Dilemma Variations

Scott Styles writes:

with regards to new prisoner's dilemma models: The direction I would take from here were I still at the CCL is as follows:

    Create an advanced iterated PD model - Currently the iterated model does not demonstrate many of the conclusions found in Robert Axelrod's 1984 book, The Evolution of Cooperation. The reason for this is the following complex strategies are not used (names taken from the book): DOWNING, REVISED DOWNING, TESTER, TRANQUILIZER, TWO-TIT-FOR-TAT, REVISED STATE TRANSITION, and JOSS. Information on how each of these strategies work can be found in Chapter 2 and Appendix A of the book. Implementation of these is needed to really test the ideas in Axelrod's book. The only additional code that should be needed is that for the new strategies. I would probably make a new model combining those above with the Tit-for-Tat and Random strategies.

    I believe with moderate modification two different hubnet versions of the iterated PD could be made:

    Create an evolutionary PD model. Modify what is presented to include evolution, allowing poorly performing strategies to die off and good ones to reproduce. The real challenge I see here is figuring out a way to record the histories without needing to search through a turtle's entire history list on each interaction. The prospect of exponential population explosion may also be an issue. The use of patches in a fashion similar to the Basic Evolutionary PD model may provide a way around these issues. Axelrod describes the results of such a program, but my guess is things will not emerge to be as simple as he makes them

    The genetic algorithm approach discussed in a paper in Axelrod's most recent book, as mentioned in a previous e-mail of mine to ccl-models along with implementation suggestions, may fit nicely here.

    Introduce the concept of noise in interactions. This is where Tit-for-Tat is supposed to fall apart and generous or contrite strategies emerge as superior.

Two ideas I had for prisoners dilemma models that I definitely will not be able to get to but I think would be cool:

    The classical prisoner's dilemma does not include the concept of miscommunication. Code a PD model with noise and strategies to handle it. Guide the user to understanding the implications of this.

    Axelrod discusses using a genetic algorithm to evolve a "best" prisoners dilemma strategy. Basically, each interaction is coded in the form XY where X and Y are the actions of the individual and their partner respectively. 1 stands for cooperate, 0 stands for defect. Each agent's strategy consists of a gene which is a list of all possible interactions that could have occurred in the past Z turns, with each situation associated with a reaction:

    For example, a gene for an agent that only looks at the last turn (this particular one would code for tit for tat) :

    00 : 0 01 : 1 10 : 0 11 : 1

    Evolution in the form of mutation and recombination is allowed for the best strategies to emerge. Initially I had thought this too memory intensive for NetLogo, but then realized if we store genes in binary, as well as interactions, it extends to use the list primitives beautifully.

    For instance, the above gene would become:

    set gene [0 1 0 1]

    and reference to what to do in the case 10 would simply be

    set action (item 2 gene)

    If each agent has an N element list storing Z interactions with each of the other turtles, and a 2^(2*Z) element list storing each gene we can have turtles which handle 4 turn histories, exactly as in Axelrod's book. Assuming item does not just cdr down the list, the only limiting factor is storage of the genes.