收藏 分享(赏)

毕业论文(设计)车间调度问题研究.doc

上传人:cjc2202537 文档编号:1198343 上传时间:2018-06-17 格式:DOC 页数:25 大小:148KB
下载 相关 举报
毕业论文(设计)车间调度问题研究.doc_第1页
第1页 / 共25页
毕业论文(设计)车间调度问题研究.doc_第2页
第2页 / 共25页
毕业论文(设计)车间调度问题研究.doc_第3页
第3页 / 共25页
毕业论文(设计)车间调度问题研究.doc_第4页
第4页 / 共25页
毕业论文(设计)车间调度问题研究.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

1、 毕业论文( 设计) 第 1 页 共 25 页引言随着加入 WTO,市场竞争越来越激烈,对制造企业来说,为了能够在竞争中立于不败,降低成本是不得不面临的问题,而确保生产车间较高的生产能力和效率,是当务之急。此外,有效的调度方法已经成为先进制造技术实践的基础和关键,所以对它的研究具有重要的理论和实用价值。所谓生产调度,即对生产过程进行作业计划,作为一个关键模块,是整个先进生产制造系统实现管理技术、运筹方法、优化技术、自动化与计算机技术发展的核心,有效的调度方法和优化技术的研究与应用,是实现先进制造和提高生产效益的基础和关键。虽然对其研究已有几十年的历史但至今尚未形成一套系统的方法和理论,理论研究

2、与实际应用之间还存在着较大距离。目前的调度算法大多只关心工件的调度问题,而对其它资源分配问题则研究相对不多,将二者结合起来研究应该是值得注意的问题,目前已有不少学者开始关注该问题。由于一般车间调度问题的复杂性,各种不同的具体问题往往有许多不同的算法来解决,例如经典的启发式算法,传统的搜索方法等。由于遗传算法是一种借鉴生物界自然选择和进化机制发展起来的高度并行、随机、自适应搜索算法。它特别适合于处理传统搜索算法解决不好的复杂和非线性问题。一些学者们经过大量的实践证明了遗传算法在解决作业车间调度问题上比经典的启发式算法好,同时遗传算法比传统的搜索技术有更强的优越性,因为它不仅能解决某一特定问题,而

3、且可以适应不同的问题形式。本文共分为四章。第一章简要介绍了车间调度问题和求解调度问题的基本方法;第二章介绍了遗传算法的基本理论;第三章用遗传算法来解决车间调度问题,其中介绍了常用的几种编码方式,在比较的情况下提出本文主要用基于操作的编码方式.还有提出了几种主要的遗传算子。并且以四个工件四个机器问题进行举例,说明了用遗传算法解决车间调度问题的可行性;第四章总结与展望部分对本文的研究成果给予了总结和如何对后续研究工作的继续。毕业论文( 设计) 第 2 页 共 25 页1 车间调度问题1.1 车间调度问题表述作业车间调度(job-shop)问题可以表述为:设有 N 个工件在 M 台机器上加工,根据工

4、件加工工艺的要求,每个工件使用机器的顺序及其每道工序所花时间已给定,调度问题的目标就是如何选择加工顺序使得总的加工时间最短最优。前提假设:(1) 每一台机器每次只能加工一个工件,每一个工件在机器上的加工被成为一道工序。(2) 不同工件的加工工序可以不同;(3) 所有工件的工序数不大于设备数;(4) 每道工序必须在指定的某种设备上加工;(5) 任何作业没有抢先加工的优先权;(6) 在作业优化过程中既没有新的工件加入也没有取消的工件;1.2 车间调度问题的研究方法调度问题具有相当的难度,目前调度问题的理论研究成果主要在 job-shop 问题为代表的基于最小完工时间的调度问题上。求解调度问题的方法

