CN114266509A - 随机贪婪初始种群遗传算法求解柔性作业车间调度方法 - Google Patents
随机贪婪初始种群遗传算法求解柔性作业车间调度方法 Download PDFInfo
- Publication number
- CN114266509A CN114266509A CN202210095587.3A CN202210095587A CN114266509A CN 114266509 A CN114266509 A CN 114266509A CN 202210095587 A CN202210095587 A CN 202210095587A CN 114266509 A CN114266509 A CN 114266509A
- Authority
- CN
- China
- Prior art keywords
- population
- machine
- fitness
- algorithm
- chromosome
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- General Factory Administration (AREA)
Abstract
本发明公开了一种随机贪婪初始种群遗传算法求解柔性作业车间调度方法,包括S1‑参数设置;S2‑随机贪婪初始化种群;S3‑解码;S4‑适应度计算;S5‑选择;S6‑交叉;S7‑变异;S8‑更新种群和S9‑算法终止;本发明针对柔性作业车间调度问题,以最小化最大完成时间为目标函数,设计了一种基于机器加工时间相对最短的随机贪婪初始化种群遗传算法,这种算法避免了贪婪算法陷入局部最优解的缺陷,同时使得随机选择具有一定的任意性,这样既保证了初始种群的多样性,又使得初始解在质量上有一定的优势,这种算法使得初始种群在多样性和解的质量上达到了一定的折中,同时加快了算法的收敛速度。
Description
技术领域:
本发明涉及柔性作业车间调度技术领域,尤其一种涉及随机贪婪初始种群遗传算法求解柔性作业车间调度方法。
背景技术:
1990年Bruker和Schlie首次提出柔性作业车间调度问题(Flexible Job ShopScheduling Problem,FJSP),FJSP是作业车间调度问题(Job Shop Scheduling Problem,JSP)的扩展。在FJSP中,机器可以加工不同产品的不同工序,增加了机器柔性,使得工序可选加工机器不再唯一,同时增加了FJSP在求解过程中的计算难度。
柔性作业车间调度问题着重研究工件的工序顺序及机器的分配问题,在数学上,这一问题是一类典型的NP-hard问题,求解难度大,复杂度高,至今没有单一的算法能够全面有效地解决该问题。由于柔性作业车间调度问题具有较高的复杂性和解的灵活性,使得其研究具有重要的学术意义和应用价值,能够为实际生产活动提供有益借鉴,近年来成为了生产调度领域的研究热点。
尽管目前国内外已有许多学者进行了研究,但如何利用遗传算法高效求解FJSP,仍然被认为是一个具有挑战意义的研究。在解决柔性作业车间调度问题时,大部分的研究成果都是以遗传算法为主,通过对遗传算子的改进或对编码、解码方式的设计来求解FJSP,在生成初始种群的部分,目前很少有相应研究成果来对初始种群进行改进,大部分在生成初始种群时都是应用完全随机的方法来进行初始化种群,导致遗传算法存在在实际应用过程中容易陷入局部最优解的缺陷,并且算法的收敛速度较慢,求解过程漫长,同时在初始解的质量上都没有达到好的效果。
发明内容:
为解决上述技术问题,本发明提供一种随机贪婪初始种群遗传算法求解柔性作业车间调度方法。
本发明中柔性作业车间调度问题描述如下:
假设有n个工件集合J={J1,…,Jn}需要分配到m台机器上进行加工,m台机器集合表示为M={M1,…,Mm},每个工件都包含若干工序Oij(i=1,2,…,n;j=1,…,nl),Oij表示第i个工件的第j道工序,每道工序Oij都需要选择该工序加工机器集合Mij中的一台机器进行加工,Pijk表示工序Oij在机器Mk(k=1,2,…,m)上的加工时间。
该算法的目的以最小化最大完成时间Cmax=min{Ci,i=1,2,…,n}为目标函数(其中Ci表示工件Ji最后一道工序的完成时间),合理的将工件所有的工序分配到合适的机器上进行加工,为解决该问题,需要满足以下约束:
a)同一工件的工序间有先后顺序,后一道工序必须在前一道工序加工完成后开始加工:
Sij+Pijk≤Si(j+1) (1)
b)任意一台机器在任一时刻只能对某一工件的某一道工序进行加工:
Sij+Pijk≤Spq+L(1-yijkpq) (2)
Cij≤Si(j+1)+L(1-yijkpq) (3)
c)任意一个工件的某道工序在任意时刻只能选择加工机器集中的一台机器进行加工:
d)任意工序在加工过程中不允许中断:
Cij=Sij+Pijk (5)
其中Sij表示第i个工件的第j道工序的开始时间,Si(j+1)表示第i个工件的第j+1道工序的开始时间,Spq(p=1,2,…,n;q=1,…,nl)表示第p个工件的第q道工序的开始时间,Cij表示第i个工件的第j道工序的加工结束时间,L表示一个足够大的整数,yijkpq表示如果工序Oijk先于Opqk加工,yijkpq=1;否则yijkpq=0;Xijk表示如果工序Oij选择机器Mk,则Xijk=1;否则Xijk=0。
本发明具体技术方案实施如下:随机贪婪初始种群遗传算法求解柔性作业车间调度方法,其包括如下步骤:
S1-参数设置;设置随机贪婪初始化种群遗传算法求解柔性作业车间调度问题的相关参数,包括:种群规模PopSize,交叉概率Pc,变异概率Pm,迭代次数Iterations;
S2-随机贪婪初始化种群:包括,
S2.1:编码,采用双端编码方式,包括基于工序的编码和基于机器的编码。基于工序的编码用来确定工序的先后加工顺序,基于机器的编码用来选择每道工序的加工机器;
在工序编码部分,用整数index(index=1,2,…n)表示工件Ji(i=1,2,…n)的序号,例如整数“1”、“2”表示工件J1、J2,以此类推;工件Ji在工序编码中第j次出现就代表是该工件Ji的第j道工序Oij,例如工序编码基因串为:1-3-2-3-2-1-1-2-3,表示的工序为:O11-O31-O21-O32-O22-O12-O13-O23-O33。
在机器编码部分,同样用整数表示工件Ji所选的加工机器,并且编码方式是首先确定J1各个工序所选的加工机器,然后依次确定各个工件J2→J3→…→Jn的各工序所选加工机器,例如机器编码部分基因串为:3-2-5-1-4-3-3-2-4,表示的机器为:M3-M2-M5-M1-M4-M3-M3-M2-M4;则各工序与所选加工机器对应为:(O11,M3),(O12,M2),(O13,M5),(O21,M1),(O22,M4),(O23,M3),(O31,M3),(O32,M2),(O33,M4),
S2.2:初始化参数,s=1,i=1;
S2.3:随机生成一条工序的加工序列染色体;
S2.6:保存该机器;
S2.7:判断S是否等于工序总数,是则转S2.8;否则s=s+1,转S2.4;
S2.8:生成加工机器染色体;
S2.9:判断i是否等于PopSize,是则转S2.10,否则i=i+1,跳转S2.3;
S2.10:生成初始种群;
S3-解码:对染色体进行解码时,先根据工序编码基因串,依次遍历每一道工序,确定其工件号和工序号,然后根据机器编码基因串,确定与之对应的加工机器,并找到与之对应的加工时间;最后计算各工序、各机器的开始时间和结束时间,在满足约束的条件下,将所有工序都安排在各机器适当的加工位置,从而产生可行调度方案,保证生成的调度是主动调度;
S4-适应度计算:本文的适应度即目标函数最小化最大完成时间Cmax,Cmax=min{maxCi,i=1,2,…,n};
在遗传算法中,适应度是评价个体性能的主要指标。根据适应度的大小,对个体进行优胜劣汰。
本文中的适应度即Cmax,计算每一代种群中的Cmax;种群中有200个染色体就计算得出200个Cmax。
S5-选择:根据适应度的高低,选择适应度高的个体遗传到下一代种群,淘汰适应度低的个体;
S6-交叉:根据交叉概率Pc来执行;
S7-变异:根据变异概率Pm来执行,工序染色体随机选择4个位置的基因进行互换,机器染色体随机选择4个位置的基因,在各个所属的加工机器集中选择一个不等于当前机器的其他加工机器进行变异;
S8-更新种群:将初始种群和变异所得种群进行合并,并计算该种群适应度,将该种群按适应度从小到大进行排序,选取前200个个体作为新一代种群;
本方案新设计一种产生新种群的方法,具体是
1.将变异后的种群(200个染色体)与初始种群(200个染色体)进行合并,这就形成了一个400个染色体的种群.
2.将这400个染色体的种群进行适应度计算,计算结果从小到大进行排列.
3.选取排列中前200个染色体作为新的一代种群进行下一步的操作.
S9-判断算法是否达到终止条件:根据参数中对算法停止条件的设定,即迭代次数Iterations是否达到所设定数值,是则算法终止,输出最优解,否则回到S3-解码继续执行。
进一步的,在所述S1-参数设置中,种群规模PopSize=200,交叉概率Pc=0.8,变异概率Pm=0.1,迭代次数Iterations=200。
进一步的,在所述S5-选择中,采用锦标赛的方法进行选择操作,从当代种群中随机抽取两条染色体,计算并比较其适应度,选择适应度值小即适应度高的个体进入下一代种群,同时被选择的个体仍然放回到原始种群中,重新参与选择。
进一步的,在S6-交叉中,包括(1)POX交叉和(2)MPX交叉;其中:
(1)POX交叉
POX交叉仅对工序部分父代染色体进行交叉,P1和P2为调度问题中的两个父代染色体工序部分,C1和C2代表交叉后生成的子代染色体;SETP1把所有的工件随机分成两个集合Job1和Job2;
SETP2将P1中包含在Job1中的基因复制到C1,将P2中包含在Job2J2中的基因复制到C2,并保留它们的位置不变;
SETP3将P2中包含在Job2中的基因复制到C1,将P1中包含在Job1中的基因复制到C2,并保留它们的位置顺序不变;
(2)MPX交叉
MPX交叉仅对父代染色体中加工机器序列进行交叉,P1和P2为调度问题中的两个父代染色体加工机器序列,C1和C2代表交叉后生成的子代染色体;
SETP1随机产生一组0、1组成的序列,该序列长度与染色体的长度相等,将改序列称为集合R;
SETP2依次将P1和P2中与R集合中“1”的位置对应的机器选出,复制到C2和C1中,即交换加工机器;
SETP3再将P1和P2中剩下的机器保留到C1和C2中,最后生成子代C1和C2。
本发明的优点:本发明针对柔性作业车间调度问题,以最小化最大完成时间为目标函数,设计了一种基于机器加工时间相对最短的随机贪婪初始化种群遗传算法,这种算法避免了贪婪算法陷入局部最优解的缺陷,同时使得随机选择具有一定的任意性,这样既保证了初始种群的多样性,又使得初始解在质量上有一定的优势,这种算法使得初始种群在多样性和解的质量上达到了一定的折中,同时加快了算法的收敛速度。
附图说明:
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明随机机贪婪初始种群遗传算法求解柔性作业车间调度的方法流程图;
图2为本发明随机贪婪初始种群的方法流程图;
图3为实施例1中根据表1所列两段编码方式的染色体图;
图4为实施例1中基于工序染色体的POX交叉图;
图5为实施例1中基于机器染色体的MPX交叉图;
图6为实施例2中根据表2所列两段编码方式的染色体图;
图7为实施例2中基于工序染色体的POX交叉图;
图8为实施例2中基于机器染色体的MPX交叉图;
图9为实施例1求解所得调度结果甘特图;
图10为实施例2和3求解所得进化收敛曲线图;
图11为实施例2求解所得对应调度结果甘特图。
图12为实施例3求解所得对应调度结果甘特图。
具体实施方式:
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本实施例设计了一种随机贪婪初始种群遗传算法求解柔性作业车间调度的方法,如图1所示,具体按照以下步骤实施:
S1-参数设置;设置随机贪婪初始化种群遗传算法求解柔性作业车间调度问题的相关参数,包括:种群规模PopSize,交叉概率Pc,变异概率Pm,迭代次数Iterations;
S2-随机贪婪初始化种群:包括,
S2.1:编码,包括基于工序的编码和基于机器的编码。基于工序的编码用来确定工序的先后加工顺序,基于机器的编码用来选择每道工序的加工机器;
在工序编码部分,用整数表示某个工件的序号,例如整数“1”、“2”表示工件J1、J2,以此类推;工件Ji在工序编码中第几次出现就代表是该工件Ji的第几道工序,例如工序编码基因串为:1-3-2-3-2-1-1-2-3,表示的工序为:O11-O31-O21-O32-O22-O12-O13-O23-O33。
在机器编码部分,同样用整数表示工件Ji所选的加工机器,并且编码方式是首先确定J1各个工序所选的加工机器,然后依次确定各个工件J2→J3→…→Jn的各工序所选加工机器,例如机器编码部分基因串为:3-2-5-1-4-3-3-2-4,表示的机器为:M3-M2-M5-M1-M4-M3-M3-M2-M4;则各工序与所选加工机器对应为:(O11,M3),(O12,M2),(O13,M5),(O21,M1),(O22,M4),(O23,M3),(O31,M3),(O32,M2),(O33,M4)。
如:一个3×5(即3工件5机器)的柔性作业车间调度实例如表1所示(“-”表示当前机器不能对该工序进行加工)。
表1. 3×5柔性作业车间调度实例
(其中Ji,i=1,2,…,n表示第i个工件;Oij,i=1,2,…,n;j=1,2,…nl表示第i个工件的第j道工序;Mk,k=1,2…,m表示第p个机器)
根据表1,这两种编码方式的染色体如图3所示。
本发明设计的随机贪婪初始种群的方法如图2所示,具体按以下步骤实施:
S2.2:初始化参数,s=1,i=1;
S2.3:随机生成一条工序的加工序列染色体;
S2.6:保存该机器;
S2.7:判断S是否等于工序总数,是则转S2.8;否则s=s+1,转S2.4;
S2.8:生成加工机器染色体;
S2.9:判断i是否等于PopSize,是则转S2.10,否则i=i+1,跳转S2.3;
S2.10:生成初始种群;
S3-解码:对染色体进行解码时,先根据工序编码基因串,依次遍历每一道工序,确定其工件号和工序号,然后根据机器编码基因串,确定与之对应的加工机器,并找到与之对应的加工时间;最后计算各工序、各机器的开始时间和结束时间,在满足约束的条件下,将所有工序都安排在各机器适当的加工位置,从而产生可行调度方案,保证生成的调度是主动调度;
S4-适应度计算:本文的适应度即目标函数最小化最大完成时间Cmax,Cmax=min{maxCi,i=1,2,…,n};
S5-选择;根据适应度的高低,来选择适应度高的个体遗传到下一代种群,淘汰适应度低的个体。本文采用锦标赛的方法进行选择操作,从当代种群中随机抽取两条染色体,计算并比较其适应度,选择适应度高的个体进入下一代种群,同时被选择的个体仍然放回到原始种群中,可以重新参与选择。
S6-交叉:根据交叉概率Pc来执行;
(1)POX交叉
POX交叉仅对工序部分父代染色体进行交叉,如图4所示,P1和P2为调度问题中的两个父代染色体工序部分,C1和C2代表交叉后生成的子代染色体;
SETP1把所有的工件随机分成两个集合Job1和Job2;例如Job1={1,3},Job2={2}。
SETP2将P1中包含在Job1中的基因复制到C1,将P2中包含在Job2中的基因复制到C2,并保留它们的位置不变;
SETP3将P2中包含在Job2中的基因复制到C1,将P1中包含在Job1中的基因复制到C2,并保留它们的位置顺序不变;
(2)MPX交叉
MPX交叉仅对父代染色体中加工机器序列进行交叉,如图5所示,P1和P2为调度问题中的两个父代染色体加工机器序列,C1和C2代表交叉后生成的子代机器部分染色体;
SETP1随机产生一组0、1组成的序列,该序列长度与染色体的长度相等,将改序列称为集合R;
SETP2依次将P1和P2中与R集合中“1”的位置对应的机器选出,分别复制到C2和C1中,即交换加工机器;
SETP3再将P1和P2中剩下的机器分别保留到C1和C2中,最后生成子代C1和C2。
S7-变异:根据变异概率Pm来执行;工序染色体随机选择4个位置的基因进行互换,机器染色体随机选择4个位置的基因,在各个所属的加工机器集中选择一个不等于当前机器的其他加工机器进行变异;
S8-更新种群:将初始种群和变异所得种群进行合并,并计算该种群适应度,将该种群按适应度从小到大进行排序,选取前200个个体作为新一代种群;
本方案新设计一种产生新种群的方法,具体是
1.将变异后的种群(200个染色体)与初始种群(200个染色体)进行合并,这就形成了一个400个染色体的种群。
2.将这400个染色体的种群进行适应度计算,计算结果从小到大进行排列。
3.选取排列中前200个染色体作为新的一代种群进行下一步的操作.
S9-判断算法是否达到终止条件:根据参数中对算法停止条件的设定,即迭代次数Iterations是否达到所设定数值,是则算法终止,输出最优解,否则回到S3-解码继续执行。
实施例2:
对柔性作业车间调度Kacem基准算例8×8问题进行求解,其加工信息如表2所示,具体按照以下步骤实施:
表2.Kacem基准算例8×8柔性作业车间调度问题
S1-参数设置;设置随机贪婪初始化种群遗传算法求解柔性作业车间调度问题的相关参数,包括:种群规模PopSize,交叉概率Pc,变异概率Pm,迭代次数Iterations;
S2-随机贪婪初始化种群:包括,
S2.1:编码,包括基于工序的编码和基于机器的编码。基于工序的编码用来确定工序的先后加工顺序,基于机器的编码用来选择每道工序的加工机器;
在工序编码部分,用整数表示某个工件的序号,例如整数“1”、“2”表示工件J1、J2,以此类推;工件Ji在工序编码中第几次出现就代表是该工件Ji的第几道工序,例如工序编码基因串为:8-1-3-6-2-5-3-7-1-4-5-2-7-6-8-5-1-4-2-4-3-5-6-8-2-7-8,表示的工序为:O81-O11-O31-O61-O21-O51-O32-O71-O12-O41-O52-O22-O72-O62-O82-O53-O13-O42-O23-O43-O33-O54-O63-O83-O24-O73-O84。
在机器编码部分,同样用整数表示工件Ji所选的加工机器,并且编码方式是首先确定J1各个工序所选的加工机器,然后依次确定各个工件J2→J3→…→Jn的各工序所选加工机器,例如机器编码部分基因串为:2-3-6-3-4-9-4-7-3-1-2-6-5-1-4-6-5-3-8-2-3-8-6-1-2-8-5,表示的机器为:M2-M3-M6-M3-M4-M9-M4-M7-M3-M1-M2-M6-M5-M1-M4-M6-M5-M3-M8-M2-M3-M8-M6-M1-M2-M8-M5;则各工序与所选加工机器对应为:(O81,M2),(O11,M3),(O31,M6),(O61,M3),(O21,M4),(O51,M9),(O32,M4),(O71,M7),(O12,M3),(O41,M1),(O52,M2),(O22,M6),(O72,M5),(O62,M1),(O82,M4),(O53,M6),(O13,M5),(O42,M3),(O23,M8),(O43,M2),(O33,M3),(O54,M8),(O63,M6),(O83,Mt),(O24,M2)(O73,M8),(O84,M5)。
根据表2,这两种编码方式的染色体如图6所示。
按照本发明设计的随机贪婪初始种群的方法,如图2所示,具体按以下步骤实施:
S2.2:初始化参数,s=1,i=1;
S2.3:随机生成一条工序的加工序列染色体;
S2.6:保存该机器;
S2.7:判断S是否等于工序总数,是则转S2.8;否则s=s+1,转S2.4;
S2.8:生成加工机器染色体;
S2.9:判断i是否等于PopSize,是则转S2.10,否则i=i+1,跳转S2.3;
S2.10:生成初始种群;
S3-解码:对染色体进行解码时,先根据工序编码基因串,依次遍历每一道工序,确定其工件号和工序号,然后根据机器编码基因串,确定与之对应的加工机器,并找到与之对应的加工时间;最后计算各工序、各机器的开始时间和结束时间,在满足约束的条件下,将所有工序都安排在各机器适当的加工位置,从而产生可行调度方案,保证生成的调度是主动调度;
S4-适应度计算:本文的适应度即目标函数最小化最大完成时间Cmax,Cmax=min{maxCi,i=1,2,…,n};
S5-选择;根据适应度的高低,来选择适应度高的个体遗传到下一代种群,淘汰适应度低的个体。本文采用锦标赛的方法进行选择操作,从当代种群中随机抽取两条染色体,计算并比较其适应度,选择适应度高的个体进入下一代种群,同时被选择的个体仍然放回到原始种群中,可以重新参与选择。
S6-交叉:根据交叉概率Pc来执行;
(1)POX交叉
POX交叉仅对工序部分父代染色体进行交叉,如图7所示,P1和P2为调度问题中的两个父代染色体工序部分,C1和C2代表交叉后生成的子代染色体;
SETP1把所有的工件随机分成两个集合Job1和Job2;例如Job1={1,2,3,4,5},Job2={6,7,8}。
SETP2将P1中包含在Job1中的基因复制到C1,将P2中包含在Job2中的基因复制到C2,并保留它们的位置不变;
SETP3将P2中包含在Job2中的基因复制到C1,将P1中包含在Job1中的基因复制到C2,并保留它们的位置顺序不变;
(2)MPX交叉
MPX交叉仅对父代染色体中加工机器序列进行交叉,如图8所示,P1和P2为调度问题中的两个父代染色体加工机器序列,C1和C2代表交叉后生成的子代机器部分染色体;
SETP1随机产生一组0、1组成的序列,该序列长度与染色体的长度相等,将改序列称为集合R;
SETP2依次将P1和P2中与R集合中“1”的位置对应的机器选出,分别复制到C2和C1中,即交换加工机器;
SETP3再将P1和P2中剩下的机器分别保留到C1和C2中,最后生成子代C1和C2。
7-变异:根据变异概率Pm来执行;工序染色体随机选择4个位置的基因进行互换,机器染色体随机选择4个位置的基因,在各个所属的加工机器集中选择一个不等于当前机器的其他加工机器进行变异;
S8-更新种群:将初始种群和变异所得种群进行合并,并计算该种群适应度,将该种群按适应度从小到大进行排序,选取前200个个体作为新一代种群;
按照本发明新设计的产生新种群的方法,具体是
1.将变异后的种群(200个染色体)与初始种群(200个染色体)进行合并,这就形成了一个400个染色体的种群.
2.将这400个染色体的种群进行适应度计算,计算结果从小到大进行排列.
3.选取排列中前200个染色体作为新的一代种群进行下一步的操作.
S9-判断算法是否达到终止条件:根据参数中对算法停止条件的设定,即迭代次数Iterations是否达到所设定数值,是则算法终止,输出最优解,否则回到S3-解码继续执行。
实施例3:
在实施例2的基础上,只改变S2.2-S2.10初始化种群方法,其他步骤一致。
完全随机贪婪初始化种群:
S2.2:初始化参数,s=1,i=1;
S2.3:随机生成一条工序的加工序列染色体;
S2.5:保存该机器;
S2.6:判断S是否等于工序总数,是则转S2.7;否则s=s+1,转S2.4;
S2.7:生成加工机器染色体;
S2.8:判断i是否等于PopSize,是则转S2.9,否则i=i+1,跳转S2.3;
S2.9:生成初始种群;
计算结果与分析:
依据实施例1算法对柔性作业车间调度3*5问题实例进行求解,实施例2和实施例3算法对柔性作业车间调度Kacem基准算例8×8问题进行求解,设置遗传算法参数如下:种群规模PopSize=200,交叉概率Pc=0.8,变异概率Pm=0.1,迭代次数Iterations=200。
通过对3*5柔性作业车间问题实例求解所得最优最大完成时间为10,其对应最优结果甘特图如图9所示。通过求解Kacem基准算例8×8柔性作业车间问题所得进化收敛曲线图如图10所示,虚线“--”表示完全随机初始化种群遗传算法的收敛曲线,实线“-”表示随机贪婪初始化种群遗传算法的收敛曲线,由图10可知,完全随机初始化种群方法在第140代时收敛到14,并且该算法初始解为36;随机贪婪初始化种群方法在第72代收敛到14,并且本发明算法初始解为29;通过对比,本发明方法在初始解的质量上要比完全随机初始种群方法有所提升,初始解缩小了7个单位时间,并且在收敛速度上有了极大提升,比完全随机初始种群方法快了68代。同时本算法(实施例2)和实施例3求解Kacem基准算例8×8问题所得解最大完成时间为14,而14是Kacem基准算例8×8问题目前已知最优结果,其对应调度结果甘特图如图11和图12所示,说明本发明算法在求解中小规模柔性作业车间调度问题时能快速收敛且求解结果较为稳定,较之传统完全随机初始种群遗传算法有一定的优越性,可用于实际企业生产调度问题中。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.随机贪婪初始种群遗传算法求解柔性作业车间调度方法,其特征在于,其包括如下步骤:
S1-参数设置;设置随机贪婪初始化种群遗传算法求解柔性作业车间调度问题的相关参数,包括:种群规模PopSize,交叉概率Pc,变异概率Pm,迭代次数Iterations;
S2-随机贪婪初始化种群:包括,
S2.1:编码,采用双段编码方式包括基于工序的编码和基于机器的编码。基于工序的编码用来确定工序的先后加工顺序,基于机器的编码用来选择每道工序的加工机器;
基于工序编码部分为:用整数index(index=1,2,…n)表示工件Ji(i=1,2,…n)的序号,整数index在工序编码中按序第j(j=1,…nl)次出现则是工件Ji的第j道工序Oij;
基于机器编码部分为:同样用整数表示工序Oij所选的加工机器,并且编码方式是首先确定J1各个工序的加工机器,然后依次确定各个工序J2→J3→…→Jn的各工序所选加工机器;
S2.2:初始化参数,s=1,i=1;
S2.3:随机生成一条工序的加工序列染色体;
S2.6:保存该机器;
S2.7:判断s是否等于工序总数,是则转S2.8;否则s=s+1,转S2.4;
S2.8:生成加工机器染色体;
S2.9:判断i是否等于PopSize,是则转S2.10,否则i=i+1,跳转S2.3;
S2.10:生成初始种群;
S3-解码:对染色体进行解码时,先根据工序编码基因串,依次遍历每一道工序,确定其工件号和工序号,然后根据机器编码基因串,确定与之对应的加工机器,并找到与之对应的加工时间;最后计算各工序、各机器的开始时间和结束时间,在满足约束的条件下,将所有工序都安排在各机器适当的加工位置,从而产生可行调度方案,保证生成的调度是主动调度;
S4-适应度计算:本文的适应度即目标函数最小化最大完成时间Cmax,Cmax=min{max Ci,i=1,2,…,n};
S5-选择:根据适应度的高低,选择适应度高的个体遗传到下一代种群,淘汰适应度低的个体;
S6-交叉:根据交叉概率Pc来执行;
S7-变异:工序染色体随机选择4个位置的基因进行互换,机器染色体随机选择4个位置的基因,在各个所属的加工机器集中选择一个不等于当前机器的其他加工机器进行变异;
S8-更新种群:设计了一种产生新种群的方法,将初始种群和变异所得种群进行合并,并计算该种群适应度,将该种群按适应度从小到大进行排序,选取前200个个体作为新一代种群;
S9-算法终止:根据参数中对算法停止条件的设定,即迭代次数Iterations是否达到,是则算法终止,输出最优解,否则回到S3-解码继续执行。
2.根据权利要求1所述随机贪婪初始种群遗传算法求解柔性作业车间调度方法,其特征在于,在所述S1-参数设置中,种群规模PopSize=200,交叉概率Pc=0.8,变异概率Pm=0.1,迭代次数Iterations=200。
3.根据权利要求1所述随机贪婪初始种群遗传算法求解柔性作业车间调度方法,其特征在于,在所述S5-选择中,采用锦标赛的方法进行选择操作,从当代种群中随机抽取两条染色体,计算并比较其适应度,选择适应度值小即适应度高的个体进入下一代种群,同时被选择的个体仍然放回到原始种群中,重新参与选择。
4.根据权利要求1所述随机贪婪初始种群遗传算法求解柔性作业车间调度方法,其特征在于,在S6-交叉中,包括(1)POX交叉和(2)MPX交叉;其中:
(1)POX交叉
POX交叉仅对工序部分父代染色体进行交叉,P1和P2为调度问题中的两个父代染色体工序部分,C1和C2代表交叉后生成的子代染色体;
SETP1把所有的工件随机分成两个集合Job1和Job2;
SETP2将P1中包含在Job1中的基因复制到C1,将P2中包含在Job2中的基因复制到C2,并保留它们的位置不变;
SETP3将P2中包含在Job2中的基因复制到C1,将P1中包含在Job1中的基因复制到C2,并保留它们的位置顺序不变;
(2)MPX交叉
MPX交叉仅对父代染色体中加工机器序列进行交叉,P1和P2为调度问题中的两个父代染色体加工机器序列,C1和C2代表交叉后生成的子代染色体;
SETP1随机产生一组0、1组成的序列,该序列长度与染色体的长度相等,将改序列称为集合R;
SETP2依次将P1和P2中与R集合中“1”的位置对应的机器选出,复制到C2和C1中,即交换加工机器;
SETP3再将P1和P2中剩下的机器保留到C1和C2中,最后生成子代C1和C2。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210095587.3A CN114266509A (zh) | 2022-01-26 | 2022-01-26 | 随机贪婪初始种群遗传算法求解柔性作业车间调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210095587.3A CN114266509A (zh) | 2022-01-26 | 2022-01-26 | 随机贪婪初始种群遗传算法求解柔性作业车间调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114266509A true CN114266509A (zh) | 2022-04-01 |
Family
ID=80833334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210095587.3A Pending CN114266509A (zh) | 2022-01-26 | 2022-01-26 | 随机贪婪初始种群遗传算法求解柔性作业车间调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114266509A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116630472A (zh) * | 2023-05-24 | 2023-08-22 | 浪潮智慧科技有限公司 | 一种基于数据驱动的甘特图生成方法、设备及介质 |
CN117057485A (zh) * | 2023-10-11 | 2023-11-14 | 山东天鼎舟工业科技有限公司 | 一种用于铸件加工生产的调度方法及系统 |
CN117436703A (zh) * | 2023-11-27 | 2024-01-23 | 国网江苏省电力有限公司扬州供电分公司 | 一种基于遗传算法的输电工作票安全措施生成方法 |
-
2022
- 2022-01-26 CN CN202210095587.3A patent/CN114266509A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116630472A (zh) * | 2023-05-24 | 2023-08-22 | 浪潮智慧科技有限公司 | 一种基于数据驱动的甘特图生成方法、设备及介质 |
CN116630472B (zh) * | 2023-05-24 | 2024-01-23 | 浪潮智慧科技有限公司 | 一种基于数据驱动的甘特图生成方法、设备及介质 |
CN117057485A (zh) * | 2023-10-11 | 2023-11-14 | 山东天鼎舟工业科技有限公司 | 一种用于铸件加工生产的调度方法及系统 |
CN117057485B (zh) * | 2023-10-11 | 2024-01-09 | 山东天鼎舟工业科技有限公司 | 一种用于铸件加工生产的调度方法及系统 |
CN117436703A (zh) * | 2023-11-27 | 2024-01-23 | 国网江苏省电力有限公司扬州供电分公司 | 一种基于遗传算法的输电工作票安全措施生成方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114266509A (zh) | 随机贪婪初始种群遗传算法求解柔性作业车间调度方法 | |
CN110543151B (zh) | 基于改进nsga-ⅱ求解车间节能调度问题的方法 | |
CN109034633B (zh) | 改进遗传算法求解带移动时间的柔性作业车间调度方法 | |
CN103530702B (zh) | 一种基于瓶颈设备分解的大规模作业车间调度方法 | |
CN106610654A (zh) | 针对柔性作业车间调度的改进遗传算法 | |
CN111325443B (zh) | 一种基于灾变机制的改进遗传算法求解柔性作业车间调度的方法 | |
CN110389819B (zh) | 一种计算密集型批处理任务的调度方法和系统 | |
CN113610233B (zh) | 一种基于改进遗传算法的柔性作业车间调度方法 | |
CN110288185B (zh) | 一种分布式柔性流水线调度方法 | |
CN108460463B (zh) | 基于改进遗传算法的高端装备流水线生产调度方法 | |
CN101901425A (zh) | 一种基于多种群协同进化的柔性作业车间调度方法 | |
CN111382915B (zh) | 一种共融agv的柔性作业车间调度方法 | |
CN114186749A (zh) | 基于强化学习及遗传算法的柔性车间调度方法及模型 | |
CN113569483A (zh) | 基于人工蜂群算法求解多目标柔性作业车间调度的方法 | |
CN110909787A (zh) | 基于聚类的进化算法进行多目标批调度优化的方法和系统 | |
CN112381343A (zh) | 一种基于遗传-骨干粒子群混合算法的柔性作业车间调度方法 | |
CN112348323A (zh) | 一种多目标的能源供应与作业柔性排程方法 | |
CN110531716A (zh) | 基于离散鲸鱼算法求解低碳车间调度问题的方法 | |
CN112749776A (zh) | 一种基于改进混合遗传算法的作业车间调度方法 | |
CN117075545A (zh) | 一种多目标柔性作业车间调度方法、电子设备、介质 | |
CN113689066A (zh) | 一种基于nsga-ii算法的物联网车间调度方法 | |
CN115796510A (zh) | 一种基于改进的变邻域遗传算法的多目标柔性作业车间调度方法 | |
CN113762811B (zh) | 一种考虑加班的无拖期Job Shop调度问题求解方法及系统 | |
Quan et al. | Multi-objective optimization scheduling for manufacturing process based on virtual workflow models | |
CN114021934A (zh) | 基于改进spea2求解车间节能调度问题的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |