车辆路径问题

  • 格式:docx
  • 大小:78.87 KB
  • 文档页数:4

车辆路径问题

一、车辆路径问题描述和建模

1. 车辆路径问题

车辆路径问题(Vehicle Routing Problem, VRP ),主要研究满足约束条件的最优车辆使用方案以及最优化车辆路径方案。

定义:设G={V,E}是一个完备的无向图,其中V={0,1,2…n}为节点集,其中0表示车场。V ,={1,2,…n}表示顾客点集。A={(i,j),I,j ∈V,i ≠j}为边集。一对具有相同装载能力Q 的车辆从车场点对顾客点进行配送服务。每个顾客点有一个固定的需求q i 和固定的服务时间δi 。每条边(i,j )赋有一个权重,表示旅行距离或者旅行费用c ij 。

标准车辆路径问题的优化目标为:确定一个具有最小车辆数和对应的最小旅行距离或者费用的路线集,其满足下列约束条件:

⑴每一条车辆路线开始于车场点,并且于车场点约束;

⑵每个顾客点仅能被一辆车服务一次

⑶每一条车辆路线总的顾客点的需求不超过车辆的装载能力Q

⑷每一条车辆路线满足一定的边约束,比如持续时间约束和时间窗约束等。

2.标准车辆路径的数学模型:

对于车辆路径问题定义如下的符号:

c ij :表示顾客点或者顾客点和车场之间的旅行费用等

d ij :车辆路径问题中,两个节点间的空间距离。

Q :车辆的最大装载能力

d i :顾客点i 的需求。

δi :顾客点i 的车辆服务时间

m:服务车辆数,标准车辆路径问题中假设所有的车辆都是同型的。

R :车辆集,R={1,2….,m}

R i :车辆路线,R i ={0,i 1,…i m ,0},i 1,…i m ?V ,,i ?R 。

一般车辆路径问题具有层次目标函数,最小化车辆数和最小化车辆旅行费用,在文献中一般以车辆数作为首要优化目标函数,在此基础上使得对应的车辆旅行费用最小,下面给出标准车辆路径问题的数学模型。

下面给出标准车辆路径问题的数学模型。

对于每一条弧(I,j ),定义如下变量:

x ijv = 1 若车辆v 从顾客i 行驶到顾客点j

0 否则

y iv = 1 顾客点i 的需求由车辆v 来完成0 否则

车辆路径问题的数学模型可以表述为:

minF x =M x 0iv m i=1n i=1+ x ijv m v=1n j=0n i=0.c ij (2.1)

x ijv n i=0m v=1≥1 ?j ∈V , (2.2)

x ipv n i=0? x pjv =0 n j=0?p ∈V,v ∈R (2.3)

y iv m v=1=1 ?i ∈V , (2.4)

d i n i=1y iv ≤Q ?v ∈R (2.5)

y iv = x ijv n i=1 ?j ∈V ,,v ∈R (2.6)

式中,F x 表示目标函数,M 为一个无穷大的整数,通过在目标函数中引入参数M ,能够保证算法在求解车辆路径问题时以车辆数为第一优化目标,以车辆旅行费用作为第二优化目标,也就是一个具有较少车辆数的解比一个具有较大车辆数但是较小车辆旅行距离的解好。约束条件(2.2)表示每个顾客点至少被车辆服务一次;约束(2.3)为车流约束,它要求一辆车到达一个顶点(车场或者顾客点)完成服务后必须离开这个顶点;约束条件(2.4)表示顾客点i 只能由一辆车来服务。约束条件(2.5)为车辆能力约束,它表示车辆v 服务的路线上的顾客点的需求量之和不能大于车辆的装载能力Q;约束条件(2.6)表示顾客点j 只能由来自服务点i 的所有车辆中的一辆车来服务。

车辆路径问题属于NP-hard 问题,当顾客点数量大于50个时,用精确算法不能求出算法的最优解。相反利用问题特定信息或自然隐喻在中等计算时间内的获得车辆路径问题的次优解或满意解得启发式算法则成为研究的重点。下面介绍一种常用的启发式算法:遗传算法

3.遗传算法基本原理和步骤

遗传算法(Genetic Algorithm, GA ),是一类以达尔文自然进化论与遗传变异理论为基础的求解复杂全局优化问题的仿生型算法,它借鉴生物界自然选择和自然遗传机制,以概率论为基础,在解的空间中进行随机化搜索,最终找到问题的最优解。

遗传算法的基本步骤为:从一个具有M 个体的初始种群出发,不断循环的执行选择、交叉、变异操作,直到满足停止准则。标准遗传算法的主要步骤可描述如下:

⑴ 初始化,随机产生初始种群,个体数目一定,每个个体表示为染色体的基因编码;

⑵ 计算个体适应度,并判断是否符合优化准则,若符合,输出最佳个体及其代表的最优解,并计算结果,否则转向第3步;

⑶ 依据个体适应度选择再生个体,适应度高地个体被选中的概率高,适应度底的个体可能被淘汰;

⑷ 按照一定的交叉概率和交叉方法,生成新个体;

⑸ 按照一定的变异概率和变异方法,生成新的个体;

⑹ 由交叉和变异产生新一代的种群,返回到第2步。

⑺ 返回步骤2。

遗传算法的步骤流程图如下:

遗传算法包括3个基本步骤:选择、交叉和变异。这些基本操作又有许多不同的方法。简要介绍如下。

1.选择

选择是用来确定重组或交叉个体,以及被选个体将产生多少个子代个体。

首先计算适应度: ①按比例的适应度计算②基于排序的适应度计算

适应度计算完毕后是实际的选择,按照适应度进行父代个体的选择。可以挑选以下的算法:①轮盘赌选择②随即遍历抽样③局部选择④截断选择

⑤锦标赛选择

2.交叉或基因重组

基因重组是结合来自父代交配种群中的信息产生的新的个体。根据个体编码表示方法的不同,可以有以下的算法

①实值重组②二进制交叉

3.变异

变异是为了增加个体多样性,避免出现过早收敛。