5、称为调度优化算法。它可分为精确求解方法和近视求解方法。其中精确求解方法包括解析方法、穷举方法(包括分支定界)等;近似求解方法包括基于规则的构造性方法、邻域搜索算法(如进化遗传算法,模拟退火算法)以及人工智能方法(如神经网络)等。而传统的运筹学方法,即便在较大规模的基于单目标优化的静态调度问题中也难以有效应用。本文从实际和理论两方面进行研究和深入,重点研究了现代进化算法中有代表性发展优势的遗传算法。毕业论文( 设计) 第 3 页 共 25 页2 遗传算法相关理论与实现技术遗传算法(Genetic Algorithm, GA)是一种基于自然群体遗传演化机制的高效探索算法,它是美国学者 Hollan

6、d 于 1975 年首先提出来的。它摒弃了传统的搜索方式,模拟达尔文的遗传选择和自然淘汰的生物进化过程。它将问题域中的可能解看作是群体的一个个体或染色体,并将每一个体编码成符号串形式,对群体反复进行基于遗传学的操作(遗传,交叉和变异) ,根据预定的目标适应度函数对每个个体进行评价,依据适者生存,优胜劣汰的进化规则,不断得到更优的群体,同时以全局并行搜索方式来搜索优化群体中的最优个体,求得满足要求的最优解。遗传算法是一类随机化算法,但是它不是简单的随机走动,它可以有效地利用已经有的信息处理来搜索那些有希望改善解质量的串,类似于自然进化,遗传算法通过作用于染色体上的基因,寻找好的染色体来求解问题。

7、与自然界相似,遗传算法对待求解问题本身一无所知,它所需要的仅是对算法所产生的每个染色体进行评价,并基于适应度值来评价染色体,使适用性好的染色体比适应性差的染色体有更多的繁殖机会。2.1 自然进化与遗传算法自从达尔文的进化论得到人们的接受之后,生物学家们就对进化机制产生了极大的兴趣。化石记录表明我们所观察的复杂结构的生命是在相对短的时间进化而来的,对这一点包括生物学家在内的许多人都感到惊奇。虽然目前人们对进化机制在一些方面还没有弄清楚,但它们的一些特征已为人所知。进化是发生在编码染色体上,通过对染色体的译码部分生成生物体,但下面几个关于进化理论的一般特性已被广大人们所接受。(1)进化过程发生在染

8、色体上,而不是发生在它们所编码地生物个体上。(2)自然选择把染色体以及由它们所译成的结构表现联系在一起,哪些适应性好地个体的染色体经常比差的个体的染色体有更多的繁殖机会。(3)繁殖过程是进化发生的那一刻,变异可以使生物体子代的染色体不同于它们父代的染色体,通过结合两个父代染色体的物质,重组过程可以在子代中产生有很大差异的染色体。(4)生物进化没有记忆。有关产生个体的信息包含在个体所携带的染色体的集合以及染色体编码的结构之中,这些个体会很好的适应它们的环境。大多数生物体是通过自然选择和有性生殖这两种基本过程进行演化的。自然选择的原则是适应者生存,不适者淘汰。自然选择决定了群体中那些个个体能存活并

9、繁殖,有性生殖保证了后代基因中的混合与重组。比起那些仅包单个亲本的基因拷贝和依靠偶然变异来改进的后代,这种由基因重组产生的后代进化要快得多。2.2 遗传算法的基本思想(1) 首先确定问题的求解空间;(2) 将求解空间中的每一个点进行编码,并从求解空间中任选 N 个点组成初始群体;(3) 计算当前群体中每个个体的适应度函数值。运用选择、交叉、变异算子产生新一代群体;(4) 对新一代群体中的个体进行评价,若找到满足问题的最优解,结束;否则,转步骤(3)。2.3 遗传算法的应用及发展前景现在随着科学技术的日益发展,遗传算法有了突飞猛进的发展,不仅理论研究十分活跃,而在越来越多的领域得到发展。遗传算法

10、主要应用在机器学习中。遗传算法适合于维数很高、体积很大、环境复杂、问题结构不十分清楚的场合,机器学习就属于这类情况。一般的学习系统要求具有随时间推移逐步调整有关毕业论文( 设计) 第 4 页 共 25 页参数或者改变自身结构以更加适应环境,更好达到目标的能力。由于多样性和复杂性,通常难以建立完善的理论以指导整个学习过程,从而使传统寻优技术的应用受到限制,而这恰好是遗传算法发挥的长处。除了机器学习之外遗传算法所涉及的主要领域还有自动控制、规划设计、组合优化、图象处理、信号处理、人工生命、模式识别,神经网络、自适应控制、生物科学、系统工程、社会科学等。在人工智能研究中,现在还认为人们认为“遗传算法

11、、自适应系统、细胞自动机、混沌理论与人工智能一样,都是对今后十年的计算技术有重大影响的关键技术”。今后几年,拓广更加多样的应用领域,将是 GA 发展的主流。这也是本世纪高新技术迅速发展带有规律性的特点,即面向应用。与此同时,理论方面同样有大量工作要做,例如:控制参数的选择;交换和突变这两类最重要的算子的确切作用;并行 GA 和分布式 GA 的研究。不论从理论还是应用的角度看,最紧迫的应是关于算法收敛性问题的研究,特别是过早收敛的防止。这对 GA 的实际应用关系重大。毕业论文( 设计) 第 5 页 共 25 页3 用遗传算法对具体问题的解决与探讨遗传算法在解决作业车间调度问题上比经典的启发式算法

12、好,同时遗传算法比传统的搜索技术有更强的优越性,因为它不仅能解决某一特定问题,而且可以适应不同的问题形式。3.1 研究过程中的几个关键问题3.1.1 设备死锁现象 初始解群是问题的起点,解决设备死锁问题必须从初始解群开始。本研究的设备死锁不在同一台机器上而是在不同的机器上产生死锁现象,所谓的设备死锁现象如图所示,其中括号 内的两个数据,意义为(工件号,工序号) 。 图 3.1 设备死锁示意图在图 3.1 中,分属工件 1 和工件 2 的总共四个工序都处于循环等待其前面工序或前道工序结束加工的状态之中,从而使设备 1 和设备 2 处于空转状态,即产生了所谓的死锁现象。3.1.2 参数编码遗传编码

13、技术是实施遗传算法的核心。遗传算法的工作基础是选择适当的方法表示个体和问题的解(作为进化的个体)。对于同一问题可以有不同的编码表示方法。由于遗传算法不能直接处理空间解的数据,在解决此车间调度问题上把它们转换成遗传空间的基因按一定结构组成的染色体或个体,也就是通过编码将它们表示成遗传空间的基因型串结构数据。目前,调度问题中主要的遗传算法编码方式有以下几种:1 基于操作的编码(operation-based representation)其基本思想是将所有工件的操作进行编码,不同的工件用不同的编码表示,而同一工件的所有操作在染色体中则用相同的编码表示,其解码原则是将染色体上的基因按照从左到右的顺序

14、解释为相应工件的操作顺序,具有相同编码的基因按照其在整个染色体中的位置解释为工件相应顺序的操作。表 3.1 加工时间和工艺约束操作序列项目 工件1 2 3操作时间J1J2J3313352233机器J1J2J3M1M1M2M2M3M1M3M2M3对于上表 3.1 所提出的 3 个工件在 3 个机器上加工的例子,假设染色体为2 1 2 3 1 1 3 2 3,O ijk表示第 i 个工件的第 j 个工序在第 k 个机器上加工(以下同) ,则对机器加工顺序的工艺约束,该染色体对应的有序操作表为O 211 O111 O223 O312 O122 O133 O321 O232 O333,即首先安排第二个

