Agent Based Modeling
(ABM)
Stephen Kinsel
Outline
• What is ABM?
• Why use ABM?
• Applications
• Examples
• Good Modeling Practices
• Issues
• Future of ABM
What is ABM?
• First: What is an agent?
– An entity that functions continuously and
autonomously in an environment in which
other processes take place and other
agents exist (Shoham)
– General Characteristics:
•
•
•
•
Autonomy
Pro-activeness
Reactivity
“Social” Ability
What is ABM?
• Simulation modeling technique where a
system is modeled as a collection of agents
and the relationships between them.
•Agents individually asses its situation in the
environment and make decisions on the
basis of a set of rules.
- Bonabeau
Agent Types (DeLaurentis)
Mobile
Agent
Adaptive
Agent
Yes
Autonomous
Agent
Yes
Yes
Can it change
its behavior
based on past
experiences
Does it move?
Does it run
without
continuous
user input?
No
Agent
Reactive
Agent
Yes
Does it have
a set solution
path?
No
Utility
Agent
Does it care about
the utility value?
Yes
Does it collect,
filter & classify
information?
Yes
Require
Assistant
User?
Yes
Interface
Agent
No
Goal-based
Agent
Info-gathering
Agent
Agents can possess more
than one property
Agent Types in an Example
• Traffic Control
– Reactive: Police (enforce laws of road)
– Info-gathering: Media (informs the public of traffic and
accidents in major areas)
– Autonomous: Disruptors (weather / accidents)
– Goal-based: City Planners (would like the least
number of accidents and greatest amount of flow
through parts of town)
– Adaptive: Drivers (may avoid roads that are known to
be overcrowded during certain times of day)
– Utility: Drivers (would like to minimize drive time /
distance)
Why Use ABM?
•
Captures Emergent Phenomena
– As the components of a system interact
with each other, and influence each
other through these interactions, the
system as a whole exhibits emergent
behavior (Roetzheim)
– This characteristic makes the output of
a system difficult to understand and
predict
Emergence Example
• Group of 10 – 40 people
– Each member randomly chooses two people,
person A and person B.
– Members move themselves so that A is
between themselves and B
– Now move so that member is between A and
B.
Why Use ABM?
•
Provides a Natural Description of a
System composed of “behavioral”
entities
– Describes the system from the
perspective of its constituent units’
activities more so than the system’s
processes
•
Heterogeneous units
Heterogeneous Components of a
System
Why Use ABM?
• Flexibility
• What if the appropriate level of description
or complexity is not known ahead of time?
– Easy to add / subtract more agents
– Tuning the complexity of the agents
• changing behaviors, degree of rationality, rules of
interactions, etc
Traditional vs. ABM simulation
• ABM seeks “adaptive” rather than “optimizing”
nature
– Adapt: seek the rule and behavior set that lead to
new capabilities
– ABM does not emphasize analytical solutions
(more qualitative than quantitative)
Areas of Application
•
Flow
– evacuation, traffic
•
•
Financial Markets
Organizations
– organizational design, strategy
•
Social
ABM Generic Example - BOIDS
BOIDS
Separation: steer to avoid
crowding local flockmates
Alignment: steer towards the
average heading of local
flockmates
Cohesion: steer to move toward
the average position of local
flockmates
Reynolds
ABM Generic Example - Evacuation
Stampede Situation
• People become injured when
they collide at a certain speed
• As a consequence, leaving the
room becomes difficult.
Stampede Situation w/ Column
• A column in front of the door
can avoid injuries.
• It can increase the outflow well
with less / no injured people
Helbing, Farkas, Vicsek
ABM Generic Example – Traffic
Control
Good Modeling Practices
•Choosing the language that is right for
you and the problem
•Goals of Good AB Programming
•Project Management
Some Recommended Programs /
Languages
• StarLogo
– Programmable modeling environment for new programmers
• Swarm
– For advanced programmers
– Wide variety of tools
• Languages
– Basic
• Easy to learn and use, but suitable for small projects
– Pascal
• Designed to be a first language for serious programmers, and
easy to learn and is structured to encourage good programming
habits
– C, C++
• Most commonly used among serious programmers.
• Allows easy conversion between separate computers
• OO languages make really large projects easier to program
Goals (Axelrod)
• Validity
• Would like to correctly implement the
model
• Is the model itself an accurate
representation of the “real world”?
• Problem: If there are unexpected
results, is there necessarily a
mistake?
Goals (Axelrod)
• Usability
– Allow yourself and other users who follow
to run the program, interpret its output,
and understand how it works
• Careful with different versions of the
model
• Extendability
– Allow future users (including yourself) to
adapt the program for new uses
• New questions arise from models such
as these
Project Management (Axelrod)
•How can I achieve these goals?
•Use long names for almost all variables
•List all the variables at the start of the program
•Write helpful comments
•Fully label output
•Develop upwardly compatible programs
•Document versions of each code
•Use commercial programs for most data analysis
•Check microdynamics
•Communication with other users
Issues with ABM
• Validity
– Every model serves its own unique purpose
– Must be built at the right level of description
with the appropriate amount of complexity
• Human agents
• Complex Psychology
– Irrational Behavior
– Subjective Choices
Issues with ABM
• Qualitative vs. Quantitative
– Varying degree of accuracy and completeness
in input (data, expertise, etc)
• Use qualitative data to learn about the system
• Capturing the behavior of all constituent
units
– Lower level description can extremely
computationally intense, and time consuming
• Heterogeneous units
Future of ABM
• New Software for Modeling
• Research in BDI Architecture
References
Shoham, Yoav, BDI agents: From Theory to Practice, 1993
Bonabeau, Eric, Agent-based modeling: Methods and techniques for simulating human
behavior, 2002
Roetzheim, William H., Enter the Complexity Lab, Where Chaos Meets Complexity,
1994
Reynolds, Craig W., Flocks, herds and schools: A distributed behavioral model, 1987
Helbing, Dirk; Farkas, Illes; Vicsek, Tamas, Simulating Dynamical Features of Escape
Panic, 2000
Axelrod, Robert, The Complexity of Cooperation, 1998
Descargar

Truly Optimized Design