ParSSAP - Parallel Simulator of Situated Agent Populations
- Introduction to ParSSAP and its application to car traffic
simulation: Simulation parallele des systemes multi-agent et son application au trafic routier. Slides in ppt format (with animations) and in pdf format. Graphical demonstration of some traffic patterns. Oral dissertation at PRiSM laboratory, Versailles, 22 April 2003. In French.
- See also the slides from SNPD02
conference (written by Stephane Vialle) for a quick and easy
overview of ParSSAP.
Introduction to multi-agent systems
Multi-agent systems (MAS) are a particular domain of artificial
intelligence. We can consider an agent as being an entity situated in
environment, which is capable to have autonomous actions to fulfil its
goals. It interacts with the environment through its percepts and its
actions. A situated agent is an agent which obeys the
of the physical world, such as being in one place at a time and
impossibility to have two agents in the same place. One of the goals of
multi-agent modelling is emergence, i.e. find useful social behaviours
with simple individual behaviours. We may consider multi-agent systems
as a kind of artificial life.
Examples: a group of birds, the car traffic, the cells of a body.
Main features of ParSSAP
ParSSAP is a library which allows the implementation of some situated
MAS. The main features of the actual implementation are:
All the information about ParSSAP (complete features, user's guide,
performance, implementation overview, examples of applications): my PhD thesis and related publications.
- The simulation is based on cycles.
- Two-dimensional environment (rectangle), bounded or torus.
- Agents can move into one of the 4 or 8 squares near them. They
can have different speeds, different behaviours etc. They can be
created during the initialisation of the sytem; they can be created and
destroyed also during the simulation. They have two built-in percepts:
one similar to the vision, seeing the environment near them, and
one similar to the odour (see next point).
- You can create resources, which are entities guiding agents. They
do so by propagating a potential field which can be used by agents to
find them. They can be of different types, can have different loads etc.
- Saving of miscellaneous information about the simulation: all the
system, the movement of agents, miscellaneous statistics etc.
- The system treats and solves itself the conflict cases, i.e. when
several agents try to move in the same square.
You can use ParSSAP on Unix systems. Only GNU/Linux and Irix versions
have been tested, but I strongly feel that it is not difficult to port
it to Windows too. Requirements:
The library is parallel. The only user function dealing with
parallelism is the one which lets you specify the number of threads to
use. You can simulate worlds of millions of squares and tens of
thousands of agents. Because the library is intended to speed-up the
implementation of multi-agent systems, its primary concern is to be easy to use, and optimised for parallel computers.
- A C compiler
- The nana
library (only for debugging)
- In case you want parallelism, POSIX threads library or SGI/Irix
multi-threading library. A POSIX threads library is automatically
included in GNU/Linux systems.
All these programs are provided under the GPL license.
- ParSSAP library (version of 12 March
- Visualiser tool (version of 12 March
2003), allows you to see graphically the results of a simulation, such
as agent movement
This work has mainly been done during the PhD thesis I have done at
Supelec, campus of Metz.
My thesis director was Claude
Timsit, researcher and professor in parallelism.
My thesis advisor at Supelec was Stephane Vialle,
researcher and professor in parallelism.
An analogous application, with integrated user interface but much
fewer features: gLife