兼顾交通状况和双重时间窗的物流配送路径优化方法与流程

文档序号:21600974发布日期:2020-07-24 16:53阅读:542来源:国知局
兼顾交通状况和双重时间窗的物流配送路径优化方法与流程

本发明属于物流管理技术领域,涉及物流配送路径规划和车辆调度,尤其涉及以客户满意度最大以及配送成本最小为目标、建立交通状况下带双重时间窗的物流配送模型,并通过一种混合烟花算法进行处理,得到合理物流配送方案的方法。



背景技术:

随着电子商务的发展,物流在人们日常生活中扮演着重要角色。在物流配送过程中,为了避免大型车辆进入城市造成破坏以及不必要的资源浪费等其他因素,物流企业一般采用二级物流配送模式,由大型车将货物运输至各个郊外的中转站,然后由小型车将货物从中转站运输至各个客户,完成基本的物流配送,见图1所示。

在满足了基本的物流配送需求后,现在的物流企业正在向着降低配送成本,提高客户满意度等方面努力。通过总结现有物流配送方案,发现影响客户满意度的因素主要是包裹破损情况以及配送时间的长短,因此,很多学者基于限制配送时间的长短提出了带硬时间窗以及软时间窗的路径优化方法。而随着社会的不断发展,人们对物流配送提出了更高的要求,不仅仅是要求总物流配送时间的长短,即客户期望物流时长的时间窗(称之为物流时长时间窗);而且同时要求接单的时间在配送当天的一个时间范围内,即客户接单的时间窗(称之为接单时间窗)。两个时间窗构成了双重时间窗,如图2所示,横轴代表一天中的所有时刻,竖轴代表包裹从发货到客户接单所用总时间。尤其是在道路状况不佳时期,不仅降低了物流配送效率,提高了物流配送成本,而且更难以满足客户要求的双重时间窗,从而影响客户满意度。

因此,如何在时变交通下以及客户要求的双重时间窗下实现合理配送,对物流企业降低配送成本和提高客户满意度来说是不小的难题。因此,研究基于交通状况下带双重时间窗的物流配送路径优化有着重要的实际意义。



技术实现要素:

本发明针对交通状况不佳条件下物流配送效率低、配送成本高、客户满意度差的技术现状,兼顾满足客户要求的双重时间窗,提供一种兼顾交通状况和双重时间窗的物流配送路径优化方法,基于设计的混合烟花算法,提出优化的物流配送路径,降低物流配送成本的同时,提高配送效率以及改善客户满意度。

本发明的发明思路为:基于目前二级物流配送模式,建立交通状况条件下带双重时间窗的物流配送模型,利用设计的混合烟花算法来处理物流配送模型,获取物流配送路径,为了提高混合烟花算法的收敛速度,本发明进一步采用插入算法生成物流配送路径的初始物流种群,并引入交叉算子的思想,使得烟花个体之间能够相互学习,且利用烟花算法中爆炸算子自身的多样性提高物流配速路径的局部位置寻优能力。

为了达到上述目的,本发明采用以下技术方案来实现。

本发明提供的兼顾交通状况和双重时间窗的物流配送路径优化方法,所述物流配送路径包括从配送中心到若干中转站之间的一级配送路径以及从每个中转站到若干需求点的二级配送路径;该物流配送路径的确定包括以下步骤:

s1按照以下公式构建目标函数:

minc=λ(c1+c2)-(1-λ)cs;

式中,c1为车辆行驶距离产生的成本,c2为没在客户期望的时间窗内或车辆提前到达需求点等待至客户满意期望时间窗内产生的惩罚成本,cs为客户的平均满意度;λ为设定的控制参数;

s2生成初始种群

利用插入算法将需求点依次插入车辆中,每插入一个需求点,取其满足总路程增量要求的插入位置,以此生成完成所有需求点配送的二级配送路径,然后由枚举法按照目标函数确定相应的一级配送路径,二级配送路径及相应的一级配送路径构成一个物流配送路径,重复该过程,得到若干物流配送路径,并将其作为初始种群,每一个物流配送路径对应初始种群中的一个个体;

s3获取初始种群中每个个体适应度值

按照目标函数构造适应度函数,计算初始种群中每个个体的适应度值:

