物流与优化

车辆路径问题 (VRP) 详解

旅行商问题处理的是一个司机。而车辆路径问题处理的是整个车队。探索驱动现代供应链、联邦快递交付和 Uber 路线规划的算法。

阅读需要 18 分钟 更新时间:2026年6月 进阶水平
LGT
Learn Graph Theory Team
Expert Operations Research Engineers

1. 什么是车辆路径问题?

车辆路径问题 (Vehicle Routing Problem, VRP) 是一个组合优化和整数规划问题,它提出:“为了向给定的客户群送货,车队需要行驶的最佳路线集是什么?”

VRP 于 1959 年由 George Dantzig 和 John Ramser 引入,是运输、配送和物流领域的核心问题。其目标通常是最小化总路线成本(可能意味着最小化距离、时间、燃料或使用的车辆数量),同时确保每位客户都被准确访问一次。

在标准的 VRP 中:

2. VRP 与 TSP:理解两者的区别

如果你熟悉图论,VRP 听起来非常像旅行商问题 (TSP)。事实上,VRP 是 TSP 的一种推广。

核心区别在于参与者的数量:

因为 TSP 已经是 NP 困难问题(在大规模下计算精确解是难以处理的),所以 VRP 也是 NP 困难的,但由于增加了聚类的维度,因此要复杂得多。

3. VRP 的常见变体

基本的 VRP 假设车辆容量无限且没有时间限制。在现实世界中,联邦快递卡车不能运载无限量的包裹。这导致了 VRP 几种高度实用的变体的产生。

带容量约束的车辆路径问题 (CVRP)

在 CVRP 中,每辆车都有最大载重量(例如,一辆卡车可以装载 500 磅),每个客户都有特定的需求(例如,客户 A 需要 50 磅的货物)。一辆车的路线必须在其路线上的需求总和超过其容量之前结束,并且它必须返回车厂。这是运筹学中研究最普遍的变体。

带时间窗的车辆路径问题 (VRPTW)

在 VRPTW 中,客户要求在特定的时间范围内交货。例如,一家餐厅可能需要在上午 8:00 到上午 10:00 之间收到食材。如果卡车在早上 7:30 到达,它必须等待。如果它在上午 10:15 到达,则送货失败。这给路由逻辑增加了严苛的时间限制。

其他值得注意的变体

交互式 VRP 模拟器

观察车队在城市网格中导航。添加容量限制,并观察算法如何迫使卡车在空间不足时返回车厂。

启动 VRP 可视化工具

4. 如何解决 VRP?

因为 VRP 是 NP 困难的,计算数百名客户的绝对完美的路线集实际上是不可能的。相反,物流公司依靠两阶段的方法来快速找到“近似最优”的路线。

第一阶段:先聚类,后路由

算法也使用了最直观的人类方法。首先,根据地理位置的接近程度和车辆容量将客户分组成簇(Cluster)。一旦您为特定的卡车分配了一组客户,您就可以将该组客户视为一个独立的旅行商问题并求解最短路径。

第二阶段:元启发式算法

一旦建立了初始路线集,算法就会试图不断地改进它们。这些被称为元启发式算法

5. Clarke 和 Wright 节约算法

如果您想编写一个 VRP 求解器,最好的起点是 1964 年开发的 Clarke 和 Wright 节约算法。它仍然是带容量约束的 VRP (CVRP) 最著名和广泛实施的启发式算法之一。

其逻辑基于“节约”的概念。

  1. 从最坏的情况开始: 假设您有 10 个客户。您从车厂派出 10 辆单独的卡车。卡车 1 去往客户 1 并返回。卡车 2 去往客户 2 并返回,等等。
  2. 计算节约: 如果您将路线结合起来(车厂 -> 客户 1 -> 客户 2 -> 车厂),与发送两辆单独的卡车相比,您节省了多少距离?您为每一对可能的客户计算这个“节约”值。
  3. 排序和合并: 根据最高的节约值对对进行排序。然后,您将路线激进地合并在一起,从最大的节约开始,前提是合并的路线不超过车辆的最大容量

该算法以 O(n^2 log n) 的时间运行,几乎可以立即产生高效的路线,作为元启发式算法可以进一步改进的基线。

6. 实际应用

VRP 优化提高 5% 对于大公司而言意味着数百万美元的节省。

常见问题

旅行商问题 (TSP) 与 车辆路径问题 (VRP) 有什么区别?

TSP 是为一个旅行者寻找一条遍历所有城市的单一路径;而 VRP 则将其推广为,为多辆车(车队)寻找从中央仓库出发服务所有客户的最优路径集合。

什么是带容量限制的车辆路径问题 (CVRP)?

CVRP 是 VRP 的一种变体,其中每辆车都有最大载重容量限制。一旦达到容量上限,车辆必须返回仓库重新装货。

现代物流和快递公司是如何求解 VRP 的?

由于 VRP 是 NP-难问题,物流公司通常采用元启发式算法(如禁忌搜索、遗传算法、模拟退火等)结合地图路由软件,在几分钟内计算出可行的路线。

进一步探索

规划您自己的车队

停止理论化,开始优化。创建一个车厂,在地图上放置 50 个客户,为三辆卡车分配容量限制,然后观察 Clarke-Wright 算法实时计算出最佳路线。

启动 VRP 可视化工具