SYSC 525/625: Agent Based Simulation

Link to recent course flier         link to recent course syllabus

SYSC 525/625: Agent Based Simulation

Instructor: Wayne Wakeland


This course focuses on the technical and theoretical aspects of agent-based programming. Students will learn how to use NetLogo to create angent-based models and use agent-based simulations in research and education. Reading assignments focus on the history and theories behind agent-based simulation and the decentralized paradigm in general.

Class Format: fully online

What is an Agent?

An agent is an entity, such as an organism, person or a social organization whose activities (including movements, as well as interactions with the physical and social environment) are programmed as a set of behavioral rules. Agent-based models difer from most computer models in that the computation is decentralized, not centralized. Each individual agent can have variables associated with it, instead of haiving variables representing the aggregate properties of the system. These variables can change as the agents move and interact with their environment. Agents can be identical or they can be of different 'breeds.' One can specify behaviors and decision-making rules for each breed of agent and control each breed separately. The aggregate behavior "emerges" from the interaction of the agents and the environment.

What is NetLogo?

Netlogo is a user friendly agent-based programming language that is well-suited for 2D simulations. In certain respects it is more limited than the well-known SWARM simultaion package which requires a higher level of programming sophisitication and is less well-documented. NetLogo has a well-designed user interface which lets the user view the behavior of the agents adn create graphs of the changing values of variables. NetLogo has a 'command center,' that can be used to give agents instructions without requiring a full program. This makes NetLogo easy to learn and easy to debug.











Learning NetLogo:

Students will learn how to make agents move, interact, and engage in other behaviors by modifying existing programs and creating original simulations in NetLogo. The image above is from a model of slime mold aggregation. To view that simulation and other examples, click on the NetLogo link below. One can also download a free copy of the NetLogo software and obtain a straightforward tutorial from this website.

Netlogo Website:

NetLogo has a user interface with a built in grid for viewing the behavior of the agents. Other elements can be added to this user interface in order to make the program easier to use. Students will learn how to create a user-interface for a simulation so that it can be run by somebody with no programming experience. netLogo has tools that make creaing your own user interface (with sliders for setting variables, monitors for keeping track of changing variables and buttons for running different commands) very easily. Students will also learn how to create graphs for viewing the changing values of variables and create output files that can be exported into statistics programs.

NetLogo interface for "Rabbits, Grass, & Weeds" simulation

Applications of Agent-based Simulations:

A large variety of systems can be modeled using NetLogo. There are many examples of physical and biological simulations in NetLogo on the StarLogo website (click on link above). NetLogo is also especially useful for modeling social systems. Psychologists, sociologists and political scientists can use NetLogo to make models of individuals who change their behavior based on their interactions with other agents. For example, one could construct a model in which agtents communication with other agents about who to support in an election, where to look for 'food' or who to cooperate with. One can make models involving agents working together in an organization, making decisions in varying environments, or buying and selling in a market. It is also possible to create complex game theoretic models in NetLogo.