f(l)=λ(c1+c2)-(1-λ)cs;

f(l)为第l个个体的适应度值;

s4获取群体最优

以初始种群中适应度值最小的个体作为初始种群中的最优个体,即初始最佳的配送路径,然后进入步骤s5,并设定参数gen=1;

s5获取种群中每个个体爆炸火花数

按照以下公式获取种群中每个个体的爆炸火花数:

式中,sl为第l个个体产生的火花数,m是设定的最大火花数量,f(l)是第l个个体的适应度值,fmax=max{f(l)},l=1,2,…,n,n是种群中个体的数量,ε为一个极小的设定常数;

s6种群中个体更新操作

首先将种群中每个个体与最优个体进行交叉操作,然后将交叉操作后的每个个体的每辆车按照步骤s5得到的相应个体爆炸火花数进行爆炸操作,完成个体更新。

s7再次获取每个个体适应度值

按照目标函数构造适应度函数,计算步骤s6更新后的每个个体的适应度值:

f(l′)=λ(c1+c2)-(1-λ)cs;

f(l′)为第l′个更新后个体的适应度值;

s8更新群体最优

以步骤s7中获得的适应度值最小的个体作为种群中更新后的最优个体,即当前最佳的配送路径,然后判断参数gen是否达到设定最大值,若gen没有达到设定最大值,将当前gen进行加1操作后,以当前更新后个体构成的种群作为处理对象,重复步骤s5-s8;若gen达到最大值,进入步骤s9;

s9输出物流配送路径

以当前最优个体作为最终输出的物流配送路径。

上述物流配送路径优化方法,所述车辆行驶距离产生的成本c1按照以下公式确定:

其中,d为配送中心,s为中转站集合,p为需求点集合,m、n分别为配送中心d与中转站集合s并集中的任意两个节点,c1为一级车辆单位距离运输成本,dmn为从节点m到节点n之间的距离,rmnu为一级车辆u是否访问节点m后访问节点n,是则取1,否则取0,i、j分别为需求点集合p与中转站集合s并集中的任意两个节点,c2为二级车辆单位距离运输成本,dij为从节点i到节点j之间的距离,xijk为二级车辆k是否访问节点i后访问节点j,是则取1,否则取0。

上述物流配送路径优化方法,没在客户期望的时间窗内或车辆提前到达需求点等待至客户满意期望时间窗内产生的惩罚成本c2按照以下公式确定:

c2=c3max(eti′-ti,0)+c3max(ti-lti′,0)+c4max(ti-hti″,0);

其中,c3为不再客户接单时间窗内单位时间惩罚成本,c4为超出客户期望物流时长时间窗的单位时间惩罚成本,ti为第i个需求点的接单时间,i∈p,eti′、lti′为需求点i对应客户满意度最低所对应接单时间窗的下限和上限,ti为需求点i的物流时长,i∈p,hti〞为需求点i对应客户满意度为b所对应物流时长时间窗的上限。

上述物流配送路径优化方法,客户的平均满意度cs按照以下公式确定:

csi表示第i个需求点的客户平均满意度,p为需求点集合p的大小;

其中,eti、lti为需求点i对应客户满意度最高所对应接单时间窗的接单时间下限和接单时间上限;hti为需求点i对应客户满意度最高所对应物流时长时间窗的上限,hti′为需求点i对应客户满意度为a所对应物流时长时间窗的上限,hti〞为需求点i对应客户满意度为b所对应物流时长时间窗的上限,β为设定的权重。

上述物流配送路径优化方法,步骤s2利用插入算法将需求点依次插入车辆中,每插入一个需求点,取其满足总距离成本相比没有插入之前的增量较小的位置之一,以此生成完成所有需求点配送的二级配送路径,这样可以避免出现过多的重复路径,影响优化效果。一个二级配送路径确定完成后可知各个中转站的需求量,然后由枚举法确定相应的一级配送路径,构成一个物流配送路径问题的解,即一个个体。用此方法构造多条问题的解,作为初始种群。生成初始种群具体包括以下分步骤:

s21对每个中转站新建一辆二级车辆;

s22选择一个待插入需求点;

s23判断是否有二级车辆能够装载该需求点货物,若有则进入步骤步骤s24,若没有则进入步骤s26;

