一种混合遗传算法求解多目标柔性作业车间调度问题的制作方法

文档序号:11063174阅读:957来源:国知局
一种混合遗传算法求解多目标柔性作业车间调度问题的制造方法与工艺

本发明涉及作业车间调度技术领域,具体地涉及多目标柔性作业车间调度领域。



背景技术:

柔性作业车间调度问题(FJSP)是一种机器和工序有多个选择的调度。通常,它包含机器分配和工序调度。针对作业车间调度问题的方法是改进生产的工作效率、灵活性和可靠性的关键方法。深入研究柔性作业车间调度问题并针对它提出高效的算法是具有很大的现实意义的,特别是对于在一个激烈竞争环境中的企业。

相比于传统的作业车间调度问题,柔性作业车间调度问题有更少的约束,因此可行解的搜索空间更大。因此,它更困难,是一个NP—hard问题。针对这个问题的现有算法包括启发式算法、遗传算法和禁忌搜索等算法。

遗传算法(Genetic Algorithm,GA)作为一种启发性搜索方法,是基于“适者生存”机制设计的算法,其思想来源于达尔文的进化论和孟德尔的遗传学说。GA主要是通过从改进交叉操作和变异操作的角度以适应于具体问题的求解,但遗传算法在交叉变异后可能产生不可行的解,且遗传算法面临全局近优的问题。在这种情况下遗传搜索和邻域搜索组合的混合遗传算法被提出来解决柔性作业车间调度问题,这种组合使算法同时具备了全局搜索能力和局部搜索能力。

即使很多的算法被提出,但都有复杂的编码方式,使得解码困难耗费大量的计算时间。



技术实现要素:

针对现有技术存在的上述不足,本发明要解决的问题是提供一种混合遗传算法解决多目标柔性作业车间调度问题。

本算法的目的则是克服现有技术中存在的:第一、编码方式过于复杂,造成解码困难,计算时间长;第二、可行的解(调度方案)在经过交叉、变异操作后可能产生不可行的解(调度方案);第三、遗传搜索具有全局近优,局部搜索可能作用于局部最优解;第四、以加权法解决多目标问题时各目标函数的加权值不易确定;第五、一个解的邻域解数量非常多,占用计算时间过多。

本发明为实现上述目的所采用的技术方案是:采用一种混合遗传算法求解柔性作业车间调度问题,该算法包括以下步骤:

该算法的参数设定如下:种群规模N设为50、交叉概率Pc设定为0.5,突变概率Pm被设为0.05;局部搜索中对每个当前解检测k个邻域解;算法迭代的终止条件是:如果最优的个体在连续的20代中不能被改进,那么算法被停止。

步骤1:初始化种群N,采用一种新的编码方式——基于工件调度编码的矩阵染色体;

步骤2:更新精英组;

步骤3:通过相对重要性的权值法求出各目标函数加权值,通过标准化各目标函数确定适应度函数值;

步骤4:遗传搜索

步骤4.1:随机选择N/2个个体;

步骤4.2:通过概率Pc选择两个父代,进行基于矩阵的单点交叉;

步骤4.3:通过概率Pm选择父代,进行基于矩阵的突变;

步骤5:对每个解进行局部搜索;(与步骤4同时进行)

步骤6:采用轮盘赌法选择法随机选择S个体;

步骤7:迭代;

步骤8:更新精英组;

本发明的有益效果是:

第一、采用新的编码方式,简化了编码过程,同时使得算法在运行过程中几乎不用进行解码;第二、采用专门用于本编码方式的单点交叉算子和突变算子,更易得到可行解;第三、将遗传算法的全局搜索能力与局部搜索结合,增强搜索能力;第四、采用相对重要性的加权法,使各目标函数加权值更加符合实际生产情况。第五、只随机选取当前解的部分邻域解进行检测,避免了局部搜索占用过多的计算时间。

附图说明

图1本算法的详细流程图。

图2表示柔性作业车间调度的示例图。

图3表示该算法的编码方式示例图。

图4.1表示进行单点交叉的两个父代,其中粗线是交叉线,只交叉两个父代交叉线以上的任务。

图4.2表示交叉后的后代

图5表示基于矩阵的突变过程示例,其中粗线是突变线,突变只通过交换突变线之间的两行任务。

