Submitted:
08 March 2024
Posted:
11 March 2024
You are already at the latest version
Abstract
Keywords:
MSC: 90C29
1. Introduction
- Search and rescue: This activity involves identifying and removing victims from a dangerous situation.
- Triage and initial stabilization: This is the process of classifying victims according to the severity of their injuries and the primary medical care they require.
- Patient monitoring: refers to continuously monitoring a patient’s health status from identification to evacuation.
- Definitive medical care: it is the component in which specialized care is provided to the patient according to his needs until his recovery is complete.
- Evacuation: refers to the transfer of the patient from the disaster area to the area of definitive medical care.
- They are close to the centers of attention to which ambulances will be directed.
- The number of activated zones does not create an unnecessary logistical problem.
- They have easy access to the roads and do not represent an obstacle for vehicle traffic.
- Define a methodology to find candidate areas to reduce the search space, given the number of road segments that can be considered as staging areas.
- Find the best staging areas to activate from the set of candidate zones, taking into account the travel time to the attention centers and the number of activated zones.
- For each enabled staging area, assign the focus of attention to cover, considering proximity and capacity.
2. Materials and Methods
2.1. Problem Model
- is the i-th ambulance time base (decision variable).
- is the i-th demand point.
- I is the set of candidate bases.
- J is the set of demand points.
- U is the set of urgencies of the demand points.
- is the coverage from to (decision variable).
- C is the cost matrix of .
- is the cost to go from to .
- is the capacity of .
- is the demand for .
- is the urgency of .
- is the maximum cost that a route can have.
- Classic: A is randomly chosen and assigned to the nearest .
- Urgency-based: is calculated and processed in descending order of .
- Based on demand and urgency: It is ordered based on and later on .
2.2. Historical Data
-
Selection by characteristics: Roads with any of the following characteristics are discarded:
- It is a highway, incorporation, residential street, or it has no classification.
- They have less than 3 lanes.
- It is represented with a bidirectional edge and has less than 4 lanes.
- The number of lanes is unknown and has a lower hierarchy than the type of secondary road.
- Selection by capacity: Roads are discarded, where it is not possible to assign a minimum of ambulances. On average, the length of an ambulance is considered equal to 6 meters and with . Furthermore, isolated vertices are eliminated and the filtered graph is updated with the capacity factor.
- Elimination of redundancy: Henceforth, roads are represented by their terminal vertex, i.e. the vertex v of the road , because this is the point from which an ambulance will start, and at intersections two or more roads can have a common terminal node. To avoid redundancy, roads that share a terminal node v are grouped, but their individual characteristics are preserved. As a result, a subset of vertices is obtained, which stores the attributes of the edges , and contains two new attributes: the length and the total capacity, which are the sum of the lengths and capacities of the grouped edges, respectively.
- Proximity grouping: The vertices of the set that are “close” are grouped according to a proximity parameter . This proximity factor is measured by the path from point to point using a path in . Using a clustering algorithm, information from multiple vertices is added to a representative vertex v.
2.3. Incident Data
- Only residential buildings with information on the number of levels are considered.
- If a building does not have the number of levels but the height, then half of the height in meters is used as the number of levels.
- For blocks that do not have the average number of occupants, the average of the surrounding blocks is used.
- n points are sampled using the kernel with :
- Search for the nearest building in the land records layer using Euclidean distance.
- The block in which each building is located is identified by calculating the Euclidean distance between the building and the centroids of the blocks.
- The average number of occupants per apartment in the block is taken and rounded to the closest integer using the ceiling function.
- If the building has three floors or less, it is considered a single-family unit, so the number of victims of the block is equal to .
- If the building has more than three levels, it is considered a multifamily building, and the average number of residents in the block is multiplied by the number of levels .
- Candidate locations as temporary bases I, . Since bases are a subset , they are identified by the id of the vertex in , i.e., the node attribute is used as an index.
- The transport graph .
- The location of hospitals with more than 10 beds.
- The points where the victims are located are identified by an denoted num.
- Traffic data associated with the incident.
- The traffic information is included in the traffic graph as an attribute traffic of the edges. If historical traffic data is used, all available data collected on the same day of the week with the nearest time to the event is obtained.
- A version of the graph is obtained in which there are no vertices that cannot be reached from a candidate base. Since the download of excludes unclassified roads, some points cannot be traveled from a temporary base. This does not mean that they cannot be accessed, but only that they will not be considered as a destination point, and the nearest available edge or vertex will be considered instead. To determine which points must be discarded, the Voronoi diagram of is calculated using the candidate bases as control points. The vertices that are not grouped in any cell are eliminated from G, resulting in a graph .
- The nearest edge to each demand point and to each hospital in the graph is identified. These edges are stored with their identifier in independent lists that will be used later.
- The edges of that are not traversable are identified, either because they have a value of 5 or 6 in the traffic classification, or if it is the nearest edge to and is found in the list of edges from the previous step. All edges of are assigned a state attribute locked and marked true for those identified in this step.
-
The edge costs of are calculated as the weight attribute as follows:
-
If the value of the block attribute is false, the value corresponding to the mapping traffic→weight is assigned as the value of the weight attribute:
- -
1
- -
2 .- -
3 .- -
4
Where l is the length of the edge and the coefficient is the inverse of the speed, expressed as distance. - On the other hand, if the lock attribute is true, the maximum weight is .
-
-
Candidate bases that satisfy any of the following conditions will be identified:
- It has no successors in the graph (this can occur at the boundaries of the zone).
- Some of the grouped edges are found in one of the lists in step 3, i.e., there is a demand point or a hospital in one of the streets it represents.
- They have a traffic value greater than 2.
These bases are discarded for use in the optimization problem, so they are not included in the calculation of the cost matrix. - The graph is updated with the new edge attributes.
2.4. Algorithm Selection
- Remove duplicates: A Boolean parameter that indicates whether or not solutions that are the same in the current population should be removed. There is no guarantee that there will be no repetition of solutions from previous generations that have been removed. In this paper, this value is set to true (True).
-
Stop criteria: It is an object that contains the criteria that determine when the algorithm stops, which remain fixed for all configurations with the values:
- xtol: Tolerance in the decision space.
- ftol: Tolerance in the target space.
- period: Criteria evaluation period.
- n_skip: Ignore generations for criteria evaluation.
- n_max_gen: Maximum number of generations.
- n_max_evals: Maximum number of evaluations of items.
Tolerance values are used to compare the Pareto fronts of the current generation and a generation from a previous period , each n_skip generations. This comparison depends on the space in which it is done. That is,- In the decision space (xtol), two Pareto fronts and are compared using the equation:where y
- In the target space (ftol), the inverse generation distance is calculated between the normalized fronts to be compared, that is: .
-
Repair function: Depending on the assignment method, the different solution vectors b can change and be reduced to the same solution vector, because activated bases that do not correspond to any demand point are discarded. There are two ways to repair:
- Normal repair: The assignment process is performed and the modified solution vector b that satisfies the required constraints is returned for the algorithm to perform duplicate removal in the current population.
- Repair with mutation: The assignment process is performed and the modified solution vector b is checked; If this vector has already been obtained after the assignment process, regardless of the number of generations, the solution vector is mutated and the assignment process is performed iteratively until a valid modified vector that has not been evaluated before is obtained, that is, an unexplored solution.
Since the assignment process is performed during repair and then before evaluation (for new solutions), it is important that the assignment is the same at both times, i.e., the same b always produces the same a. In the case of the urgency and on-demand methods, this is not a problem, since they are deterministic methods; but in the case of the classical method, the first assignment must be recorded for posterity, since it has a stochastic component. For this purpose, a dictionary is used for storing the pairs (b,a), where b is encoded with the hash method sha256.
- un: Cross uniform.
- hun: Cross half uniform.
- bf: Bit flip mutation (bitflip).
- bfo: Active Bit Flip Mutation (bitflip on).
- cl: Classic allocation method.
- ur: Urgency allocation method.
- urc: Allocation method by demand and urgencies.
- rn: Normal repair.
- rm: Repair with mutation.
- Run the algorithm with the best performance multiple times using different random seeds, until the maximum time is reached.
- Run the algorithm with the different elite configurations obtained as many times as possible without exceeding the maximum time.
2.5. Optimization Process
2.6. Solution Visualization
- The location of the attention centers, showing the number of resources required.
- The location of the activated bases, displaying the number of ambulances.
- The routes from each enabled base to each assigned focus of attention. They are identified by using a different color for each base and their cost.
- Boundaries of townships.
- The attention regions defined in the earthquake emergency plan serve as a reference to assign a person directly responsible for the administration of each base, depending on where they are located.
- The location of the hospitals and, if available, the number of beds available.
- The location of collection centers and refuges.
2.7. Implementation Plan
- Voronoi diagram with activated bases: The Voronoi diagram of the graph can be obtained using activated bases as control points. In the case of the external Voronoi diagram, the routes for each vertex of the graph are obtained as the destination and the closest activated base as the origin, which can be useful for addressing other incidents that occurred after the current solution was chosen. In the case of the internal Voronoi diagram, the route can be obtained from any vertex of the graph to its closest activated base, allowing one to identify the shortest route that ambulances can take to the assigned base from any point they encounter.
- Voronoi Diagram with Hospitals: By obtaining the internal Voronoi diagram of using the vertices closest to each hospital as control points, we obtain the shortest path from any other vertex in to the nearest hospital. This can be useful in determining which hospital to take patients depending on the location of the victims, whether it is an isolated victim being transported in a private vehicle or a victim from a care center being transported in an ambulance.
-
Attention Flow: Once the available ambulances have been assigned to the activated bases as preparation points, a person in charge of each is designated and the commander in charge of the attention centers is notified that they will be served by that base. The sequence they must follow to distribute the workload is as follows:
- -
- At least one ambulance must remain in the waiting area near the attention center.
- -
- Once a victim is confirmed, he is assigned to the ambulance in the staging area and the appropriate staging area is notified to dispatch another unit.
- -
- The victim is transported to the nearest hospital and the ambulance returns to the same staging area from which it originated, taking the last spot in line. On the way back to the staging area, you can choose to load fuel.
- -
- If one of the bases runs out of ambulances and still has demand, ambulances from other bases with lower demand can be arbitrarily reassigned, omitting the formula for estimating demand and adapting the solution to the new emergency conditions.
- Changes in the Emergency Situation: Although a static model is considered at the time the optimization algorithm is performed, some actions are required to adjust the solution to the new conditions. First, when a significant number of headlights are introduced, the algorithm is repeated, reassigning the ambulances from the old solution to the closest bases from the new solution. If the changes are primarily traffic-related, and there is an Internet connection, it is possible to perform the traffic query to generate the new weights of the edges with these data, and then compute the routes from the bases to the ambulances. However, since the bases are already activated, instead of performing the entire optimization process from scratch, it is sufficient to obtain the external Voronoi diagram with the bases as control points to find the new paths. In this case, the Voronoi algorithm would update the assignment vector a based on the previous solution vector b, but it cannot ensure that the constraints defined in the model are satisfied.
3. Results
3.1. Data Generated: Candidate Locations

