车辆路径问题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
车辆路径问题(VRP)一般定义为:对一系列装货点和卸货点,组织适当的行车线路,使车辆有序地通过它们,在满足一定的约束条件(如货物需求量、发送量、交发货时间、车辆容量限制、行驶里程限制、时间限制等)下,达到一定问题的目标(如路程最短、费用最少、时间尽量少、使用车辆数尽量少等)。
目前有关VRP的研究已经可以表示(如图1)为:给定一个或多个中心点(中心仓库,central depot)、一个车辆集合和一个顾客集合,车辆和顾客各有自己的属性,每辆车都有容量,所装载货物不能超过它的容量。
起初车辆都在中心点,顾客在空间任意分布,车把货物从车库运送到每一个顾客(或从每个顾客处把货物运到车库),要求满足顾客的需求,车辆最后返回车库,每个顾客只能被服务一次,怎样才能使运输费用最小。
而顾客的需求或已知、或随机、或以时间规律变化。
图1 VRP示意图
一、在VRP中,最常见的约束条件有:
(1) 容量约束:任意车辆路径的总重量不能超过该车辆的能力负
荷。
引出带容量约束的车辆路径问题(CapacitatedVehicle Routing Problem,CVRP)。
(2) 优先约束:引出优先约束车辆路径问题(VehicleRouting Problem with precedence Constraints,VRPPC)。
(3) 车型约束:引出多车型车辆路径问题(Mixed/Heterogeneous Fleet Vehicle Routing Problem,MFVRP/ HFVRP)。
(4) 时间窗约束:包括硬时间窗(Hard Time windows)和软时间窗(Soft Time windows) 约束。
引出带时间窗(包括硬时间窗和软时间窗)的车辆路径问题(V ehicle Routing Problem withTime windows,VRPTW)。
(5) 相容性约束:引出相容性约束车辆路径问题(VehicleRouting Problem with Compatibility Constraints,VRPCC)。
(6) 随机需求:引出随机需求车辆路径问题(VehicleRouting Problem with Stochastic Demand,VRPSD)。
(7) 开路:引出开路车辆路径问题(Open Vehicle RoutingProblem)。
(8) 多运输中心:引出多运输中心的车辆路径问题(Multi-Depot Vehicle Routing Problem)。
(9) 回程运输:引出带回程运输的车辆路径问题(VehicleRouting Problem with Backhauls)。
(10) 最后时间期限:引出带最后时间期限的车辆路径问题(Vehicle Routing Problem with Time Deadlines)。
(11) 车速随时间变化:引出车速随时间变化的车辆路径问题
(Time -Dependent Vehicle Routing Problem )。
二、CVRP 问题描述及其数学模型
CVRP 的描述:设某中心车场有k 辆车,每辆配送车的最大载重量Q ,需要对n 个客户(节点)进行运输配送,每辆车从中心车场出发给若干个客户送货,最终回到中心车场,客户点i 的货物需求量是q i (i =1,2,…,n ),且q i <Q 。
记配送中心编号为0,各客户编号为i (i =1,2 ,…,n ), c ij 表示客户i 到客户j 的距离。
求满足车辆数最小,车辆行驶总路程最短的运送方案。
定义变量如下:
建立此问题的数学模型:
minz = c ij x ijk (2.2)
约束条件:
y ki =1 (i =0,1,…,n ) (2.3)
x ijk =y kj (j =0,1,…,n k =1,2,…,m ) (2.4) x jik =y kj (j =0,1,…,n k =1,2,…,m ) (2.5)
q i y ki ≤Q (k =1,2,…,m ) (2.6)
三、车辆路径问题算法综述
目前,求解车辆路径问题的方法非常多,
基本上可以分为精确算
k ∑i
∑i ∑i ∑
j ∑i
∑k
∑
法和启发式算法2大类。
3.1 精确算法
精确算法是指可求出其最优解的算法,主要运用线性规划、整数规划、非线性规划等数学规划技术来描述物流系统的数量关系,以便求得最优决策。
精确算法主要有:
分枝定界法(Branch and Bound Approach)
割平面法(Cutting Planes Approach)
网络流算法(Network Flow Approach)
动态规划算法(Dynamic Programming Approach) 总的说来,精确性算法基于严格的数学手段,在可以求解的情况下,其解通常要优于人工智能算法。
但由于引入严格的数学方法,计算量一般随问题规模的增大呈指数增长,因而无法避开指数爆炸问题,从而使该类算法只能有效求解中小规模的确定性VRP,并且通常这些算法都是针对某一特定问题设计的,适用能力较差,因此在实际中其应用范围很有限。
3.2 启发式算法
由于车辆路径优化问题是NP难题,高效的精确算法存在的可能性不大(除非P=NP),所以寻找近似算法是必要和现实的,为此专家主要把精力花在构造高质量的启发式算法上。
启发式算法是在状态空间中的改进搜索算法,它对每一个搜索的位置进行评价,得到最好的位
置,再从这个位置进行搜索直到目标。
在启发式搜索中,对位置的估价十分重要,采用不同的估价可以有不同的效果。
目前已提出的启发式算法较多,分类也相当多,按Van Breedam的分类法,主要的启发式算法有以下几类:构造算法、两阶段法、智能化算法。
3.2.1 构造算法(Constructive Algorithm)
这类方法的基本思想是:根据一些准则,每一次将一个不在线路上的点增加进线路,直到所有点都被安排进线路为止。
该类算法的每一步把当前的线路构形(很可能是不可行的)跟另外的构形(也可能是不可行的)进行比较并加以改进,后者或是根据某个判别函数(例如总费用)会产生最大限度的节约的构形,或是以最小代价把一个不在当前构形上的需求对象插入进来的构形,最后得到一个较好的可行构形。
这类算法中中最著名的是Clarke和Wright在1964年提出的节约算法。
构造算法最早提出来解决旅行商问题,这些方法一般速度快,也很灵活,但这类方法有时找到的解离最优解差得很远。
3.2.2 两阶段法(Two-phase Algorithm)
学者们通过对构造算法的研究,认为由构造算法求得的解可以被进一步改进,为此提出了两阶段法。
第一阶段得到一可行解,第二阶段通过对点的调整,在始终保持解可行的情况下,力图向最优目标靠近,每一步都产生另一个可行解以代替原来的解,使目标函数值得以改进,一直继续到不能再改进目标函数值为止。
Gillet和Miller于1974
年提出的sweep算法,Christofides、Mingozzi和Toth的算法以及Fisher 和Jaikumar的算法都属于两阶段法。
一般第一阶段常用构造算法,在第二阶段常用的改进技术有2-opt(Lin,1965),3-opt(Lin Kernighan,1973)和Or-opt(Or,1976)交换法,这是一种在解的邻域中搜索,对初始解进行某种程度优化的算法,以改进初始解。
一些基于数学规划的算法也属于两阶段法,把问题直接描述成一个数学规划问题,根据其模型的特殊构形,应用一定的技术(如分解)进行划分,进而求解己被广泛研究过的子问题(Fisher和Jaikumar,1981)。
在两阶段法求解过程中,常常采用交互式优化技术,把人的主观能动作用结合到问题的求解过程中,其主要思想是:有经验的决策者具有对结果和参数的某种判断能力,并且根据知识直感,把主观的估计加到优化模型中去。
这样做通常会增加模型最终实现并被采用的可能性。
此方法是目前成果最丰富、应用最多的一类方法。
每一种方法讨论的情况不尽一致,适用范围也不完全相同。
3.2.3 智能化算法(Intelligent Algorithm)
这类算法以启发式准则来代替精确算法中的决策准则,以缩小解搜索的空间。
总体来看,尽管启发式算法能够在有限的时间内求出质量较高的解,但由于其搜索解空间的能力有所限制,因此经常无法达到预期的要求。
20世纪90年代以来,由于人工智能方法在解决组合优化问题中
的强大功能,不少学者开始将人工智能引入车辆路线问题的求解中,并构造了大量的基于人工智能的启发式算法(智能化启发式算法)。
智能化启发式算法从本质上讲仍然属于启发式算法,其基本思想是从一初始解开始,通过对当前的解进行反复地局部扰乱(Perturbations)以达到较好的解。
目前,最常见的智能化启发式算法包括模拟退火算法(Simulated Annealing)、禁忌搜索算法(Tabu Search)、遗传算法(Genetic Algorithm)、蚁群算法(Ant Colony)和神经网络(Neutral Networks)、粒子群算法(Particle Swarm Optimization,PSO)方法等。