2026年ACM TCH,动态救护车路径优化:结合 K-means 聚类与多目标粒子群算法两阶段策略

目录


1.摘要

本文针对多伤员、急救资源不足动态救护车路径问题(DARP),将患者分为强弱两类紧急度,构建了最小化行驶距离与接送时间的双目标数学模型。针对NP-hard问题,本文提出一种两阶段求解算法(k-means-MOPSO):首先通过k-means算法对空间伤员进行区域聚类,再利用多目标粒子群算法优化救护车调度路径。实验通过Hypervolume、Spacing和R2指标,验证了该算法相较于NSGA-III、NSGA-II及SPEA2等前沿多目标算法优越性能。

2.问题描述

考虑灾害后多区域伤员救援,车辆从起点出发,访问伤员点并返回或转运,需求可随时间出现。HEI 需要立即优先处理,SEI 可延后或现场处理。模型追求更短行驶距离、更短响应/乘车时间和更高优先级服务,同时满足分配、容量、流守恒、时间窗和二元变量约束。目标为最小化距离、时间和优先级代价:

min ⁡ ( f 1 ( X i j ) + f 2 ( X i j ) + f 3 ( X i j ) ) \min \left(f_1(X_{ij})+f_2(X_{ij})+f_3(X_{ij})\right) min(f1(Xij)+f2(Xij)+f3(Xij))

距离目标为:

f 1 ( X i j ) = ∑ i ∈ N ∑ j ∈ N ∑ k ∈ K ∑ t ∈ T d i j x i j k t f_1(X_{ij})=\sum_{i\in N}\sum_{j\in N}\sum_{k\in K}\sum_{t\in T} d_{ij}x_{ijkt} f1(Xij)=i∈N∑j∈N∑k∈K∑t∈T∑dijxijkt

时间目标为:

f 2 ( X i j ) = ∑ i ∈ N ∑ k ∈ K ∑ t ∈ T t i j y i k t f_2(X_{ij})=\sum_{i\in N}\sum_{k\in K}\sum_{t\in T} t_{ij}y_{ikt} f2(Xij)=i∈N∑k∈K∑t∈T∑tijyikt

优先级目标为:

f 3 ( X i j ) = ∑ i ∈ N ∑ k ∈ K ∑ t ∈ T p r i o r i t y i t y i k t f_3(X_{ij})=\sum_{i\in N}\sum_{k\in K}\sum_{t\in T} priority_{it}y_{ikt} f3(Xij)=i∈N∑k∈K∑t∈T∑priorityityikt

3.求解方法

K-means 先把空间相近、需求相似的伤员分成若干簇,降低每辆车面对的搜索范围;MOPSO 再在各簇内或簇间寻找非支配路径集合。

Cluster-First Method: K-Means Algorithm

K-means 以伤员位置和相关属性为输入,通过迭代更新簇中心,使同簇点距离更近。聚类结果相当于给救护车划分服务区域,减少跨区绕行。

Route-Second Approach: MOPSO

MOPSO 把每个粒子视为一组救护车路线。粒子根据自身历史最优和外部档案中的全局引导解更新,档案保存非支配解。算法同时考虑距离、时间和优先级,输出 Pareto 前沿。

4.实验结果

实验分为 SARP 与 DARP。SARP 基于 Augerat CVRP 数据改造,DARP 在此基础上加入动态新增需求、HEI/SEI 等特征。对照算法包括 k-means-NSGA-II、k-means-NSGA-III、k-means-SPEA2,以及部分静态场景中的 k-means-SA-TS、PA-PSO、GA。

5.参考文献

Zidi I, Issaoui B, El Khediri S, et al. Optimizing Dynamic Ambulance Routing Problem: A Two-Phase Strategy Combining K-means Clustering and Multi-Objective Particle Swarm OptimizationJ. ACM Transactions on Computing for Healthcare, 2026, 7(2): 1-26.

6.算法辅导·应用定制·读者交流

xx

相关推荐
在书中成长1 小时前
HarmonyOS 小游戏《对战五子棋》开发第8篇 - GomokuEngine核心引擎设计(三):五子连珠判定算法
算法·华为·harmonyos
Let's Chat Coding1 小时前
MAC 消息认证码:同时验证来源和完整性
算法·哈希算法
cc.ChenLy3 小时前
算法从入门到精通实战指南
算法
Jerry10 小时前
LeetCode 160. 相交链表
算法
Jerry10 小时前
LeetCode 19. 删除链表的倒数第 N 个结点
算法
金銀銅鐵10 小时前
费马小定理
python·数学·算法
技术不好的崎鸣同学11 小时前
[ACTF2020 新生赛]Exec 思路及解法
算法·安全·web安全
Full Stack Developme13 小时前
Java LRU 与 LFU 算法及应用
java·开发语言·算法