3.2. Data Generated: Points of Attention
3.3. Data Obtained: City Traffic
- Zoom level: 16.
- Total number of tiles (to cover the bounding box): .
- Tiles occupied (intersecting the polygon of the CDMX): .
- Meters per tile: .
- Meters per pixel: .
3.4. Parameter adjustment
- Number of iterations: 10.
- Performed experiments: 4,982.
- Remaining budget: 18.
- Number of elites: 5.
- Number of settings used: 679.
- Total user time on CPU: 880930.4, (10.19 days).
3.5. Solution Visualization
4. Conclusions and Future Work
Author Contributions
Funding
Acknowledgments
Conflicts of Interest
References
- The International Federation of Red Cross and Red Crescent Societies. What is a disaster? Available online: https://www.ifrc.org/what-disaster (accessed on 4 November 2022).
- World Health Organization. Emergency cycle. Available online: https://www.who.int/europe/emergencies/emergency-cycle (accessed on 4 November 2022).
- American college of surgeons committee on trauma and Campos, Víctor and Roig, Félix Garcia. PHTLS Soporte Vital de Trauma Preshospitalario; Jones & Bartlett Learning, 2020.
- International Resources Group and "Oficina de los Estados Unidos de Asistencia para Desastres en el Extranjero para Latino América y el Caribe". Curso Básico Sistema de Comando de Incidentes; 2021.
- Halper, R.; Raghavan, S.; Sahin, M. Local search heuristics for the mobile facility location problem. Computers & Operations Research 2015, 62, 210–223. [CrossRef]
- Saeidian, B.; Mesgari, M.S.; Ghodousi, M. Evaluation and comparison of Genetic Algorithm and Bees Algorithm for location–allocation of earthquake relief centers. International Journal of Disaster Risk Reduction 2016, 15, 94–107. [CrossRef]
- Wang, J.; Wang, Y.; Yu, M. A multi-period ambulance location and allocation problem in the disaster. Journal of Combinatorial Optimization 2020, 43, 909–932. [CrossRef]
- Kaveh, M.; Mesgari, M.S. Improved biogeography-based optimization using migration process adjustment: An approach for location-allocation of ambulances. Computers & Industrial Engineering 2019, 135, 800–813. [CrossRef]
- Daskin, M.S.; Maass, K.L., The p-Median Problem. In Location Science; Springer International Publishing: "Cham, 2015; pp. 21–45. [CrossRef]
- Ghoseiri, K.; Ghannadpour, S.F. Solving capacitated p-median problem using genetic algorithm. 2007 IEEE International Conference on Industrial Engineering and Engineering Management. IEEE, 2007. [CrossRef]
- Medina-Perez, M.; Legaria-Santiago, V.K.; Guzmán, G.; Saldana-Perez, M. Search Space Reduction in Road Networks for the Ambulance Location and Allocation Optimization Problems: A Real Case Study. Telematics and Computing; Mata-Rivera, M.F.; Zagal-Flores, R.; Barria-Huidobro, C., Eds.; Springer Nature Switzerland: Cham, 2023; pp. 157–175.
- Secretaria de Gestión Integral de Riesgos y Protección Civil de la Ciudad de México and Urzúa, Myriam. Protocolo del Plan de Emergencia Sísmica; Gaceta oficial de la Ciudad de México, 2021.
- TomTom Developers. Zoom Levels and Tile Grid, 2023. Available online: https://developer.tomtom.com/map-display-api/documentation/zoom-levels-and-tile-grid (accessed on 9 September 2023).
- pymoo: Multi-objective Optimization in Python. Available online: https://www.pymoo.org (accessed on 02 September 2023).
- López-Ibáñez, M.; Dubois-Lacoste, J.; Pérez Cáceres, L.; Birattari, M.; Stützle, T. The irace Package: User Guide, 2022. Available online: https://cran.r-project.org/web/packages/irace/vignettes/irace-package.pdf (accessed on 21 October 2023).
- Fitch, J. Response times: myths, measurement & management. JEMS: a journal of emergency medical services 2005, 30, 46 – 56. [CrossRef]
- Zaffar, M.A.; Rajagopalan, H.K.; Saydam, C.; Mayorga, M.; Sharer, E. Coverage, survivability or response time: A comparative study of performance statistics used in ambulance location models via simulation–optimization. Operations Research for Health Care 2016, 11, 1–12. [CrossRef]
- Wu, C.; Hwang, K.P. Using a Discrete-event Simulation to Balance Ambulance Availability and Demand in Static Deployment Systems. Academic Emergency Medicine 2009, 16, 1359–1366. [CrossRef]
- de Souza, M.; Ritt, M.; López-Ibáñez, M.; Cáceres, L.P. ACVIZ: A Tool for the Visual Analysis of the Configuration of Algorithms with irace. Operations Research Perspectives 2021, 8, 100–186. [CrossRef]