s24判断连续完成插入的需求点数量是否大于s,若大于s则进入步骤s25,若不大于s,则进入步骤s27;

s25产生一个随机数,若产生的随机数大于1/2,则进入步骤s26;若产生的随机数不大于1/2,则进入步骤s27;

s26新建二级车辆,在距离待插入需求点距离最近的中转站新建一辆二级车辆;

s27选择需求点插入位置,按照该需求点可插入位置,构建多个二级配送路径,计算多个二级配送路径相对于该需求点未插入时的距离成本增量,并按照从小到大顺序,取距离成本增量较小的前l个二级配送路径中的一个;l为设定的二级配送路径选择参数;

s28判断需求点是否插入完毕,若插入完毕进入步骤s29,若需求点没有插入完毕返回步骤s22;

s29个体生成,由需求点插入顺序确定各中转站与需求点之间的二级配送路径,由需求点插入位置确定各中转站的需求量,然后依据各中转站需求量利用枚举法按照目标函数确定配送中心与各中转站之间的一级配送路径,二级配送路径和一级配送路径构成一个物流配送路径,即生成一个个体;然后进入步骤s210;

s210判断个体数量是否达到设置上限,若没有则返回步骤s21;若个体数量达到设置上限,则初始种群生成完毕,进入下一步骤s3。

上述步骤s23中,若需求点可插入位置数量为h个,需求点的插入位置wz通过以下方式确定:

randperm(h,1)表示在1到h的自然数随机取一个;

randperm(l,1)表示在1到l的自然数随机取一个。

上述物流配送路径优化方法,步骤s5中,为了避免爆炸火花数量过多或过少,进一步随每个个体爆炸的火花数按照以下公式进行修正,修正后的火花数为sl′:

式中,round()为取整函数;φ和为给定的常数。

上述物流配送路径优化方法,步骤s6中,首先将种群中每个个体与最优个体进行交叉操作,通过交叉操作,使各个个体之间相互学习,同时结合爆炸操作所产生的自身多样性提高物流配送路径的局部位置寻优能力。该步骤具体包括以下分步骤:

s61种群中每个个体与最优个体进行交叉操作

随机的取出最优个体中的任意一段序列,用取出序列去代替种群中除最优个体以外的其它个体长度相同的任意一段序列,然后将重复的需求点删除,并且将没被服务的需求点利用插入算法重新插入到车辆中,形成新的个体;

s62对每个个体进行爆炸操作

将步骤s61中交叉操作后得到的每个新个体的每辆车按照步骤s5得到的相应个体爆炸火花数进行爆炸操作,完成个体更新。

步骤61中,没有被服务的需求点需要按照前面步骤s23给出的插入算法,选择插入后路程增量最小的位置进行插入。

步骤62中,对车辆进行爆炸操作后计算新车辆路径的配送费用,用配送费用最小的新车辆路径代替配送费用较高的旧车辆路径。若爆炸后新车辆路径成本更高,则保留爆炸前的车辆路径。

上述物流配送路径优化方法,步骤s8中,通过设置参数gen,实现迭代循环。通过多次迭代,可以获取更加合理和有效的物流配送路径。

与现有技术相比,本发明提供的兼顾交通状况和双重时间窗的物流配送路径优化方法具有以下有益效果:

1、本发明利用改进的烟花算法处理带双重时间窗的物流配送模型,得到优化的物流配送路径,将交通状况、物流时长和客户接单时间考虑在内,极大提升了物流配送路径的有效性和合理性。

2、本发明采用插入算法获取物流配送模型的初始种群,提高了烟花算法的收敛速度。

3、本发明通过引入交叉操作和爆炸操作对烟花个体进行处理,使烟花个体之间相互学习,同时结合爆炸操作自己的多样性提高了物流配送路径的局部位置寻优能力。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,以下将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,以下描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图所示实施例得到其它的实施例及其附图。

图1为物流配送模型。

图2为物流时长时间窗和客户接单时间窗分布示意图。

图3为本发明实施例兼顾交通状况和双重时间窗的物流配送路径优化方法流程示意图。

图4为本发明实施例客户满意度随接单时间窗(a)和物流时长时间窗(b)的变化关系。

图5为本发明实施例物流配送路径模型解的表示形式。

