本公开涉及供应链技术领域,具体涉及一种基于混合蛙跳—路径重连的生产运输协同调度方法和系统。
背景技术:
21世纪的竞争不再是企业与企业之间的竞争,而是供应链与供应链之间的竞争。制造型企业的核心竞争力也不再是简单的制造能力,而是供应链的协作能力。企业需要通过整合上游供应商和下游客户的运输配送信息,更合理地安排生产,缩短生产周期,节约资源,以应对日趋强烈的竞争。物联网技术的应用使得企业形成了一个可感知、可配置的庞大网络,实现了企业对物资的实时跟踪,加强了供应链的生产运输协同控制,可以进一步将生产系统和物流运输系统进行联合优化,实现企业总体经济效益的优化,从而提升企业的服务水平。
目前对联合调度问题的研究都集中在传统生产模式下,在这类生产模式中,一台机器可以同时处理一个工件。但是,在实际生产的过程中,存在一台机器需要同时处理一批不同尺寸的工件的情况,这类问题更为复杂,称为差异工件批调度问题。而且在传统的调度问题中,在考虑分布式供应商和分布式客户的情况下,往往将运输时间抽象为相同的,并不能适应联合调度环境下的生产要求。
技术实现要素:
本公开的一个目的在于提高生产和运输协同调度的合理性,从而能降低生产成本,提升工作效率。
一方面,本公开提供了一种基于混合蛙跳—路径重连的生产运输协同调度方法,包括:
步骤1、将工件的加工时间和各机器与客户之间的运输时间作为输入,初始化混合蛙跳算法与路径重连算法的各个参数,所述各个参数包括:种群内个体总数n,种群被划分的组数s,迭代次数l以及最大迭代次数lmax,1≤l≤lmax;初始化l=1;
步骤2、根据所述输入生成初始种群
步骤3、计算第l代的n个个体的适应度值
步骤4、将第l代n个个体分成s组,所述s组的集合记为
步骤5、对第
步骤6、重复执行步骤5直到
步骤7、在
步骤8、将k+1赋值给k,判断当前的k≤s是否成立;若成立,则执行步骤6;否则执行步骤9;
步骤9、将步骤7更新后的各组进行集合得到更新后的种群p;
步骤10、在p中随机挑选两个个体执行贪婪路径重连算子并更新p;
步骤11、将l+1赋值给l,判断当前的l≤lmax是否成立;若成立,则执行步骤3;否则,表示完成lmax次迭代;将迭代结果作为工件分配至各机器的方案及每个机器上的加工顺序的调度结果并输出。
再一方面,本公开实施例提供了一种基于混合蛙跳—路径重连的生产运输协同调度系统,包括:
计算模块,用于执行如下步骤:
步骤1、将工件的加工时间和各机器与客户之间的运输时间作为输入,初始化混合蛙跳算法与路径重连算法的各个参数,所述各个参数包括:种群内个体总数n,种群被划分的组数s,迭代次数l以及最大迭代次数lmax,1≤l≤lmax;初始化l=1;
步骤2、根据所述输入生成初始种群
步骤3、计算第l代的n个个体的适应度值
步骤4、将第l代n个个体分成s组,所述s组的集合记为
步骤5、对第
步骤6、重复执行步骤5直到
步骤7、在
步骤8、将k+1赋值给k,判断当前的k≤s是否成立;若成立,则执行步骤6;否则执行步骤9;
步骤9、将步骤7更新后的各组进行集合得到更新后的种群p;
步骤10、在p中随机挑选两个个体执行贪婪路径重连算子并更新p;
步骤11、将l+1赋值给l,判断当前的l≤lmax是否成立;若成立,则执行步骤3;否则,表示完成lmax次迭代;
输出模块,用于将迭代结果作为工件分配至各机器的方案及每个机器上的加工顺序的调度结果并输出。
本公开的各种实施例可与本文中描述的这些特征和其他特征中的一个或更多个进行结合。可通过参照下面的具体实施方式来获得对本公开的性质和优点的更好理解。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本公开的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是本公开实施例提供的一种基于混合蛙跳—路径重连的生产运输协同调度方法的流程示意图;
图2是根据本公开实施例提供基于混合蛙跳—路径重连的生产运输协同调度方法时的生产过程和运输图;
图3是本公开实施例提供的一种基于混合蛙跳—路径重连的生产运输协同调度系统的结构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
如图1和图2所示,是针对工件尺寸、生产时间、工件到达时间和不同运输路线上运输时间有差异的生产运输协同调度问题进行建模,然后通过一种混合蛙跳算法和路径重连算法进行求解,从而得到一套运输生产调度的优化方案,以此大大降低目标企业的总运作成本,提高企业运作效率。具体的说,一种混合蛙跳算法和路径重连算法的运输与生产协同调度方法,其特征是,将由分布在不同位置的g个客户预订的n个工件,合理调度到m台设备处进行加工,每台设备加工完成后,所有完成的工件立即被运送至预订该工件的客户处;所述n个工件构成的工件集合记为j={j1,…,jj,…jn},jj表示第j个工件,1≤j≤n,将第j个工件jj的尺寸记为xj;所述m台设备构成的设备集合记为m={m1,…,mu,…mm},mu表示第u台机器,1≤u≤m,将工件jj到达设备mu处的时间记为rju,工件jj在设备mu处的加工时间为pju;所述g个客户的集合记为gu={gu1,…,gug,…gug},1≤g≤g;将工件从设备处运输至客户处的运输时间集合记为
所述生产运输协同调度方法是按如下步骤进行:
步骤1、初始化混合蛙跳算法与路径重连算法的各个参数,包括:种群内个体总数n,种群被划分的组数s,迭代次数l、最大迭代次数lmax,1≤l≤lmax;并初始化l=1;
步骤2、产生初始种群
步骤3、计算第l代的n个个体的适应度值
步骤4、将第l代n个个体分成s组,所述的s个组的集合记为
步骤5、对
步骤6、重复步骤5直到
步骤7、在
步骤8、将k+1赋值给k,判断k≤s是否成立,若成立,则执行步骤6。若不成立,则执行步骤9;
步骤9、将步骤7更新后的各组进行集合得到更新后的种群p;
步骤10、在p中随机选出两个个体执行贪婪路径重连算子并更新p;
步骤11、将l+1赋值给l,判断l≤lmax是否成立,若成立,则执行步骤3;否则,表示完成lmax次迭代。将迭代结果作为工件分配至各机器的方案及每个机器上的加工顺序的调度结果并输出。
其中,所述步骤3计算第l代第i个体
步骤3.1设置u=1,d=1,cmax=0,其中,cmax为最大制造跨度时间;
步骤3.2判断
步骤3.3判断d≤n+m-1是否成立,若成立,将d+1赋给d并执行步骤3.2;否则,输出第l代第i个体的适应度值
步骤3.4将分配到设备mu上的工件列表中的第1个未分批的工件放入能容纳所述第1个未分配工件的批中,若当前所有批的剩余空间都不能容纳第1个未分配工件,则生成容积为c的新批,并将第1个未分配的工件加入新批中,批的剩余空间为容积c与放入相应批中所有工件尺寸之和的差值;重复上述过程,直至所述工件集合中的所有工件都分配到相应的批中;
步骤3.5将上述得到的批按照批的到达时间的非减序排列,相同到达时间的批按照工件加工时间的非减序排列,按照所述批排列顺序进行加工,记设备mu上所有工件中运输至指定客户所需的最长运输时间为tu,将设备mu上的所有工件最长完工时间记为cu,判断cu+tu是否大于cmax,若成立,则将cu+tu赋给cmax。其中,批的到达时间为批中工件到达时间的最大值,批的加工时间为批中工件加工时间的最大值;
步骤3.6将u+1赋给u并执行步骤3.2;
可选的,所述步骤4将种群p分组可以按如下步骤进行:
步骤4.6、判断temp是否等于1,若成立,则分组步骤4.1、将种群p={p1,p2,…,pn}中的n个个体按照适应度值非递增的顺序排列,令temp=n,temp为当前未分组的个体总数;
步骤4.2、令l=1;
步骤4.3、依次计算每个未分组个体的适应度值占未分组个体适应度值总和的百分比prob={prob1,…,probx,…,probtemp},probx表示第x个未分组的个体占未分组个体适应度值总和的百分比,1≤x≤temp;
步骤4.4、令t=1,
步骤4.5、判断
结束;否则,将temp-1赋给temp,并判断l是否等于s,若成立,则执行步骤4.2;否则,将l+1赋给l并执行步骤4.3。
可选的,所述步骤5对
步骤5.1、初始化局部搜索的各个参数,包括:迭代次数it、最大迭代次数imax,1≤it≤imax;并初始化it=1;
步骤5.2、令h=1;
步骤5.3、随机地选择
步骤5.4、随机地选择个体
步骤5.5、判断s′h的适应度值是否优于s″h,若成立,则把s′h赋给s″h;
步骤5.6、判断s″h的适应度值是否优于个体
步骤5.7、判断h是否不大于n/s,若成立,则转到步骤5.3;
步骤5.8、判断it是否不大于imax,若成立,则将it+1赋给it,并转到步骤5.2;否则结束局部搜索。
可选的,所述步骤6可以按如下步骤进行:
步骤6.1、在第l代、第k组
步骤6.2、生成一个[0,1]之间的随机数rand;
步骤6.3、若rand>0.5,则将个体
步骤6.4、重复步骤6.2、6.3,直到所有的位置都完成迭代;
步骤6.5、计算新的个体snew的适应度值,判断个体snew的适应度值是否优于
可选的,所述步骤10可以按如下步骤进行:
步骤10.1、随机地把整个种群p分成两组,令r=1;
步骤10.2、将第一组中适应度值最大的个体记为
步骤10.3、令
步骤10.4、判断d是否为空集,若成立,则执行步骤10.8;
步骤10.5、对所有v∈d,把s(r)的第v个位置的值替换为
步骤10.6、计算集合cs(r)中所有个体的适应度值,选择适应度最优的个体赋给s(r),将适应度最优的个体对应的v从集合d中删除;
步骤10.7、把r+1赋给r,将集合cs(r)中的个体放入集合cs中,并执行步骤10.4,cs为当前算法生成的所有新解的集合;
步骤10.8、判断集合cs中适应度值最优的个体是否优于初始解
本公开实施例与现有技术相比,具体如下优点:
本公开实施例针对考虑差异工件动态到达的平行批生产运输协同调度问题,采提出了混合蛙跳算法与路径重连算法。针对传统蛙跳算法的局部搜索能力弱的缺点,引入了全局搜索策略,并在此基础上利用贪婪路径重连算法提高了种群内优质解的质量,解决了制造型企业在生产工程中,工件分批运输和生产的联合优化问题,实现了企业总体经济效益的优化,降低了能耗,节省了成本,提升了企业的服务水平。
传统的混合蛙跳算法的分组策略会使得较优的个体集中在某一组中,分组效果不好,难以保证组内种群的多样性。本公开中基于随机抽样的分组策略在分组过程中加入了一定的随机干扰,在一定程度上加强了个体分布的随机性,在保证较优解得以均匀分布的基础上,加强了各组内种群的多样性。
传统的混合蛙跳算法的局部搜索策略与粒子群算法类似,最主要缺点就是容易陷入早熟收敛、局部寻优能力较差。本公开在每次迭代中时在对每组个体进行局部搜索的基础上,加入了全局搜索过程,扩大了算法的搜索范围,有利于算法跳入局部最优,避免算法陷入早熟。
本公开实施例为提升每次迭代完成时种群内优质解的质量,引入了基于贪婪的路径重连算法,分别以种群内两个优势解为导向解和初始解,通过路径重连算法产生更高质量的新解,以替换已有的优势解,大大增强了算法的搜索深度,使得算法逐渐向最优解靠近。
基于相同的构思,本公开还提供了一种基于混合蛙跳—路径重连的生产运输协同调度系统,参见图3,包括:
计算模块31,用于执行如下步骤:
步骤1、将工件的加工时间和各机器与客户之间的运输时间作为输入,初始化混合蛙跳算法与路径重连算法的各个参数,包括:种群内个体总数n,种群被划分的组数s,迭代次数l、最大迭代次数lmax,1≤l≤lmax;并初始化l=1;
步骤2、产生初始种群
步骤3、计算第l代的n个个体的适应度值
步骤4、将第l代n个个体分成s组,所述的s个组的集合记为
步骤5、对
步骤6、重复步骤5直到
步骤7、在
步骤8、将k+1赋值给k,判断k≤s是否成立,若成立,则执行步骤6;若不成立,则执行步骤9;
步骤9、将步骤7更新后的各组进行集合得到更新后的种群p;
步骤10、在p中随机选出两个个体执行贪婪路径重连算子并更新p;
步骤11、将l+1赋值给l,判断l≤lmax是否成立,若成立,则执行步骤3;否则,表示完成lmax次迭代;
输出模块32,用于将迭代结果作为工件分配至各机器的方案及每个机器上的加工顺序的调度结果并输出。
由于本实施例所介绍的基于混合蛙跳—路径重连的生产运输协同调度的系统为可以执行本公开实施例中的基于混合蛙跳—路径重连的生产运输协同调度的方法的系统,故而基于本公开实施例中所介绍的基于混合蛙跳—路径重连的生产运输协同调度的方法,本领域所属技术人员能够了解本实施例的基于混合蛙跳—路径重连的生产运输协同调度的系统的具体实施方式以及其各种变化形式,所以在此对于该基于混合蛙跳—路径重连的生产运输协同调度的系统如何实现本公开实施例中的基于混合蛙跳—路径重连的生产运输协同调度的方法不再详细介绍。只要本领域所属技术人员实施本公开实施例中基于混合蛙跳—路径重连的生产运输协同调度的方法所采用的系统,都属于本申请所欲保护的范围。
本公开实施例还公开一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:第一方面所述的方法。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本公开的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本公开的示例性实施例的描述中,本公开的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本公开要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本公开的单独实施例。