Agent Based Modeling

Agent Based Modeling

Agent Based Modeling

This is an introductory talk on Agent Based Modeling. [Slide 1] Agent Based Modeling is a tool for studying complex adaptive systems. With these tools we are able to model systems by describing the agents and the environment as well as the interactions between agents and environment and through running the simulation we can see how the system adapts and changes over time and whether or not the model produces emergent patterns. [Slide 2] The basic Agent Based Modeling paradigm consists of the observer or the person who sets up or instantiates the world, the turtles or agents who are the individuals in the world and the patches. The patches are the squares or tiles that make up the environment.

[Slide 3] There are three main phases in any Agent Based Model. There is the set up phase where the world is instantiated. The run time loop where agents go through their behaviors and change their states and the environment is updated. Also in the run time loop the screen where the output data is updated. Then there is the exit, either the user hits the quit button or the model runs to some terminal state. [Slide 4] There are three main abstractions in any agent based model. The first one is that there are agents with rules. The second is that there is an environment or space within which the agents live. The third abstraction is time so time is dictated by ticks and one tick equals one cycle through the run time loop.

[Slide 5] Net Logo is a programming language and it is a modeling environment. It has easy to build widgets for making user interface elements and it is very easy to draw the visualizations that let you see what is going on in the simulation. As a programming language Net Logo is logo based and there are traditional constructs from computer science such as variables, lists, procedures and looping. [Slide 6] To create a computer model in Net Logo you can see there are very distinct steps. Within the setup procedure you can create the environment. Next you can create turtles or the agents and set some variables of the turtle such as color, location and size. Within the run time loop, in this case it is called the go procedure, you tell the agents to follow some simple procedures for their behavior.

Some things to keep in mind when you are modeling, [Slide 7] a model is a representation of the interaction of real world objects in a complex system. Again it is a representation and it is not a real world replica. The goal when modeling is to gain and understanding of how the model works and how its results relate to a real world phenomena. Often there are random factors built into a model and variables changed by the user cause different results to be generated each time a model is run. What we get when we run a model many times is a landscape of outcomes. Rather than saying that every time a model is run the outcome will be A, we will have some probabilistic outcomes. We could say 30% of the time the outcome of this model with these settings is A, where 70% of the time the outcome of this model run with these same settings is B. We learn about the overall behavior of the model.

[Slide 8] There is a classification system that was developed by Roughgarden in which we go from basic very general models to models that have increasing complexity and detail. The most basic is an idea model. For example, you could have a model of a predator and a prey and they could be generic predator and prey. The next level you could have a minimal model for a system and now instead of predator and prey you specify what the predator is, such as wolf and what the prey is, such as caribou. Now it is getting a little more specific and finally there are full systems models. This would be for example a model of every wolf and caribou within a five square mile section of Yellowstone. It is very detailed but at the same time as you get more and more detailed you decrease the generalize-ability and applicability of the model.

[Slide 9] When learning about modeling there is a progression that we found to work. At the first step we use models. We learn about models and modeling by running experiments, by changing variables, collecting data and analyzing the results of running models. At the next stage we start deconstructing models into their agents, behaviors, environments and interactions. We are trying to figure out how models work. As we do this we can develop some expertise in evaluating models. For example we can determine what assumptions are being made in models and we are gaining coding and decoding skills and being able to trace programs through to see how they build our sustained reasoning. At the next stage we can work towards creating our own models.

To do so we use abstraction to determine which elements of the real world we think are important to represent in our model. As we use our model we evaluated it and we can see if the assumptions we made were correct.

Agent_based_modeling-IreneLee / Page 1 of 2