模拟退火算法节约里程法求解VRP问题Matlab程序
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
由此不难看出,旅行商问题(Traveling Saleman Problem,TSP)是 VRP 的 特例,由于 TSP 问题是 NP 难题,因此,VRP 也属于 NP 难题。
基本的 VRP 问题可以描述为:设有一场站(depot),共有 M 辆货车,车辆容 量为 Q,有 N 位顾客(customer),每位顾客有其需求量 D。车辆从场站出发对客 户进行配送服务最后返回场站,要求所有顾客都被配送,每位顾客一次配送完成, 且不能违反车辆容量的限制,目的是所有车辆路线的总距离最小。车辆路线的实 际问题包括配送中心配送、公共汽车路线制定、信件和报纸投递、航空和铁路时 间表安排、工业废品收集等。
第五章 模拟退火算法求解 VRP 问题
讲解标准的车辆路径问题以及节约里程法、模拟退火算法求解 VRP 问题的 Matlab 程序。 Created by Jiannywang@163.com, 20180727
5.1 车辆路径问题(Vehicle Routing Problem,VRP)
车辆路线问题(VRP)最早是由 Dantzig 和 Ramser 于 1959 年首次提出,它 是指一定数量的客户,各自有不同数量的货物需求,配送中心向客户提供货物, 由一个车队负责分送货物,组织适当的行车路线,目标是使得客户的需求得到满 足,并能在一定的约束下,达到诸如路程最短、成本最小、耗费时间最少等目的。
目录
第五章 模拟退火算法求解 VRP 问题...........................................................................................1 5.1 车辆路径问题(Vehicle Routing Problem,VRP) .......................................................... 1 5.2 节约里程法(C-W)及其求解思路................................................................................1 5.3 节约里程法 Matlab 程序实现 ..........................................................................................6 5.4 节约历程法算例求解 ..................................................................................................... 14 (1)算例 E-n22-k4,最优解 375 .......................................................................................14 (2)算例 E-n23-k3,最优解 569 .......................................................................................15 (3)算例 E-n101-k14,最优解 1077 .................................................................................16 5.5 模拟退火法求解 VRP 问题的 Matlab 程序 ..................................................................19
2
的运输成本(或运输里程), Da 为(a)图的运输成本, Db 为(b)图的运输成 本, Sij 为(b)图方案要比(a)图方案节约运输成本(里程),则有下式成立:
基于三角不等式原理,只要将两个节点分别运输组合成一次运输,节约量 Sij
必然大于零。当物品配送的客户数量较多,地理分布没有特定规律时,如何根据
C-W 算法进行成本节约的逻辑可以从图 2 中两种运输方案的对比来体现。
图 5.2 C-W 节约算法的基本逻辑 图 5.2(a)中安排了两辆车进行货物的运输,即一辆车从 0 将 i 所需的物品 运送至 i 后再返回 0,另一辆车从 0 将 j 所需的物品运送至 j 后再返回 0;图 5.2 (b)中安排一辆车将 i 和 j 所需的物品一次性运送至 i 和 j,即该辆车先从 0 将 i 和 j 所需的物品全部装上车,然后先行驶至 i 处将 i 所需的物品卸载下来,然后 继续行驶至 j 处将 j 所需的物品卸载下来,最后返回 0。另 cij 为从节点 i 至节点 j
1Байду номын сангаас
(2) 车辆容量都是相同的,车辆数量足够多; (3) 产品数量也是产品的容量;
本算例客户相互间距离和布局如图 5.1 所示。
3
20
52
2
27
4
60
43
65
89
49 40
43 65 50
72 53
67
15
6
5
53
74
1
33
50
30
0
图 5.1 VRP 算例节点距离和布局图
5.2.2 C‐W 节约算法简介
C-W 节约算法是有 Clarke 和 Wright 在 1964 年提出的一种求解经典 CVRP 的启发式算法(G.Clarke and W.Wright 1964),作为相对较早提出的一种启发式算 法,虽然 C-W 节约算法一般情况下不能获取 CVRP 的最优解,但是却可以很容 易的获取相对比较好的可行解,而且求解思路简单明了。
5.2 节约里程法(C-W)及其求解思路
5.2.1 算法说明算例
假设公司具有特定容量的车辆若干,需要从配送中心向 6 个客户点配送顾客 需求数量的产品,优化目标是安排几辆车以及每辆车的行车路径,使得在满足全 部顾客需求的基础上运输里程最短。其中: (1) 6 个需求节点需求量依次为:28、35、30、40、45、25,车辆容量为 100。
基本的 VRP 问题可以描述为:设有一场站(depot),共有 M 辆货车,车辆容 量为 Q,有 N 位顾客(customer),每位顾客有其需求量 D。车辆从场站出发对客 户进行配送服务最后返回场站,要求所有顾客都被配送,每位顾客一次配送完成, 且不能违反车辆容量的限制,目的是所有车辆路线的总距离最小。车辆路线的实 际问题包括配送中心配送、公共汽车路线制定、信件和报纸投递、航空和铁路时 间表安排、工业废品收集等。
第五章 模拟退火算法求解 VRP 问题
讲解标准的车辆路径问题以及节约里程法、模拟退火算法求解 VRP 问题的 Matlab 程序。 Created by Jiannywang@163.com, 20180727
5.1 车辆路径问题(Vehicle Routing Problem,VRP)
车辆路线问题(VRP)最早是由 Dantzig 和 Ramser 于 1959 年首次提出,它 是指一定数量的客户,各自有不同数量的货物需求,配送中心向客户提供货物, 由一个车队负责分送货物,组织适当的行车路线,目标是使得客户的需求得到满 足,并能在一定的约束下,达到诸如路程最短、成本最小、耗费时间最少等目的。
目录
第五章 模拟退火算法求解 VRP 问题...........................................................................................1 5.1 车辆路径问题(Vehicle Routing Problem,VRP) .......................................................... 1 5.2 节约里程法(C-W)及其求解思路................................................................................1 5.3 节约里程法 Matlab 程序实现 ..........................................................................................6 5.4 节约历程法算例求解 ..................................................................................................... 14 (1)算例 E-n22-k4,最优解 375 .......................................................................................14 (2)算例 E-n23-k3,最优解 569 .......................................................................................15 (3)算例 E-n101-k14,最优解 1077 .................................................................................16 5.5 模拟退火法求解 VRP 问题的 Matlab 程序 ..................................................................19
2
的运输成本(或运输里程), Da 为(a)图的运输成本, Db 为(b)图的运输成 本, Sij 为(b)图方案要比(a)图方案节约运输成本(里程),则有下式成立:
基于三角不等式原理,只要将两个节点分别运输组合成一次运输,节约量 Sij
必然大于零。当物品配送的客户数量较多,地理分布没有特定规律时,如何根据
C-W 算法进行成本节约的逻辑可以从图 2 中两种运输方案的对比来体现。
图 5.2 C-W 节约算法的基本逻辑 图 5.2(a)中安排了两辆车进行货物的运输,即一辆车从 0 将 i 所需的物品 运送至 i 后再返回 0,另一辆车从 0 将 j 所需的物品运送至 j 后再返回 0;图 5.2 (b)中安排一辆车将 i 和 j 所需的物品一次性运送至 i 和 j,即该辆车先从 0 将 i 和 j 所需的物品全部装上车,然后先行驶至 i 处将 i 所需的物品卸载下来,然后 继续行驶至 j 处将 j 所需的物品卸载下来,最后返回 0。另 cij 为从节点 i 至节点 j
1Байду номын сангаас
(2) 车辆容量都是相同的,车辆数量足够多; (3) 产品数量也是产品的容量;
本算例客户相互间距离和布局如图 5.1 所示。
3
20
52
2
27
4
60
43
65
89
49 40
43 65 50
72 53
67
15
6
5
53
74
1
33
50
30
0
图 5.1 VRP 算例节点距离和布局图
5.2.2 C‐W 节约算法简介
C-W 节约算法是有 Clarke 和 Wright 在 1964 年提出的一种求解经典 CVRP 的启发式算法(G.Clarke and W.Wright 1964),作为相对较早提出的一种启发式算 法,虽然 C-W 节约算法一般情况下不能获取 CVRP 的最优解,但是却可以很容 易的获取相对比较好的可行解,而且求解思路简单明了。
5.2 节约里程法(C-W)及其求解思路
5.2.1 算法说明算例
假设公司具有特定容量的车辆若干,需要从配送中心向 6 个客户点配送顾客 需求数量的产品,优化目标是安排几辆车以及每辆车的行车路径,使得在满足全 部顾客需求的基础上运输里程最短。其中: (1) 6 个需求节点需求量依次为:28、35、30、40、45、25,车辆容量为 100。