This project spans Sep 2025 - Apr 2026 and is actively developing
The optimization objective is:
Each ambulance serves at most one incident:
Each incident is served at most once:
Exactly (k_t) assignments are made:
Binary decision variables:
The first constraint ensures each ambulance serves at most one incident, the second ensures each incident is served at most once, and the third ensures exactly (k_t) assignments per round.
-
$A$ : set of available ambulances, indexed by$a$ -
$R_t$ : set of unserved incidents at round$t$ -
$H$ : set of hospitals (fixed locations), indexed by$h$ -
$\text{pos}_a^{(t)}$ : current position of ambulance$a$ at round$t$ -
$d(p, q)$ : Google Distance Matrix API distance between coordinates$p$ and$q$ -
$h^*(i)$ : nearest hospital to incident$i$ -
$w_i \in {1,2,4,8,16}$ : priority weight (larger means higher priority) -
$k_t = \min(|A|, |R_t|)$ : number of assignments in round$t$ -
$x_{ai}^{(t)}$ :-
1 if ambulance
$a$ is assigned to incident$i$ - 0 otherwise
-
1 if ambulance
The optimization seeks to minimize the total weighted travel cost of all ambulance–incident–hospital assignments during round (t).
Each term in the objective contains:
which is the distance from the ambulance to the incident and then to the nearest hospital.
The weighting factor (1/w_i) increases the influence of high-priority incidents by reducing their effective cost relative to lower-priority ones.
