基于遗传算法的多约束电动物流车辆路径规划 Web 系统,支持场景随机生成、参数调节、实时求解进度与结果可视化。
- 多约束优化:同时考虑载重、电量、时间窗、充电行为
- 遗传算法求解:支持种群与迭代参数调节
- 实时进度反馈:通过 Socket.IO 推送求解过程
- 结果可视化:车辆路径图、成本构成图、收敛曲线、详细时间线
- 前端布局升级:控制台式页面结构,移动端自适应
- 图表配色升级:结果图统一为更专业、对比更清晰的色系
- 随机生成客户点与需求
- 可配置客户数量、随机种子、需求上下界
- 展示配送中心、客户、充电站及时间窗信息
- 车辆参数:车辆数量、载重、电池容量、能耗、时间成本
- 算法参数:种群大小、迭代次数
- 后台线程执行遗传算法
- WebSocket 实时回传代数、最优成本、进度百分比
- 解决方案摘要(总成本、总路程、充电次数等)
- 路径可视化图
- 成本构成饼图
- 收敛曲线图
- 车辆详细路径与时间线
- Flask
- Flask-SocketIO
- NumPy
- Matplotlib
- Bootstrap 5
- Socket.IO
- 原生 JavaScript
- app.py:Web API 与 Socket 事件
- optimized_vrp_solver.py:核心算法与图表生成
- run.py:启动脚本(会自动打开浏览器)
- templates/index.html:页面模板
- static/css/style.css:页面样式
- static/js/main.js:前端交互逻辑
- requirements.txt:依赖列表
- Python 3.8 及以上
- 推荐使用虚拟环境
Windows PowerShell:
pip install -r requirements.txt
python run.py
启动后访问:
- 在 场景设置 中生成随机场景
- 在 参数配置 中调整车辆和算法参数
- 点击 开始求解优化
- 在 优化结果 查看图表与详细路线
- GET /:主页
- GET /api/battery-model:电池模型参数
- GET /api/electricity-pricing:分时电价数据
- POST /api/generate-scenario:生成随机场景
- POST /api/solve:启动求解
- GET /api/solution-details:获取详细结果
目标函数:
总成本 = 时间成本 + 电池损耗成本 + 电费成本
主要约束:
- 载重约束
- 电量约束(SOC 安全范围)
- 时间窗约束
- 充电站与充电时长约束
当前结果图采用统一风格配色:
- 路径图:配送中心/客户/充电站颜色区分更明确
- 成本构成图:蓝青橙色系,标签与百分比可读性更高
- 收敛图:主曲线 + 浅色填充,趋势更清晰
可按以下顺序排查:
-
检查依赖是否安装完整:
pip install -r requirements.txt -
检查端口 5000 是否被占用
-
检查 Python 版本是否满足要求
-
查看控制台最后一行报错信息(通常是缺包或端口冲突)
- 先生成场景再求解
- 检查参数是否为有效正数
- 检查浏览器控制台和后端日志
- 当前已设置常见中文字体回退
- 若本机缺少字体,可能导致中文显示不完整
- 优先在 optimized_vrp_solver.py 中扩展算法逻辑
- 前端交互优先修改 static/js/main.js
- 页面视觉优先修改 static/css/style.css
- 页面布局与视觉系统重构
- 优化结果图配色升级
- README 文档更新(运行、接口、排障)
如需进一步扩展:可增加参数预设方案、结果对比视图、导出 PDF 报告。