Modeling 101

From Nova Documentation
Revision as of 01:08, 19 March 2015 by Omuellerklein (Talk | contribs) (Basic Model Design)

Jump to: navigation, search

Dynamical System Models

Dynamical system models mimic systems that change over time. Typical examples might include a population of organisms, the flow of money in some part of the economy, or a materials process. What each of these diverse ‘systems’ have in common is that they change over time.

At the heart of a dynamical system model is a set of equations, or in some cases rules, that reflect how the system changes over a very tiny slice of time. By plugging these rules into a simulation program like Nova and letting it run for a whole bunch of time steps, you can see what happens.

Implicit in a dynamical system model is a definition, or more accurately an abstraction, of the parts of the ‘system’. For example, if we are building a population model of honey bees, should all individuals be clumped together in a single number for the population size, or should they be divided by age class? What processes, such as birth and death, should be included in the model, and which ones can be ignored? These are the types of decisions modelers have to make.

Goals of Modeling Dynamical Systems

Many people think the goal of modeling is prediction. Prediction is great, but the reality is that few systems are simple enough to be predicted with any degree of certainty. That doesn’t mean modeling is useless. Even though we might not want to bet much money on the specific outcome predicted by the model, models can tell us which factors are really important in the outcome (i.e., sensitivity), and also where we’re likely to see equilibrium points and whether they’ll be stable or unstable. This could help for example answer very practical questions such as – is the disease going to die out by itself or is it likely to explode? Are we better offer trying to vaccinate people against a specific disease, or should we improve detection and treatment of sick people?

Agent Based Models

Agent based models are models that use discrete objects with a specific set of rules that interact in a simulated region of space. They are a useful tool for describing complex systems by their constituent parts and seeing how these rules alter the large scale behavior of the system. Examples of agent based models include the Game of Life, the SIR model, and Antz (all of these models are contained within the Nova Model Library).

Advantages and Disadvantages

Agent based models have a lot of positive and negative characteristics that make them useful for modeling some things, but not so good for modeling others. They tend to be a bit harder both conceptually and practically to put together, since they have more components to them than simple analytical models. Despite this, however, they generally require a smaller base of knowledge about the system that someone is trying to model. It is easy, for example, to know that someone who is sick has a certain probability of infecting someone they interact with, but it is more difficult to come up with an equation to demonstrate the rate at which someone infects other people without knowing how often they interact, how contagious they are, and whether or not people they interact with are susceptible to infection or not. In this situation, it makes sense simulate a spatial dimension in order to make up for information that is not necessarily obvious. Another situation in which agent based models shine is with large systems whose group behavior is important. In the Flock model, the individual behavior of the birds is somewhat meaningless, but when seen in the context of the larger group, important trends begin to appear that really define the whole model.

Agent Based Models in Nova

Agent based models in Nova are models that make use of either an agent vector or a cell matrix. Models that use both of these are known as Sim Worlds. The game of Life is an example of a model that uses only a cell matrix, with the cells turning “off” and “on” or “alive” and “dead” depending on the state of each individual patch’s neighbors. The SIR model is an example of an agent vector, with agents moving about an open space in three possible states, Susceptible, Infected, and Recovered. The Antz model is a more complicated model that uses both an agent vector and a cell matrix in order to simulate how ants collect food and leave a path for other ants to follow in order to find the same food.

Nova has a lot of tools that make agent based models simpler and more robust. In particular, it is very easy to have access to all agents and cells from each individual agent, and to incorporate a wide variety of local and global effects. It also makes it simple to set up multiple Sim Worlds in order to see various outcomes simultaneously. It is also built on arrays and methods, which makes it simple to work on a small level to tweak the model to the user’s liking. On the other hand, the visual side of Nova makes it so that it is easy to quickly and efficiently set up the shell of an agent based model and immediately get down to the more important details involved in the model. A savvy Nova programmer will begin an agent based model visually and slowly transition over to handling the methods and functions in a more programming heavy reference frame.

Basic Model Design

Chip Basics

The ideas of the chip structure in NOVA may best be understood through example. Click here for an example of using a preexisting model (from the Model Library) and manipulating the ideas of model layers and chips.

Population Model 101

Also in the Model Library - check out the Simple Population Model tutorial. This tutorial demonstrates fundamental usage of NOVA, including how to operate the GUI and understanding the algorithmic and mathematical design.