图6为本发明实施例插入算法生成初始种群流程示意图。

图7为本发明实施例两个个体进行交叉操作操作的示意图。

图8为本发明实施例个体中车辆进行爆炸操作的示意图。

具体实施方式

以下将结合附图对本发明各实施例的技术方案进行清楚、完整的描述,显然,所描述实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施例,都属于本发明所保护的范围。

实施例

本实施例以配送成本最小和客户满意度最大为目标,构建多目标的路径规划模型,得到最优的配送路径。基于目前二级物流配送模式,所述物流配送路径包括从配送中心到若干中转站之间的一级配送路径以及从每个中转站到若干需求点的二级配送路径。一级配送路径由一级车辆完成,二级配送路径由二级车辆完成。本实施例考虑一般情况下的车辆路径问题:一共有若干个中转站和需求点,且该地区有且仅有一个配送中心,并做如下假设:

(2.1)同级配送车辆车型相同且车辆足够;

(2.2)一级车辆均从配送中心出发,最终回到配送中心;

(2.3)二级车辆均从中转站出发,最终回到出发时的中转站;

(2.4)一级需求量可拆分配送;

(2.5)二级需求点的货物只能由一辆车一次配送完成;

(2.6)超过物流时长时间窗、超出接单时间窗以及提前到达需求点等待,都会产生高昂的惩罚费用;

(2.7)车辆提前到达需求点则需要等待至客户满意度最高的时间窗内才能服务;

(2.8)车辆一旦确认了所服务的需求点之后便不能再更改。

符号说明:

d:配送中心;

s:中转站集合;

p:需求点集合;

c:总成本;

c1:一级车辆单位距离运输成本;

c2:二级车辆单位距离运输成本;

c3:不在客户接单时间窗内单位时间惩罚成本;

c4:超过客户期望物流时长时间窗的单位时间惩罚成本;

q1:一级车辆最大载重;

q2:二级车辆最大载重;

u:一级车辆集合;

k:二级车辆集合;

qi:需求点i的需求量;

ti:货物从配送中心到达需求点i所用物流时长;

ti:货物到达需求点i的具体时间(即客户接收货物的接单时间);

hti:需求点i对应客户满意度最高所对应物流时长时间窗的上限(即需求点i对应客户能接受的最长物流时间);

hti′:需求点i对应客户满意度为a所对应物流时长时间窗的上限;

hti〞:需求点i对应客户满意度为b所对应物流时长时间窗的上限;

eti:需求点i对应客户满意度最高所对应接单时间窗的接单时间下限;

lti:需求点i对应客户满意度最高所对应接单时间窗的接单时间上限

eti′:需求点i对应客户满意度最低所对应接单时间窗的下限;

lti′:需求点i对应客户满意度最低所对应接单时间窗的上限;

em′:中转站m′的需求量;

zm′u:一级车辆u给中转站m′的运输量;

v1:一级车辆速度;

v2:二级车辆速度;

以上相关物流配送信息中一级车辆集合u、二级测量集合k、接单时间ti、物流时长ti、中转站m的需求量em、一级车辆u给中转站m的运输量zmu以及rmnu、xijk和yik为物流配送路径优化过程中的参变量,其它均为已知条件。

在物流配送中,交通状况的好坏,影响配送车辆的速度。因此,本实施例以参数刻画交通状况,以车辆的正常行驶的最大速度与交通状况参数的乘积反应车辆行驶的实际速度;设其交通状况参数为α,车辆的实际速度可以描述为式(1)和式(2),其中v1和v2分别为一级和二级车辆正常运行的最大速度,v1和v2分别为一级和二级车辆行驶的实际速度。

v1=v1×α(1);

v2=v2×α(2)。

根据符号说明以及上述场景描述,本实施例提出的兼顾交通状况和双重时间窗的物流配送路径优化方法如图3所示,包括以下步骤:

s1构建目标函数

由于本实施例需要同时兼顾满足客户要求的双重时间窗和交通状况,因此本实施例按照以下公式建立目标函数:

minc=λ(c1+c2)-(1-λ)cs(3);

式中,c1为车辆行驶距离产生的成本,c2为没在客户期望的时间窗内或车辆提前到达需求点等待至客户满意期望时间窗内产生的惩罚成本,cs为客户的平均满意度;λ为设定的控制参数,λ和1-λ用于控制c1+c2和cs所占的比重。

