掌桥专利:专业的专利平台
掌桥专利
首页

考虑取送货排队的循环取货车辆路径与调度的仿真优化方法

文献发布时间:2024-04-18 19:58:26


考虑取送货排队的循环取货车辆路径与调度的仿真优化方法

技术领域

本发明涉及物流运营管理技术领域,尤其涉及一种考虑取送货排队的循环取货车辆路径与调度的仿真优化方法。

背景技术

循环取货(Milk Run)作为一种高效的物流模式,指的是制造商尤其是汽车制造领域内的制造商通过派遣车队从多个供应商取送零部件的一种操作模式,以保证制造企业生产线所需的物料能在短时间内按照预定路径及时准确地送到指定目的地。例如日本丰田公司,通过循环取货系统来实现准时制生产,从开始订购原材料到仓库接受零部件并将零部件供应给生产线的整个流程中保持物料流的同步性。正是因为循环取货模式的有效利用,企业在生产物流领域中有效地减少了物料的浪费、各个环节交接的等待时间以及零部件在仓库积压等成本的浪费等等。基于准时制生产与精益制造原则下的循环取货系统成为企业供应链管理的努力方向,致力于提高循环取货系统的现代化与信息化程度也成为了汽车制造行业保持竞争力的关键策略。循环取货系统成功的关键之一是在于不同节点的自然交付。因此在实际生产过程中,保持不同节点货物的灵活交付是循环取货物流模式成功应用的关键。而且,由于取货卸货口有限,取货车辆在仓库卸货口与供应商处产生排队等待现象。这导致企业决策者对于整个循环取货流程中车队取货工作所花费的时间和所产生的运营成本等会产生较大的误差,进而影响整个系统的准确性与真实性。

