Replication package for post-earthquake emergency healthcare network design in Tehran: instances, code and results

Published: 18 September 2026| Version 1 | DOI: 10.17632/94snrdbr6y.1
Contributors:
Sogol Mousavi,
,
,

Description

This package reproduces every result reported in the accompanying article on hierarchical emergency healthcare network design for post-earthquake response in Tehran. It contains the problem instances, the full Python implementation of all three modelling stages, the output of every experiment, and the scripts that generate the figures. Contents data/ - two instances. A city-scale instance covering the Tehran municipality (3,170 urban areas, 4,427 candidate temporary medical centre sites, 447 clinics, 179 hospitals) and a district-scale instance for District 6 (30 urban areas, 15 candidate sites, 6 clinics, 3 hospitals) on which the exact model is tractable. src/ and experiments/ - the implementation and the fifteen experiment drivers: a bi-objective mixed-integer location-allocation model (Pyomo, solved with HiGHS), a discrete-event simulation of the three-tier network coupled to a capacity search (SimPy), and four multi-objective metaheuristics including the heuristic-empowered grey wolf optimiser proposed in the article (NumPy). results/ - the report and data file behind every table and figure, including the forty-seed benchmark, the statistical tests, the Taguchi tuning and its confirmation runs, and the sensitivity analyses. Superseded results withdrawn during the work are retained under a superseded_ prefix and are not reported. figures/ - the scripts that regenerate the article's figures from results/. docs/ - the validation record against the authors' previously published results, a notebook documenting the porting and the defects found and corrected, and instructions for running the experiments. arena_source/ - the original simulation artefacts, retained because experiment 01 validates the Python engine against them. Running the code See RUN_ME_FIRST.md and docs/running.md. Requirements are listed in requirements.txt. District-scale experiments run in minutes; the city-scale benchmark takes roughly 30 hours per algorithm at the reported budget of 200,200 objective evaluations. Verification verify_overlay.sh and verify_overlay_2.sh check that the package is complete and internally consistent; both pass on a clean extraction of this archive.

Files

Steps to reproduce

Requires Python 3.11 or later on macOS or Linux. Everything is CPU-only; no solver licence, GPU or internet connection is needed. 1. Set up, from inside the unzipped folder: python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt chmod +x *.sh 2. Check the package is complete and internally consistent: ./verify_overlay.sh ./verify_overlay_2.sh Both print a list of OK lines and end with "All checks passed". 3. Quick check that the code runs and the instances load (under a minute): python3 experiments/01_validate_against_arena.py --reps 3 4. District-scale results, which run in minutes to a few hours: python3 experiments/05_milp_location_allocation.py # exact model, 12 epsilon points python3 experiments/08_coupled_capacity.py # coupled capacity search python3 experiments/13_weight_sensitivity.py # weight and referral sweeps python3 experiments/14_replication_analysis.py # replication variability 5. City-scale results. These are long; run them in the order below, because each depends on the previous one. Timings are for an 8-core laptop with six parallel workers. ./run_tuning.sh # Taguchi arrays, four algorithms ./run_confirm.sh # confirmation over 20 paired seeds (~5 h) # then edit adopted_settings.json, keeping only # the selections that beat their baseline ./run_final_benchmark.sh # 40-seed benchmark and statistical tests ./run_reviewer_analyses.sh # scenario and design analyses 6. Regenerate the figures from the results files: python3 figures/make_figures.py python3 figures/make_spatial_figure.py Every experiment writes its report and data files into results/, overwriting the copies distributed here. RUN_ME_FIRST.md and docs/running.md give the full procedure, including how to resume an interrupted run and how to prevent a laptop from sleeping mid-run.

Institutions

Categories

Emergency Medicine, Operations Research, Discrete Event Simulation, Multi-Objective Optimization, Disaster Management, Facility Location

Licence