上述车辆行驶距离产生的成本c1按照以下公式确定:

上述没在客户期望的时间窗内或车辆提前到达需求点等待至客户满意期望时间窗内产生的惩罚成本c2按照以下公式确定:

c2=c3max(eti′-ti,0)+c3max(ti-lti′,0)+c4max(ti-hti″,0)(5)。

需求点i对应客户的两个时间窗与客户满意度之间的关系如图4所示。根据双重时间窗建立如下客户满意度:

式(6)中,第一项为物流时长满意度,第二项为接单时间满意度,β为设定的控制参数,β和1-β用于控制两项所占的比重。客户满意度a、b可根据客户的实际需求来设定。

因此,所有需求的的客户平均满意度:

上述目标函数的约束条件如下(以下m′、n′、f表示中转站,i、j、h表示需求点,u表示一级车辆,k表示二级车辆,g表示配送中心,):

tmu+dmn/v1+m0*(1-rmnu)≥tnu,m∈dus,n∈s,u∈u(23);

tmu+dmn/v1-m0*(1-rmnu)≤tnu,m∈dus,n∈s,u∈u(24);

tik+dij/v2+max(eti′-tik,0)+max(tmu)+m0*(1-xijk)≥tjk,i∈sup,j∈p,k∈k,u∈u(25);

tik+dij/v2+max(eti′-tik,0)+max(tmu)-m0*(1-xijk)≤tjk,i∈sup,j∈p,k∈k,u∈u(26);

式(8)表示一级车辆不能超载。式(9)表示二级车辆不能超载。式(10)和式(11)表示一级车辆的路径连贯。式(12)和式(13)表示每个需求点只能由一辆二级车服务一次。式(14)表示中转站的需求量配送完成。式(15)~(18)表示每辆一级车从中转站出发后,经过若干需求点回到出发的中转站。式(19)~(22)表示每辆二级车从配送中心出发后,经过若干中转站回到配送中心。式(23)~(29)表示需求点i对应客户的接单时间ti、物流时长ti的约束条件,其中tmu表示一级车辆u中转站节点m的用时(当m为配送中心节点时,tmu=0),tnu表示一级车辆u到达中转站节点n的用时,m0为一个给定的足够大的数,tik表示二级车辆k到需求点节点i的用时(当i为中转站节点时,tik=0,此时eti′=0),tjk表示二级车辆k到达需求点节点j的用时,t0表示一天的工作时长(例如取24h),t0表示一天开始上班的时刻(例如8点),floor()表示向下取整函数,ceil()表示向上取整函数;对于需求点集合p中的任意一个需求点i,因此可以根据公式(23)~(27)确定货物到达需求点i的用时ti′,然后根据公式(28)确定需求点i对应客户的接单时间ti,进一步根据公式(29)确定需求点i对应客户的物流时长ti。式(30)表示中转站m′的需求量的约束条件。

上述目标函数解的表示方法采用矩阵的形式,每一行代表一个中转站各需求点的配送顺序以及所需二级辆车数或者一个配送中心各中转站的配送顺序以及所需一级车辆数,矩阵的大小根据车辆数以及车辆所服务的需求点数量来决定。为了更清楚的说明,用图5进行说明。图5中第一行代表中转站1需要一辆二级车辆给3个需求点配送包裹,第二行代表中转站2需要两辆二级车辆给5个需求点配送包裹,第三行代表配送中心需要两辆一级车辆运输包裹给两个中转站。

s2生成初始种群

为求解上述车辆路径问题,本实施例设计了一种混合烟花算法(hfwa)从下向上优化,首先生成二级车辆的路径以确定中转站的需求量,然后优化一级车辆的路径。

本步骤为了提高该算法的收敛速度,采用插入算法生成较好的初始种群,具体为:利用插入算法将需求点依次插入车辆中,每插入一个需求点,取其满足总距离成本增量要求的一个插入位置,以此生成完成所有需求点配送的二级配送路径,然后由枚举法按照目标函数确定相应的一级配送路径,二级配送路径和相应的一级配送路径构成一个物流配送路径问题的解,即一个个体。重复上述过程便可以得到所求问题的多个可行解,即多个个体,当个体达到一定数量时便构成一个初始种群。

