遗传算法的车间调度算法求解课件_第1页
遗传算法的车间调度算法求解课件_第2页
遗传算法的车间调度算法求解课件_第3页
遗传算法的车间调度算法求解课件_第4页
遗传算法的车间调度算法求解课件_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

遗传算法的车间调度算法求解遗传算法的车间调度算法求解主要内容Job—shop调度问题遗传算法理论遗传算法在车间调度算法中的求解过程主要内容Job—shop调度问题问题提出车间作业调度(Job-ShopScheduling),简称JSS,是一个典型的NP难问题,是CIMS领域中研究的重要课题。它的研究不仅具有重大的现实意义,而且具有深远的理论意义。长期以来,JSS研究的方法始终以启发式算法为主导,绝大部分的JSS研究工作也都围绕着启发式算法进行,如基于启发式算法的JSS仿真系统,基于启发式算法的并行JSS系统,基于启发式算法的JSS专家系统,等等,尽管这些研究取得了一定的应用效果,但是却存在着难以克服的弱点,如计算规模不可能较大,寻优结果不具备全局特性等等。近年来,又有学者提出了基于神经网络的车间作业调度系统,但此种方法在JSS规模较大时,却存在着计算速度慢与结构参数难以确定的弱点。由此可见,要想进一步研究JSS,选择一种有效的方法极为必要。遗传算法的出现给这类问题带来了新的希望,并取得了较为满意的成果。在此,我们提出了基于遗传算法的车间作业调度的求解。问题提出车间作业调度(Job-ShopSchedulingJob—shop调度问题的问题描述在问题的描述中,“机器”可以指机床,有时也可以指操作工人。“工件”指一个零件,或一批零件,或是其他的什么含义,这可以根据具体的问题确定。“工序”是指工件需要经过一些机器,或所有机器的操作及其顺序。而“加工时间”是指完成一个操作所需要的时间。由于有“机器”,“工件”等词语所处的实际背景,所有关于调度的术语及其所表达的概念和所描述的问题就比较直观和容易理解。Job—shop调度问题的问题描述在问题的描述中,“机器”问题描述假设有n个工件{J1,J2,…,Jn}要经过m台机器{M1,M2,…,Mm}加工。一个工件在一台机器上的加工称为一道“工序”。加工顺序要求表示工件加工在技术上的约束,即工件的加工工艺过程,这是事先给定的。用“加工顺序”表示各台机器上工件加工的先后次序。加工顺序是作业调度要解决的问题。当每个工件都有其独特的加工路线时,要确定工件的加工顺序,这属于单间车间(Job-Shop)的作业调度问题;当所有工件的加工路线都一致时,要确定工件的加工顺序,这属于流水车间(Flow-Shop)的作业调度问题。完成一道工序的加工,需花费一定的加工时间。在讨论一般情况下的作业调度问题时,“加工时间”包括机器调整时间,实际加工时间和工序之间的转送时间。加工时间是已知的。问题描述假设有n个工件{J1,J2,…,Jn}要经过m台机问题描述有M台机器及N个工件,由于工件的加工工艺的要求,每个工件使用M台机器的顺序以及每道工序所花费的时间已经给定。如何安排在每台机器上工件的加工顺序,使得某种指标(如总的完成时间)最小,此指标就是作业调度问题的优化目标。问题描述有M台机器及N个工件,由于工件的加工工艺的要求,每个问题描述用Conway等人提出的方法简单地表示作业调度问题,这种方法只用四个参数就可以表示大多数不同的作业调度问题,这四个参数是n/m/A/B,其中n---工件数;m---机器数;A---车间类型B---目标函数,通常是使其值最小。有了这四个符号,就可以简明地表示不同的作业调度问题。例如,n/4/G/Cmax表示n个工件经4台机器加工的单件车间调度问题,目标函数是使最长完工时间Cmax最短。问题描述用Conway等人提出的方法简单地表示作业调度问题,单件车间调度满足的约束条件1.一个工件不能同时在不同的机器上加工,尽管一个工件有时可能包括多个相同的零件,也不能将其分成几部分,同时在几台不同的机器上加工;2.对整个工件来说,在加工过程中采取平行移动方式,即当上一道工序完工后,立即送下道工序加工;3.不允许中断,当一个工件一旦开始加工,必须一直进行到完工,不允许中途停下来,插入其他工件;4.每道工序只在一台机器上完成,每台机器只完成一道工序;单件车间调度满足的约束条件1.一个工件不能同时在不同的机器上约束条件5.工件数、机器数、加工时间已知,且加工时间与加工顺序无关;6.允许工件在工序之间等待,允许机器在工件未到达是闲置;7.工件加工技术上的约束事先给定;8.每台机器同时只能加工一个工件。以上8项基本假设条件是可以放宽和改变的,由此可以构成不同类型的调度问题。约束条件5.工件数、机器数、加工时间已知,且加工时间与加工顺遗传算法在解Job-shop调度问题方面的研究现状由于Job-Shop调度问题是一个NP难题,而遗传算法为求NP难度问题的近似解提供了一种有效手段,所以现在许多人都致力于用遗传算法解决Job-shop问题,各有特点。但就目前来看:(1)由于Job-Shop调度问题的特殊性,编码机制显得尤为重要,因为编码机制选择不当,遗传算法的杂交、变异算子很容易破坏原加工顺序。(2)死锁问题也是一个重要问题,如果处理不当,死锁的出现是无法预料的。(3)收敛性及收敛速度问题,应用GA解Job-Shop调度问题时很少有人考虑这两个问题,所以得到的结果与最佳值的接近程度无理论保证。遗传算法在解Job-shop调度问题方面的研究现状由于Jo遗传算法理论遗传算法理论遗传算法概述遗传算法(GeneticAlgorithms,GA)研究的历史比较短,20世纪60年代末期到70年代初期,主要由美国Michigan大学的JohnHolland与其同事、学生们研究形成了一个较完整的理论和方法,从试图解释自然系统中生物的复杂适应过程入手,模拟生物进化的机制来构造人工系统的模型。随后经过20余年的发展,取得了丰硕的应用成果和理论研究的进展,特别是近年来世界范围形成的进化计算热潮,计算智能已作为人工智能研究的一个重要方向,以及后来的人工生命研究兴起,使遗传算法受到广泛的关注。遗传算法概述遗传算法(GeneticAlgorithms遗传算法概述从1985年在美国卡耐基·梅隆大学召开的第一届国际遗传算法会议(InternationalConferenceonGeneticAlgorithms:ICGA’85),到1997年5月IEEE的TransactionsonEvolutionaryComputation创刊,遗传算法作为具有系统优化、适应和学习的高性能计算和建模方法的研究渐趋成熟。遗传算法概述从1985年在美国卡耐基·梅隆大学召开的第一届国生物进化的基础生物进化的原因自古至今有着各种不同的解释,其中被人们广泛接受的是达尔文的自然选择学说。自然选择学说认为,生物要生存下去,就必须进行生存斗争。生存斗争包括种内斗争、种间斗争以及生物与无机环境之间的斗争三个方面。在生存斗争中,具有有利变异(mutation)的个体容易存活下来,并且有更多的机会将有利变异传给后代;具有不利变异的个体就容易被淘汰,产生后代的机会也少的多。因此,凡是在生存斗争中获胜的个体都是对环境适应性比较强的。达尔文把这种在生存斗争中适者生存、不适者淘汰的过程叫做自然选择,达尔文的自然选择学说表明,遗传和变异是决定生物进化的内在因素。遗传是指父代与子代之间在性状上存在的相似现象。变异是指父代与子代之间以及子代的个体之间在性状上或多或少地存在的差异现象。在生物群体内,遗传和变异的关系十分密切,一个生物体的遗传性状往往会发生变异,而变异的性状有的可遗传。遗传能使生物的性状不断地传送给后代,因此保持了物种的特性;变异能够使生物的性状发生改变,从而适应新的环境而不断的向前发展。生物进化的基础生物进化的原因自古至今有着各种不同的解释,其中遗传算法基本概念和术语遗传算法是模拟前述生物进化过程的计算模型。下面先给出几个生物学的基本概念与术语,这对于理解遗传算法是非常重要的。种群(population)染色体带有特征的个体的集合称为种群。该集合内个体数称为群体的大小。有时个体的集合也称为个体群。进化(evolution)生物在其延续生存的过程中,逐渐适应其生存环境,使得其品质不断得到改良,这种生命现象称为进化。生物的进化是以种群的形式进行的。遗传算法基本概念和术语遗传算法是模拟前述生物进化过程的计算模遗传算法基本概念和术语适应度(fitness)在研究自然界中生物的遗传和进化现象时,生物学家使用适应度这个术语来度量某个物种对于生存环境的适应程度。对生存环境适应程度较高的物种将获得更多的繁殖机会,而对生存环境适应程度较低的物种,其繁殖机会就会相对较少,甚至逐渐灭绝。选择(selection)指决定以一定的概率从种群中选择若干个体的操作。一般而言,选择的过程是一种基于适应度的优胜劣汰的过程。复制(reproduction)细胞在分裂时,遗传物质DNA通过复制而转移到新产生的细胞中,新的细胞就继承了旧细胞的基因。遗传算法基本概念和术语适应度(fitness)在研究自然遗传算法基本概念和术语交叉(crossover)有性生殖生物在繁殖下一代时,两个同源染色体通过交叉而重组,亦即在两个染色体的某一相同位置处DNA被切断,其前后两串分别交叉组合形成两个新的染色体。这个过程又称基因重组(recombination),俗称“杂交”。变异(mutation)在细胞进行复制时可能以很小的概率产生某些复制差错,从而使DNA发生某种变异,产生出新的染色体,这些新的染色体表现出新的性状。编码(coding)DNA中遗传信息在一个长链上按一定的模式排列,也即进行了遗传编码。遗传编码可以看作从表现型到遗传子型的映射。解码(decoding)从遗传子型到表现型的映射。遗传算法基本概念和术语交叉(crossover)有性生殖遗传算法的基本思想遗传算法采纳了自然进化模型,如选择、交叉、变异、迁移、局域与邻域等。计算开始时,一定数目N个个体(父个体1、父个体2、父个体3、父个体4…)即种群随机的初始化,并计算每个个体的适应度函数,第一代也即初始代就产生了。如果不满足优化准则,开始产生新一代的计算。为了产生下一代,按照适应度选择个体,父代要求基因重组(交叉)而产生子代。所有的子代按一定概率变异。然后子代的适应度又被重新计算,子代被插入到种群中将父代取而代之,构成新的一代(子个体1、子个体2、子个体3、子个体4…)。这一过程循环执行,直到满足优化准则为止。遗传算法的基本思想遗传算法采纳了自然进化模型,如选择、交叉基本遗传算法的实现方法各种不同的遗传算法都有相同的的特点,即通过对生物遗传和进化过程中选择、交叉、变异机理的模仿,来完成对问题最优解的自适应搜索过程。基于这个共同特点,Goldberg总结出了一种统一的最基本的遗传算法——基本遗传算法(SimpleGeneticAlgorithm,简称SGA)。SGA只使用选择算子、交叉算子和变异算子这三种基本遗传算子,其遗传进化操作过程简单,容易理解,是其他一些遗传算法的雏形和基础,它不仅给各种遗传算法提供了一个基本框架,同时也具有一定的应用价值。因此为方便起见,本文在以后的应用中用此方法。基本遗传算法的实现方法各种不同的遗传算法都有相同的的特点,基本遗传算法的构成要素(1)染色体编码方法基本遗传算法使用固定长度的二进制符号串来表示群体中的个体,其等位基因是由二值符号集{0,1}所组成的。初始群体中各个个体的基因值可用均匀分布的随机数来生成,如x=10011001101110010100就可以表示一个个体,该个体的染色体长度是n=18。(2)个体适应度评价基本遗传算法按与个体适应度成正比的概率来决定当前群体中每个个体遗传到下一代群体中的机会多少。为正确计算这个概率,这里要求所有个体的适应度必须为正数或零,这样,根据不同种类的问题,必须预先确定好由目标函数值到个体适应度之间的转换规则,特别是要预先确定好当目标函数值为负数时的处理方法。基本遗传算法的构成要素(1)染色体编码方法基本遗传算法使基本遗传算法的构成要素(3)遗传算子基本遗传算法使用下述三种遗传算子:选择运算使用比例选择(也叫轮盘赌选择)算子交叉运算使用单点交叉算子变异运算使用基本位变异算子或均匀变异算子(4)基本遗传算法的运行参数SGA有下述四个运行参数需要提前设定M:群体规模影响遗传优化的最终结果以及遗传算法的执行效率。当群体规模M太小时,遗传算法的优化性能一般不会太好,而采用较大的群体规模则可以减少遗传算法陷入局部最优解的机会,但是较大的群体规模意味着计算复杂度高,一般M取10到120之间。基本遗传算法的构成要素(3)遗传算子基本遗传算法使用下述基本遗传算法的构成要素Pc:Pc控制着交叉操作被使用的频度,较大的交叉概率可增强遗传算法开辟新的搜索区域的能力,但高性能的模式遭到破坏的可能性增大;若交叉概率太低,遗传算法搜索可能陷入迟钝状态。一般Pc取0.25到1.00之间。Pm:变异在遗传算法中属于辅助性的搜索操作,它的主要目的是维持群体的多样性。一般的低频度的变异可防止群体中重要的单一基因的可能丢失,高频度的变异将使遗传算法趋于纯粹的随机搜索,通常取变异概率Pm为0.001到0.1之间。T:遗传算法的终止进化代数,一般取为100到500之间。基本遗传算法的构成要素Pc:Pc控制着交叉操作被使用的频度,算法示例现详细介绍一下二进制编码的轮盘赌选择、单点交叉和基本位变异操作。图2.1所示的是一组二进制基因码构成的个体组成的初始种群,个体的适应度评价值经计算由括号内的数值表示,适应度越大代表这个个体越好。0001100000(8)0101111001(5)0000000101(2)1001110100(10)1010101010(7)1110010110(12)1001011011(5)1100000001(19)1001110100(10)0001010011(14)图2.1初始种群的分布轮盘赌选择方法类似于博彩游戏中的轮盘赌。个体适应度按比例转化为选中概率,将轮盘分成10个扇区,因为要进行10个选择,所以产生10个[0,1]之间的随机数,相当于转动10次轮盘,获得10次转盘停止时指针位置,指针停止在某一扇区,该扇区代表的个体即被选中。算法示例现详细介绍一下二进制编码的轮盘赌选择、单点交叉和基本个体染色体适应度选择概率累积概率1000110000080.0869570.0869572010111100150.0543480.1413063000000010120.0217390.16304341001110100100.1086960.2717395101010101070.0760870.34782661110010110120.1304350.4782617100101101150.0543480.53260981100000001190.2065520.73913091001110100100.1086960.847826100001010011140.1521741.000000个体染色体适应度选择概率算法示例假设产生随机数序列为0.070221,0.545929,0.784567,0.44693,0.507893,0.291198,0.71634,0.270901,0.371435,0.854641,将该随机序列与计算获得的累积概率比较,则依次序号为1,8,9,6,7,5,8,4,6,10个体被选中。显然适应度高的个体被选中的概率大,而且可能被选中;而适应度低的个体则很有可能被淘汰。在第一次生存竞争考验中,序号为2的个体(0101111001)和3的个体(000000101)被淘汰,代之以适应度较高的个体8和6,这个过程被称之为再生(reproduction)。算法示例假设产生随机数序列为0.070221,0.54592单点交叉算子任意挑选经过选择操作后种群中两个个体作为交叉对象,即两个父个体经过染色体交换重组产生两个子个体。随机产生一个交叉点位置,父个体1和父个体2在交叉点位置之右的部分基因码互换,形成子个体1和子个体2。A:1011011000A’:1011011011单交叉点B:0010110111B’:0010110100交叉点单点交叉算子任意挑选经过选择操作后种群中两个个体作为交叉对象基本位变异算子基本位变异算子是最简单和最基本的变异操作算子。对于SGA中用二进制编码符号串所表示的个体,若需要进行变异操作的某一基因座上的原有基因值为0,则变异操作将该基因值变为1;反之,若原有基因值为1,则变异操作将其变为0。基本位变异运算的示意如下所示:1010101001基本位变异A:1010001001基本位变异算子基本位变异算子是最简单和最基本的变异操作算子。遗传算法在车间调度算法中的求解过程

遗传算法在车间调度算法中的求解过程Job-Shop调度问题的数学模型对于一般单件车间的排序问题,要描述一道工序,需要3个参数i,j和k。i表示工件代号,j表示工序序号,k则表示完成i工件第j道工序加工的机器的代号。因此,可以用(i,j,k)来表示工件i的第j道工序是在机器k上进行的。我们可以用加工描述矩阵D来描述一般单件车间的排序问题。加工描述矩阵D=Job-Shop调度问题的数学模型对于一般单件车间的排序问题D=此时矩阵的第i行第j列隐含着工件号为i工序号为j。加工时间矩阵T与加工描述矩阵D相对应。例如T=D=此时矩阵的第i排序问题中的符号说明(i,j,k)工件的第j道工序,这道工序是在机器上进行的。工件在机器上的加工时间,工件的总加工时间为工件的到达时间,或称准备就绪时间。这个时间指的是工件从外部进入车间,可以开始进行加工的最早时间。工件的完工期限。排序问题中的符号说明(i,j,k)工件的第j道排序问题中的符号说明工件在车间的允许停留时间,即从工件进入车间到预定完工时间之间的时间间隔。=-工件Ji在进行第j道工序之前的等待时间。工件Ji的总等待时间=工件Ji的完工时间,即在该时刻,工件Ji的最后一道工序完成,所以,如下关系成立:==++(3-1)排序问题中的符号说明工件在车间的允许停留时间排序问题中的符号说明最长完工时间,=某个调度k的所有工件完工时间的总和,即总加工时间=

最短总加工时间,=我们选择最短总加工时间作为目标函数,即选用n/m/G/模型。排序问题中的符号说明最长完工时间,=数学模型设有m台机器M1、M2、…、Mm和n个工件J1、J2、…、Jn,工件Ji的第j道工序的加工时间为Tij。满足如下条件:1)一台机器一次只加工一个工件。2)每个工件不能同时在多台机器上加工。3)每个工件的加工顺序预先确定,工件按序加工。4)每个工件在每台机器上只加工一次。5)工件在加工时不允许中断。数学模型设有m台机器M1、M2、…、Mm和n个工件J1、数学模型设C(i,j)(i=1,2,…,n;j=1,2,…,m)表示工件Ji的第j道工序的加工机器号,表示C(i,j)机器上工件Ji的第j道工序的完工时间,表示C(i,j)机器上工件Ji的第j道工序的开工时间。则有:>0(3-2)0(3-3)=+(3-4)数学模型设C(i,j)(i=1,2,…,n;j=1,2,…,数学模型=(3-5)其中为机器C(i,j)上加工工件Ji之前所加工工件Jk的第l道工序的完工时间。我们选择机器的最长完工时间最小为目标函数,则目标函数可具体表示为:min∑{Ei,m,c(i,m)}i=1…n(3-6)数学模型=工件序编码法一个66的加工描述矩阵、加工时间矩阵如下M=该问题的一个调度结果如下:N=

工件序编码法一个66的加工描述矩阵、加工时间矩阵如下编码方法遗传算法主要是对群体中个体施加操作,从而完成优化的。遗传算法不能直接处理问题空间的参数,而只能处理以基因链码形式表示的个体。因此,要使用遗传算法,就必须把优化问题的解的参数形式转化成基因链码的表示形式。这一转化操作就叫做编码。Job-Shop调度问题就是在不破坏加工顺序的前提下,怎样在机器上安排工件以达到目标函数式(3-6)的要求,即各工件在机器上的最佳排列组合,而这种排列组合关系有其内在的序关系,如果假定工件号按由小到大的自然顺序排列,则各台机器上任意两个不同工件之间只有两种序关系(顺序或逆序),这种序关系用二进制表示,顺序为1,逆序为0。例如对第k台机器上的工件Ji和Jj工件(设i<j),若Ji在Jj前,则序值为1;若Jj在Ji前,则序值为0。以第k台机器上n个工件的序关系所对应的序值为基因码,可以得到一个长度为n(n-1)/2染色体子串,故m台机器的染色体串总长为mn(n-1)/2。编码方法遗传算法主要是对群体中个体施加操作,从而完成优化的(二进制染色体的产生算法){Fori=1tom/*对m台机器分别编码*/Forj=1ton-1/*对工件号逐个判断先后次序*/Fork=j+1tonifJ[j]J[k]thena[i][p]=1;elsea[i][p]=0;endif;/*如果J[j]出现在J[k]之前,第i台机器上对应的基因码置为1,否则置为0*/(二进制染色体的产生算法)解码基本思想为:将染色体划分成m个长度为的子串,再对每个子串依次截取长度为n-1,n-2,…,2,1的小串,统计第i个小串中0的个数r,则应排在第r+1个空白处(未被占用的位置)。解码算法如下:1)将染色体划分成长度为n(n-1)/2的m个子串,k12)k>m成立吗?若成立则结束,否则转3)3)i1,Point14)i>n吗?若是则转2),否则转5)5)从Point开始取串长为n-i的子串,统计其中0的个数r,则Ji应排在第r+1个空白处,若r+1位被占用,则向后移位直至未被占用的位置。6)ii+1,PointPoint+n-i转4)解码基本思想为:将染色体划分成m个长度为的子串,再对每个子为处理起来更加直观,我们把Job-Shop调度问题的工时工序表用两个矩阵表示(i=1,2,…,n;j,k=1,2,…,m),工件Ji的第j道工序在机器k上加工;(i=1,2,…,m;j=1,2,…,n)表示加工时间矩阵。另外(i,j=1,2,…,n;k=1,2,…,m)表示机器k上各工件的加工顺序,机器k上第j个加工的工件是Ji。例如有一个66的M、N矩阵如下:车间作业调度遗传算法的具体实现为处理起来更加直观,我们把Job-Shop调度问题的工时工序遗传算法的车间调度算法求解初始群体的产生初始群体产生时,将N矩阵各行列的元素值初始化为[(0,0)]m×n,我们假定某工件i的第j道工序已加工完毕,则M矩阵的第i行第j列对应元素设为(0,0)。从M矩阵某行随机产生左边第一个不为(0,0)的元素(i,k),得到一个将加工的工件Ji及所在机器k,加工完成后将该元素的变为(0,0),同时将N矩阵中的第k行第一个为0的元素变为(i,k),直到所有工件都加工完毕为止。便得到一个个体。初始群体的产生初始群体产生时,将N矩阵各行列的元素值初始化(初始群体产生算法)1)种群已满吗?若是则结束,否则转2)2)初始化N(i,j)=[(0,0)]m×n3)随机产生一个工件号i,在M矩阵第i行找出第1个不为(0,0)的元素(i,k)及所在的列j14)找出N(k,j)的第k行的第一个为(0,0)的列号j2,并将N(k,j2)(i,k)5)将M矩阵中相应的(i,j1)变为(0,0)6)循环执行了mn次吗?若是则转7),否则转3)7)对N矩阵中各行进行编码,并计算目标函数值v(初始群体产生算法)选择算子采用轮盘赌选择法,目标函数值小的个体复制概率大的原则进行选择,逐步淘汰目标函数值大的的个体。其具体实现方法同第二章例子。杂交算子采用单点杂

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论