本发明涉及生产制造技术领域,具体涉及一种允许工序跳跃的混合流水车间调度优化方法。
背景技术:
随着经济的迅速发展和技术的快速进步,客户的需求越发多样化,企业之间的竞争变得越来越激烈。传统的少品种、大批量的流水线生产模式已经不能适应新的市场需求,逐渐向可以生产多品种、小批量的混合流水生产线的模式转变。混合流水车间是传统单一流水车间的延伸,这种生产模式下,在同一车间可以生产工艺相近、结构类似的多种产品,既具备传统的流水车间的高效率,同时又比传统的流水车间具有更好的柔性,更能满足多品种、小批量、多样化的市场需求。
混合流水车间调度问题(hybridflowshopschedulingproblem,hfsp)又称为柔性流水车间调度问题,是由salvador在1973年基于石油工业背景首先提出,是一般流水车间调度问题和并行机调度问题的结合。目前,对于混合流水车间的调度问题,大多数研究的是所有待加工的工件都要经过所有的工序,即所有的工件具有完全相同的加工路径。然而,在现实的生产系统中,往往存在某些加工工件不需要经过某些工序,即跳过某些工序,但所有工件的加工流向是相同的。它与流水车间调度问题不同,没有所有工件具有完全相同的加工路径这一约束,但它又具有流水车间调度问题的特点,即所有待加工工件的加工流向是一样的,它是混合流水车间调度问题的延伸。这类调度问题称之为允许工序跳跃的混合流水线调度问题(hybridflowshopschedulingproblemwithmissingoperation,hfspmo),即待加工工件的加工路径不完全相同,但工件的加工流向是一样的,有些工件不需要经过所有的加工工序,可以跳过其不需要加工的工序,并且至少有一道工序中存在并行机器,这种生产系统广泛存在于炼钢企业和制造企业之中。目前,允许工序跳跃的混合流水车间调度问题的研究成果还不够丰富,本文将研究允许工序跳跃的混合流水车间的调度问题。这类调度问题更加符合工业实际车间的情况,具有重要的研究意义。
技术实现要素:
有鉴于此,本发明的目的在于提供一种允许工序跳跃的混合流水车间调度优化方法,用于求解允许工序跳跃的混合流水线调度最优方案。
为实现上述目的,本发明采用如下技术方案:
一种允许工序跳跃的混合流水车间调度优化方法,包括以下步骤:
步骤s1:根据车间加工数据信息,构造染色体;
步骤s2:初始化种群,得到父代种群;
步骤s3:判断判断是否满足预设终止条件:若是,转至步骤s9;若不是,执行步骤s4至步骤s8;
步骤s4:选择操作采用轮盘赌选择方式从父代种群中选出较好的染色体组成新种群;
步骤s5:依次从选择操作得到的新种群中抽取两条染色体,随机产生一个(0,1)内的随机数rand,若rand<pc,则执行交叉操作,否则不执行交叉操作;
步骤s6:对于交叉后的染色体,随机产生一个(0,1)内的随机数rand,若rand<pm,则染色体执行变异操作,否则不执行变异操作;变异操作完成后得到规模为n的子代种群;
步骤s7:将父代种群和子代种群合并,形成规模为2n的合并种群,并计算染色体的适应度值;对合并种群采用二元锦标赛方法选出新种群;作为下一次迭代的父代种群;
步骤s8:选出新种群中的最优染色体,采用局部迭代搜索算法进行迭代局部搜索,并将搜索结果代替新种群中的最优染色体,返回步骤s3;
步骤s9:输出最优解,作为车间加工最优调度方案。
进一步的,所述步骤s1具体为:
设待加工工件的数量为n,车间加工系统总共有g道工序,每道工序中的机器数量为mr(r=1,2,3...,g),其中至少存在一道工序的机器数量大于1;构造一条长度为n×g的染色体,如下:
其中,染色体中的y1到yn这n个元素表示的是工件在第1道工序的加工情况,取值是(1,m1+1)中的实数。
进一步的,所述轮盘赌选择方式与染色体的适应度值有关,染色体适应度值越大,被选中的概率就越大;染色体的选择概率根据下式计算:
其中,p(xk)为染色体xk的选择概率,n是种群大小。
进一步的,所述交叉操作采用分段两点交叉的方式,具体为:
步骤s51:从选择操作得到的种群中不放回且不重复的随机抽取两条染色体;
步骤s52:将染色体进行分段,分段数量与车间的工序相同,小段长度与待加工工件数量相同;
步骤s53:在每个小段之间随机确定两个交叉点;
步骤s54:对每个小段执行两点交叉操作,生成两条新的染色体,并存放到新的种群中去。
进一步的,所述变异操作采用分段两点交换的变异方式,具体为:
步骤s61:将需要变异操作的染色体进行分段,分段数量与车间的工序相同,小段长度与待加工工件数量相同;
步骤s62:分别在每个小段随机选取两个不为0的基因;
步骤s63:分别在每个小段对选取的两个基因进行交换操作,形成新的染色体,并代替变异前的染色体存放到种群中。
进一步的,所述步骤s7具体为:
步骤s71:将父代种群和经交叉、变异操作后产生的子代种群合并,产生种群规模为2n的合并种群;
步骤s72:从合并种群中不放回的随机抽取两条染色体;
步骤s73:比较两条染色体的适应度值,将适应度值大的保留到一个新的种群中。
进一步的,所述适应度函数的表达式如下:
其中,f(xk)是染色体xk的目标函数值,k为染色体编号;j(xk)→-∞。
进一步的,所述迭代局部搜索算法包括微调、局部搜索和接收准则。
本发明与现有技术相比具有以下有益效果:
本发明能够快速得到允许工序跳跃的混合流水车间最优调度方案,有效提高车间运转效率。
附图说明
图1是本发明一实施例中允许工序跳跃的混合流水线示意图;
图2是本发明一实施例中标准遗传算法的流程图;
图3是本发明一实施例中迭代局部搜索算法的流程图;
图4是本发明一实施例中改进遗传算法的流程图;
图5是本发明一实施例中改进遗传算法和标准遗传算法在迭代搜索过程中种群最优值的变化曲线;
图6是本发明一实施例中采用标准遗传算法优化得出的最佳调度方案的甘特图;
图7是本发明一实施例中采用改进遗传算法优化得出的最佳调度方案的甘特图。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
请参照图1,本实施例中提供一能完成6种零件加工,包含7道工序10台加工设备的允许工序跳跃的混合流水线。其数学模型为:
ei,r≤si,ri∈n,r∈ni(6)
ci,r≥0i∈n,r∈g(8)
其中,n为工件集合,n={1,2,3,...,n},n为工件数量;i为工件编号,i∈n;ni为工件i经过的工序集合;ni为工件i的总工序数,ni=|ni|;ni(j)为集合ni的第j个元素,j=1,2,...,ni;g为生产线总的工序数,g=max(ni);g为工序集合,g={1,2,..,g};r为工序编号,r=1,2,3...g;m为生产线中机器总数;mr为第r道工序中机器的集合;mr为第r道工序中机器的数量,mr=|mr|;r为第r道工序的机器编号,r=1,2,3...mr;oi,r为工件i的第r道工序;pi,r,r为工件i在第r道工序的第r台机器上的加工时间;nr为在第r道工序的第r台机器上加工的工件集合;nr为在第r道工序的第r台机器上加工的工件数量,nr=|nr|;πr为在第r道的第r台机器上加工的工件序列;πr(a)为在第r道的第r台机器上加工的第a个工件,a={1,2,...,nr};ei,r为工件i的第r道工序的最早开工时间;si,r为工件i在第r道工序的实际开工时间;
式(1)表示优化目标是最小化最大完工时间;式(2)表示机器数量的约束,即总的机器数等于每道工序中机器数之和;式(3)保证每个工件在其所需要的工序中只能选择一台机器完成该道工序的全部加工任务,在不需要加工的工序可以直接跳过;式(4)保证了工件在加工过程中不能被打断,工件完工时间等于工件的实际开工时间与加工时间之和;式(5)表示工件i下一道工序的最早开工时间是工件在上一道工序的完工时间与其到下一道工序的搬运时间和准备时间之和;式(6)表示oi,r的实际开工时间不能早于其最早开工时间;式(7)保证在同台机器加工的零件,必须等前一个工件加工完成后才能进行下一个工件的加工;式(8)保证了完工时间的正向性。
本发明提供一种允许工序跳跃的混合流水车间调度优化方法,包括以下步骤:
步骤s1:根据车间加工数据信息,构造染色体;
设待加工工件的数量为n,车间加工系统总共有g道工序,每道工序中的机器数量为mr(r=1,2,3...,g),其中至少存在一道工序的机器数量大于1;构造一条长度为n×g的染色体,如下:
其中,染色体中的y1到yn这n个元素表示的是工件在第1道工序的加工情况,取值是(1,m1+1)中的实数。
对于元素yj(j=1,2,3,...,n×g),其整数部分代表工件所在工序加工的机器编号。显然,在同一道工序中,存在多个整数部分一样的元素,即工件在同一台机器上加工,此时需要确定工件的加工顺序。对于在第1道工序,按照元素从小到大的升序确定其加工顺序;对于第2道至第g道工序,若多个工件被分配到同一台机器加工,则按照工件到达的先后顺序进行加工,若是工件同时到达,则按照对应元素的升序来确定加工顺序。
例如,有3个待加工工件,工件1需要在工序1和工序2加工;工件2需要在工序1和工序3加工;工件3需要经过全部工序加工。每道工序有2台并行机器。对于这个允许工序跳跃的混合流水车间调度问题,有如下一个染色体:
对于上述这条染色体,可以得到工件的加工顺序和机器的分配情况:第1道工序的元素为1.3、2.4、2.1,所以工件1的第一道工序在编号为1的机器上加工,工件2和工件3则在编号为2的机器上加工,因为2.4>2.1,所以先加工工件3后加工工件2;第2道工序的元素为2.1、0、2.5,则表示工件2不需要在第2道工序加工,而工件1和工件3都在第2道工序机器编号为2的机器上加工,加工顺序则根据第1道工序完工后,哪个工件先到达则先加工哪个,若是同时到达,由于2.1<2.5,则先加工工件1。同理,第3道工序中,工件1不需要在此加工,工件2在编号为1的机器加工,工件3在编号为2的机器上加工。
步骤s2:初始化种群,随机生成n条染色体组成初始种群,作为父代种群;
步骤s3:判断判断是否满足预设终止条件:若是,转至步骤s9;若不是,执行步骤s4至步骤s8;
步骤s4:选择操作采用轮盘赌选择方式从父代种群中选出较好的染色体组成新种群;所述轮盘赌选择方式与染色体的适应度值有关,染色体适应度值越大,被选中的概率就越大;染色体的选择概率根据下式计算:
其中,p(xk)为染色体xk的选择概率,n是种群大小。
步骤s5:依次从选择操作得到的新种群中抽取两条染色体,随机产生一个(0,1)内的随机数rand,若rand<pc,则执行交叉操作,否则不执行交叉操作;
所述交叉操作采用分段两点交叉的方式,具体为:
步骤s51:从选择操作得到的种群中不放回且不重复的随机抽取两条染色体;
步骤s52:将染色体进行分段,分段数量与车间的工序相同,小段长度与待加工工件数量相同;
步骤s53:在每个小段之间随机确定两个交叉点;
步骤s54:对每个小段执行两点交叉操作,生成两条新的染色体,并存放到新的种群中去。
步骤s6:对于交叉后的染色体,随机产生一个(0,1)内的随机数rand,若rand<pm,则染色体执行变异操作,否则不执行变异操作;变异操作完成后得到规模为n的子代种群;所述变异操作采用分段两点交换的变异方式,具体为:
步骤s61:将需要变异操作的染色体进行分段,分段数量与车间的工序相同,小段长度与待加工工件数量相同;
步骤s62:分别在每个小段随机选取两个不为0的基因;
步骤s63:分别在每个小段对选取的两个基因进行交换操作,形成新的染色体,并代替变异前的染色体存放到种群中。
步骤s7:将父代种群和子代种群合并,形成规模为2n的合并种群,并计算染色体的适应度值;对合并种群采用二元锦标赛方法选出新种群;作为下一次迭代的父代种群;所述步骤s7具体为:
步骤s71:将父代种群和经交叉、变异操作后产生的子代种群合并,产生种群规模为2n的合并种群;
步骤s72:从合并种群中不放回的随机抽取两条染色体;
步骤s73:比较两条染色体的适应度值,将适应度值大的保留到一个新的种群中。
步骤s8:选出新种群中的最优染色体,采用局部迭代搜索算法进行迭代局部搜索,并将搜索结果代替新种群中的最优染色体,返回步骤s3;所述迭代局部搜索算法包括微调、局部搜索和接收准则;
a)微调
对当前最优的染色体进行微调操作,保留最优染色体的大部分信息,又能对最优染色体进行扰动,实现向其他局部最优解发展。本实施例针对遗传算法种群中的最优染色体,采用分段随机替换染色体上个别基因的方式,实现微调操作。具体步骤如下:
步骤1:将最优染色体s进行分段,分段方式与交叉算子的分段方式相同;
步骤2:在各小段中随机选取一个基因,特别地,由于染色体存在为0的基因,其产生的替换基因也为0,这就使得微调操作没有效果,所以,在各小段选取基因时,应避免选到为0的基因;
步骤3:通过随机的方式产生替换基因,对被选取的基因进行替换,产生一个新的染色体(也称中间解)s*。
b)局部搜索
对微调后的中间解s*执行局部搜索操作,获得新的局部最优解s**。本文采用随机选取小段,并对小段内的基因执行破坏、重组的操作。
具体步骤如下:
步骤1:对微调后得到的中间解s*进行分段;
步骤2:随机选取一个小段,将小段内非0基因排列打乱;
步骤3:将打乱后的基因重新排列,得到新的染色体s**。
c)接受准则
本实施例中采用只接受改进解的接受准则,即当且仅当s**的适应度值大于s的适应度值时,才用s**代替s,否则最优个体仍为s。
步骤s9:输出最优解,作为车间加工最优调度方案。
在本实施例中,所述适应度函数的表达式如下:
其中,f(xk)是染色体xk的目标函数值,k为染色体编号;j(xk)→-∞。
实施例1:
对本实施例进行如下试验仿真:
iga在matlab2015a开发环境中运行。本实施例中算法的基本参数设置如下:种群大小n=50,交叉概率pc=0.85,变异概率pm=0.05,遗传算法最大迭代次数maxgen=300,迭代局部搜索次数nd=10。
实例为某一实际企业机加工车间内一条能够完成7道工序的加工的混流生产线,每道工序中分别有1台、2台、1台、1台、2台、2台、1台加工机器,工件在工序间的搬运采用行车搬运。加工时间、搬运时间以及准备时间如下所示。
表1工件在各机器上的加工时间(min)
表2工件在各道工序的准备时间(min)
表3工件在工序之间的搬运时间(min)
其中,表1和2的“—”表示工件不需要在该道工序加工;表3中,工件在开始加工时已经到达第1道工序,所以工件在第1道工序不考虑搬运时间,其余的“—”则表示工件不需要在该道工序加工。
1.所提改进算法的有效性
为验证本发明所提该进遗传算法的有效性,本发明采用改进遗传算法和标准遗传算法分别对上述实施例进行优化。对于标准遗传算法,选择方法采用轮盘赌选择,交叉方式为两点线性交叉,变异方式采用单点随机变异,算法的参数设置如下:种群大小n′=50,交叉概率p′c=0.85,变异概率p′m=0.05,迭代次数maxgen′=300。图5是改进遗传算法和标准遗传算法在迭代搜索过程中种群最优值的变化曲线。图6和图7分别是标准遗传算法和改进遗传算法优化得出的最佳调度方案的甘特图。
根据图5可知,由于加入了迭代局部搜索算法,改进后的遗传算法能够对当前种群的最优解进行局部的扰动和搜索,从而使算法能够跳出局部最优解,避免了算法陷入局部最优。改进的遗传算法具有较好的全局寻优能力,收敛速度快。由图6和图7可知,改进的遗传算法最后求解的方案的最大完工时间是974min,标准遗传算法求解的调度方案的完工时间是1021min,证明改进的遗传算法是有效的。
2.独立考虑搬运时间和准备时间的必要性
在实际生产过程中,工件在一道工序加工完后需要花时间将工件搬运至下一道工序,并且在加工前需要花时间做准备工作(如装夹工件、对刀)。现有车间调度的研究文献中,大都将两者忽略不计或者将两者累加到加工时间内。对于以上两种处理方式,都会导致与实际的生产情况不符合,使得优化得到的调度方案不能很好的贴近实际生产。
为了验证独立考虑搬运时间和准备时间的必要性,本发明分别采用不同的处理方式对搬运时间和准备时间进行处理,即两者都不考虑(记为方式一)、两者都累加到工件加工时间(记为方式二)和独立考虑两者(记为方式三),然后分别采用本发明所提出的改进遗传算法进行优化,分析对比搬运时间和准备时间对调度的影响。
根据一实施例与图7的对比可知,采用不考虑工件搬运时间和加工准备时间的处理方式时,完工时间为811min,明显变小了,这会导致管理者制定错误的交货期,影响生产系统后续的生产安排;其次,各工件每道工序的开工时间都被提前了,加工设备的空闲时间也减小了,例如图7中,机器1上的第一个工件4需等准备工作结束后,才开始加工,并且切换加工工件时均有准备时间,因此机器1存在空闲时间(即没有加工的时间),而一实施例中工件4在0时刻就直接开始加工,并且在由于没有准备时间,机器1呈现连续加工的状态;最后,由于忽略搬运时间和准备时间,也导致工件分配到加工机器的情况也不一样,致使调度方案的改变,例如虽然两种方案分配到机器1到机器5工件以及加工顺序是一样的,但在图7中,分配到机器6上加工的是工件6、工件1和工件2,分配到机器7上加工的工件是工件4、工件5、工件3,而在图3-7中,分配到机器6上加工的是工件4和工件3,分配到机器7上加工的是工件6、工件5、工件1和工件2。综上,工件的搬运时间和加工准备时间对最终的调度结果影响很大,在求解调度问题是必须要考虑搬运时间和加工准备时间。
根据一实施例与图7的对比可知,采用将工件搬运时间和加工准备时间都累加到工件的加工时间里的处理方式,完工时间为1005min,完工时间变大了,这是因为将搬运时间累加到加工时间里面,会推迟工件的完工时间,例如,在一实施例中,工件3在机器1上加工完备分配到机器3机工,由于机器3上工件5还在加工,工件3只能等待工件5加工完后再加工,若是将搬运时间和加工准备时间都累加到加工时间内,那么工件3在机器3的完工时间为工件5的完工时间、工件3的搬运时间、准备时间和加工时间之和,而若是将搬运时间和准备时间独立单独考虑时,那么工件5在机器3没完工时就完成了工件3的搬运,此时工件3在机器3上的完工时间则为工件5的完工时间、工件3的准备时间和加工时间之和,因此,将搬运时间和准备时间加入到加工时间会推迟完工时间;其次,将搬运时间和准备时间累加到加工时间会使机器的空闲时间变小,加工时间变长,例如图7中,机器1有空闲时间,其处于加工状态的时间小于303min,而另一实施例中,机器1没有空闲时间,其处于加工状态的时间为303min;最后,由于将搬运时间和准备时间累加到加工时间,同样会导致工件分配到加工机器的情况也不一样,致使调度方案的改变,例如两种方案机器1上工件的加工顺序有差别,分配到机器6和机器7的工件也不一样。因此,对于工件搬运时间和加工准备时间,不能累加至加工时间内,而需要分开独立考虑。
综上所述,工件搬运时间和加工准备时间对调度结果影响很大,不仅影响完工时间、机器空闲时间等调度性能指标,而且还影响最后调度方案的制定。对于工件搬运时间和加工准备时间的处理,既不能忽略不计,也不能将其简单的累加到加工时间里,而是要将其分开独立进考虑,才能使得最后的调度结果与实际生产情况相符合。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
代做工资流水公司鞍山企业银行流水唐山签证流水制作上饶代做自存流水天津自存流水样本南通贷款流水模板蚌埠开流水单湖州企业银行流水代做贵阳离职证明多少钱宜春签证银行流水 办理扬州打印银行流水PS许昌银行流水修改制作东莞个人工资流水 开具九江背调流水代开福州查企业流水打印青岛贷款工资流水 公司宁德购房银行流水报价宜昌银行流水PS打印黄冈工作收入证明制作鞍山公司流水办理上海贷款工资流水 打印邢台背调流水制作湘潭入职银行流水报价台州工资代付流水海口工资代付流水多少钱兰州银行流水账单办理广州房贷收入证明公司廊坊房贷工资流水 费用大庆开贷款银行流水泰州车贷工资流水 公司黄冈开流水账单香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