图6表示专家评估法得出的各目标的相对重要性。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图和实施例对本发明进一步详细说明。应当理解此处所描述的具体实施例仅仅用于解释本发明并不用于限定本发明。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明针对目前一些算法没有考虑多目标的柔性作业车间调度,且现有技术中遗传算法存在全局近优、解码过程困难的问题。该发明提出了一种混合遗传算法求解多目标柔性作业车间调度问题。其中时间、成本和设备利用率被用来作为目标函数。它把遗传算法的全局搜索能力与邻域搜索算子的局部搜索能力相结合。基于工序优先关系,矩阵表示法被设计出来。AHP层次分析法被采取来找到每个目标的加权值。每个目标被标准化以避免倾向于一些目标,并且,通过所有目标函数的线性和,原问题被转化为单目标优化问题。

下面结合附图和实施例,对本发明进行详细说明。

设在多目标柔性作业车间调度中:n个工件表示为:J1,J2,...Jn;m台机器表示为:M1,M2,...Mm;工件Ji的第j道工序表示为:Oij

多目标柔性作业车间调度问题可以从图2示例看出(图中“0”表示该机器上没有工序被加工)在一个生产系统中有m台机器和n个工件。每个工件需要一些步骤来加工,并且在每个步骤中,有数个机器能够被选择。每个工件的步骤的顺序是预先确定的。每个步骤能够在不同的机器上以不同的成本被执行。问题是如何确定开始时间、结束时间和工件的程序,以使完成时间、生产成本和设备利用率在满足下列条件的情况下被最优化:所有的机器在t=0时刻可用;一台机器一次仅仅能够加工一个工件;每个工序序列在相关的机器上的加工时间是已知的;每个工件的步骤是有顺序的,任意两个工件的步骤是无顺序的。

多目标柔性作业车间调度问题的数学模型可以表示为:完成时间通过所有工件的最大完成时间来评价。成本通过产品的加工成本和库存成本来测量。设备利用率通过机器的总负荷来测量。他们被用来作为目标函数。因此,问题的数学模型如下:

minf1=min(maxTi) (1)

受约束于Xijk=1或0, (4)

i=1,2,…,n,j=1,2,…,ni,k=1,2,…,m

其中Ti表示第i个工件的完成时间,C表示总消耗,Cijk表示第i个工件在第k台机器的第j个工序中的消耗,表示在第i个工件在第k台机器的第j个工序中的最早开始时间,表示第i个工件在第k台机器的第j-1个工序的结束时间,也就是,在第j-1个工序中允许的最早时间。表示在加工第j-1个工序和第j个工序期间第i个工件的库存消耗。Tijk表示第i个工件在第k台机器的第j个工序中的加工时间。Xijk表示决策变量,它表示在第j个工序中第i个工件是否会被在第k台机器上加工。如果是,Xijk取值1,否则,它取值0。ni是第i个工件的工序数。

针对建立的上述问题的模型,该算法的实施步骤如下:

该算法的参数设定如下:种群规模N设为50、交叉概率Pc设定为0.5,突变概率Pm被设为0.05;局部搜索中对每个当前解检测k个邻域解;算法迭代的终止条件是:如果最优的个体在连续的20代中不能被改进,那么算法被停止。

步骤1:初始化种群N,采用一种新的编码方式——基于工件调度编码的矩阵染色体;

一个合适的编码方案是解决实际问题的第一步,通过考虑特性和柔性路径结构,一个新的基于工件调度编码的矩阵染色体编码方案被设计出来。这种编码方式是用i/j来表示第j个工件在第k台机器上的第i个工序。采用此编码方案对柔性作业车间调度问题而言更加简单,且几乎不用进行解码。

该编码方案结合图3描述如下:该发明研究的是柔性作业车间中4台机器,2个工件,每个工件3道工序的的调度,图3在矩阵第k行的元素i/j表示第j个工件在第k台机器上的第i个工序,图中0表示在第k台机器上没有没有被加工的工件。例如,在第一行,1/2表示第二个工件在第一台机器上的第一个工序,0表示在第一台机器上没有工件被加工

步骤2:更新精英组;

步骤2.1:将当前种群中的非支配解复制入精英组;

步骤2.2:检测精英组中的解,将被其他解所支配的解从精英组中删除;

步骤3:通过相对重要性的权值法求出各目标函数加权值,通过标准化各目标函数确定适应度函数值;

步骤3.1根据专家评估法给出的相对重要性关系如图6,通过式(10)、式(11)、式(12)确定各目标函数的加权值;

步骤3.2:通过式(7)计算每个解的适应度函数值;

步骤4:遗传搜索

步骤4.1:随机选择N/2个个体

步骤4.2:通过概率Pc选择两个父代,进行基于矩阵的单点交叉;

结合图4该交叉通过概率pc选择两个父代后,矩阵中一个被称为交叉线(粗线)的水平线被随机地选择。两个父代交换交叉线上面的任务得到两个后代中的结果。如果后代是不可行的,那么合适的调整被进行来得到两个可行的后代。

步骤4.3:通过概率Pm选择父代,进行基于矩阵的突变;

结合图5该突变是通过概率pm选择父代。对于每个被选择的个体,矩阵中被称为突变线(粗线)两个水平线被随机地选择。这些线之间的调度被随机地交换,但是机器顺序保持不变。突变线之间有两行,突变只通过交换这两行来进行。

步骤5:对每个解进行局部搜索(与步骤4同时进行);

步骤5.1:随机选择当前解的一个邻域解,邻域解通过遗传搜索中的突变算子产生:

步骤5.2:如果邻域解优于当前解,则以邻域解作为当前解替换原当前解,返回步骤5.1;否则,执行下一步。

步骤5.3:如果已经检测了当前解的k个邻域解,则局部搜索结束,当前解即为局部搜索的结果;否则,返回步骤5.1

步骤6:采用轮盘赌法选择随机选择S个体;

步骤6.1::计算每个个体(xi)被遗传到下一代的概率P(xi):

其中S为待选择种群的种群规模

步骤6.2:计算每个个体(xi)的积累概率qi:步骤6.3:在[0,1]之间产生一个随机数r

步骤6.4:如果r<q1,则个体x1被选择;如果qk-1<r≤qk,则选择个体xk

步骤6.5:对步骤6.3、6.4重复N次,以选择到N个个体

步骤7:迭代;

如果算法已经迭代了指定次数,则执行下一步骤(更新精英组);否则,返回步骤2。

步骤8:更新精英组

步骤8.1:将当前种群中的非支配解复制入精英组;

步骤8.2:检测精英组中的解,将被其他解所支配的解从精英组中删除;

所述步骤1该算法使用的新的编码方式,使得该算法几乎不用解码,因为解码是一个染色体被转换为问题的解的初始结构的过程。也就是,他被转化为调度方案。该编码方式的每个矩阵能够被很简单地表示为一个调度方案,所以几乎不用进行解码。

所述步骤3计算适应度函数值具体描述如下:

本算法有三个目标,它们分别是时间、消耗和设备利用率。因为三个目标有不同的度量,所以他们不能通过定量指标被公平地直接比较。标准化每个目标是必要的。为了做这个,AHP层次分析法被采取来确定目标的加权值。f1表示时间,f2表示设备利用率,f3表示消耗。加权法解决(f1(x),f2(x),…,fn(x))问题时,适应度函数为

f(x)=w1f1(x)+w2f2(x)+…+wnfn(x), (7)

其中

wi≥0,i=1,2,…,n, (8)

w1+w2+…+wn=1. (9)

以图6所示的三个目标函数的相对重要性示例为例,加权值的确定方法如下:

1)将相对重要性表(图6)转化为矩阵:

2)对得到的矩阵的各列进行标准化(即对每列分别乘以一个数,使各列的和为1):

3)对各列标准化后的矩阵的各行进行标准化(即先将每行求和,再对每行分别乘以一个数,使各行的和为1):

4)对行标准化后的矩阵的每行依次表示三个目标函数的加权值,即f1、f2、f3的加权值分别为w1=0.578、w2=0.302、w3=0.120。

所述步骤6描述为最优个体被直接地保持到下一代种群,其他个体根据轮盘赌选择法进行选择,用这种方式,差的个体有机会幸存,并且能够避免早熟。

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