Skip to content

Minimizing the evacuation time of a crowd from a complex building using rescue guides – code

License

Notifications You must be signed in to change notification settings

crowddynamics/optimal-guided-evacuation

Repository files navigation

optimal-guided-evacuation

DOI

Research code and data (for data click on DOI identifier) used in von Schantz & Ehtamo. Minimizing the evacuation time of a crowd from a complex building using rescue guides. arXiv:2007.00509 [physics.soc-ph]. 2020. (submitted manuscript).

The paper presents a procedure for solving the minimum time evacuation from a complex building using rescue guides, and this repository is its implementation. The crowd is modeled with the physics-inspired agent-based social force model. The solution procedure is a combined numerical simulation and genetic algorithm (GA). The GA iteratively searches for the optimal evacuation plan, while the evacuation plan is evaluated with numerical simulations.

The repository includes codes for the GA, simulation and a graphical user interface (GUI). The folders in the repository:

  • crowddynamics-simulation contains files for running the GUI
  • crowddynamics-qtgui contains the files that build the GUI
  • crowddynamics contains all files for simulating the movement of a crowd
  • genetic algorithm includes files to run the genetic algorithm
  • simulation files includes files specific for the simulating the conference building and hexagon-shaped area

The numerical evacuation simulations are implemented in Python and the GA is implemented as Bash scripts that were run on a high performance computing cluster. It should be noted that the procedure is currently computationally very demanding.

See the "readme.txt" file in each folder for a more detailed overview of the codes in each folder. The numerical evacuation simulation and its GUI is based on research assistant Jaan Tollander's codes https://github.com/jaantollander/crowddynamics and https://github.com/jaantollander/crowddynamics-qtgui, which he created when he was working in our research group in Aalto University School of Science, Department of Mathematics and Systems Analysis summers 2016 and 2017.

Using Linux is recommended. The code works at least on Ubuntu 16.04. Do the following steps to install the repository:

  • Install anaconda (https://docs.anaconda.com/anaconda/install/linux)
  • Set environment variables export PATH=/.../anaconda3/bin:$PATH" and export PYTHONPATH=/.../anaconda3/bin:$PYTHONPATH"
  • Clone the repository
  • On terminal run conda config --add channels conda-forge
  • Create a conda environment from the file crowddynamics/environment.yml
  • On terminal run source activate optimal-guided-evacuation
  • On terminal, in folder crowddynamics, run pip install --editable .
  • Change to folder crowddynamics-qtgui and run pip install -r requirements.txt
  • Run conda install pyqt=4
  • Run conda install pyqtgraph==0.10.0
  • Run conda install scikit-fmm==0.0.9
  • Run pip install anytree==2.1.4
  • Run pip install --editable .

You might occur problems in installing some of the python packages. You can install these packages manually using conda install or pip install.

About

Minimizing the evacuation time of a crowd from a complex building using rescue guides – code

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages