
py-ga-VRPTW运行输出完整指南快速看懂多车路径方案、适应度值与收敛日志【免费下载链接】py-ga-VRPTWA Python Implementation of a Genetic Algorithm-based Solution to Vehicle Routing Problem with Time Windows项目地址: https://gitcode.com/gh_mirrors/py/py-ga-VRPTWpy-ga-VRPTW 是一个用 Python 遗传算法求解带时间窗车辆路径问题VRPTW的开源项目运行时会输出多车路径方案、适应度值和收敛日志三类结果。本文以项目自带的示例代码为例带你逐行看懂终端输出、解读每一辆车的访问顺序并用一张速查表掌握 CSV 收敛日志的 6 个字段——无需算法背景5 分钟即可上手。运行前必知py-ga-VRPTW 会输出哪 3 种结果 运行run_gavrptw()主函数后项目会在两个地方留下痕迹输出类型出现位置内容终端日志命令行屏幕每一代的适应度统计Min/Max/Avg/Std、最优个体、每辆车的路径、总成本路径方案终端日志末尾Vehicle Ns route: 0 - 5 - 3 - 2 - 0形式的多车访问序列收敛日志results/目录下的 CSV 文件每代的最小、最大、平均适应度与标准差可用于绘制收敛曲线下面以两个官方示例为例小实例 sample_R101.py25 个客户、80 个个体、100 代和大实例 C204100 个客户、400 个个体、300 代。一键安装与运行 py-ga-VRPTW 示例 克隆仓库并安装依赖需要 Python 3 与 pip核心依赖见 requirements.txtgit clone https://gitcode.com/gh_mirrors/py/py-ga-VRPTW cd py-ga-VRPTW python3 -m venv venv source venv/bin/activate pip install -r requirements.txt然后运行示例即可看到完整输出python sample_R101.py # 小实例几秒跑完 python sample_C204.py # 大实例100 客户 × 300 代 提示示例代码中export_csv True会额外导出 CSV改为False则只在屏幕打印日志。终端输出逐行解读py-ga-VRPTW 日志怎么看以 R101 示例为例终端输出大致长这样节选Start of evolution Evaluated 80 individuals -- Generation 0 -- Evaluated 73 individuals Min 9.763345499035684e-05 Max 0.00012637256751296555 Avg 0.00011025092708161358 Std 6.5469078885741754e-06 -- Generation 1 -- ... -- End of (successful) evolution -- Best individual: [25, 18, 7, 20, ...] Fitness: 0.00013945688047910495 Vehicle 1s route: 0 - 19 - 15 - 9 - 5 - 1 - 0 Vehicle 2s route: 0 - 25 - 18 - 7 - 20 - ... Total cost: 7170.897... Write to file: .../results/R101_uC8.0_iC60.0_wC0.5_dC1.5_iS25_pS80_cP0.85_mP0.01_nG100.csv每代 4 行统计Min / Max / Avg / Std 是什么这 4 行是当前种群所有个体适应度的描述统计由gavrptw/core.py中的进化主循环打印Min适应度最低方案最差的个体Max适应度最高方案最好的个体Avg种群平均适应度观察它上升最能反映进化进度Std标准差越小说明种群越抱团、越接近收敛还有一个容易困惑的点Evaluated 73 individuals为什么不是 80因为算法只重新评估经过交叉或变异、适应度被标记无效的个体没被改动的个体直接沿用旧值这是一次性能优化。适应度值Fitness为什么这么小关键公式就一行fitness 1 / 总成本。总成本 运输成本起步费 单位里程费 × 里程 时间成本早到等待 迟到延误在gavrptw/core.py的eval_vrptw()函数中计算。所以 R101 跑完打印Fitness: 0.00013945...取倒数就是总成本 ≈ 7171。适应度数值越小说明方案越贵它涨得越高方案越优——这就是遗传算法逐代爬坡的直观体现。多车路径方案怎么读0 - 5 - 3 - 2 - 0 的含义 ✅Best individual打印的[25, 18, 7, 20, ...]是个体染色体一串 1 到 N 的客户编号排列代表全局的访问顺序。而Vehicle Ns route是它被解码后的结果——解码规则见ind2route()函数很简单按个体顺序依次装客累加车辆载重与累计时间一旦超载或赶不回仓库超过发车截止时间当前子路线封存开一辆新车最终得到若干条子路线每条都以仓库0开头、以0结尾。因此读法非常直白Vehicle 1s route: 0 - 19 - 15 - 9 - 5 - 1 - 0→ 1 号车从仓库出发依次服务客户 19、15、9、5、1最后回仓库出现几条Vehicle行就用了几辆车编号0永远是仓库depot不是客户。拿到方案后可对照data/json/R101.json中各客户的坐标、需求量demand和时间窗ready_time / due_time人工验证路线合理性。收敛日志 CSV6 个字段速查表 export_csv True时每代统计会写入results/目录表头固定为 6 列字段含义怎么用它generation代数从 0 开始横轴画收敛曲线的 xevaluated_individuals本代重新评估的个体数受交叉/变异概率影响通常小于种群大小min_fitness种群最低适应度看垫底方案的进步max_fitness种群最高适应度看历史最优是否被刷新avg_fitness种群平均适应度收敛判断主指标画 y 轴std_fitness适应度标准差变小 种群趋于稳定文件名就是参数档案uC / iC / wC 代表什么文件名形如C204_uC8.0_iC100.0_wC1.0_dC1.5_iS100_pS400_cP0.85_mP0.02_nG300.csv每段对应run_gavrptw()的一个参数前缀参数示例值说明开头实例名C204Solomon 基准问题编号uCunit_cost8.0每单位距离运输成本iCinit_cost100.0每辆车的起步成本wCwait_cost1.0每单位等待时间成本dCdelay_cost1.5每单位延误时间成本iSind_size100个体长度客户数pSpop_size400种群规模cPcx_pb0.85交叉概率mPmut_pb0.02变异概率nGn_gen300最大进化代数换参数重跑不会覆盖旧文件——不同组合各存一份方便横向对比。用 avg_fitness 和 std_fitness 判断是否收敛以仓库中 C204 的真实结果为例第 0 代平均适应度约1.568e-05对应总成本约 63,800到第 299 代升至2.213e-05成本降到约 45,000而标准差从约1.27e-06收窄到8.96e-07。判断口诀avg_fitness 持续上升→ 算法在有效优化avg_fitness 走平 std_fitness 缩小→ 已收敛再加代数收益有限曲线后期仍在大幅波动→ 可尝试调大 pop_size、n_gen或微调 cP / mP 后再跑一轮。py-ga-VRPTW 输出相关常见问题 ❓Q1同一实例不同次运行结果一样吗遗传算法含随机性示例通过random.seed(64)固定随机种子保证可复现去掉这行每次结果会有差异。Q2想关掉 CSV 导出怎么办把示例脚本中的export_csv True改为False日志仅打印到屏幕。Q3跑出来的路径明显不优项目作者在 README 中坦承示例参数性能并非最优调参方向主要有增大pop_size与n_gen、适当提高mut_pb维持种群多样性、按业务调整四种成本权重。Q4能用自己的数据跑吗可以。把自定义数据放到data/text_customize/或data/json_customize/可用text2json_customize.py转换并在调用时加customize_dataTrue参考sample_customized_data.py即可。小结 py-ga-VRPTW 的运行输出 终端进化日志最优多车路径方案CSV 收敛日志三件套记住适应度 1 / 总成本适应度越高方案越省钱省时Vehicle Ns route行即最终配送方案0代表仓库行数代表用车数用 CSV 中avg_fitness的走势图判断收敛文件名本身记录了全部参数便于实验对比。把这三块输出串起来读你就完整掌握了一次遗传算法求解 VRPTW 的全过程——从随机种群出发逐代淘汰优化最终输出一张可落地的多车配送时刻表。【免费下载链接】py-ga-VRPTWA Python Implementation of a Genetic Algorithm-based Solution to Vehicle Routing Problem with Time Windows项目地址: https://gitcode.com/gh_mirrors/py/py-ga-VRPTW创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考