YvesNDIKURIYO-2022/hybrid-memetic-framework-threat-aware

GitHub: YvesNDIKURIYO-2022/hybrid-memetic-framework-threat-aware

提出一种混合记忆与威胁感知规避的元启发式算法,解决高危环境下的集装箱卡车路径规划问题。

Stars: 0 | Forks: 0

# 混合记忆框架与威胁感知规避的集装箱卡车路径规划 [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](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, 仿真数据, 元启发式算法, 启发式算法, 多目标优化, 威胁感知, 威胁感知规避, 容器卡车路径规划, 开源代码, 无后门, 混合膜计算框架, 燕群行为, 物流路径优化, 生物启发式算法, 算法研究, 蝙蝠回声定位, 路径规划, 逆向工具, 风险规避