本文使用 NSGA-II 算法解决一个经典的车辆路径问题 (VRP) 模型。模型中随机生成一个仓库和一百个客户坐标及客户配送需求,横纵坐标在 0 到 50 之内,需求在 2-10 之间。假设有足够的同质车辆,车辆容量约束为 100,车辆行驶速度为 40。在 0 到 8 之间随机生成每个客户的预期配送到达时间。

该模型的目标函数有两个:

  1. 总成本最小化: 成本包括所有使用车辆的固定成本和路径行驶成本。每辆车固定成本为 500,路径行驶成本与行驶距离成正比,比例系数是 0.05。
  2. 客户满意度总和最大化: 客户满意度是客户期望配送到达时间减去实际到达时间,如果大于零则再乘以 0.8,如果小于零则再乘以 1.3。

每个车辆必须在时刻为 8 之前返回仓库,车辆从仓库出发时刻为 0。

该模型的输出包括:

  • 使用车辆数目
  • 每辆车的完整配送路线
  • 帕累托前沿的可视化
  • 车辆配送路径的可视化

代码实现

由于该任务涉及到大量的细节,代码较长,我将代码放在了 GitHub 上,供您参考:

https://github.com/ZZULI-TECH-AI/VRP-NSGA2

代码中包含了详细的注释,您可以根据自己的需求进行修改和调整。如果您有任何问题,请随时联系我。

NSGA-II 算法解决车辆路径问题 (VRP): Python 实现与可视化

原文地址: https://www.cveoy.top/t/topic/necb 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录