上述生成初始种群的具体过程,如图6所示,包括以下分步骤:

s21对每个中转站新建一辆二级车辆。

开始时,所有需求点没有对应的中转站,且每个中转站设置有足够多的车辆,当所有需求点按照设定插入顺序插入二级车辆后,车辆定了,其对应所归属的中转站也即确定。因此,首先对每个中转站新建一辆二级车辆,以便于后续需求点插入。

s22选择一个待插入需求点。

本步骤的第一个待插入需求点是随机插入的,对于后续需求点的选择,以与上一个插入需求点的距离最近为准则;当然,也可以按照设定的需求点插入顺序进行插入。

s23判断是否有二级车辆能够装载该需求点货物,若有则进入步骤s24,若没有则进入步骤s26。

首先要根据约束条件确定能够装载该需求点货物的二级车辆,当没有能够装载该需求点货物的二级车辆时,需要先新建车辆。当有能够装载该需求点货物的二级车辆时,还需要选择合适的位置插入。

s24判断连续完成插入的需求点数量是否大于s,若大于s则进入步骤s25,若不大于s,则进入步骤s27。

s25产生一个随机数,若产生的随机数大于1/2,则进入步骤s26;若产生的随机数不大于1/2,则进入步骤s27。

为了避免陷入局部最优,本实施例每利用插入算法插入几个需求点后,便随机产生一个随机数,然后根据随机数是否大于1/2来确定是否需要新建二级车辆。

s26新建二级车辆,在距离待插入需求点距离最近的中转站新建一辆二级车辆。

本实施例中,在新建二级车辆时,从运输成本考虑,是在距离待插入需求点距离最近的中转站新建一辆二级车辆。

s27选择需求点插入位置,按照该需求点可插入位置,构建多个二级配送路径,计算多个二级配送路径相对于该需求点未插入时的距离成本增量,并按照从小到大顺序,取距离成本增量较小的前l个二级配送路径中的一个;l为设定的二级配送路径选择参数。

对于每个需求点,可以根据目标函数对应的约束条件选择任何一个满足要求的中转站中的二级车辆,这样便会产生多种选择,从而有多条二级配送路径,为了提高收敛速度,本实施例中按照需求点插入前后的所有需求点总距离成本增量大小来进行取舍,取距离成本增量较小的前l个二级配送路径中的一个。l的大小可以根据初始种群规模和需求点数量来设定和调整,一般取3或4。

若待插入需求点可插入位置数量为h个,待需求点的插入位置wz通过以下方式确定:

randperm(h,1)表示在1到h的自然数随机取一个;

randperm(l,1)表示在1到l的自然数随机取一个。

也即,当待插入需求点可插入位置数量h不多于设定参数l时,可插入位置便按照总距离成本增量顺序,取前h中的一个;当待插入需求点可插入位置数量h多于设定参数l时,可插入位置便按照总距离成本增量顺序,取前l中的一个,从而完成一个需求点的插入。

s28判断需求点是否插入完毕,若插入完毕进入步骤s29,若需求点没有插入完毕返回步骤s22。

所有需求点插入完毕后,便可确定各个中转站的需求量以及各中转站到需求点的二级配送路径。

s29个体生成,由需求点插入顺序确定各中转站与需求点之间的二级配送路径,由需求点插入位置确定各中转站的需求量,然后依据各中转站需求量利用枚举法按照目标函数确定配送中心与各中转站之间的一级配送路径,二级配送路径和一级配送路径构成一个物流配送路径,即生成一个个体;然后进入步骤s210。

所有需求点插入完毕后,二级配送路径以及各中转站的需求量便可确定,然后需要确定一级配送路径。本实施例中,采用的是枚举法,即将所有可能的一级配送路径一一列出,默认配送时刻从0开始,然后根据目标函数以及相应的约束条件确定出使目标函数最小的一级配送路径。将二级配送路径和相应的一级配送路径组成相应的解矩阵(即一个可行的物流配送路径),矩阵中每一行代表一个中转站各需求点的配送顺序以及所需二级辆车数或者一个配送中心各中转站的配送顺序以及所需一级车辆数,即构成一个物流配送问题的解。

