YvesNDIKURIYO-2022/hybrid-memetic-framework-threat-aware
GitHub: YvesNDIKURIYO-2022/hybrid-memetic-framework-threat-aware
提出一种混合记忆与威胁感知规避的元启发式算法,解决高危环境下的集装箱卡车路径规划问题。
Stars: 0 | Forks: 0
# 混合记忆框架与威胁感知规避的集装箱卡车路径规划
[](https://opensource.org/licenses/MIT)
[](https://www.python.org/downloads/)
## 📋 概述
本仓库包含 **混合记忆框架与威胁感知规避(Hybrid Memetic Framework with Threat-Aware Evasion)** 的实现,这是一种为解决 **威胁感知集装箱卡车路径规划问题(CTRP)** 而设计的新型生物启发混合元启发式算法。该算法独特地将燕子群集行为(用于全局探索)与蝙蝠回声定位(用于局部开发)相结合,并引入专用的威胁感知规避算子,以主动缓解物流路径中的风险。
本仓库作为以下手稿的 **官方代码与数据补充**:
## 🎯 主要特性
- **混合记忆框架**:融合群集动力学与频率调制搜索的群智能原理。
- **威胁感知规避算子**:在优化过程中主动引导解决方案远离空间威胁(非事后惩罚)。
- **多目标优化**:同时最小化运营成本、行驶距离和威胁暴露。
- **全面基准测试**:在修改后的 Augerat 实例、Set X(Uchoa et al., 2017)和 Set XL(Queiroga et al., 2026)上进行验证。
- **真实世界验证**:东非共同体(EAC)走廊案例研究,包含 28 个城市和 16 个威胁区域。
## 📊 基准算法
提出的混合记忆框架与五种现有元启发式算法进行了对比评估:
| 算法 | 类别 | 评估目的 |
|:----------|:---------|:----------------------|
| **ALNS** [38] | VRP 黄金标准 | 建立对主导 VRP 启发式算法的优越性 |
| **HGA** [34] | 进化基线 | 验证增加的复杂性是否带来有意义的改进 |
| **HADAD** [17] | 威胁感知路径规划 | 与威胁感知竞争对手进行直接比较 |
| **Hybrid Cell-Wave** [16] | 时空路径规划 | 测试规避算子与基于单元的空间方法 |
| **MA-PSO** [22] | 基于惩罚的群智能 | 对比主动规避与事后惩罚 |
## 🚀 算法组件
### 1. 全局探索:基于群集启发的机制
- **分离**:防止过度拥挤以保持解多样性。
- **对齐**:同步邻近代理的速度以实现协同搜索。
- **聚合**:促进向局部群体中心移动以平衡探索。
### 2. 局部开发:频率调制搜索
- **频率自适应**:动态调整搜索频率以平衡探索与开发。
- **速度更新**:引导运动朝向全局最优解。
- **局部搜索细化**:在最佳位置周围使用高斯扰动。
### 3. 威胁感知规避:领域知识记忆
- **主动风险缓解**:在搜索过程中动态引导路径远离危险区域。
- **距离加权排斥**:靠近威胁区域时规避更强;远离时影响可忽略。
- **静态威胁建模**:具有固定中心和半径的圆形受限区域。
## 📊 基准实例规格
本节记录了实验评估中使用的所有基准实例。
### S1. 修改后的容量车辆路径数据集(Augerat et al.)
**表 S1. 修改后的 Augerat 基准实例**
| 实例 | 客户数 | 仓库坐标 | 容量 | 车辆数 | 威胁区域数 |
|:---------|----------:|:-----------------:|---------:|---------:|-------------:|
| A-n32-k5 | 21 | (82, 76) | 100 | 3 | 5 |
| A-n53-k7 | 34 | (24, 63) | 100 | 5 | 5 |
| A-n80-k10 | 51 | (92, 92) | 100 | 7 | 6 |
### S2. 大规模 Set X 实例(Uchoa et al., 2017)
**表 S2. 具有层级分类的 Set X 实例**
| 实例 | 客户数 | 车辆数 | 容量 | 已知最优值 | 层级 |
|:---------|----------:|---------:|---------:|--------------:|:-----|
| X-n101-k25 | 100 | 25 | 10,000 | 27,555 | 小型 |
| X-n200-k8 | 199 | 8 | 10,000 | 33,382 | 小型 |
| X-n300-k10 | 299 | 10 | 10,000 | 104,952 | 中型 |
| X-n400-k12 | 399 | 12 | 10,000 | 310,696 | 中型 |
| X-n500-k12 | 499 | 12 | 10,000 | 381,127 | 中型 |
| X-n600-k12 | 599 | 12 | 10,000 | 473,968 | 大型 |
| X-n800-k12 | 799 | 12 | 10,000 | 642,510 | 大型 |
| X-n1000-k12 | 999 | 12 | 10,000 | 812,410 | 大型 |
### S3. 超大规模 Set XL 实例(Queiroga et al., 2026)
**表 S3. Set XL 的代表性样本**
| 实例 | 客户数 | 车辆数 | 容量 | BKS | 层级 |
|:---------|----------:|---------:|---------:|--------:|:-----|
| XL-n1094-k157 | 1,093 | 157 | 7 | 112,431 | 小型 |
| XL-n1328-k19 | 1,327 | 19 | 542 | 38,247 | 小型 |
| XL-n1654-k11 | 1,653 | 11 | 845 | 36,385 | 小型 |
| XL-n1981-k13 | 1,980 | 13 | 832 | 32,580 | 小型 |
| XL-n2307-k34 | 2,306 | 34 | 479 | 47,958 | 中型 |
| XL-n2634-k17 | 2,633 | 17 | 898 | 31,641 | 中型 |
| XL-n2961-k55 | 2,960 | 55 | 297 | 108,084 | 中型 |
| XL-n3287-k30 | 3,286 | 30 | 111 | 40,229 | 中型 |
| XL-n3804-k29 | 3,803 | 29 | 10,064 | 52,885 | 中型 |
| XL-n4436-k48 | 4,435 | 48 | 706 | 61,477 | 中型 |
| XL-n5061-k184 | 5,060 | 184 | 206 | 161,629 | 大型 |
| XL-n5526-k553 | 5,525 | 553 | 10 | 336,898 | 大型 |
| XL-n6034-k61 | ,033 | 61 | 744 | 64,448 | 大型 |
| XL-n6588-k473 | 6,587 | 473 | 76 | 334,068 | 大型 |
| XL-n7037-k38 | 7,036 | 38 | 187 | 70,845 | 大型 |
| XL-n7683-k602 | 7,682 | 602 | 957 | 702,098 | 大型 |
| XL-n8207-k108 | 8,206 | 108 | 415 | 118,274 | 特大型 |
| XL-n8766-k1032 | 8,765 | 1,032 | 637 | 906,406 | 特大型 |
| XL-n9363-k209 | 9,362 | 209 | 45 | 205,575 | 特大型 |
| XL-n10001-k1570 | 10,000 | 1,570 | 479 | 2,333,757 | 特大型 |
**表 S4. 层级汇总**
| 层级 | 数量 | 最小客户数 | 最大客户数 | 平均客户数 |
|:-----|------:|--------------:|--------------:|---------------:|
| 小型 | 4 | 1,093 | 1,980 | 1,513 |
| 中型 | 6 | 2,306 | 4,435 | 3,237 |
| 大型 | 6 | 5,060 | 7,682 | 6,320 |
| 特大型 | 4 | 8,206 | 10,000 | 9,083 |
| **总计** | **20** | — | — | **4,987** |
### S4. 威胁区域配置
**表 S6. 标准化威胁区域定义**
| 区域 ID | 中心坐标 (x, y) | 半径 | 描述 |
|:--------|:----------------:|-------:|:------------|
| T1 | (0.25, 0.25) | 0.08 | 城市拥堵 |
| T2 | (0.75, 0.25) | 0.08 | 工业事故 |
| T3 | (0.25, 0.75) | 0.08 | 易发洪水区域 |
| T4 | (0.75, 0.75) | 0.08 | 冲突区域 |
| T5 | (0.50, 0.50) | 0.10 | 中心高危区 |
| T6 | (0.20, 0.50) | 0.06 | 道路施工 |
| T7 | (0.80, 0.50) | 0.06 | 滑坡风险 |
| T8 | (0.50, 0.20) | 0.06 | 港口安保 |
| T9 | (0.50, 0.80) | 0.06 | 环境保护 |
| T10 | (0.35, 0.65) | 0.05 | 边境检查站 |
### S5. 东非共同体案例研究数据
- **28 个城市** 分布在肯尼亚、乌干达、坦桑尼亚、卢旺达、布隆迪
- **16 个威胁区域**(安全、基础设施、气候灾害)
- **5 辆车辆**,每辆载重 280 吨
- **总需求 1,118 吨**
**表 S7. EAC 城市坐标与需求量**
| 城市 | 纬度 | 经度 | 需求量 (吨) | 走廊 |
|:-----|---------:|----------:|--------------:|:---------|
| Mombasa | -4.0435 | 39.6682 | 0 | 北部 |
| Nairobi | -1.2921 | 36.8219 | 65 | 北部 |
| Nakuru | -0.3031 | 36.0800 | 32 | 北部 |
| Eldoret | 0.5204 | 35.2697 | 26 | 北部 |
| Kisumu | -0.0917 | 34.7679 | 42 | 北部 |
| Dar es Salaam | -6.7924 | 39.2083 | 31 | 中部 |
| Dodoma | -6.1620 | 35.7516 | 59 | 中部 |
| Kampala | 0.3476 | 32.5825 | 26 | 北部 |
| Kigali | -1.9706 | 30.1044 | 26 | 连接 |
| Bujumbura | -3.3614 | 29.3599 | 37 | 中部 |
*完整 28 城市数据集位于 `/data/east_africa/cities.csv`*
**表 S8. EAC 威胁区域规格**
| 区域名称 | 类型 | 风险等级 | 半径 (km) |
|:----------|:-----|:-----------|------------:|
| M23 叛乱活动 - Rutshuru | 安全 | 极高 | 80 |
| ADF 主要营地 - Irumu | 安全 | 极高 | 120 |
| Naivasha - 季节性洪水 | 气候 | 中等 | 50 |
| 中部坦桑尼亚 - 干旱 | 气候 | 中等 | 70 |
*完整 16 个区域数据集位于 `/data/east_africa/threat_zones.csv`*
## 📈 性能亮点
| 指标 | 结果 |
|:-------|:-------|
| 成功率 | **100%**(所有基准实例) |
| 稳定性 (CV) | **1.74%** 变异系数 |
| 威胁暴露 | **0**,同时保持成本效率 |
| 平均成本降低 | 比第二优算法低 **20.85%** |
| 统计显著性 | p < 0.001(Kruskal-Wallis H 检验) |
## 🛠️ 安装与要求
### 先决条件
- Python 3.8+
- NumPy 1.20+
- Matplotlib 3.3+
### 安装
```
git clone https://github.com/YvesNDIKURIYO-2022/hybrid-memetic-framework-threat-aware.git
cd hybrid-memetic-framework-threat-aware
pip install -r requirements.txt
```
## 💻 使用方法
```
from memetic_framework import HybridMemeticFramework
from problem_instance import ThreatAwareCTRP
# Initialize problem
problem = ThreatAwareCTRP(
nodes=node_locations,
threats=threat_zones,
vehicle_capacity=100,
demands=customer_demands
)
# 配置并解决
framework = HybridMemeticFramework(
population_size=50,
max_iterations=500,
risk_weight=1000
)
solution = framework.solve(problem)
solution.visualize_routes()
```
## 📁 项目结构
```
hybrid-memetic-framework-threat-aware/
├── src/
│ ├── memetic_core.py # Main framework implementation
│ ├── problem_model.py # CTRP formulation
│ ├── operators.py # Flocking and frequency operators
│ ├── threat_evasion.py # Threat-aware evasion operator
│ └── solution.py # Solution representation
├── data/
│ ├── benchmarks/
│ │ ├── augerat/ # Modified A-nXX-kX instances
│ │ ├── set_x/ # Set X instances
│ │ └── set_xl/ # Set XL instances
│ ├── east_africa/ # EAC corridor data
│ └── threat_zones/ # Threat zone definitions
├── experiments/
│ ├── benchmark_tests.py
│ ├── sensitivity_analysis.py
│ └── case_study.py
├── results/
│ ├── visualizations/
│ └── statistical_analysis/
├── LICENSE
└── README.md
```
## 🎓 引用
```
@article{ndikuriyo2026hybrid,
title={A Hybrid Memetic Framework with Threat-Aware Evasion for Container
Truck Routing in High-Risk Environments},
author={Ndikuriyo, Yves and Zhang, Yinggui and Fom, Dung Davou},
journal={Memetic Computing},
year={2026},
publisher={Springer Nature}
}
```
## 📄 许可证
本项目根据 **MIT 许可证** 授权 - 详细信息请参阅 [LICENSE](LICENSE) 文件。
## 👥 作者
- **Yves Ndikuriyo** - 首席研究员与算法开发
- **Yinggui Zhang** - 研究监督与方法论
- **Dung Davou Fom** - 实验分析与验证
## 📞 联系
- **首席研究员**: Yves Ndikuriyo - [yvesndikuriyo@csu.edu.cn](mailto:yvesndikuriyo@csu.edu.cn)
- **代码仓库**: [https://github.com/YvesNDIKURIYO-2022/hybrid-memetic-framework-threat-aware](https://github.com/YvesNDIKURIYO-2022/hybrid-memetic-framework-threat-aware)
标签:Augerat实例, East African Community, Python, 仿真数据, 元启发式算法, 启发式算法, 多目标优化, 威胁感知, 威胁感知规避, 容器卡车路径规划, 开源代码, 无后门, 混合膜计算框架, 燕群行为, 物流路径优化, 生物启发式算法, 算法研究, 蝙蝠回声定位, 路径规划, 逆向工具, 风险规避