目前,对于循环取货车辆路径与调度问题的研究取得了一定进展。Jiang和Huang在文献[Jiang Z,Huang Y,Wang J.Routing for the milk-run pickup systeminautomobile parts supply[C]//Proceedings of the 6th CIRP-sponsoredinternational conference on digital enterprise technology.Springer BerlinHeidelberg,2010:1267-1275.]针对汽车零部件制造企业的配送中心对平均库存规模的限制这一优化目标,采用了一种新的禁忌搜索算法来确定车队在循环取货过程中的取货路线、频次与时间,并通过实验测试证明了该方法的实用性。Hosseini和Shirazi在文献[Hosseini SD,Shirazi M A,Karimi B.Cross-docking and milk run logistics inaconsolidation network:A hybrid of harmony search and simulated annealingapproach[J].Journal of Manufacturing Systems,2014,33(4):567-577.]不仅考虑了循环取货物流模式,并且整合了包括循环取货在内的直接运输和交叉运输模式,建立了该混合物流网络的整数规划模型,设计了基于模拟退火算法的混合启发式算法来优化该运输网络的总运输成本。Zhou和Kelin在文献[Miao Z,Xu K L.Modeling and simulation oflean supply chain with the consideration of delivery consolidation[C]//KeyEngineering Materials.Trans Tech Publications Ltd,2011,467:853-858.]制定了供应链运营层面关于循环配送总成本的数学模型,并在一个具体的案例研究中使用蚁群优化算法(ACO)来找出合适的方案。然而,所提出的元启发式方法找到的解决方案并没有获得最佳值。因此,为了改进解决方案,Nguyen和Dao在文献[Nguyen T H D,Dao T M.Novelapproach to optimize milk-run delivery:a case study[C]//2015IEEEInternational Conference on Industrial Engineering and Engineering Management(IEEM).IEEE,2015:351-355.]提出了一种优化供应链中循环配送的新的启发式算法,即混合蚁群优化和禁忌搜索算法,在研究案例和随机数据等参数相同的情况下,这种混合启发式方法在供应链总成本和循环取货车辆行驶总距离方面优于原始方法。Francesso等人在文献[Facchini F,Mossa G,De Tullio S.A Milk-run routing and Scheduling modelfor a Smart Manufacturing System[J].IFAC-PapersOnLine,2022,55(10):1122-1127.]提出了一种基于时间窗的车辆路径与调度问题模型,该模型旨在为循环取货规划一个动态的路径策略,使车队在将物料运送到不同的生产线时能够确保物料的分配与其所需时间段保持一致,并最大限度地减少车队的运输距离。综上可以看出,大多数学者对于该问题的优化目标在于最小化循环取货运营模式下的运营总成本,车辆总行驶距离或者使用车辆数,并未考虑对于整个循环取货车队最大工作完成时间的优化,也未考虑车辆在各节点包括仓库和供应商处由于设备的有限而产生的装卸货口占用约束;最后在仿真和现实应用部分,Belle等人在文献[Van Belle J,Valckenaers P,Berghe G V,et al.A tabu searchapproach to the truck scheduling problem with multipledocks and time windows[J].Computers&Industrial Engineering,2013,66(4):818-826.]等人针对考虑时间窗的多道口交叉对接车辆调度问题引入了禁忌搜索算法,其目标函数是最小化车辆总运输时间以及违反时间窗的迟到时间的加权和,但并未涉及到车辆路径问题。Zachariadis等人在文献[Zachariadis E E,Nikolopoulou A I,Manousakis E G,et al.The vehicle routingproblem with capacitated cross-docking[J].Expert Systems with Applications,2022,196:116620.]等人引入了具有交叉对接服务设备容量限制的车辆路径与调度问题,同时基于问题特性提出了一种局部搜索的元启发式算法来设计车辆取送货路线,在硬时间窗约束下最小化车辆总行驶距离,其没有对车辆在设备处等待进行优化。郑梦岚在文献[郑梦岚.考虑卸货口占用的零部件循环取货系统优化[D].大连理工大学,2020.DOI:10.26991]使用Flexsim仿真模型来模拟仓库处的装卸货排程和车辆排队情况,并未对车辆的等待进行优化。但没有学者通过建立离散事件的仿真模型来实现车辆在多卸货口下的等待模拟,并同时将车辆的等待放在优化目标当中。

发明内容

基于上述考虑取送货排队的循环取货车辆路径与调度的不足之处,本发明提供一种考虑取送货排队的循环取货车辆路径与调度的仿真优化方法。

本发明的技术方案:

一种考虑取送货排队的循环取货车辆路径与调度的仿真优化方法,计算循环取货车辆返回仓库的时间,进行循环取货车辆路径优化与循环取货车辆调度优化;所述循环取货车辆路径优化采用混合遗传算法生成路径;所述循环取货车辆调度优化通过循环取货车辆调度算法实现;所述循环取货车辆调度算法采取变邻域搜索算法与模拟退火算法相结合的方式优化车辆到达仓库时间,在仓库卸货口处通过车辆循环到达情境下的离散事件仿真模型确定车辆于卸货口等待时间与离开时间,根据车辆离开仓库卸货口的时间通过定理1确定车辆在取货供应商处的等待时间以及下个取货趟次车辆到达仓库卸货口的时间,综合判断当前调度方案是否可行;具体如下:

起始路径数为1,起始可使用最优车辆数K

循环取货车辆路径生成阶段,在生成初始种群后进入以下循环:锦标赛选择、PMX交叉、变邻域搜索变异、新旧种群合并通过精英策略生成新种群;

当混合遗传算法停止迭代时,选择最新的种群中前m个优秀个体形成集合Λ,对该集合内的车辆路径方案分别进行调度方案的优化;

在循环取货车辆调度算法开始之前,对于循环取货车辆路径进行减车操作:首先判断当前车辆路径方案中使用车辆数是否大于K

当所有循环取货车辆路径方案经过减车操作和VNS_SA_CDES算法优化得到循环取货车辆调度方案后,当前路径数加1,进入下一个循环,直至当前路径数大于当前最佳车辆数K

所述计算循环取货车辆返回仓库的时间具体如下;

车辆取货方案数据包括车辆数、车辆取货路径、车辆取货趟次数和车辆到达仓库的时间,车辆取货方案数据在计算车辆于供应商处的等待时间时给定;不同路径的车辆在取货过程中不影响各自在供应商处的等待时间;

步骤1.1、计算车辆在供应商处的等待时间时,以下变量根据车辆取货方案数据,通过公式(1)到公式(3)计算得到;

路径r上所有供应商之最大装卸时长

路径r上的车辆k单个取货趟次l在无等待下的工作时长

路径r上仓库装卸货口的装托盘时长;i,j:供应商编号;E

路径r上的车辆k在整个工作周期内无等待情况下的总工作时长

L

路径r上的车辆k在首个取货趟次中最晚到达仓库时间LAT

T:车辆规定工作总时长;

步骤1.2、计算车辆离开供应商的时间间隔;

引理1

设定路径r上第z个供应商处的装货时长最大,

路径r上的车辆k在第l取货趟次中,在路径上第i个供应商处的等待时间;

步骤1.3、车辆在供应商处的等待时间计算;

引理2

设定路径r上第z个供应商处的装货时长最大,

引理3

当路径r上车辆k和车辆k+1在第l取货趟次离开仓库的时间间隔

步骤1.4、计算车辆返回仓库的时间

定理1

已知路径r中车辆k在第l取货趟次离开仓库的时间为

车辆k在第l取货趟次结束工作,返回仓库等待线的时间

路径r上的车辆k在第l取货趟次中,离开路径上第i个供应商的时间。

所述减车操作通过设计减车算子实现,针对减车算子引入参数vr

步骤(2.1.1)初始化vr

路径车辆利用率如式(5)定义:

UR

步骤(2.1.2)当vr

步骤(2.1.3)对新的路径方案s′计算相应的车辆数,当车辆数少于之前的路径方案,则vr

步骤(2.1.4)当前路径方案s进入VNS_SA_CDES算法的车辆调度仿真优化阶段。

所述循环取货车辆调度算法,确定循环取货车辆路径方案后,得到基于当前车辆路径方案的车辆取货路径、各路径供应商访问顺序、各路径分配车辆数以及车辆在最大工作周期内的取货频次;输入各路径分配车辆数以及车辆在最大工作周期内的取货频次、车辆单趟次工作时长包括车辆在各供应商之间的运输时长、供应商处装货时长和仓库装卸货口的装卸货时长、初始温度T

基于新的调度方案解,更新车辆到达时间的禁忌列表,并对新的调度方案解进行初始可行性检验;基于定理1,确定车辆首个取货趟次离开仓库的时间后,根据其与上一部车辆离开仓库的时间间隔以及该路径供应商处最大装货时间和上部车辆在该取货趟次供应商处的等待时间之和来确定车辆下个取货趟次到达仓库的时间;在对于车辆调度方案ω进行邻域变换时,通过定理1提前判断邻域变换后的车辆首个取货趟次离开仓库的时间

所述车辆调度方案初始可行性检验具体步骤如下:

步骤(5.1)初始化卸货口最新占用集合Π

步骤(5.2)根据ω′中车辆到达时间顺序,遍历剩余到达车辆;针对每一个到达车辆k,获取其车辆编号k、所在路径r、到达时间

根据Π

步骤(5.3)直至所有车辆k,k∈K

步骤(5.4)基于步骤(5.1)和步骤(5.2)得到车辆k离开卸货口的时间

步骤(5.5)对比ω′与ω中所有车辆第二个取货趟次到达仓库的时间

所述基于车辆到达时间的禁忌列表设置如下:

(6.1)禁忌列表的规模等于邻域变换算子的个数Θ×车队规模K×禁忌列表长度L;

(6.2)当初始车辆调度方案ω的车辆到达时间经过邻域变换得到ω′后,首先记录邻域变换算子的类型θ和车辆编号k,然后进行车辆调度方案的初始可行性检验,检验后ω′对比ω有所调整,则基于θ和k对ω′中有所调整的车辆到达时间在禁忌列表中进行更新,更新方式如(6.3)所示;

(6.3)遍历ω′所有车辆k的到达时间

所述仿真操作根据离散事件仿真模型实现,在对所有车辆整个工作周期中的取货过程进行仿真时,车辆首个取货趟次到达仓库的时间和顺序作为输入数据;具体如下:

根据车辆在装卸货口的工作过程,事件类型划分为:车辆到达事件、车辆服务事件和车辆离开事件,事件类型列表定义为ASD事件列表,当某时刻仓库装卸货口的资源不足以服务当前所有到达车辆时,车辆等待事件产生,该类型事件存入等待事件列表中;

事件属性包括:当前事件的车辆编号、车辆首趟次到达仓库顺序编号、车辆服务的装卸货口编号、事件类型,事件预设开始时间、事件预设结束时间、当前车辆服务趟次;

在仿真初始化阶段,ASD事件列表中存入所有车辆首个取货趟次的到达事件,事件预设开始和结束时间为0;等待事件列表为空;所有装卸货口处于空闲状态;仿真时钟初始时刻为0;

在对ASD事件列表中的事件进行提取时,按照以下编号顺序进行:

①事件预设开始时间;

②当前事件与其他事件的预设开始时间相同时,当前事件为车辆离开事件;

③基于步骤②不成立时,当前事件与其他事件的预设开始时间相同时,当前事件为车辆服务事件;

当前事件从ASD事件列表中被提取后,仿真时间推进到当前事件的预设结束时间;当提取事件为车辆到达事件时,判断当前仓库是否存在处于空闲状态的卸货口;存在处于空闲状态的卸货口时,当前车辆立即进行服务,则ASD事件列表添加当前车辆的服务事件,事件预设开始时间与车辆到达事件的开始时间相同,事件预设结束时间为当前仿真时间;否则,当前车辆需要进行等待,等待时间列表添加当前车辆到达事件;

当提取事件为车辆服务事件,当前车辆服务的卸货口变为忙碌,车辆在服务完成后,ASD事件列表添加当前车辆的离开事件,事件预设开始时间和结束时间为当前仿真时间与当前车辆服务时间之和;

当提取事件为车辆离开事件,判断当前车辆的服务趟次是否为最后一取货趟次;不是的话,则当前车辆下一趟次的到达事件添加到ASD事件列表中,下一趟次车辆到达时间通过定理1进行计算;否则,当前车辆结束工作后结束仿真操作;车辆离开事件结束后判断等待事件列表是否为空,无等待事件时,则当前使用卸货口变为空闲状态;否则,等待事件列表进行事件提取,并调整为当前车辆服务事件添加到ASD事件列表中。

所述局部搜索阶段,需要对于首个取货趟次中车辆到达仓库的时间即循环取货车辆调度方案ω进行优化,具体步骤如下:

步骤(8.1)随机选择车辆k,k>1,确定当前车辆k所在路径r,路径r上所有供应商之最大装卸时长

步骤(8.2)确定该路径上一部到达车辆k-1到达仓库的时间

步骤(8.3)计算车辆k-1和车辆k首个趟次离开仓库的时间间隔

比较

本发明的有益效果:

本发明算法提供的方案可以有效减少使用车辆数,车辆租赁成本大幅减少。针对企业决策者在合理时间内找到车辆数最少的求解方案的需求给出合理建议。并且,对车辆首个趟次到达卸货口的时间进行优化使车辆实际等待时间大幅度减少,提高了整体车队在工作时间内的利用率。

附图说明

图1为零部件入厂循环取货物流系统。

图2为父代与交叉片段。

图3为片段交叉后。

图4为交叉片段对应关系。

图5为子代。

图6为路径内变异算子。

图7为路径间变异算子。

图8为离散事件仿真系统流程图。

图9为循环取货车辆调度算法。

图10为算法总框架。

图11为原始车队取货方案下的车辆调度甘特图。

图12为混合遗传算法与减车操作组成算法GA_VNS_VR优化后的车队取货方案下车辆调度甘特图。

图13为混合遗传算法与减车操作组成算法GA_VNS_VR和VNS_SA_CDE优化后的d车队取货方案下车辆调度甘特图。

具体实施方式

以下结合实例详细叙述本发明的具体实施方式,得到发明的实施效果。

基于上述考虑取送货排队的循环取货车辆路径与调度的不足之处,本发明涉及到循环取货策略以及智慧物流、物流仿真和运筹学算法优化,特别涉及到遗传算法、变邻域搜索算法、模拟退火算法和禁忌搜索算法的优化,具体为考虑取送货排队的循环取货车辆路径与调度的仿真优化方法。考虑取送货排队的循环取货车辆路径与调度的仿真优化方法,步骤如下:

(1.1)符号定义与说明

(1)上下标

r:路径编号(r∈{1,2,...,|R|})。k:车辆编号(k∈{1,2,...,|U

(2)参数

T:车辆规定工作总时长。K:最大车队规模。t

(3)集合

R:路径集合。K

(4)变量

路径r上的车辆k在第l趟次中抵达仓库的时间。/>

对于循环取货车辆路径的初始解采用二维数组整数编码的方式。其中每行数据表示的是车辆取货路径方案中的一条路径,数组中的整数编码表示的是供应商编号。如下例子所示:

[[0,11,5,7,0],[0,1,8,4,10,3,0],[0,2,6,9,0]]

以上二维数组表示的是对于11个供应商,划分了3条路径进行配送,0代表仓库,路径1表示的是车辆从仓库出发,先后拜访供应商11,供应商5,供应商7然后再返回仓库。首先根据算法框架,每个初始解的分配路径数是确定的。本发明采取贪婪随机自适应算法生成初始解。构造初始解的第一步就是初始化供应商候选集C

对于C

确定C

确定好RCL后,从该列表中随机选择一个供应商元素插入到其最佳位置。每当一个元素插入到路径中后,供应商候选集Cn和受限候选列表RCL都要随之更新,直至所有供应商访问点插入路径,初始解生成完毕。

本发明采用PMX交叉算子对于个体进行交叉操作。由于交叉算子PMX的特殊性,需要对于编码后的初始解进行以下调整:将初始解中的多条染色体合并成一条染色体,以方便接下来的交叉流程。PMX交叉算子的具体操作过程如图2-5所示:

如图2所示,选择父代1,2进行交叉操作,首先随机选择父代中两个交叉点,两点之间的片段进行交叉,片段交叉后如图3所示:

如图3所示,红色片段是需要进行交叉的部分,蓝色则代表染色体中重复的部分,对此重复部分需要根据如图4所示的交叉对应关系进行调整:

根据片段中各节点的对应关系,依次将染色体中重复部分进行调整,调整后得到子代1,2,如图5所示:

交叉完毕,得到交叉后的子代l,2。

在传统遗传算法中,变异算子有路径间和路径内变异等多种方式。在该部分,本发明通过结合变邻域搜索算法来提升算法的优越性,包括邻域变换与局部搜索两个部分。在邻域变换阶段,本发明设置了4个路径内变异算子和2个路径间变异算子,每次邻域变换时随机选择4个算子依次遍历来扩大解的范围;在局部搜索阶段,采用路径内交叉算子来寻找该邻域下的最优解。

变异算子的操作过程如图6和图7所示:

在该部分,减车算子主要是针对本发明研究目的:减少使用车辆数而设定的。为了提高整个算法中后代解的质量,通过局部搜索与贪婪算子的设置来对具体车辆取货路径方案进行优化,通过对路径方案中路径上的供应商的取货顺序调整,观察其是否具有减少车辆的可能性。

首先,路径车辆利用率如式(7)定义:

路径车辆利用率反映了路径r上所有车辆处于工作状态(运输、装卸等状态)的时间占用其总时间的比例。也就是说,利用率越低,车辆处于工作状态的时间越短,这意味着该路径上车辆处于排队或闲置状态的时间相对较长。

根据式(7),在利用率低的路径上,可以通过减少该路径上的供应商来缩短工作时间,这为减少该路径的初始车辆数量提供了可能性。

通过以上分析,对于减车算子引入参数vr

(1)初始化vr

(2)如果vr

(3)对新的路径方案s′计相应的车辆数,如果车辆数较之前的方案有所减少,则vr

(4)当前路径方案s进入VNS_SA_CDES车辆调度仿真优化阶段。

在车辆路径方案确定后,可以得到基于当前车辆路径方案的车辆取货路径,各路径供应商访问顺序,各路径分配车辆数以及车辆在最大工作周期内的取货频次等。基于以上数据,接下来需要对当前取货车辆的最大工作完成时间进行判断,如果不满足车辆最大工作周期T,则说明当前车辆路径方案下的路径与车辆分配不可行。因此本节的主要工作是通过优化车辆到达仓库的时间,来调整整个车队的最大工作完成时间,并与未进行调整的车辆到达仓库时间均为0时刻的调度方案进行对比,来证明当前车辆调度算法的有效性。为了区别与车辆路径方案的解s,本发明对车辆调度方案的解用ω表示,当前调度方案ω的车辆最大完成时间用M(ω)表示,ω表示了车辆首个取货趟次到达仓库的顺序和时间,对于车辆到达仓库后的工作过程中的其余到达时间不再进行调度与调整。

在对车辆到达时间进行优化时,无法直接对于时间进行操作,因此车辆到达仓库的时间通过二进制的方式进行处理,随后再确定车辆首趟次到达仓库顺序。

本发明通过两个一维数组的形式来表示ω,第一个一维数组代表车辆首个趟次到达仓库的顺序,第二个一维数组代表车辆首个趟次的到达仓库的时间。例如第一个一维数组[1,5,4,2,3],代表车辆首个趟次出发到达仓库的顺序为车辆1、车辆5、车辆4、车辆2、车辆3;第二个一维数组[0,25,64,17,8],代表以上车辆抵达仓库的时间分别是第0分钟,第8分钟,第17分钟,第25分钟,第64分钟,对应此一解ω可表示为ω=([1,5,4,2,3],[0,25,64,17,8])。

由研究问题的特性分析可知,在车辆首个取货趟次中,最先到达仓库的车辆可在无等待的情况下立即接受仓库装卸货口的装托盘服务。因此在初始解的设计上,在所有使用车辆中随机选择D个车辆,使其到达仓库的时间为0,故前D个到达车辆在首趟次中于仓库装卸货口的等待时间为0。

对于剩余车辆,其到达仓库的时间应在[0,LAT

在对车辆到达时间进行优化时,无法直接对于时间进行操作,因此首先要将ω中表示车辆到达仓库时间的第二个一维数组通过二进制的方式进行处理,随后再确定车辆首趟次到达仓库顺序。

在第二个一维数组中必须考虑每个车辆k出发时间不能晚于车辆最晚出发时间LAT

例如当

基于初始解的二进制特性采取了2-Opt,单点变异与双点变异的邻域搜索算子,具体操作方式如下所示:

例如解[00000000,00011001,01000000,00010001,00001000],对于其时间进行邻域搜索前,需先将所有二进制时间片段拼接成一个完整片段:

0000000000011001010000000001000100001000

(1)2-Opt

随机选择该完整片段的两个位置节点,并对两个节点之间的片段进行逆序操作,得到新的完整片段。例如选择以下两个标红的位置节点:

0000000000011001010000000001000100001000

两节点间的片段逆序后,其余片段和逆序后的片段复制到新的片段当中,得到:

0000000000010001000000000101001100001000

那么新解ω′可表示为:

[00000000,00010001,00000000,01010011,00001000]

其对应的十进制时间表示为:

[0,17,0,83,8]

(2)单点变异

随机选择完整时间片段的一个位置节点,如果该节点的二进制数字为0,则变换为1;反之变换为0。例如,随机选择以下标红位置节点,其二进制数字为0:

0000000000011001010000000001000100001000

变换为1后的新片段为:

0000000000011001010000000011000100001000

新解ω′可表示为:

[00000000,00011001,01000000,00110001,00001000]

其对应的十进制时间表示为:

[0,25,64,49,8]

(3)双点变异

随机选择完成时间片段的两个位置节点,如果该节点的二进制数字为0,则变换为1;反之变换为0。例如,随机选择以下标红位置节点:

0000000000011001010000000001000100001000

这两个位置节点的二进制数字分别为0,1,根据规则将其变换为1,0。变换后的新片段为:

0000000000011001010000000001001100000000

新解ω′可表示为:

[00000000,00011001,01000000,00010011,00000000]

其对应的十进制时间表示为:

[0,25,64,19,0]

基于定理1,可知当车辆首个取货趟次离开仓库的时间确定后,可以根据其与上一部车离开仓库的时间间隔以及该路径供应商处最大装货时间和上部车在该趟次供应商处的等待时间之和来确定车辆下个趟次到达仓库的时间。因此在对于车辆调度方案ω进行邻域变换时,可以通过定理1提前判断邻域变换后的车辆首个趟次离开仓库的时间

首先在进行初始可行性检验之前,基于2.3.6对于原始方案ω进行仿真可得以下数据:车辆k(k∈K

其次提出两个数据集合:卸货口最新占用集合Π

(1)卸货口最新占用集合Π

(2)路径最新车辆到达集合Π

邻域变换后的车辆调度方案ω′的初始可行性检验具体步骤如下:

(1)初始化卸货口最新占用集合Π

(2)根据ω′中车辆到达时间顺序,遍历剩余到达车辆。针对每一个到达车辆k,获取其车辆编号k,所在路径r,到达时间

根据Π

(3)直至所有车辆k(k∈K

基于引理2和引理3可知,在车辆离开卸货口的时间发生变化后,车辆该趟次在供应商处的等待时间也有可能改变。所以在步骤(3)

(4)基于步骤(1)(2)得到车辆k离开卸货口的时间

(5)对比ω′与ω中所有车辆第二个趟次到达仓库的时间

为了提高车辆到达时间在进行邻域变换时的搜索效率,设置了基于车辆到达时间的禁忌列表。主要设置方式如下所示:

(1)禁忌列表的规模等于邻域变换算子的个数Θ×车队规模K×禁忌列表长度L;

(2)当初始车辆调度方案ω的车辆到达时间经过邻域变换得到ω′后,首先记录邻域变换算子的类型θ和车辆编号k,然后进行2.3.4中关于车辆调度方案的初始可行性检验,如果检验后ω′对比ω有所调整,则基于θ和k对ω′中有所调整的车辆到达时间在禁忌列表中进行更新,更新方式如(3)所示。

(3)遍历ω′所有车辆k的到达时间

在对所有车辆整个工作周期中的取货过程进行仿真时,车辆首个趟次到达仓库的时间和顺序作为输入数据。

(1)事件类型

根据车辆在装卸货口的工作过程,事件类型划分为:车辆到达事件(Arrival),车辆服务事件(Service)和车辆离开事件(Departure),基于此,本发明将此事件列表定义为ASD事件列表。除此之外,当某时刻仓库装卸货口的资源不足以服务当前所有到达车辆时,车辆等待事件产生,该类型事件存入等待事件列表中。

(2)事件属性

事件属性包括:当前事件的车辆编号、车辆首趟次到达仓库顺序编号、车辆服务的装卸货口编号、事件类型,事件预设开始时间、事件预设结束时间、当前车辆服务趟次。

(3)初始化

在仿真初始化阶段,ASD事件列表中存入所有车辆首个取货趟次的到达事件,事件预设开始和结束时间为0;等待事件列表为空;所有装卸货口处于空闲状态;仿真时钟初始时刻为0。

(4)事件提取规则

在对ASD事件列表中的事件进行提取时,按照以下编号顺序进行:

①事件预设开始时间;

②当前事件与其他事件的预设开始时间相同时,当前事件为车辆离开事件;

③基于步骤②不成立时,当前事件与其他事件的预设开始时间相同时,当前事件为车辆服务事件;

(5)事件添加规则与仿真时钟推进方式:

当前事件从ASD事件列表中被提取后,仿真时间推进到当前事件的预设结束时间。如果提取事件为车辆到达事件,首先需要判断当前仓库是否存在处于空闲状态的卸货口。如果存在,那么当前车辆可立即进行服务,则ASD事件列表添加当前车辆的服务事件,事件预设开始时间与到达事件的开始时间相同,事件预设结束时间为当前仿真时间;否则,说明当前车辆需要进行等待,等待时间列表添加当前车辆到达事件。

如果提取事件为车辆服务事件,当前车辆服务的卸货口变为忙碌,车辆在服务完成后,ASD事件列表添加当前车辆的离开事件,事件预设开始时间和结束时间为当前仿真时间与当前车辆服务时间之和;

如果提取事件为车辆离开事件,首先需要判断当前车辆的服务趟次是否为最后一取货趟次。如果不是,则当前车辆下一趟次的到达事件添加到ASD事件列表中,下一趟次车辆到达时间可通过定理1进行计算;否则,当前车辆结束工作后离开仿真系统。进而,车辆离开事件结束后判断等待事件列表是否为空,如果无等待事件,则当前使用卸货口变为空闲状态;否则,等待事件列表进行事件提取,并调整为当前车辆的服务事件添加到ASD事件列表中。

取货车辆循环到达仓库卸货口情境下的离散事件仿真系统流程如图8所示:

在局部搜索阶段,需要对于首个取货趟次中车辆到达仓库的时间即循环取货车辆调度方案ω进行优化,具体步骤如下:

(1)随机选择车辆k(k>1),确定当前车辆k所在路径r,路径r上所有供应商之最大装卸时长

(2)确定该路径上一部到达车辆k-1到达仓库的时间

以上数据均通过初始车辆调度方案ω以及基于ω的仿真得到。因此通过步骤(1)(2)的数据可得:

(3)计算车辆k-1和车辆k首个趟次离开仓库的时间间隔

由定理1可知,影响车辆下个趟次到达仓库时间主要因素是

(4)当

(5)当

步骤(4)或者步骤(5)结束时,整个局部搜索过程结束。

在循环取货车辆调度算法设计阶段,针对每一个车队取货方案中所有车辆首个趟次到达仓库的时间进行混合变邻域模拟退火算法设计,车辆取货方案中的相关数据输入到离散事件仿真模型当中进行车队最大取货完成时间的模拟计算,因此对该部分调度算法简称为VNS_SA_CDES(Variable neighborhood search,Simulation annealing and Cyclicdiscrete event simulation)。

算法在初始化部分需要对上一阶段循环取货车辆路径模型得到的车队取货方案进行整理与输入,车队取货方案的具体输入数据包括:各路径分配车辆总数及车辆相对应的取货趟次数,车辆单趟次工作时长包括车辆在各供应商之间的运输时长、供应商处装货时长和仓库装卸货口的装卸货时长。除此之外,输入数据还包括与变邻域模拟退火算法相关的参数:初始温度T

每次进行邻域扰动得到新解时,首个趟次中所有车辆到达仓库的时间和顺序会发生变化,因此相应的整个车辆调度方案的完成时间也会发生变化,当温度t大于终止温度阈值T

循环取货车辆调度算法的流程如图9所示:

循环取货车辆路径与调度问题在路径生成阶段采用了遗传算法与变邻域搜索算法相结合的方式,得到的路径方案等数据作为下一阶段车辆调度的输入数据;在车辆调度阶段采取变邻域搜索算法与模拟退火算法相结合的方式优化车辆到达仓库时间,在仓库卸货口处利用车辆循环到达情境下的离散时间仿真模型来确定车辆卸货口等待时间与离开时间,根据车辆离开仓库卸货口的时间通过定理1来确定车辆在取货供应商处的等待时间以及下个取货趟次车辆到达仓库卸货口的时间,综合以上来判断当前调度方案是否可行。

在算法总框架初始化阶段,起始路径数为1,起始可使用最优车辆数K

首先是循环取货车辆路径生成阶段,本发明采用了混合遗传算法GA_VNS,其最大迭代次数为iterG,在生成初始种群后进入以下循环:锦标赛选择,PMX交叉,变邻域搜索变异,新旧种群合并通过精英策略生成新种群。

当混合遗传算法停止迭代时,选择最新的种群中前m个优秀个体形成集合Λ,对该集合内的车辆路径方案分别进行调度方案的优化。

在循环取货车辆调度算法开始之前,首先要对于每个车辆路径算法得到的个体都进行减车操作(Vehicle Reduction VR)的尝试:首先判断当前车辆路径方案中使用车辆数是否大于(K

当所有路径方案在经过减车操作和VNS_SA_CDES算法优化得到调度方案后,当前路径数加1,进入下一个循环,直至当前路径数大于当前最佳车辆数K

如图1所示,本发明解决了在循环取货物流模式下,考虑车辆在仓库卸货口和取货供应商处排队等待这一现实因素下的循环取货车辆路径与调度问题。并以最小化使用车辆数为目标,在最大工作时长内以尽可能少的取货车辆来完成当前基于零部件实时需求的取货任务。具体内容为在有限工作时长内,车辆在满足车辆容积约束,车队最大规模约束,仓库卸货口资源约束,供应商取货资源约束等条件下,确定所有使用车辆的取货路径与取货频次,以满足该工作时间段内生产线的物料需求;同时确定所有使用车辆在首个取货频次的到达仓库顺序与时间,以使得整个车队最后一个返回仓库卸货口完成所有取货任务的时间满足时间约束,最终使所使用车辆数目达到最小。发明方法上:(1)本发明提供了当供应商处的取货设备有限时,同路径取货车辆在不同取货频次下等待时间的证明过程,为车辆多频次返回仓库的时间计算提供了理论基础,同时拓展了基于排队现象的循环取货车辆路径问题的理论研究;(2)本发明设计了基于循环取货物流模式下的车辆多频次到达卸货口的离散仿真模型,并以编程的方式实现,为车辆在卸货口处排队等待现象提供了仿真手段;(3)本发明在车辆调度阶段设计了基于模拟退火算法的启发式算法,并添加禁忌列表、变邻域搜索等算子以及离散仿真模型来优化车辆的到达时间,拓展了大多数循环取货车辆均在0时刻出发的研究思路;(4)本发明在循环取货的问题背景下,结合车辆路径和调度算法的特性,以最小化车辆数的优化目标为基础设计了基于车辆路径的减车算子,通过局部搜索与贪婪算子的设置来对具体车辆取货方案进行优化。

本实施例的具体流程如下:

1.数据情况

基于某汽车生产制造企业某条生产线的实际数据整理而成,该生产线零部件供应商个数为14,零部件种类为81,所需需求速率、容器容量、容器体积、中心仓库和各供应商间距离矩阵等相关数据。

表1零部件与供应商数据

/>

/>

表2中心仓库和各供应商间距离矩阵(单位:千米)

由于运输的为小件零部件,容器相对较小,故将每20个容器装载至一个托盘内进行装卸货,每个托盘的装/卸时间均为0.47分钟。需求速率指的是该条生产线对各种所需零部件在单位工作周期内的需求量。考虑到该汽车制造企业日后扩大产能的可能,采用算例对应的零部件需求速率为当前生产线实际消耗量的8倍。同时考虑到企业实际生产需要和现实设备情况,设定车队最大规模为30,且车辆大小、行驶速度等规格相同;车辆日工作时间段为8:00-16:00,总工作时长为8小时,中间无休息时间中止车辆当前取货工作进程;车辆的平均行驶速度为30km/h;车队日租金为450RMB/辆;车辆容积约为46.55立方米。但为了应对物品装载和摆放对卡车空间的浪费,假设每次取货预留车辆容积的30%作为缓冲空间,故卡车可用容积约为32.585立方米;现实案例中的中心仓库卸货口规模为3个,每个供应商处的取货设备为1个,卸货口处装/卸时间为供应商处的一半。

2.算法参数设置

表3算法参数选取

/>

3.优化结果

基于GA_VNS_VR路径算法和VNS_SA_CDES调度算法的设计,考虑到实际生产运营中取货车辆会在仓库卸货口处和取货供应商处产生排队的情况,设计了以下3个方案来对比路径算法和调度算法的有效性。

(1)PlanA:原始车队取货方案

该汽车生产制造企业原始车队取货方案如图11所示,共有3条取货路径,每条路径分配车辆数为1,5,11,车队使用规模为17。

(2)PlanB:GA_VNS_VR优化后的车队取货方案

考虑实际情况下,车辆会在供应商处取货时发生排队现象,在得到GA_VNS_VR算法优化后的路径方案后,车辆供应商处排队情况也需要加入考虑因素中,但并不对车辆首个趟次到达仓库的时间进行调整,得到图12所示的车队取货调度方案PlanB。

(3)PlanC:GA_VNS_VR和VNS_SA_CDES优化后的车队取货方案

方案PlanC是在得到GA_VNS_VR算法优化后的路径方案后,同时考虑车辆供应商处排队以及VNS_SA_CDES优化车辆到达时间下的车队取货方案。

表4方案A,B,C结果对比表

关于以上3个方案的具体结果数据如上表所示,经过对比方案A和B,可以看出经过GA_VNS_VR优化后的车队取货方案较原始方案相比,车辆数由17辆减少到10辆,车辆的日租赁成本也相应的减少了40%以上,这对企业JIT生产模式下的成本控制起到了很大效用。同时,车队在整个周期内的总行驶距离减少了27.88%,除了车队的租赁成本,这对车队其他成本如油耗等成本也是一个很大的改进。从车辆在仓库卸货口的等待时间来看,车队整体卸货口等待时间减少了50%以上,在整个取货周期内,车队整体利用率也有所提高。但是从取货作业完成时间来开,方案B较方案A的完成时间提高了22.38%,从图11可以看出,方案A所有车辆的整体工作时长均能保持在400分钟以内,虽然等待时间较方案B长,但等待时间并没有过多的影响车辆结束工作的时间;另外,方案B的车辆数较A减少了40%,在取货周期未改变的情况下,整体取货量也未改变,则方案B的车辆较A的取货量有所提高,进而A的车辆工作时间会有所延长,其结束工作的时间也就相应的延后了。

方案C和方案B相比,方案C在B的基础上对车辆到达仓库的时间通过VNS_SA_CDES算法进行了优化,从结果上来看,通过车辆到达时间的调整,车队整体在仓库卸货口的等待时间减少了82.8%,结束取货工作的时间提前了2.54%,这部分时间减少程度较少,在2%左右,很大原因是因为通过调整车辆到达时间后,很多车辆的开始工作时间变晚,这部分时间很大程度上抵消了算法对于等待时间的优化。

表5是基于GA_VNS_VR改进后的路径方案,在方案B和方案C不同考虑因素下的车辆到达仓库开始工作的时间(ArrivalTime)和结束工作(EndTime)的时间记录。

由表5可得,虽然车辆2,3,4到达仓库的时间延长,但其结束工作的时间却提前了,也就是说通过对车辆到达时间的调整,可以有效地减少车辆在取货与卸货过程中的排队等待时间。其中车辆4是决定车队最大完成时间的车辆,这部分减少的等待时间在很多情况下抵消了其较之前0时刻晚到达仓库的时间,进而使其整体完成时间减小。而对于车辆6,车辆8,车辆9和车辆10来说,调整其到达仓库的时间后车辆结束工作的时间也延后了,但对于整体车队结束工作的时间却无影响,VNS_SA_CDES算法在调整无等待下工作时长最大的车辆的到达时间时,具有一定的优势。

表5车辆不同到达时间下的结果对比

4.管理启示

(1)仓库卸货口个数的影响

本节讨论在原始零部件需求速率和将需求速率扩大125%的两种情况下卸货口数量对结果的影响。下表表示的是在原始需求速率下,仓库卸货口个数(No.D)从1扩大到4个时,车辆数(No.V),仓库等待时间,取货等待时间以及车队最大完成时间的变化情况。

如表6所示,当仓库卸货口个数为1时,以当前最大车队规模在8小时工作时长下未能找到满足生产需求的路径与调度方案,说明在当前生产线的需求速率下,卸货口个数起码为2。当卸货口个数为2时,所需车辆数为12,与当前生产线卸货口个数为3时的情况相比,车队规模扩大了20%,对于企业决策者来说,如果减少卸货口开放而节约的运营成本不足以抵消车队规模扩大的租赁成本的话,卸货口个数为3是较为明智的选择;反之,在生产线需求速率不改变的情况下,可以考虑减少卸货口。当卸货口规模扩大到4个时,车队规模没有变化,车队最大完成时间也没有改变,车辆在卸货口的等待时间减少为0,说明扩大卸货口对于车辆使用数量来说没有影响,只是减少了车辆在仓库等待卸货的排队情况,主要原因是因为在当前需求速率下,车辆需完成的取货任务较小,在卸货口的排队时间并没有很大程度的影响最大完成时间,所以从成本的角度考虑,扩大卸货口至4不是一个明智的选择。

表6原始需求速率下卸货口个数对结果的影响

表7需求速率扩大125%后卸货口个数对结果的影响

随着企业生产规模的扩大,当生产线零部件的需求速率扩大至原先的125%时,通过改变卸货口的规模,可以发现所需取货车辆数随着卸货口个数的增加而减少,因此卸货口数目的增加减少了车辆在此排队的可能,每个车辆的等待时间减少,整体的工作时间也减少,进而所需的车辆数也就随之减少了。与原始需求速率相同,当需求速率扩大至125%时,在当前车队规模内无法获得可行方案。当卸货口规模为2时,车辆数为15,车队最大完成时间为472.99分钟;与当前卸货口规模为3时的情况相比,车队规模扩大了7.14%,最大完成时间延长了0.75%。当卸货口个数不断增加至7个时,车队规模不再变化,而车辆在卸货口排队时间减小到0,车队最大完成时间也不再变化,保持在了459.53分钟,说明如只考虑车辆的租赁成本,卸货口规模扩大至6为最优的选择;如果卸货口运营成本与车辆租赁成本均考虑在内的话,对企业决策者来说这两者的单位成本是决定卸货口规模和车队规模的关键因素。

(2)零部件需求速率的影响

为了探究零部件需求速率的变化对问题的影响,本节调整需求速率跨度为原始需求速率(ODR)的20%到180%,卸货口规模仍保持3个。不同需求速率下所需车辆数,车队最大完成时间以及车队整体等待时间如下表所示。

表8需求速率对结果的影响

由表8可知,随着需求速率的增加,所需车辆数不断增大,车队的最大完成时间也不断延长,直至增至原始需求速率的180%后,当前车队规模在日规定工作时长8小时内无法找到可行的取货方案。当需求速率小于原始需求速率的40%时,车队在卸货口处无等待情况的产生。当需求速率增至160%ODR时,车队在卸货口处的等待时长骤增,车队规模也扩大至16,车队最大完成时间为478.48分钟,接近于8小时,因此对于企业决策者来说,当生产线零部件需求速率与车队规模增加至160%ODR以上时,当前卸货口调度数量很有可能不能够支撑车队取货任务在规定周期内有效完成,卸货口资源需要进一步开发。

综上所述,本发明的方法提供的方案可以有效减少使用车辆数,车辆租赁成本大幅减少。并且,对车辆首个趟次到达卸货口的时间进行优化使车辆实际等待时间大幅度减少,提高了整体车队在工作时间内的利用率。

基于某汽车制造企业在循环取货物流模式下的真实案例,通过对比企业人工调度的方案和本发明算法优化后方案可以看出,本发明算法提供的方案可以有效减少使用车辆数,车辆租赁成本大幅减少。并且,对车辆首个趟次到达卸货口的时间进行优化使车辆实际等待时间大幅度减少,提高了整体车队在工作时间内的利用率。

结果表明,在生产线零部件需求速率不变的情况下,当前卸货口规模可以满足取货需求,且增大卸货口也不能减少车辆数以降低租赁成本。当需求速率扩大至原先的125%时,如果只考虑车辆租赁成本,卸货口规模扩大至6是最佳的选择,此时所用车辆数达到最低。如果卸货口扩建成本与车辆租赁成本均考虑在内的话,对企业决策者来说这两者的单位成本是决定卸货口规模和车队规模的关键因素。除此之外,当卸货口规模不变,观察需求速率的变化对于车队规模的影响时发现,当需求速率扩大至原先的160%以上时,当前卸货口规模很难支撑车队取货任务在规定周期内有效完成,卸货口资源需要进一步开发。

相关技术
  • 一种同时送货和取货的机器人物流调度优化方法
  • 一种不确定取货需求下带多时间窗的同时取送货车辆路径问题规划方法及系统
技术分类

06120116492334