15、工件的第一个操作步骤,然后安排第一个工件的第一个操作步骤,第二项任务的第二个操作步毕业论文( 设计) 第 6 页 共 25 页骤,以次类推。进而相应的调度如图 3.2(我们用 Gantte 图表示一个调度) 。图 3.2 Gantte 图2 基于工件的编码(job-based representation)将每个染色体用 n 个代表工件的基因组成,是所有工件的一个排列。解码过程是先加工第 1号工件的所有操作,然后依次以最好允许加工时间加工后面所有操作。其基本思想是只对任务进行编码,然后按照编码在染色体中的顺序来以相应的优先级别安排任务。例如,对于上述 3*3 例子。对于有三项任务的调度问题,假

16、设染色体为2 3 1,则可以解释为首先安排第二项任务的所有操作,其次是第三项任务,最后才轮到第一项任务。3 基于先后表的编码(preferences list-beset representation)每个染色体用分别对应于 m 台不同机器的 m 个子串构成,各子串是一个长度为 n 的符号串。用于表示机器上加工工件的一个排列顺序。对染色体的解释为:在第一台机器上首先应该安排第二项工件的操作,其次是第一项工件的操作,第三项工件的操作;在第二台机器上首先应该安排第三项工件的操作,然后是第一、二项任务的操作,以此类推。前面两种编码方式比较复杂,下面我们用基于操作的编码方式来解此车间调度问题:把调度编

17、码为工序的序列,每个基因代表一道工序,给所有同一工件的工序指定相同的符号,其解码原则是将染色体上得基因按照从左到右得顺序解释为任务相应顺序的操作。这是一种直接对调度方案进行编码的方式。显然,这种解码过程可产生活动调度。对于 n 个工件 m 机器问题,一个染色体包括个 n*m 个基因,每个个体出现在染色体中 m 次,每个基因不表明具体的工序,而是指上下依赖关系的工序。只需改变工序的顺序,即可得到不同的调度结果,即不同的生产周期。如果染色体位为3 2 2 1 1 2 3 1 3 1,其中 1 表示工件 j1,2 表示工件 j2,3 表示工件j3。因为每个工件有三道工序,所以每个工件在一个染色体中刚

18、好出现三次。例如,在以上给定的染色体中出现三个 2 表示工件 j2 的三道工序,第一个 2 对应工件 j2 的第一道工序在机器 1 上加工,第二个 2 对应工件 j2 的第二道工序在机器 2 上加工,第三个 2 对应工件 j2 的第三道工序在机器 3上加工。可以看出工件 j2 的所有工序都用相同的符号 2 来命名,并且根据它出现在染色体中的顺序加以解释,工件的工序和加工机器的对应关系如下图所示。染色体 1 1 2 2 3 3 1 1 2 3J2J1J3 tM1J3 J1J2 t2J2 J1J3tM3 4706912毕业论文( 设计) 第 7 页 共 25 页 机器 1 2 3一个好的调度方法(

19、换句话说就是染色体对应的适应度值高) ,可以有效提机器的利用率,降低机器空闲的时间长度,从而达到优化的目的,遗传算法就是来寻找这样的更优的调度策略。3.1.3 初始种群的生成在 N 个工件 M 台机器的排序问题中,对每个机器的加工存在加工工艺顺约束,这个工艺约束表示为工件的加工顺序矩阵:M11 M12 M1MM(J,M )= M21 M22 M2M: : : : Mn1 Mn2 MnM其中第 J 行表示第 J 个工件的机器顺序.机器号为零表示工件加工结束。相应的每个加工操作有时间矩阵:T11 T12 T1MT21 T22 T2MT(J,M)= : : : :TN1 TN2 TNM 其中第 J

20、行表示第 J 个工件的机器加工时间,时间为零表示工件不在机器上加工.因为每个个体由 N 个工件号重复 M 次组成的.所以产生一个 1,2. . .N(每个重复有 N*M 个操作)的全排列即是一个初始个体,算法如下:STEP1:用行号 1 代替机器顺序矩阵 M(j,m)的第 j 行的所有元素,零元素保持不变,若产生的矩阵为 GEN。STEP2:产生一个整数随机数 1=p=N。STEP3:令 chrom(i)=p,并且将矩阵 GEN 的 p 行 GEN(p,:)左移一个元素,此行移出的最后一个元素一零代替。STEP4:重复 STIP2,STEP3,直到 GEN 的所有元素为零。产生的 chrom