s210判断个体数量是否达到设置上限,若没有则返回步骤s21;若个体数量达到设置上限,则初始种群生成完毕,进入下一步骤s3。

为了提升利用烟花算法优化物流配送路径的有效性和合理性,仍需要足够多的初始个体作为初始种群,然后让烟花个体之间相互学习。为此,本实施例根据需要点数量设置初始种群规模(即初始种群中个体数量上限)。然后重复步骤s21~s29,构造求解问题的多个可行解,并将所有可能解作为初始种群,每个解即是初始种群中的一个个体。

例如:有一个配送中心d、两个中转站需求点为①设定的l=3,s=5,初始种群中个体数量上限为300。从其中选择需求点①作为第一个插入需求点(假定约束条件全部满足),按照步骤s21~s27,可选择的插入位置包括①和①两个(即h=2),h<l,因此,从二级车辆路径①和①任选择一个,例如①,并将其添加到解矩阵中,得到{①}然后继续插入下一个需求点。当离①最近的需求点为作为第二个待插入的需求点(假定约束条件全部满足),按照步骤s21~s27,第二需求点可插入位置包括①和因此第二需求点的可插入位置有三个(即h=3),h=l,此时从二级车辆路径①和任选择一个,例如并将其添加到解矩阵中,得到……。

在选择好待插入需求点后或者插入五个需求点(即s=5)后,需要判断是否新建二级车辆,若需要新建二级车辆,二级车辆新建完毕后,继续采用上述插入算法插入待需求点。依次类推直至所有需求点插入完毕,得到生成完成所有需求点配送的若干二级配送路径,并将其添加到相应的解矩阵中。

所有需求点都插入完毕后,二级配送路径以及各个中转站的需求量便可确定,然后确定一级配送路径。本实施例中,采用的是枚举法,即将所有可能的一级配送路径一一列出,然后根据目标函数以及相应的约束条件确定出使目标函数最小的一级配送路径。并将确定的一级配送路径添加到相应的解矩阵中,即得到一个可行的物流配送路径,即构成物流配送问题的一个解。用此方法构造求解问题的多个可行解,并将所有可能解作为初始种群,每个解即是初始种群中的一个个体。

s3获取初始种群中每个个体适应度值。

按照目标函数构造适应度函数,计算初始种群中每个个体的适应度值:

f(l)=λ(c1+c2)-(1-λ)cs(30);

f(l)为第l个个体的适应度值。

由于每个个体即为确定的物流配送路径,默认配送时刻从0开始,此时的需求点i对应客户的接单时间ti、物流时长ti可以根据需求点插入位置,由车辆运行距离和运行速度计算得出,因此可以根据前面公式(4)-(7)得到c1,c2和cs,进而根据公式(30)可以得到每个个体的适应度值。

s4获取群体最优。

以初始种群中适应度值f(l)最小的个体作为初始种群中的最优个体,即初始最佳的配送路径,然后进入步骤s5,并设定参数gen=1。

以下步骤s5和步骤s6的目的是对初始种群中的个体进行更新操作,需要先将种群中每个个体与最优个体进行交叉操作,然后将交叉操作后的每个个体进行爆炸操作。

s5获取种群中每个个体爆炸火花数。

按照以下公式(31)获取种群中每个个体的爆炸火花数:

式中,sl为第l个个体产生的火花数,m是设定的最大火花数量,f(l)是第l个个体的适应度值,fmax=max{f(l)},l=1,2,…,n,n是种群中个体的数量;ε为一个极小的设定常数,以避免分母为零。

进一步,为了限制火花数量过多或过少,本实施例对火花数按照下公式(32)进行修正,修正后的火花数为sl′:

式中,round()为取整函数;φ和为给定的常数。

s6种群中个体更新操作。

本步骤首先将种群中每个个体与最优个体进行交叉操作,然后将交叉操作后的每个个体的每辆车按照步骤s5得到的相应个体爆炸火花数进行爆炸操作,完成个体更新,具体包括以下步骤:

s61种群中每个个体与最优个体进行交叉操作。

随机的取出最优个体中的任意一段序列,用取出序列去代替种群中除最优个体以外的其它个体长度相同的任意一段序列,然后将重复的需求点删除,并且将没被服务的需求点利用插入算法重新插入到车辆中,形成新的个体。

