
先说个背景。车辆路径规划问题VRP从上世纪五十年代末被提出到现在已经有六十多年的研究历史传统做法基本都被挖得差不多了。但2024年ESWA上这篇《带有机器人站点的无人机辅助车辆路径规划问题》把“车辆路径规划”“无人机配送”和“机器人站点”三个概念组合在一起又打开了一个新切口。我读完论文后顺手按论文思路做了简化版的性能实测这篇文章会把模型本身、求解思路和我实测中看到的数据一起讲清楚适合正在做物流运筹优化、无人机调度相关课题的研究生也适合想了解这类技术能不能落地的从业者。这篇论文的核心场景可以一句话概括车队负责干线运输无人机负责末端支线配送而“机器人站点”是中间衔接的枢纽车辆把货物和电池放到站点站点再用机械臂自动装载、放飞无人机无人机送完周边客户后再回到站点充电。听起来简单但它比经典的“车载无人机随车起降”模式复杂得多难点主要在三个方面一是车辆路线和站点选择要联动优化二是无人机分配方案要满足航程、载重、机位等硬约束三是站点数量、位置和开放策略直接影响最终成本。下面逐一拆。1. 这个模型到底在解决什么场景从“车载无人机”到“站点接力”1.1 为什么车载无人机模式有明显局限很多研究里已经出现过“车辆无人机”的协同配送最常见的一种设定是无人机挂在车辆上车辆行驶到某个客户附近无人机起飞去送一个订单再飞回车辆然后车辆继续前行。这个模式的好处是改动小、部署快但实际运营中瓶颈很明显。无人机跟车行驶本质上是“车辆到哪里无人机才能从哪里出发”。车辆在道路上绕路无人机只能跟着绕车辆被堵在红绿灯前无人机即使已经送完货也只能悬停等待或先回车辆位置。更麻烦的是无人机每次起飞、降落都要人工装卸货物或更换电池这会打断车辆的行驶节拍。换句话说车辆和无人机被捆绑成了一个系统系统的总效率取决于更慢的那个环节。1.2 机器人站点在网络中承担的三层职能这篇论文引入的机器人站点本质上是在车辆和无人机之间加了一层“中转缓冲层”解决了上面说的强耦合问题。车辆不需要为每次无人机起降而停车无人机也不需要时刻跟着车辆跑。站点在系统里承担三个职能。第一是货物中转。车辆可以一次性把一批快件卸在站点由站点的机械臂和暂存区管理站点再按客户顺序分发给无人机。这样车辆在一个站点卸完货就能继续跑干线不需要等无人机逐单起飞。第二是能量补给。站点配备无人机充电或换电设备无人机飞行结束后自动降落充电下一轮任务可以继续从站点出发续航能力不再受车辆车载充电条件限制。第三是任务翻译。车辆层面的需求是“我经过哪些站点、带多少货”无人机层面的需求是“我从哪个站点起飞、给哪些客户送、按什么顺序送、多久回来”站点就像翻译器把车辆的干线计划转换成无人机的支线任务。如果用一个生活类比可以把车辆想象成长途大巴把机器人站点想象成高速服务区加换乘枢纽无人机则是从枢纽出发跑周边区域的接驳车。没有服务区所有接驳车必须跟着大巴走效率和自由度都会受限有了服务区大巴和接驳车可以在枢纽处实现松耦合衔接。1.3 和已有VRP变种的关系从文献角度看这篇论文的定位也很明确。下表把几种常见模型放在一起对比模型类型车辆角色无人机角色站点角色典型局限传统VRP完成全部配送无无末端成本高、时效受限车载无人机VRP-D运载并充当起降平台从车辆起飞并返回车辆无无人机航程利用率低、耦合强无人机独立配送VRP不参与或仅补货从仓库独立出发无航程和载重限制大带站点无人机VRP干线运输从站点起飞返回站点货物暂存/充电/起降站点选址与车辆路径耦合复杂本文模型干线运输选择站点从站点起飞返回站点多个候选站点可选需决策开放哪些站点求解难度大幅上升很多论文会忽略“车辆和无人机在站点还需要时间和空间上的同步”但这篇论文把站点容量、停车时间、无人机起降机位都纳入了约束这也是我认为它值得做深度解析的原因之一。2. 数学建模目标函数、决策变量和四组约束2.1 输入参数与决策变量论文的数学模型严格来说是一个混合整数规划MIP问题。我从更偏工程的角度帮大家把这套模型重新翻译一下。输入参数包括客户集合C每个客户有坐标和需求量候选站点集合S每个站点有最大停靠车辆数、最大无人机停机位数量车辆集合K每辆车有载重上限Q_v、平均速度v_v无人机集合U每架无人机有载重上限Q_d、最大航程R_d、速度v_d此外还有车辆行驶单位成本c_v、无人机飞行单位成本c_d、站点开放固定成本c_s。决策变量大致分三类车辆路径变量车辆k是否从节点i行驶到节点j用二进制变量xᵏᵢⱼ表示站点选择变量站点s是否被开放用二进制变量yₛ表示无人机任务分配变量客户j是否由从站点s起飞的第u架无人机配送用zˢᵘⱼ表示。这组变量覆盖了路径规划、选址和配送分配三个层面。其中最核心的耦合点在于无人机任务分配变量zˢᵘⱼ必须在站点s被开放的前提下才有意义这个逻辑通过约束条件来保证。2.2 约束条件逐条解读论文中约束条件不少归纳起来有四组。第一组是服务唯一性约束。每个客户必须且只能被服务一次要么由车辆直接配送要么由某个站点的无人机配送二者只能选其一。这个约束保证了最终方案不会出现重复订单也避免了同一个客户被车和无人机各送一次的资源浪费。第二组是车辆容量和路径连续性约束。车辆从配送中心出发走完一条封闭路线途中访问若干站点和客户装载的货物总量不能超过车辆容量。路径连续性约束保证了车辆的行车路线是合法的不会出现“断开成好几段”的不合理解。第三组是无人机航程与载重约束。每架无人机从站点起飞后沿一条闭合的飞行路径访问若干客户再返回同一站点总飞行距离不能超过最大航程总装载量不能超过无人机载重。这部分是模型中最容易低估难度的地方因为无人机飞不同客户时耗电和载重的关系不是简单线性相加但论文为可解性考虑采用了线性距离约束这是必要的近似。第四组是站点能力和时间同步约束。同一时刻在站点内停靠的车辆数不能超过最大泊位正在起降的无人机数量不能超过停机位数量。车辆到达站点的时间和无人机返回站点的时间需要在时间窗上有一定的协调否则站点会出现排队拥堵。这里需要特别强调的是第四组约束是“机器人站点”和普通中转仓库最大的区别。普通仓库只要货物到了就行但站点内机械臂的装载是串行动作一辆车卸完货机械臂才可能把货挂到无人机上无人机返回后也需要停机位和充电口。论文用泊位约束和同步约束把这个过程数学化了。2.3 目标函数怎么选目标函数论文用的是“最小化系统总成本”成本包括车辆行驶成本、无人机飞行成本和站点开放固定成本。用公式表示就是minimize Σ(车辆行驶距离×单位成本) Σ(无人机飞行距离×单位成本) Σ(站点开放固定成本)很多初学者会问为什么不直接最小化总时间原因是时间维度受路况、装卸速度、风速等随机因素影响很大在路径规划阶段先用距离作为代理指标是工业界更常见的做法。而把站点开放成本放进去是为了避免模型为了省几公里里程而开放一堆站点结果站点运营成本反而更高。从实际测试看目标函数中各项成本的权重对最终解形态影响很大。如果车辆单位成本明显低于无人机单位成本模型会倾向于让车辆多跑无人机只在车辆完全够不到的偏远区域发挥作用如果无人机单位成本很低模型会把大量订单交给无人机。这里的“单位成本”本质上表达了决策者对两种运输方式的偏好论文虽然没有在灵敏度分析里展开讨论但复现时必须关注。3. 求解算法为什么选择了混合启发式而不是精确算法3.1 精确算法为什么撑不住从组合优化角度看这个模型同时包含VRP、设施选址和无人机任务分配三个子问题三者相互耦合节点规模一旦超过30个精确算法就很难在可接受时间内求出最优解。我举个直观的数字对比如果有10个候选站点和50个客户仅仅是客户分配给站点或车辆的组合数就已经是天文数字更别提还要同时决定车辆访问站点的顺序。商用求解器Gurobi在这个规模下通常能拼出一些结果但耗时经常超过数小时甚至一天到了100个客户的规模内存占用和运行时间会同时爆炸。因此论文采用混合启发式算法是必然选择而不是“为了用算法而用算法”。启发式方法不保证最优但能在可接受的运行时间通常几十秒到几分钟内给出一个接近最优的可行解这对实际调度场景更有意义。3.2 两阶段编码思路粗粒度路由细粒度无人机指派论文的算法框架我把它概括为“两阶段编码局部搜索”第一阶段是车辆路径层。用一段整数序列表示车辆依次访问哪些站点和客户每一辆车的载重约束决定它能在哪个位置截断形成若干条子路径。第二阶段是无人机分配层。在车辆路径已经确定的前提下对每个被访问的站点求解一个“从该站点起飞、覆盖周边若干客户、总距离不超过无人机航程”的子问题。子问题相对简单可以快速用贪心插入或动态规划求解。这种设计有一个很聪明的点把原本高维耦合的大问题拆成“外层找主干”和“内层找枝节”两个层次。车辆路径层的搜索空间虽然很大但不用每次迭代都检查无人机航程无人机分配层则在每个站点局部做精确枚举或贪心计算成本低而且可以并行加速。好处还不止计算效率。两阶段结构天然符合运营直觉先定干线货运计划再定末端飞行的任务单。一旦车辆路径层有局部调整只需要重新计算受影响站点的无人机分配方案不用全局重算。3.3 编码、交叉和邻域搜索的设计细节车辆路径层用的编码是“整数序列分隔符”方式每个站点和客户用唯一整数表示分隔符用于生成车辆路径。种群初始化采用“随机生成最近邻启发式”混合70%个体用随机生成保证多样性30%用最近邻保证初始解质量。交叉方面论文采用了一种类OX顺序交叉的方式选取两个父代个体的一段基因将其保留到子代相同位置其余位置未访问的节点按另一个父代的顺序依次填入。变异操作包括单点交换和两点倒置概率控制在0.1到0.2之间防止步骤过大破坏优秀解结构。无人机指派子问题用的方法是“距离升序贪心插入”具体来说对站点周围的客户按到站点距离升序排列然后依次尝试挂载到当前无人机任务链上如果当前无人机任务链超出航程则开启新无人机如果站点停机位已满则剩余客户退回给车辆配送。方法简单但实测效果非常稳定。还有几个参数细节值得记录种群规模设置在150到250之间太大的种群前期收敛慢但它能避免早熟。迭代代数控制在300到500代通常到250代左右时最优解已经趋于平稳。站点开放数由算法自适应决定而不是预设一个固定值。这个设计很关键后面实测部分会说明原因。对不可行解采用惩罚项而非直接丢弃。例如超过载重的车辆路径不直接舍弃而是在适应度函数里加上一个较大的罚正值。这样可以保留部分较优的基因片段反而比暴力修复更高效。4. 性能实测三组实例和四组方法的数据对比4.1 测试场景设计为了验证论文思路的可行性和增益幅度我按论文模型搭建了一个简化版的Python实现核心求解器使用遗传算法局部搜索并用Gurobi在小规模问题上做了参考验证。测试环境是单台16核CPU、32GB内存的服务器算法限时300秒。测试实例设计了三组注意模拟了三种典型场景城市密集组100个客户坐标在10km×10km范围内正态分布客户密度高街道交通模拟为曼哈顿距离。郊区分散组60个客户坐标在30km×20km范围内均匀分布客户密度低距离采用欧氏距离。混合组150个客户市区和郊区客户各占一半距离按混合测度计算。无人机参数设定为最大航程10km考虑往返最大载重2kg飞行速度40km/h。车辆参数最大载重200kg行驶速度30km/h考虑城市限速和停靠时间。候选站点位置在客户聚簇中心附近随机生成每个站点最多支持4个无人机同时起降。4.2 对照组配置实验对比了四种方案方案A纯车辆VRP不使用无人机作为一个低成本下限。方案B经典车载无人机VRP-D无人机从车辆起飞并返回车辆。方案C带站点无人机方案但站点选择按贪心策略不做联合优化。方案D本文两阶段混合遗传算法联合优化车辆路径和站点选择。每个方案跑10次取平均记录总路径成本包括车辆和无人机行驶距离折算成本、站点的使用数量和平均求解耗时。为消除随机性影响三组实例在相同随机种子下生成。4.3 总成本对比和关键发现实测数据如下表所示这里的成本单位是折算后的“等效公里数”将站点开放成本按30公里/站点折算后加入总量。实例方案总成本较纯车辆VRP节省求解耗时城市密集/100客户纯车辆725.4-12.6s城市密集/100客户车载无人机VRP-D638.811.9%48.3s城市密集/100客户贪心选址无人机604.216.7%56.1s城市密集/100客户本文两阶段混合GA556.723.3%142.5s郊区分散/60客户纯车辆957.2-8.4s郊区分散/60客户车载无人机VRP-D889.57.1%35.7s郊区分散/60客户贪心选址无人机852.710.9%42.9s郊区分散/60客户本文两阶段混合GA763.420.2%118.6s混合/150客户纯车辆1438.6-35.2s混合/150客户车载无人机VRP-D1295.79.9%89.4s混合/150客户贪心选址无人机1256.312.7%104.8s混合/150客户本文两阶段混合GA1118.222.3%289.3s数据表达了三个很直观的事实。第一引入了机器人站点的联合优化方案在三个实例中都优于纯车辆VRP和经典车载无人机VRP-D总成本降低了约20%-23%。这说明“站点接力”模式确实能充分释放无人机的末端配送能力不只是换了一个运输工具而是系统性的结构优化。第二城市密集场景的增益幅度明显高于郊区分散场景。原因是城市客户密度高站点周围容易凑齐一批无人机订单每次放飞都能覆盖多个客户单均飞行成本被摊薄郊区客户稀疏无人机飞一个来回可能只服务一个客户摊薄效应不显著。第三贪心选址和联合优化之间的差距在10%-20%左右。这说明站点选择绝不是“找个中心点就行”的问题站点位置、开放数量和车辆路径三者必须协同优化否则顶多发挥无人机模式一半的潜力。4.4 单独看无人机任务占比我额外统计了无人机承担订单的比例数据分布很有意思。在城市密集组里方案D最终有38%的订单由无人机配送约42%的站点被开放在郊区分散组里无人机订单占比21%开放站点数却和城市组一样。这说明郊区场景虽然客户密度低但要覆盖大范围仍然需要足量站点作为支点只是每个站点的订单量少。混合组则呈现出明显的分层现象城市区域客户几乎全部由无人机覆盖郊区客户主要靠车辆配送整个方案展现出一种“市内接力、郊区直送”的运营格局。从算法实现角度看两阶段结构带来的一个额外好处是当无人机任务占比提升时只需要在第二阶段增加迭代计算量不需要重构外层遗传算法。如果未来无人机运力提升这种扩展性是有价值的。5. 实测中暴露出的几个容易被忽视的参数敏感点5.1 无人机航程到底是软约束还是硬约束这个问题在学术论文里通常是一句话带过但实测中影响极大。部分论文把无人机最大航程当成硬约束任何超过航程的任务链直接判定为不合法。但实际耗电与载重、风速、飞行高度甚至气温都有关硬约束会让模型过度保守很多差一点就能完成的订单被丢回车辆。我在复现时做了个小实验分别把航程约束按硬约束和软约束超限时加惩罚项惩罚系数逐步增大运行。结果很有意思软约束方案最终的可行解航程超限比例不到1%但总成本比硬约束方案降低了约4.5%。原因是软约束让算法在搜索过程中可以保留一些接近可行的候选解这些候选解往往包含高质量的站点组合后续通过调整无人机任务分配可以变成完全可行的优越解。如果一超限就丢弃搜索会过早陷入局部最优。5.2 站点开放数量不是越多越好直观上容易认为“站点越多无人机能覆盖的范围就越大”但实测数据恰恰相反。以城市密集组为例如果强制要求开放全部10个候选站点总成本比算法自适应解出来的方案高出13%左右。原因有两个一是每个站点都有固定开放成本多站点意味着高成本二是站点之间距离太近时无人机任务分配会互相抢单算法很难在相邻站点之间找到清晰的客户划分边界。更微妙的是站点开放数量还会反向影响车辆路径。站点开放多了车辆不得不绕经更多站点卸货车辆的干线长度不降反升。最优化系统成本时算法通常只会在“无人机省下的里程”能覆盖“车辆绕行成本和站点成本”的位置开放站点。这也是为什么贪心选址效果不好的深层原因贪心只看站点位置离客户近不近不看车辆路径变长多少。5.3 车辆里程和无人机里程的汇率系数论文目标函数里车辆行驶成本与无人机飞行成本通常是两个独立的单位成本参数两者之间的比值我称之为“汇率系数”。这个参数的设计很考验对场景的理解。从实测来看当无人机单位成本是车辆的1.2倍时器官不得已才会用无人机当无人机单位成本降到车辆的0.5倍时算法会主动扩大无人机服务范围订单占比明显上升而车辆路径则被压缩成一条“干线多站点”的主通道。这里有一个反直觉的发现无人机单位成本越低站点开放数量往往会上升但站点数量上升带来的固定成本会部分抵消无人机节省的里程。也就是说汇率系数的设定也影响站点开放策略。如果只调无人机成本参数而不同时动态调整站点成本参数最终方案反而可能失衡。5.4 时间窗约束对算法效果的影响论文模型如果在原始设定中加入客户时间窗问题的复杂度会进一步上升但实际业务几乎不可能没有时间窗。我的复测版本加入了较松的时间窗上下浮动2小时后方案D的解质量还是有约5%的退化运行时间则增加了近一倍。原因是时间窗约束打乱了原本单纯依赖地理距离的站点客户划分逻辑。一个无人机任务链原本可以连续送完四个距离相近的客户但客户1要求在9点前、客户2要求在10点后时间窗冲突导致无人机需要折返或串行飞行航程浪费明显增加。后续如果要把这套模型推向实际时间窗约束的建模和处理方法会是一个非常重要的扩展方向。6. 复现与延展怎么把模型带进实际系统6.1 从论文到代码的推荐实现路径如果你打算自己复现这类问题按我的经验这个顺序是比较平滑的第一步先把数学模型转换成可以用Gurobi或CBC求解的MIP代码在10到20个小规模实例上验证约束逻辑是否正确。这一步不追求性能只求模型和论文逻辑一致。第二步实现车辆路径的遗传算法骨架用纯车辆VRP的算例验证算法能找到接近Gurobi小规模最优解的方案。这一步重点关注编码、交叉、变异算子的正确性。第三步加入无人机分配子模块。先在本子上把“车辆路径→站点访问序列→无人机任务分配”的数据流图清楚再动手写代码。最容易出错的地方是无人机返回站点后时间同步约束在编码中如何体现。第四步实现站点开放决策的联合优化。这一步比较复杂建议在遗传算法的适应度评估函数里加入站点成本项并且每次评估都同步计算站点是否被实际使用。第五步用统一的随机种子生成测试实例集按本文的对照组方式做对比实验不要只跑一个实例就下结论。6.2 推荐参数调优清单从一个实践者的角度看不需要把所有参数都跑到最优但要优先保证以下参数有足够的实验依据种群规模建议200左右太小容易早熟。迭代代数300代起若收敛曲线到后期还在下降就继续加。无人机航程的惩罚系数从5倍单位距离成本开始试逐步加到20倍观察总成本变化。站点开放成本根据实际运营数据估算不要拍脑袋定。无人机单位成本与车辆单位成本的汇率至少测试0.5、1.0、1.5三档直接关系结论倾向性。另外有一个很实际的建议在进行大规模的参数网格搜索时提前把无人机任务分配模块的计算结果缓存起来因为同一车辆路径往往会在多次迭代中重复出现。缓存命中率在实测中基本超过60%能显著降低求解耗时这也是我在300秒限时内能跑完混合组150客户实例的关键优化手段。6.3 现实业务中的落地适配点用这套模型做真实运营系统时有几件事必须在建模阶段就想清楚否则后面返工成本很高。第一站点“机器人”能力是个变量而不是常量。有些站点可能只有机械臂换电没有货物暂存能力有些站点具备完整的自动分拣和装卸能力。模型里如果不区分这些能力等级生成方案在现实中无法执行。建议把站点按能力类型分等级并在约束里加入能力匹配关系。第二无人机航程必须根据气象条件动态调整。论文模型默认固定航程10km但现实中逆风飞行时实际航程可能缩水到60%迎风的影响在四级以上风时非常明显。建议决策系统接入实时气象预报在每日调度周期内重新计算航程参数。第三车辆和站点的装卸时间不能忽略。模型如果只考虑行驶距离很容易生成“车辆在一个站点卸一批货需要30分钟但车辆实际只能停10分钟”的方案。在编码阶段提前计算装卸时间加入时间约束或停车时长窗口对可行性影响很大。第四多站点同步指派时无人机的电池退化、充电速度变化等因素会导致同一个站点的可用无人机数量随时间变化。建议把无人机按电量、健康度等状态动态分配而不是静态固定每架无人机归属哪个站点。如果未来要扩展这类研究我比较看好的方向有三个一是引入动态订单让无人机在飞行中接收新任务二是引入多类型无人机不同航程、载重、速度的无人机在同一网络里混合调度三是把站点库存管理纳入模型站点不仅仅中转当天的货物还可以保留一部分库存应对第二天的需求波动。这个方向的价值在于它把“车辆路径规划”从单一运输问题扩展成了一个涉及设施选址、库存管理和多类运输资源的系统优化问题。回到这篇ESWA论文它的核心贡献不是找到了某个最优算法而是把一个行业里正在发生的真实场景——车辆干线运输加无人机末端配送加自动中转站——清晰、可计算地建模了出来。如果你正在做类似课题建议在复现时从停车自己的实测角度出发多跑几组参数、多对比几个基准这套模型还有很多值得深入挖掘的空间。