第四章 基于 Python 开源生态的工程实现框架
理论研究最后还是要回到能跑的代码上。对医疗 Co-MAPF 这类问题,我更倾向于先借力现成的 Python 开源库,再围绕业务约束做扩展,而不是一开始就从零写求解器。这样省时间,也更容易把精力放在医院场景真正难的部分:连续时间、冲突处理和系统集成。
4.1 基础框架评估与总体集成架构
从零实现一个鲁棒的 Co-MAPF 求解器,工程量其实很大。更现实的做法,是先选一个成熟的 MAPF 开源库作为底座,再往上加医疗调度需要的约束和接口。
比较合适的起点有两个:
msaudulhassan/mapf:这个项目把 CBS、优先级规划(Prioritized Planning)和时空 A* 都拆得比较清楚,代码读起来不费劲。它的优势不在功能堆得多,而在结构干净,适合拿来理解底层机制,顺手做一些轻量扩展。atb033/multi_agent_path_planning:功能更完整,除了 CBS,还实现了 SIPP 和基于速度障碍法(VO)的分布式规划。对我来说,最实用的是它原生支持连续时间规划(SIPP),同时带 YAML 场景输入/输出和可视化工具,做实验原型会省很多杂活。
如果目标是尽快搭出原型,尤其是要面对动态、连续时间场景,我会优先选 atb033/multi_agent_path_planning。它离一个可演示、可调试的系统更近,后面再把求解器封装成微服务,通过 RESTful API 接到医疗调度系统里,路径规划和业务系统之间也能分得更清楚。