例如:图7给出两个个体:个体1和个体2,其中个体1为最优个体。将个体1虚框中的三个需求点(2,3,4)与个体2中的三个需求点(1,5,4)相互替代。由于原个体1中本来就存在需求点(1,5),因此需要将原个体1中的需求点(5,1)删除,同时产生了两个没有被服务的需求点(2,3),因此需要将需求点(2,3)重新插入到个体1,从而得到新个体1。同理,由于原个体2中本来就存在需求点(2,3),因此需要将原个体2中的需求点(2,3)删除,同时产生了两个没有被服务的需求点(1,5),因此需要将需求点(1,5)重新插入到个体2,从而得到新个体2。

对于产生的没有被服务的需求点,可以插入到任何一个可以插入的位置,未必是重复需求点被删除的位置。此时,没有被服务的需求点需要按照前面步骤s23~s29给出的插入算法,选择插入后距离成本最小的位置进行插入。

s62对每个个体进行爆炸操作。

将步骤s61中交叉操作后得到的每个新个体的每辆车按照步骤s5得到的相应个体爆炸火花数进行爆炸操作,完成个体更新。

本实施例中,对于一个个体,其包含的每辆一级车辆和二级车辆均按照该个体前面计算得到的爆炸火花数(sl或sl′)进行爆炸操作。对车辆进行爆炸操作即是按照火花数,将车上相应数量的多个随机位置进行随机位移,得到新车辆路径,这里对于位移大小没有限制。然后计算新车辆路径的配送费用,用配送费用最小的新车辆路径代替配送费用较高的旧车辆路径。若爆炸后新车辆路径成本更高,则保留爆炸前的车辆路径。

例如:如图8所示,对于一辆车,其爆炸火花数为2,随机将车辆上的位置1(对应需求点2)和位置2(对应需求点8)进行位移,本实施例中是将需求点8移到了位置1,将需求点2移到了位置2,得到新车辆路径。这里主要是为了说明爆炸过程,实际操作中,需求点的位置移动位移可以是随机的。

s7再次获取每个个体适应度值。

对每个个体的每辆车进行爆炸操作后,便完成了对每个个体的更新,得到了新个体,即新的物流配送路径的解。

此时,需要重新计算更新后的每个新个体的适应度值。

这里仍是按照目标函数构造适应度函数,计算步骤s6更新后的每个个体的适应度值:

f(l′)=λ(c1+c2)-(1-λ)cs(33);

f(l′)为第l′个更新后个体的适应度值。

由于每个个体即为确定的物流配送路径,默认配送时刻从0开始,此时的需求点i对应客户的接单时间ti、物流时长ti可以根据需求点插入位置,由车辆运行距离和运行速度计算得出,因此可以根据前面公式(4)-(7)得到c1,c2和cs,进而根据公式(33)可以得到每个新个体的适应度值。

s8更新群体最优。

以步骤s7中获得的适应度值最小的个体作为种群中更新后的最优个体,即当前最佳的配送路径,然后判断参数gen是否达到设定最大值,若gen没有达到设定最大值,将当前gen进行加1操作后,以当前更新后个体构成的种群作为处理对象,重复步骤s5-s8;若gen达到最大值,进入步骤s9。

本实施例通过设置参数gen,实现迭代循环。通过多次迭代,可以获取更加合理和有效的物流配送路径。本领域技术人员可以根据需要选择合适的迭代次数上限。

s9输出物流配送路径。

当参数gen达到最大值时(即完成迭代循环),以当前最优个体作为最终输出的物流配送路径。

本实施例建立了交通状况条件下带双重时间窗的物流配送模型,利用设计的混合烟花算法来处理物流配送模型,获取物流配送路径,通过插入算法提高了混合烟花算法的收敛速度,从而能够在较短时间内获取优化的物流配送路径;引入个体交叉操作,使得烟花个体之间能够相互学习,且利用烟花算法中爆炸算子自身的多样性提高物流配速路径的局部位置寻优能力。本发明提供的方法不仅能够得到优化的物流配送路径,确保物流配送有效性和合理性的同时,而且能够极大减少迭代循环次数,进而提升物流配送路径优化效率。

本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1