21、为一个个体。重复STEP1,STEP2,STEP3 ,STEP4,直到种群满。这是用遗传算法解决车间调度问题的一种初始化群体方法,但是它并不适用于基于操作的编码方式。初始种群的生成也可以用随机方法产生,这是因为群体中的个体都是由工件的符号组成的,而且工件任意排列总能产生可行调度.在下文的举例验证过程中我们运用了随机的方法产生初始种群。3.1.4 个体的适应度函数在遗传算法中,适应度是描述个体性能的主要指标。根据适应度的大小,对个体进行优胜劣汰。适应度是驱动遗传算法的动力。从生物学角度讲,适应度相当于“生存竞争,适者生存”的生物生存能力,在遗传过程中具有重要意义。适应度函数就是目标函数,在用遗传

22、算法解决车间调度问题里,定义个体的适应度函数为在 M台机器上排序加工完 N 个工件所需的时间,根据染色体编码的思想提出的适应度算法如下:STEP1:定义 ti(n)为每个工件的可加工时间,初始化向量为零向量。毕业论文( 设计) 第 8 页 共 25 页STEP2:chrom(i)对应相应工序的加工机器为 machiner(i) 。ti(chrom(1)=ti(chrom(1),machine(1)STEP3:for i=2 to nFor k=1 to nti(chrom(i)=ti(chrom(i-1)+max(ti(chrom(i-k),machine(i-k)+k) 其中若当 i-k=0

23、,则ti(chrom(i-k),machine(i-k)=0,还有要判断 chorm(i)所对应的工件在以前是否加工过,若加工过,则 ti(chrom(i)=ti(chorm(i-1)。STEP3:求出适应度函数 F=ti(chorm(n)。3.1.5 算法参数标准 GA 有 4 个关键参数,包括种群数目(population size,记作 M) 、交叉概率(crossover rate,记作 pc) 、变异概率(mutation rate,记作 pm)和代沟(generation gap,记作(G) 。目前,如何确定 GA 的最优参数仍旧是一个公开的问题,也是研究 GA 的重要课题之一。1

24、 种群数目 M种群数目是影响算法最终优化性能和效率的因素之一。通常,种群太小是时,不能提供足够的采样点,以致算法性能很差,甚至得不到问题得可行解;种群太大时,尽管可增加优化信息以阻止早熟收敛的发生,但无疑会增加计算量,从而使收敛时间太长。当然,在优化过程中种群数目是允许变化的,也可以将较大规模的种群分解成若干子种群进行优化。2 交叉概率 pc交叉概率用于控制交叉操作的频率。交叉概率太大时,种群中串的更新很快,进而会使高适应值的个体很快被破坏掉;概率太小时,交叉操作很少进行,从而会使搜索停滞不前。3 变异概率 pm变异概率是加大种群多样性的重要因素。通常一个较低的变异概率足以防止整个群体中任一位

25、置的基因一直保持不变。但是,变异概率太小则不会产生新个体,抑制早熟现象的能力较差,概率太大则会破坏掉很多较好的模式,使 GA 成为随机搜索。3.1.6 遗传算子的设计(1)选择算子选择操作是对自然界“适者生存”的模拟。评价值(目标函数)较小的个体有较高的概率生存,即在下一代群体中再次出现。一种常用的选择方法是按比例选择,即若个体 i 适应值(目标函数)是 fi,则个体在群体中复制(再生)的子代个数在群体中的比例将为: 。/if其中,f i表示指所有个体适应值之和。对群体中各个体的适应值做比较,将适应值小的个体复制,将适应值大的淘汰掉,这是因为在作业调度算法中的适应度函数为在 M 台机器上加工完

26、 N 个工件所需的时间,时间越短,更能达到优化的目的。(2)交叉算子第一种交叉算子在用遗传算法解决作业车间调度问题中,在对工序编码的排序问题中,交叉算子不能简单交换两个个体的相应位置的基因段,因为这样得到的后代个体可能不能满足每个工件号重复 M 次的要求。例如:染色体 1 1 2 2 3 3 1 1 2 3染色体 2 2 1 3 1 2 3 1 3 2交换点随机选择 4,则交换后得到的新串为:染色体 1 1 2 2 3 2 1 1 2 3染色体 2 2 1 3 1 3 3 1 3 2很清楚的可以看到交换后新串中的每个工件出现的次数已经不能等于机器数。所以为了满足毕业论文( 设计) 第 9 页

27、共 25 页我们的工序编码的要求,本文采用另一种交叉算子。算子描述如下:随机将工件集合1,2,N分成两个互补子集,相应的将个体的基因分成两个部分,然后把父母个体中的 part2 部分用 h 代替形成两个新串,用第二个父母个体的 part2 部分按照原来的相对顺序逐个替换第一个父母个体的 part2 产生的新串中的 h ,同样用第一个父母个体的 part2 按照原来的相对顺序逐个替换第二个父母个体的 prat1 产生的新串中的 h,得到两个后代个体。例如:对于一个 4 个工件 4 个机器问题,假如父母个体为:Parent1:1 3 4 2 4 2 3 3 1 4 3 2 1 4 2 1Paren

28、t2:3 2 4 1 1 2 3 4 4 2 3 1 2 4 1 3 假设随机选择工件 1,2,则从 parent1 得到的新串为:New1:1 h h 2 h 2 h h 1 h h 2 1 h 2 1Part1:1 2 2 1 2 1 2 1Part2:3 4 4 3 3 4 3 4同样从 Parent2 得到的新串为New2:h 2 h 1 1 2 h h h 2 h 1 2 h 1 hPart1: 2 1 1 2 2 1 2 1Part2: 3 4 3 4 4 3 4 3然后用 Parent2 个体的 part2:3 4 3 4 4 3 4 3 按照原来的相对顺序逐个替换第一个父母个体

29、 Parent1 产生的新串 New1:1 h h 2 h 2 h h 1 h h 2 1 h 2 1 中的 h,得到的后代个体为:Parent1:1 3 42 3 2 4 4 1 3 4 2 1 3 2 1同理用 Parent1 个体的 part2:3 4 4 3 3 4 3 4 按照原来的相对顺序逐个替换第二个父母个体 Parent2 产生的新串 New2:h 2 h 1 1 2 h h h 2 h 1 2 h 1 h 中的 h,得到的后代个体为:Parent2:3 2 4 1 1 2 4 3 3 2 4 1 2 3 1 4第二种交叉算子假定选择两个个体 X1,X 2做双亲,在做交叉时先产

30、生一个随机数来决定交叉点对于基因链码的具体位置,从这一位置将链码一分为二,第一个后代 X1的前一小段链码使用 X1的前一小段链码,然后把这一小段链码的每个基因从 X1中剔掉,X 2中剩下的基因保持顺序不变,构成 X2的后一小段链码。同样对称的产生第二个后代 X2码。例如,如果 X1,X2 的基因链码分别是X1 1 3 8 5 2 7 6 4X2 3 2 4 1 8 7 6 5交叉点位于第三个基因之后,那么从中剔除 X1的前一小段基因 1 3 8 之后,得到的基因链码片段为 2 4 7 6 5,所以 X1的基因链码为:X11 3 8 2 4 7 6 5同样可以得到 X2的基因链码为:X23 2

31、4 1 8 5 7 6这种交叉算子在基于操作的染色体编码时并不适用,提出来和第一种算子进行比较。(3)变异算子在做变异时,先对解群以一定的概率进行突变操作。在此作业调度算法中,不能简单的将基因的值做改变。由于问题及其表示的特殊性,这样简单的改变可能是没有意义的,例如,如果原来的基因链码为:1 3 2 3 1 2 3 1 2把第一个基因 1 变异成 3,则基因链码变为:3 3 2 3 1 2 3 1 2.这个链码是没有意义的,因为在基于操作的染色体编码时,相同符号代表的是同一工件,且用同一符号在染色体出现的次数为机器的数目。所以采用上述变异算子是不可行的。我们用如下变异方法:随机产生一个整数,确

32、定变异位置,然后,把该位置的基因与其前面的基因互换位置。同样,以 1 3 2 3 1 2 3 1 2 为例,假设变异位置为 2,则变异前后的基因链码为:毕业论文( 设计) 第 10 页 共 25 页变异前:1 3 2 3 1 2 3 1 2变异后:3 1 2 3 1 2 3 1 23.2 遗传算法终止条件GA 的收敛理论说明了 GA 具有概率 1 收敛的极限性质,然而实际算法通常难以实现理论上的收敛。从借阅的资料来看,大多是以优化时间或迭代次数或适应度的增量或其他参数作为终止条件的。本研究以迭代次数作为是否终止的条件,从而控制优化过程。3.3 遗传算法解决车间调度问题的改进遗传算法解决问题的核

33、心是遗传编码,所以不同的编码方式在解决问题方面具有不同的效果。本文运用基于操作的编码方式,文章还简要讲述了一下基于工件的编码和基于先后表的编码。虽然基于操作的编码比较简单,但是它在解决具体问题方面具有局限性,我们在以后的继续研究中要运用基于工件编码和基于先后表的编码或者其它更符合提议的编码方式,这样才能更好的解决问题。遗传算子也是遗传算法解决问题的关键所在。为了提高整个群体的收敛速度,对于交叉算子,把经过交叉得到的子代的两个个体和父代的两个个体进行比较,从这四个个体中选取两个优秀的个体进入下一代:对于变异算子,把经过变异得到的子代个体和父代个体进行比较,较优秀的进入下一代。经过这种改进之后,再

34、配合最优保存的选择策略,就能够保证种群的最好个体的适应度函数单调下降,即调度时间单调下降,大大改善遗传算法的搜索效率。3.4 举例验证下面我们以 4 个机器加工 4 个工件为例,来验证一下在基于操作编码时,上面的算法是否合理:假设交叉概率 Pc=100%,变异概率 Pm=25%,群体规模为 4,下表 3.2 为不同机器加工不同零件的时间耗费表: 表 3.2 加工工件时间耗费表工件机 器 T1 T2 T3 T4M1M2M3M42413354246816434(1)初始化群体,随机产生染色体编码因为对 4 个机器加工四个工件,在用基于操作编码时,每个染色体包括 16 个基因。X1=chrom1(1

35、6)=1 2 4 3 3 1 2 4 2 1 2 3 4 1 3 4X2=chrom2(16)=2 3 1 4 1 2 3 4 3 4 1 2 2 1 4 3X3=chrom3(16)=3 1 4 2 2 1 4 3 4 3 2 2 1 3 4 1X4=chrom4(16)=4 1 3 2 1 2 3 3 4 2 1 3 4 1 2 4将这四个染色体作为种群的第一代。(2) 计算适应度函数根据前面所构造的适应度算法,对于染色体 X1=chrom1(16)=1 2 4 3 3 1 2 4 2 1 2 3 4 1 3 4我们来求它的适应度函数:ti(chrom(1)=ti(chrom(1),machine(1)=ti(1,1)=2ti(chrom(2)=ti(chrom(1)+max(ti(chorm(2),machine(2),ti(chorm(2-1),machine(2-1)+1)= ti(chorm(1)+max(ti(2,1),ti(1,2)=2+max(3,4)=6ti(chrom(3)=ti(chorm(2)+max(ti(chorm(3),machine(3),ti(chorm(3-1),machine(3-

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 学术论文 > 管理论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报