You are here

More on NetLogo

Having downloaded NetLogo and played around with it for a while, I am unsure whether it will meet the needs of our modeling project.

  • NetLogo is particularly aimed at modeling systems as they adapt over time. Agents in NetLogo continuously respond to each other's decisions, resulting in an ever-changing environment. To a great extent, we are interested in modeling a system that will develop over time: at a farmers' market, for example, a seller makes a decision (setting up a vendor station), a buyer makes a decision motivated by the seller's decision (walking over to the vendor station), then another decision (whether or not to buy from the this particular vendor), etc. For these types of interactions, it is crucial to have a simulation program that effectively displays change over time in the system, showing how decisions by each agent impacts each following decision by other agents.
  • NetLogo allows one to easily change the variables in the system. For example in the "Cooperation" (of cows) model contained in the NetLogo models library, meters representing initial number of cows, cooperative probability, reproduction cost, etc. can be adjusted with a click of a button. This is just what we need for our model. We would have a meter representing number of buyers, number of sellers, buying probabilities of each one, price constraints, etc.
  • Having examined many of the models in the NetLogo model library, I am not sure that the program will allow for the level of complexity that we require. We need to have several groups of buyers, each of which has different characteristics and behaviors. The models contained in NetLogo's library have about five adjustable parameters – our program would need many more. Though I don't know that NetLogo cannot provide for this, I am skeptical because none of the provided models shows this type of control over the system, or a system with this degree of complexity.

It should be noted that I do not know the language that NetLogo uses; therefore, my ability to experiment with the program was limited. NetLogo does use a fairly simple programming language, but I did not find it a good use of my time to become familiar enough with it to be able to create my own models.

Conclusion: Though NetLogo may be the most widely-used agent based modeling program, I am skeptical that it will meet our needs. At this point in my research, I have found three programs that appear suitable for the models we want to create: RePast, Ascape, and the at-this-point-in-time only Japanese PlatBox. In order to be sure whether or not NetLogo belongs on this list, I would have to experiment with the program with its required language.

Comments

As you suspect, Jelal, NetLogo will not work for us as a LFEGame simulation platform. Sure, it has Agents, and there are LOTS of cool, fun, and easy-to-use features that make it perfect for its intended application. But NetLogo, of necessity and by design, is too much of a closed system (at this time) for our purposes. You can get a sense of that in this excrpt:

The NetLogo world is made up of agents. Agents are beings that can follow instructions. Each agent can carry out its own activity, all simultaneously.

In NetLogo, there are three types of agents: turtles, patches, and the observer. Turtles are agents that move around in the world. The world is two dimensional and is divided up into a grid of patches. Each patch is a square piece of "ground" over which turtles can move. The observer doesn't have a location -- you can imagine it as looking out over the world of turtles and patches.

This short description tells us a lot about the underlying model architecture (NetLogo's metamodel). And what it tells us is that it is too specific and limited for our purposes. For example, a NetLogo Agent embodies everything about the behavioral individual in a NetLogo simulation. You can program and then parameterize an Agent's behavior. The NetLogo Agent's behavioral specification determines its inteaction with its limited Patch World, and its behavior can impinge, in a limited sense as in the Wolf-Sheep predation simulation, on other Agents. But this "expressiveness" is way short of what we need.

You can see where NetLogo will fall short in relationship to our needs by comparing its underlying metamodel of tutle-based Agents, Patches and Controller to the metamodel specified by our recently published LFEGame General Class Model. We need to be able to model Persons as Actors of Roles that perform Acivities as part of fulfilling Role_Responsibilities specified by Business_Processes, etc. We need a fine-grained ability to "wire" Task interactions together between Actors of Roles such that their Task responses impact other Actors within the system. This level of model detail is just not a design-point for NetLogo.

In other words, we need a sufficiently open agent simulation platform that either already has these model elements expressed in its framework, or it needs to be open enough that we can program these model elements as extensions to the framework.

While NetLogo is starting to open up for extensions, it just has too far to go at this time to be useful to us. We will surely find a closer fit in a platform that is more research-focused than education-focused.

All this said in terms of NetLogo not being good for our application, I do want to go on the record saying that NetLogo is very cool (and free) for anyone interested in introducing both computer programming and agent-based simulation to young and young-at-heart students.

--Sohodojo Jim--