C-K节约算法在配载车辆调度问题上的应用研究

时间:2022-10-20 11:08:48

C-K节约算法在配载车辆调度问题上的应用研究

[摘 要] 本文借鉴多重旅行商问题的模型结构,建立配载车辆调度模型。通过改进C-K节约算法,在线路连接过程中插入时间窗约束和车辆容量约束的检验子程序,求解调度模型。研究表明改进C-K节约算法是求解配载车辆调度问题的有效算法。

[关键词] 配载车辆调度 C-K节约算法 时间窗约束

车辆调度问题可分为满载车辆调度和配载车辆调度两大类。配载车辆调度中,每台车给多个客户送货,运输途中需要多次停靠、卸货,调度人员不但要将多项运输任务分组,为每组指派1台运输车辆,还要确定每台车辆的运输线路(客户停靠顺序),因此其求解过程比满载车辆调度问题复杂得多。本文通过改进C-K节约算法以求得满意解。

一、建立配载车辆调度模型

配载车辆调度问题可以描述为:车场向n个客户送货,第i个客户货运量为gi,卸货时间为UTi,最早允许车辆到达时间为ETi,最迟允许车辆到达时间为LTi,中心与客户、客户与客户两两间的广义运输费用为cij,运输时间为tij(i,j = 0,1,2,…,n,车场编号为0,客户编号为1,2,…,n),送货卡车装载容量为q(q>gi,i = 1,2,…,n)。车辆不允许超载且必须在时间窗内把货物送达客户。要求指派运输车辆,并确定每台车运输线路,使得总运输费用Z最低。

把车场和客户统一看作是运输网络中的节点。设在同一条线路上点h是点i前面的相邻点,车辆到达点h的时间为RTh,到达点i的时间为RTi,则有:

RTi=RTh=+UTh=Thi (1)

为建立调度模型,并定义二进制变量xijk、yki:

带时间窗约束的配载车辆调度模型为:

目标函数:(2)

约束条件: (4)

(6)

(8)

二、改进的C-K节约算法

C-K节约算法是为求解旅行商问题设计的,它不考虑各种约束条件,不能直接求解配载车辆调度模型。本文通过在C-K节约算法中插入时间窗和车辆容量约束的检验子程序,使之能够处理时间窗和车辆容量约束,从而构造出能够求解配载车辆调度问题的启发式算法。启发式算法强调满意解,即决策者认为解决方案是令人满意即可,而不去刻意追求最优性和最优解。

对于车辆容量约束,可以在考察点i和j时,插入车辆的装载量验算子程序,如果连接后的车辆装载量大于车辆容量,则不允许连接点i和j。设线路“0…i0”的货运量为Qi,线路“0j…0”的货运量为Qj,只有Qi+Qj≤q时,才允许连接点i和j,形成线路“0…ij…0”。Qi和Qj通过累加线路上的客户货运量得到。

对于时间窗约束需要考虑连接点i和j后会引起车辆到达j点的时间发生变化。设EFj表示连接点i和j后车辆到达j点的时间变化量,则有:EFj=RTi+UTi+tij-RTj

显然EFj<0时,车辆到达j点时间提前;EFj=0,车辆到达j点时间不变;EFj>0,车辆到达j点时间推迟。设r表示同一条线路上j及其后面各点,Δj-表示车辆到达j及其后面各点不违反时间窗约束的最大允许时间提前量,Δj+表示车辆到达j及其后面各点不违反时间窗约束的最大允许时间推迟量,则有:

Δj-=min{sr-ETr} Δj+=min{LTr-sr}

因此,当连接点i和j时,

1.计算s(i,j),令M={s(i,j)s(i,j)>0,i,j=1,2,…,n},并把集合M内的元素s(i,j)从大到小排序。

2.选择集合M内的第1个元素s(i,j),考察点i和j,是否满足下列条件之一:

(1)点i和j均在初始化线路上;(2)点i和j一个在已构成线路上,且与车场相连,另一个在初始化线路上;(3)点i和j位于不同线已构成线路路上,且都与车场相连。

若满足则转至(3),否则转至(6)。

3.计算若连接点i和j后车辆的总装载容量Q,若Q≤q,转至(4),否则转至(6)。

4.计算若连接点i和j后的EFj值:

(1)若EFj=0,转至(5);(2)若EFj<0,计算Δj-,若EFj≤Δj-,转至(5),否则转至(6);(3)若EFj>0,计算Δj+,若EFj≤Δj+,转至(5),否则转至(6)。

5.连接点i和j,计算车辆到达各个客户的时间。

6.在集合M中消去这个最大元素s(i,j)。若M=φ,算法终止,否则转至(2)。

把改进C-K节约算法编写成计算机程序,上机运算就能够很快求解出配载车辆调度问题的满意解,输出结果应包括运输线路的图形界面。配载车辆运输线路是多个闭合回路,每一个闭合回路代表1台的行驶线路。如果有客户不在闭合回路上,说明该客户时间窗约束太紧,不存在满足时间窗约束解。

三、结束语

配载车辆调度是一种异化的多重旅行商问题,在多重旅行商模型中添加符合配载车辆线路构形的各种约束条件后,就可以建立配载车辆调度模型。通过改进求解旅行商问题的C-K节约算法,在点对连接前插入约束条件检验子程序,能够求解配载车辆调度问题,得到满意的调度方案。文中模型和算法还可以进一步扩展,如添加驾驶员途中工作时间限制或单车线路长度约束等,处理方法同车辆容量约束类似。配载车辆调度问题有多种类型,本文只研究了单车场纯送货情况下的配载车辆调度问题,对于多车场、集货送货相结合的配载车辆调度问题有待于进一步研究。

上一篇:我国中小企业融资障碍分析 下一篇:基于椭圆曲线密码体制的网络身份认证系统研究