| Parameter | Name | Key | Type | Values |
|---|---|---|---|---|
| Crossover operator | crossover | –cr | c | (un, hun) |
| Mutation operator | mutation | –mu | c | (bf, bfo) |
| Allocation method | allocation | –a | c | (cl, ur, urc) |
| Repair method | repair | –rep | c | (rn, rm) |
| Population size | population | –pop | c* | (20, 50, 100, 200) |
| Percentage of offspring | offsprings | –dec | c* | (25, 50, 75) |
| Crossing percentage | prob_crossover | –prob_cr | c* | (0.5, 0.75, 0.9, 0.99) |
| Mutation percentage | prob_mutation | –prob_mu | c* | (0.5, 0.25, 0.1, 0.01) |
| Start probability | prob_initial | –prob_ini | c* | (0.25, 0.1, 0.01) |
| Step | Result | Size |
|---|---|---|
| Transport network | ||
| Selection by characteristics | ||
| Selection by capacity | ||
| Elimination of redundancy | ||
| Proximity grouping | V |
| Daytime | 20 km/h | 30 km/h | 40 km/h | 50 km/h | 60 km/h | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| % | p95 | % | p95 | % | p95 | % | p95 | % | p95 | ||
| 7:00 am | 47 | 0.96 | 8.15 | 0.99 | 5.44 | 0.99 | 4.08 | 1.0 | 3.26 | 1.0 | 2.72 |
| 8:00 am | 69 | 0.96 | 8.25 | 0.99 | 5.5 | 0.99 | 4.13 | 1.0 | 3.3 | 1.0 | 2.75 |
| 9:00 am | 66 | 0.96 | 8.17 | 0.99 | 5.45 | 1.0 | 4.09 | 1.0 | 3.27 | 1.0 | 2.72 |
| 11:00 am | 52 | 0.96 | 8.09 | 0.99 | 5.39 | 1.0 | 4.04 | 1.0 | 3.24 | 1.0 | 2.7 |
| 1:00 pm | 74 | 0.96 | 8.39 | 0.99 | 5.59 | 1.0 | 4.19 | 1.0 | 3.36 | 1.0 | 2.8 |
| 3:00 pm | 122 | 0.95 | 8.75 | 0.99 | 5.84 | 0.99 | 4.38 | 1.0 | 3.5 | 1.0 | 2.92 |
| 5:00 pm | 57 | 0.96 | 8.47 | 0.99 | 5.65 | 0.99 | 4.23 | 1.0 | 3.39 | 1.0 | 2.82 |
| 7:00 pm | 139 | 0.95 | 9.0 | 0.98 | 6.0 | 0.99 | 4.5 | 1.0 | 3.6 | 1.0 | 3.0 |
| 8:00 pm | 55 | 0.95 | 8.71 | 0.99 | 5.81 | 0.99 | 4.36 | 1.0 | 3.49 | 1.0 | 2.9 |
| 9:00 pm | 21 | 0.96 | 8.45 | 0.99 | 5.64 | 0.99 | 4.23 | 1.0 | 3.38 | 1.0 | 2.82 |
| Date/hour | X | Total | min | max | mind | maxd | |||
|---|---|---|---|---|---|---|---|---|---|
| 0 | 27/10 - 09:00 am | 319 | 1527 | 43 | 334 | 2 | 45 | 2 | 26 |
| 1 | 27/10 - 03:00 pm | 482 | 1364 | 45 | 463 | 2 | 45 | 2 | 19 |
| 2 | 28/10 - 11:00 am | 265 | 1581 | 44 | 381 | 2 | 45 | 3 | 17 |
| 3 | 29/10 - 07:00 pm | 227 | 1619 | 38 | 515 | 2 | 45 | 2 | 67 |
| 4 | 30/10 - 1:00 pm | 240 | 1606 | 19 | 193 | 2 | 45 | 5 | 44 |
| 5 | 30/10 - 05:00 pm | 235 | 1611 | 53 | 570 | 2 | 45 | 2 | 16 |
| 6 | 31/10 - 07:00 am | 306 | 1540 | 23 | 192 | 2 | 45 | 5 | 29 |
| 7 | 01/11 - 08:00 am | 267 | 1579 | 37 | 275 | 2 | 45 | 3 | 16 |
| 8 | 01/11 - 08:00 pm | 280 | 1566 | 35 | 376 | 2 | 45 | 3 | 28 |
| 9 | 02/11 - 09:00 pm | 139 | 1707 | 26 | 302 | 2 | 45 | 2 | 34 |
| top | id | -cr | -mu | -a | -rep | -pop | -dec | -prob_cr | -prob_mu | -prob_ini |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 625 | un | bf | ur | rm | 200 | 50 | 0.5 | 0.25 | 0.1 |
| 2 | 499 | un | bf | ur | rm | 200 | 50 | 0.75 | 0.5 | 0.25 |
| 3 | 432 | hun | bfo | ur | rm | 200 | 50 | 0.5 | 0.5 | 0.25 |
| 4 | 655 | un | bf | ur | rm | 200 | 50 | 0.5 | 0.5 | 0.1 |
| 5 | 617 | un | bfo | ur | rm | 200 | 50 | 0.5 | 0.5 | 0.1 |
| Sol. | f1 | f2 | * | ||||
|---|---|---|---|---|---|---|---|
| 1 | 124065.2 | 6 | 7904.6 | 3264.9 | 1 | 2 | 16 |
| 2 | 105696.9 | 7 | 7800.3 | 2781.5 | 1 | 2 | 13 |
| 3 | 91577.8 | 8 | 6107.8 | 2409.9 | 1 | 2 | 8 |
| 4 | 82685.1 | 9 | 6258.1 | 2175.9 | 1 | 2 | 7 |
| 5 | 77329.4 | 10 | 6258.1 | 2035.0 | 2 | 2 | 7 |
| 6 | 72245.0 | 11 | 5013.1 | 1901.2 | 4 | 3 | 7 |
| 7 | 68039.6 | 12 | 4907.8 | 1790.5 | 5 | 3 | 7 |
| 8 | 64555.3 | 13 | 4907.8 | 1698.8 | 6 | 2 | 7 |
| 9 | 61456.4 | 14 | 4907.8 | 1617.3 | 7 | 2 | 7 |
| 10 | 58493.7 | 15 | 4907.8 | 1539.3 | 7 | 2 | 7 |
| 11 | 56013.6 | 16 | 4907.8 | 1474.0 | 8 | 2 | 7 |
| 12 | 53807.9 | 17 | 4907.8 | 1416.0 | 8 | 2 | 5 |
| 13 | 51680.9 | 18 | 4907.8 | 1360.0 | 9 | 2 | 5 |
| 14 | 49675.7 | 19 | 4907.8 | 1307.3 | 10 | 2 | 5 |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2024 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).