客户承诺不能只用公里衡量
企业需要用一辆车完成三次配送。一个客户有明确截止时间,不同客户的卸货耗时也不同。如果只要求 AI 规划器给出最短路线,它可能返回距离最优却无法履约的方案。问题未必在算法,也可能是我们定义错了问题。
把截止时间写成约束,而不是希望最小化公里数自然满足它,会带来什么区别?我们构造可完整枚举的小案例,检查三位客户的全部六种顺序。不使用真实交通、地图引擎或 EL-AI 客户数据。合成案例用于理解目标与可行性如何改变企业决策。
假设、坐标与时钟
仓库 D 位于 (0,0) 公里,A 为 (1,0),B 为 (4,0),C 为 (4,3)。距离采用欧氏直线距离,不代表道路。假设恒定速度为 1 公里/分钟,即 60 公里/小时。没有等待、交通或道路限制。零分钟出发,每位客户访问一次,最后返回仓库。
A 的服务时间为 10 分钟,B、C 各 1 分钟。B 要求最迟在第 6 分钟到达,包含端点,约束不是卸货完成时间。每位客户接收一箱货,开始时全部装车,车辆容量为三箱。服务时间推进时钟但不增加公里数。明确这些细节,才能避免混用单位或忘记停车期间的耗时。
把路线转换为时间表的递推式
d(i, j) 表示公里距离,v 为公里/分钟速度,s_i 为分钟服务时间,a_i 为到达分钟数。到达 i 后先完成服务,再驶向 j,因此下次到达时间等于上次到达时间加服务和行驶时间。起点 a_D=0、s_D=0。递推虽简单,却说明了为何服务总时间相同,客户顺序仍会改变各点到达时间。
pi 是客户顺序,L 为总长度,Q 为容量。只在可行路线中进行最小化,不能在没有物理意义的评分中把“分钟”从“公里”里直接减去。可以设置迟到惩罚目标,但必须给定每分钟成本,并明确延误是否可以协商。本例采用硬约束。
两条近似等长路线,不同结果
D-A-B-C-D 距离为 1+3+3+5=12 公里。第 1 分钟到达 A,第 11 分钟完成服务,第 14 分钟到达 B,迟到 8 分钟。反向也不够:D-C-B-A-D 同为 12 公里,但第 5 分钟到 C,第 6 分钟完成服务,第 9 分钟到 B。两个最短距离方案均违反截止时间。
D-B-C-A-D 在第 4 分钟到 B,满足限制。服务一分钟后,第 8 分钟到 C,再服务一分钟,经 √18 公里到 A,约在第 13.2426 分钟到达。服务十分钟,再返回一公里,约在第 24.2426 分钟结束。总距离为 8+√18≈12.2426 公里。多行驶约 0.2426 公里满足了要求,但整个任务并没有比第 24 分钟结束的 12 公里方案更早完成。
| 顺序 | 距离 公里 | B 到达 分钟 | 结束 分钟 |
|---|---|---|---|
| ABC | 12.0000 | 14.0000 | 24.0000 |
| ACB | 12.2426 | 19.2426 | 24.2426 |
| BAC | 16.2426 | 4.0000 | 28.2426 |
| BCA | 12.2426 | 4.0000 | 24.2426 |
| CAB | 16.2426 | 23.2426 | 28.2426 |
| CBA | 12.0000 | 9.0000 | 24.0000 |
每行均隐含从 D 出发并返回 D。表格仅为阅读方便保留四位小数,代码保存完整结果。只有 BAC、BCA 满足 B 的到达限制,其中 BCA 最短。全部六个允许方案均已评估,因此它是该有限模型的最优解,而不只是启发式找到的最好解,却不能证明真实城市中的最优性。

假设改变答案
代码还进行敏感性检查:A 服务时间取 0、1、2、5、10 分钟,B 截止时间取 4、6、10、14 分钟。这是重新计算而非预测。例如 A 不耗服务时间且截止为 6 时,ABC 在第 4 分钟到 B,变得可行;A 服务十分钟而截止放宽到 14 时,ABC 也重新可行,公里数并未改变。卸货耗时不是优化之后再补充的细节。
容量也可能让可行集合为空。车辆只能装两箱,却必须一次出发装下三箱,那么六条路线都不可行。调整顺序不能创造空间。代码验证了这一点,不编造解决方案;补货、多次行程或增加车辆都属于需要重新建模的问题,本文没有求解。“这些假设下无解”本身就是有信息的结果。
从可核对的小模型到实际运营
n 位客户需要枚举 n! 个顺序,每个直接求值约需 n 次操作。三个客户便于核对,但规模增大后不可行。专用求解器、启发式或学习方法可以处理更大问题,前提是采用相同的时间、容量和目标契约。AI 可以估计行驶时间,但预测不能代替约束验证,还会引入不确定性。本文未比较求解器或训练交通模型。
已阅读 OR-Tools 关于带时间窗车辆路径问题的一手指南,包括数据、时间回调及时间维度约束部分。它展示了如何区分行驶成本与允许时间窗;本例既不复制其矩阵,也不执行 OR-Tools。实际运营需要道路网络、验证过的服务时间、装载规则、容差及评估协议。文章不能证明 EL-AI 已部署物流规划器或为客户实现节约。
答案:只在可接受方案中优化
最短路线并非绝对错误,而是解决了对企业而言不完整的目标。本例将 12 公里增加到约 12.2426 公里,满足 B 的时限,却没有缩短整个行程,也不证明普遍经济收益。应先让客户承诺可测量,把它写成约束,再在可接受方案中最小化距离。评价规划器是否智能之前,要先检查交给它的究竟是什么问题。
来源与复现
Google OR-Tools — Vehicle Routing Problem with Time Windows.
import math
points={'D':(0,0),'A':(1,0),'B':(4,0),'C':(4,3)}
service={'D':0,'A':10,'B':1,'C':1}
for order in ['ABC','BCA']:
time=distance=0.0;current='D';arrivals={}
for node in [*order,'D']:
leg=math.dist(points[current],points[node])
distance+=leg;time+=leg # synthetic speed: 1 km/min
arrivals[node]=time;time+=service[node];current=node
print(order,distance,arrivals['B'],time)
代码、数据与说明 · JSON. 教学计算使用 Python 3.14.0,图使用 Matplotlib 3.11.2。分析由 AI 辅助,不声称经过同行评审或人工审核。原创 ImageGen 封面仅作示意,不记录 EL-AI 人员、场所或实际安装。来源查阅于 2026 年 10 月 21 日。

