• Keine Ergebnisse gefunden

Agent-Based Modeling Frameworks

Im Dokument Agent-Based Modeling (Seite 62-66)

Over the years, various platforms have been released for agent-based model (ABM) building, each using different programming languages with their own characteristics. Xavier [206] and Railsback [153] provide a detailed comparison between platforms by implementing similar models on them. A comparison of frameworks is shown in Table 2.1.

TABLE 2.1: Comparison of agent-based modeling frameworks.

SWARM JADE MASON RePast FLAME

Software

GUI Yes Yes Yes Yes

Needs in-tegration with other tools

Visualization 3D 3D 3D 2D 2D, 3D

Models

Each of these platform provide modelers with various features. A detailed analysis of frameworks is as follows,

SWARM. This toolkit allows researchers to build agents easily. Built on object-oriented principles, SWARM uses Objective C++ programming language to develop agents as objects with variables and methods. The development involves using inheritance concepts, with new agent classes

inheriting from the environment and having their own functions as well.

This allows agents to easily communicate with the environment as they inherit variables from the environment.

T h e i n t e r f a c e P r o b e s t o c o n t r o l t h e m o d e l

T h e m o d e l

A g e n t s

S w a r m

S u b - S w a r m E v e r y l e v e l h a s i t s o w n c l o c k

w h i c h i s s y n c h r o n i s e d

FIGURE 2.9: Nested hierarchy of swarms.

SWARM also supports Java, allowing dynamic functionality by run-time binding with Objective C++, allowing it to run models on parallel machines. Figure 2.9 depicts how SWARM allows nested swarm hier-archies to be developed, with each level to be scheduled with its own scheduler. Agents can be designed to represent other sub-swarms that contain their own set of agents and functions for different timescales.

SWARM provides a user-friendly Graphical User Interface (GUI) that allows individual agents to be selected, new attributes to be added and methods to be changed during runtime.

FLAME. Coakley [42, 40] introduced FLAME (Flexible Large-scale Agent-Based Modeling Environment) as an agent-based framework to allow simulations to run on parallel grid architectures.

Formal X-machines were introduced as agent architectures, which al-lowed mathematical verification of internal agent states by using transi-tion functransi-tions. Communicating X-machines were used to communicate using messages as interaction rules as part of agent functions.

FLAME allows deployment of simulations on parallel computers that al-low simulations of millions of agents to run in finite time using Message Passing Interface (MPI) libraries for communication messages. MPI is a programming technique used in parallel programming that allows mes-sages from different agents to communicate easily across different proces-sors and platforms. MPI details can be found at www.mcs.anl.gov/mpi/.

MPI allows the model to be independent of hardware platforms involved in the implementation, allowing messages to be packed into certain binders to be sent across nodes easily and independently. A message board is set up from which all agents can read information and perform tasks. To ensure that all functions are in order, there are synchronization points inserted in the model where all data are regulated before moving into the next block of functions.

The synchronization points ensure all memory is synchronized among agents before the agents move into the next block of functions. It is important to synchronize the distributed data so that all agents are aware of information update.

SOAR. Developed in 1983, SOAR is continually being used as an architec-ture for developing intelligent systems. SOAR has been developed on

“the hypothesis that all deliberate goal-oriented behavior can be cast as the selection and application of operators to a state” [111]. A state is a representation of the problem-solving situation and goal as desired outcome of the problem.

Based on [112] and [140], intelligence can be functionally described as goals and realizable fundamentals. Newell described that all problems can be broken down into smaller units and solutions of smaller units can be unified for the larger perspective. SOAR allows features like long-term memory, using different memories for different situations and using state hierarchy, where states represent a memory situation. SOAR [84] is being used for military training purposes by the U.S. army, where some work depicts how emotions affect soldier decisions during warfare with emotional agents, making them less predictable to study real situations.

SimAgent. SimAgent toolkit produced at the University of Birmingham was developed as part of the Cognition and Affect project. The project is specifically targeted to design human-like agents and study effects of learning, feeling and emotions. The authors [182] argued that the frame-work was developed to explore the ‘architectural design requirements for intelligent human-like agents’.

“We need a facility for rapidly implementing and testing out different agent architectures, including scenarios where each agent is composed of several different sorts of concurrent interacting sub-systems, in an envi-ronment where there are other agents and objects. Some agents should have sensors and effectors, and some should be allowed to communicate with others. Some agents should have hybrid architectures including, for example, symbolic mechanisms communicating with neural nets. We also wanted to be able to use the toolkit for exploring evolutionary processes, as in the ‘Blind and Lazy’ scenario.”

SimAgent has been coded using Pop-11 and Poplog. The programming paradigms [182] use object-oriented programming based on ObjectClass extension to Pop-11. Rule-based programming and pattern matching are also based on Pop-11 with a Pop rule base library. The framework is event-driven, where the toolkit allows events for instance, if the mouse is used to move an obstacle across the scenario, the agent would dynam-ically calculate their positions and change their walk direction.

Poplog supports Prolog to allow rules and behavior code for logic pro-gramming. This allows neural networks to be coded separately and tested [182]. SimAgent also uses an RCLib package for various tests, using neural networks to implement how feelings are handled. Figure 2.4 gives a depiction of how an agent with thinking capabilities is visu-alized.

Netlogo. Netlogo is a multi-agent programmable modeling environment and is one of the most famous platforms. It allows modelers to give instruc-tions to hundreds or thousands of ‘agents’ operating independently. This feature makes it possible to explore the connection between the micro-level behavior of individuals and the macro-micro-level patterns that emerge from interactions of many individuals. One of the platform’s most effi-cient feature is its graphical user interface, which provides users with a wide variety of options that can be used to manage models. The GUI is user friendly and very easy to navigate.

Repast. Recursive Porus Agent Simulation Toolkit [7] developed in Java and exploits all of its functionalities. Supported as an open source project, new versions of Repast Symphony can handle high performance com-puting (HPC) grids and have easy-to-use interfaces for building and modeling agents. The platform can be used to create, run, display and collect data from agent-based simulations and is fully object oriented.

Repast is a toolkit with a wide variety of tools and structures. Similar to Netlogo, it also provides an efficient graphical user interface that users can use to manage models, manipulate parameters, set output data and show agent interactions in detail.

JADE. Java Agent DEvelopment framework (JADE) is an agent platform, developed completely in Java and uses Remote Method Invocation (RMI) registry for concurrent connection between machines. Every agent can be defined as a thread, which can simulate as a hierarchy of be-haviors. All agents inherit from a class of super agents for common attributes.

JADE is based on standards such as FIPA (Foundation for Intelligent Physical Agents) protocols, used as standard communications languages for agent and environment communication.

MASON. MASON is a multi-agent simulation toolkit that allows discrete events to be simulated. Written in Java, it includes a 2D and 3D library for visualization. MASON has been used to develop ECJ, as a Java-based Evolutionary Computation Research System [123]. ECJ is claimed to be highly flexible with classes dynamically compiled at runtime by a user-provided parameter file.

TAEMS. TAEMS (Task Analysis, Environmental Modeling and Simulation) is described as a ‘formal, domain-independent framework’ which at-tempts to solve problems for intelligent agents in different scenarios.

The language produces a hierarchical structure of tasks the agent has to perform and assesses them according to goals and deadlines. This hierarchical structure can be viewed as a distributed goal tree, in which branches are joined by AND or OR operations, to produce combinations in scenarios with limited resources and decision-making.

Im Dokument Agent-Based Modeling (Seite 62-66)