Skip to content

About

网约车调度仿真平台

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

TurtleWalk

网约车调度实时仿真平台:单页 Web 界面,在同一张地图上实时模拟不同尺寸路网(默认50×50 网格)与四种调度算法下的车辆与订单动态,支持车辆/乘客密度调节、时间分流与热区实验、拼车指标展示、实时统计与倍速播放。

调度算法

内置四种调度算法,页面可直接切换:

算法 核心原理
最近邻优先 逐单撮合,订单派给最近的空车,先到先得,不可撤回
分区匈牙利 订单按等待时长排序,以订单为圆心动态半径圈定就近空车批量指派,长等待触发扩区
匈牙利匹配 每个派单周期对全部待派订单与全部空车做全局最优一对一指派
拼车插入 新订单插入在途车辆的停靠序列,一车最多串联 3 名乘客;以接驾时限与送达承诺、绕行上限和每乘客接驾上限约束乘客体验

四种算法在相同条件(grid50、200 辆车、20 单/分钟、60 分钟、20 种子)下的对比:

指标 最近邻 分区匈牙利 全局匈牙利 拼车插入
完成率 43.7% 59.7% 61.9% 69.2%
平均接驾 413 s 90 s 170 s 70 s
P90 接驾 997 s 147 s 314 s 108 s
平均乘车 626 s 621 s 619 s 691 s

拼车以每位乘客约 +70 秒的在车时间和更高的计算开销,换来完成率、接驾速度与司机平台收入的全面领先。实验设计、统计检验与成因分析详见 四算法对比报告,历史迭代数据见 算法基准文档。

快速开始

要求 Python 3.12+、uv 和 Node.js/npm。在 macOS、Linux、WSL 或 Git Bash 中执行:

./scripts/taxisim.sh setup
./scripts/taxisim.sh serve

打开 http://127.0.0.1:8018/ 进入实时仿真页面。setup 负责安装 Python/前端依赖并构建网页。

命令

所有组合命令统一由 scripts/taxisim.sh 执行:

目标 命令
安装依赖、构建前端 ./scripts/taxisim.sh setup
执行代码检查和测试 ./scripts/taxisim.sh check
启动实时仿真服务 ./scripts/taxisim.sh serve

服务默认使用端口 8018,可通过 SIMVIZ_PORT=8020 覆盖;端口被旧进程占用时 serve 会先清理再启动。

实时仿真接口

前端通过 HTTP 轮询驱动仿真:

  • POST /api/live/start:以指定地图、算法、车辆数和乘客到达率重建仿真;
  • GET /api/live/snapshot?advance_s=<秒>:推进仿真并返回车辆、乘客与统计快照;
  • GET /api/live/roadnet / POST /api/live/reset / GET /api/health。

接口字段、高级参数(取消等待、计价、时间分流、热区实验)与轮询/抽帧策略详见 Web 文档。

自定义调度算法

算法继承 BaseAlgorithm 实现 on_dispatch_tick 即可接入,决策在独立子进程中执行,带超时、回退与熔断。接口规范见 派单算法接口规范。

开发文档

About

网约车调度仿真平台

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages