-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Welcome to the CrowdEgress wiki!
This manual introduces a simulation tool to study complex crowd behavior in social context. The agent-based model is extended based on the well-known social force model, and it mainly describes how agents interact with each other, and also with surrounding facilities such as walls, doors and exits. The simulation platform is compatible to FDS+Evac, and the input data in FDS+Evac could be imported into our simulation platform to create single-floor compartment geometry, and a flow solver is used to generate the road map towards exits. Most importantly, we plan to integrate advanced social and psychological theory into our simulation platform, especially investigating human behavior in emergency evacuation, such as pre-evacuation behavior, exit-selection activities, social group and herding effect and so forth.
Introduction:
The agent-based model (ABM) is a computational research method to study social systems [3-10]. The agent-based model refers to a system of many-particle that exhibits emergent characteristics when autonomous agents interact with each other. Basically, the ABM consists of agent, system space, and external environment. The agent is autonomous and decides his/her behavior by interacting with the neighbors or the external environment with the rules of behavior. In our simulation platform, for example, the system space is a 2D planar space, and the environment is given as a structural layout that consists of obstructions (e.g., walls) and passageways (e.g., doors or exits), and agents are interacting and moving within this structural layout.
The simulation is mainly implemented by a component as packed in a class called simulation class (simulation.py), and it computes interaction of agents with surrounding entities including walls, doors and exits. The agent model is described in agent.py, whereas walls, doors and exits are coded in obst.py. The agent-based model is an extension of the well-known social force model\cite{Helbing00,Helbing02,Helbing95}. The model aims at investigating protypes of pedestrian behavior in crowd evacuation. The core algorithm is still being developed and improved. This is an inter-discipline study topic, which refers to Newton particles,statistical physics, dynamic systems as well as social and behavioral science. Your contributions or comments are much welcome.
The program also consists of several functional components such as User Interface and Data/Visualization Tool.
User Interface: The user interface is written in tkinter in ui.py (Version 2.0) or startPage.py (Version 1.0). Users may call function startPage() from simulation routine to set up the input files. An alternative method is using ui.py to enable a graphic user interface (GUI) and start a simulation there. Currently there is a simple version of GUI and it needs to be improved in several aspects.
Simulation Core: The multi-agent simulation is implemented as simulationXX.py. The component is packed in a class called simulation class, and it computes interaction of four types of entities: agents, walls, doors and exits. The agent model is described in agent.py, while walls, doors and exits are coded in obst.py. The core algorithm is still being studied and developed. This is an interesting study topic, which refers to Netwon physics, complex systems and computer science. Your comments or contribution are much welcome.
Data Module: This module reads in data from input files, and writes data to output files. The input data is written by users in .csv files. Agents and exits must be specified in .csv file while walls and doors can be either in .csv file or read in from standard .fds input file to create major compartment geometry. In the future we plan to use a subroutine in FDS+Evac to output the agent movement data so that the agent movement can also be visualized by smokeview.
Visualization Module: The visulization module is packed in draw_func.py and currently pygame is used to visualize the simulation result. We may develop another offline visualization tool together with smokeview such that users first run the simulation and get the output data, and then visualize the output data. Currently the visualization functions are packed up as an independent module in draw_func.py. If any user is interested, please feel free to extend the module or try other graphic library to wrtie a visulization component.