生产调度问题—遗传算法
基于遗传算法的车间调度系统研究
基于遗传算法的车间调度系统研究车间调度系统是生产制造中非常重要的一个环节。
为了在有限的时间内完成尽可能多的生产任务,需要合理地安排工人和机器的运转,使得生产效率最大化。
而遗传算法是一种智能化的求解算法,可以很好地应用到车间调度系统的优化问题中。
本文将介绍基于遗传算法的车间调度系统研究。
一、车间调度系统的意义与挑战车间调度系统是生产制造过程中的一个关键环节,它的优化与否对整个生产制造过程的效率和质量都会产生影响。
车间生产是一个复杂的过程,需要对众多生产任务进行安排和分配。
不同的任务需要不同的工序和生产资源,因此需要在有限的时间内合理地安排机器和人工的运转,以最大化生产效率,使得生产线实现高效的转换。
车间调度系统需要解决的主要问题是如何将各个任务分配到机器和工人之间,使得整个生产过程的效率和质量都得到保证。
车间调度系统的优化问题是一个NP问题,它的解决过程非常困难。
首先是搜索空间非常大,需要寻找一个最佳解,而这个最佳解可能隐藏在无数个组合中。
其次,不同的任务有不同的加工时间和优先级,需要在实际的生产环境中高效地进行调度。
因此,对车间调度系统的研究与开发不仅需要面对上述问题,还需要考虑到实际生产过程中的其他特殊因素,如物料准备、工序调整等。
二、遗传算法的基本原理遗传算法是一种生物学启发的求解算法,它模拟了生物进化的过程来求解问题。
它的基本思想是通过模拟生物群体的演化过程,以局部搜索为主并加入概率量化搜索的方式,通过表征问题的染色体来求解问题。
遗传算法的求解过程主要分为以下几个步骤:1. 初始群体的产生:将问题的解空间划分成若干个个体空间,然后从中随机生成一个初始种群。
2. 适应度函数的定义:针对问题,定义适应度函数将每一个个体映射到一个实数值上,表示此个体在问题解空间中的优越程度。
3. 选择运算:利用适应度函数把种群中的优良个体选择出来,作为解的素材,为下一代提供"优良遗传基因"。
生产任务调度问题的解决方案
生产任务调度问题的解决方案随着现代工业的快速发展,生产任务调度问题已经成为了制造企业面临的一大挑战。
在企业内部,如何通过有效的调度来提高生产效率,降低生产成本,以及保证生产线的连续稳定运行,都成为了领导们需要思考的一个重要问题。
因此,在本文中,通过探究实际生产中存在的问题及其原因,界定调度问题的范围,然后从三个方面,即任务调度的目标、调度算法、以及调度系统建设,为大家提供可行的生产任务调度解决方案。
一、界定调度问题的范围和存在的问题目前,大部分的制造企业都采用的是传统的生产制造方式,而生产调度仅是依靠经验、临时应变,等等一些简单的方式实现。
这在生产任务越来越复杂,生产线越来越长,生产人员越来越多的现代企业运营背景下,无法满足现代化的生产需求和要求。
因而,从企业提高生产效率,降低成本,以及保证生产线连续稳定运行的角度出发,我们需要重新对生产调度问题进行界定。
一个企业的任务调度问题可以从多个方面来界定,比如从生产出来的产品数量、质量水平、生产效率等来定义。
此处我们以生产效率和生产线的效率为衡量标准来讨论调度问题的本质。
首先,我们需要认真探究存在的问题,得出一定结论,才能提出可行的解决方案。
在实际生产中,任务调度常常会出现以下问题:1. 任务调度效率低下,无法满足生产需求;2. 无法做到及时响应客户需求,从而造成订单滞后;3. 信息不对称、依靠人力计划容易出错,对生产进度造成严重影响;4. 缺乏生产过程控制和质量控制,导致成品质量无法满足客户需求;5. 任务调度的紧急程度不受控制,不能充分利用人力资源,提高效率。
二、任务调度的目标任务调度的目标是提高生产效率,降低生产成本,提高质量,避免任务调度的不确定性。
为实现这些目标,任务调度需要协调生产线上各种设备的运转,合理安排人力资源,在最短时间内完成生产任务。
提高生产效率的前提是确保生产线平稳、无故障的运行。
因此,任务调度需要保证设备的有效可用时间,避免生产线上出现无用的等待时间。
调度问题中的模型求解方法研究
调度问题中的模型求解方法研究一、调度问题概述在生产和制造过程中,调度问题指的是对系统中资源进行优化配置的问题,以满足生产效率和成本控制的要求。
调度问题可以分为许多不同的类型,例如:单机调度问题、车间调度问题、流水线调度问题等等。
二、调度问题中的模型求解方法1. 图论与网络流模型调度问题中的图论模型主要利用流程图表示整个流程,网络流算法负责优化流程。
其主要思路是将资源、生产机器、需求等元素表示为节点,通过带权重的边连接起来,建立一个图,然后通过最大流、最小割等算法优化调度问题。
近年来,在图论算法中应用较多的有弧松弛算法(Arc Relaxation Algorithm)、缩放式求解算法(Scaling Algorithm)等。
2. 模拟退火算法模拟退火算法(Simulated Annealing Algorithm)是一种全局优化算法。
其基本思想是从一个初始解出发,通过模拟物质退火的过程,不断地从解空间中跳出来,以概率接收劣解以防止算法卡在局部最优解中。
3. 遗传算法遗传算法(Genetic Algorithm, GA)是一种模拟进化过程的搜索算法。
其基本思想是通过将可行解作为个体,通过选择、交叉、变异等遗传操作,不断地生成新的个体,最终获取全局最优解。
4. 粒子群算法粒子群算法(Particle Swarm Optimization, PSO)是一种基于群体智能的优化方法,基于每个解作为“粒子”位置的“迁徙”过程,通过群体中的个体互相通信、分享信息来搜索最优解。
5. 线性规划模型线性规划模型是调度问题中应用较为广泛的一种优化方法,主要利用线性规划模型描述问题并进行求解。
在线性规划模型中,将调度问题表示为一组线性等式和不等式,最终通过线性规划求解器求得最优解。
三、模型求解方法选择与评价在调度问题中,不同模型求解方法的选择和评价主要考虑以下几点:1. 模型的可行性求解方法的可行性是判断一种方法是否能够解决特定问题的前提,需要根据算法处理问题的概念和流程来确定方法的可行性。
《基于遗传算法的车间作业调度问题研究》
《基于遗传算法的车间作业调度问题研究》一、引言随着制造业的快速发展,车间作业调度问题(Job Scheduling Problem,JSP)逐渐成为生产管理领域的重要研究课题。
车间作业调度问题涉及到多个工序、多台设备和多类工件的合理安排,其目的是在满足各种约束条件下,实现生产效率的最大化和生产成本的最低化。
传统的车间作业调度方法往往难以解决复杂多变的实际问题,因此,寻求一种高效、智能的调度方法成为当前研究的热点。
遗传算法作为一种模拟自然进化过程的优化算法,具有全局搜索能力强、适应性好等优点,被广泛应用于车间作业调度问题的研究中。
二、遗传算法概述遗传算法是一种基于生物进化原理的优化算法,通过模拟自然选择和遗传学机制,实现问题的优化求解。
在遗传算法中,每个个体代表问题的一个可能解,通过选择、交叉和变异等操作,不断产生新的个体,逐步逼近最优解。
遗传算法具有全局搜索能力强、适应性好、鲁棒性强等优点,适用于解决复杂的优化问题。
三、车间作业调度问题的描述车间作业调度问题是一种典型的组合优化问题,涉及到多个工序、多台设备和多类工件的合理安排。
在车间作业调度问题中,每个工件都需要经过一系列工序的加工,每个工序可以在不同的设备上进行。
调度目标是确定每个工件在每台设备上的加工顺序和时间,以实现生产效率的最大化和生产成本的最低化。
车间作业调度问题具有约束条件多、工序复杂、设备资源有限等特点,使得其求解过程变得十分复杂。
四、基于遗传算法的车间作业调度方法针对车间作业调度问题的复杂性,本文提出了一种基于遗传算法的调度方法。
该方法首先将车间作业调度问题转化为一个优化问题,然后利用遗传算法进行求解。
具体步骤如下:1. 编码:将每个工件的加工顺序和时间信息编码为一个染色体,构成种群。
2. 初始化:随机生成一定数量的染色体,形成初始种群。
3. 选择:根据染色体的适应度,选择优秀的个体进入下一代。
4. 交叉:对选中的个体进行交叉操作,产生新的个体。
遗传算法在调度问题中的应用研究
遗传算法在调度问题中的应用研究概述:遗传算法是模拟自然界遗传和进化原理的一种优化算法,具有广泛的应用领域。
调度问题作为一类NP-hard问题,是实际生活中非常重要的问题之一。
本文将探讨遗传算法在调度问题中的应用研究,包括调度问题的定义、遗传算法的基本原理以及遗传算法在调度问题中的具体应用。
一、调度问题的定义:调度问题是指在给定的约束条件下,合理安排任务的开始时间、结束时间和资源分配,以达到最优的目标,如最小化等待时间、最小化资源消耗、最大化资源利用率等。
常见的调度问题包括作业调度、车辆路径规划、生产调度等。
二、遗传算法的基本原理:遗传算法是一种基于自然选择和进化论原理的优化算法。
基本原理包括个体表示、适应度评价、选择、交叉和变异。
首先,将问题抽象为个体,个体的基因表示问题的解。
然后,通过适应度函数对每个个体进行评价,衡量个体的优劣。
接下来,根据适应度大小选择优秀的个体作为父代,进行交叉和变异操作产生新的个体。
最后,反复迭代进行选择、交叉和变异,使种群中的个体逐渐趋于最优解。
三、遗传算法在调度问题中的应用:1. 作业调度:作业调度是指对一组作业进行合理的排序和分配资源,以最小化作业完成时间或最大化资源利用率。
遗传算法可以通过将作业表示为基因,对基因进行交叉和变异操作来生成新的调度方案,然后根据适应度函数对调度方案进行评价和选择。
通过多次迭代,最终获得最优的作业调度方案。
2. 车辆路径规划:车辆路径规划是指在给定的起始点和终止点之间,找到一条最短路径以最优方式分配车辆的行驶路线。
遗传算法可以将路径表示为基因,利用选择、交叉和变异操作生成新的路径,并通过适应度函数评价路径的优劣。
通过多次迭代,可以得到最优的车辆路径规划方案。
3. 生产调度:生产调度是指合理分配生产资源和工序,以最大化生产效率和资源利用率。
遗传算法可以将生产工序表示为基因,利用交叉和变异操作生成新的调度方案,并通过适应度函数评价方案的优劣。
遗传算法解决人员调度问题的最佳实践与技巧
遗传算法解决人员调度问题的最佳实践与技巧遗传算法(Genetic Algorithm)是一种基于生物进化理论的优化算法,通过模拟遗传和进化的过程,寻找问题的最优解。
在实际应用中,遗传算法被广泛用于解决人员调度问题,如员工排班、任务分配等。
本文将介绍遗传算法解决人员调度问题的最佳实践与技巧。
1. 问题定义与编码方式选择在使用遗传算法解决人员调度问题之前,首先需要明确问题的定义,并选择适合的编码方式。
例如,对于员工排班问题,可以将每个员工表示为一个基因,将一周的排班作为一个染色体,每个基因对应染色体上的一天。
这样,问题就被转化为寻找最优染色体的过程。
2. 适应度函数设计适应度函数是遗传算法中评价染色体优劣的标准。
在人员调度问题中,适应度函数应该能够综合考虑多个指标,如员工的工作时间、工作负荷均衡度、员工之间的协作关系等。
通过合理设计适应度函数,可以将问题的约束条件和优化目标有效地转化为数值化的评价指标。
3. 选择操作选择操作是遗传算法中的一个重要环节,它决定了哪些个体能够进入下一代。
在人员调度问题中,选择操作应该根据个体的适应度值进行选择,适应度值越高的个体越有可能被选中。
常用的选择算法有轮盘赌选择、锦标赛选择等,可以根据具体问题的特点选择合适的算法。
4. 交叉操作交叉操作是遗传算法中的一个关键步骤,它模拟了生物进化中的基因交换过程。
在人员调度问题中,交叉操作可以通过交换染色体上的基因片段来生成新的个体。
交叉操作的目的是增加种群的多样性,从而有助于避免陷入局部最优解。
5. 变异操作变异操作是遗传算法中的另一个重要步骤,它模拟了生物进化中的基因突变过程。
在人员调度问题中,变异操作可以通过随机改变染色体上的基因值来生成新的个体。
变异操作的目的是引入新的基因组合,从而有机会跳出当前搜索空间,寻找更优的解。
6. 算法参数调优遗传算法中的一些参数,如种群大小、交叉概率、变异概率等,都会对算法的性能产生影响。
在解决人员调度问题时,需要根据具体情况对这些参数进行调优。
一种基于混合遗传算法的车间生产调度的研究
道 工序 ;
2 )每道 工序 只能被 一 台机 器加 工 ;
3 )每 个工 件按 给 定 的工 艺路 线 和指 定 的次 序
在机 器上 进行加 工 ;
4 )每 个工 件 在每 台机 器 上 开始 加工 后 不可 停
止 ,直到 完成该 道 工序 的加工 ;
5 )每个 工 件 只能 在上 道 工序 加工 完 成 后才 能 开始 下一 道工序 的加 工 。 车 间 调 度 主 要 是针 对 工件 的加 工 ,研 究 在 尽 可能 满 足 一 些约 束条 件 ( 交货 期 、工 艺 路线 、资 如 源 情况 ) 的前 提 下 ,通 过 下达 生 产 指令 ,安排 其 组
好 的融 合 到 一 起 , 成为 了 当今 科 学 领 域 普 遍 重 视 的一 个 问题 。车 间调 度 问题 实 质 上 就 是 研 究 在 已 有 的资 源 条 件 和一 定 的约 束 条 件 下 ,对 加 工 任 务 进 行 的 加 工 时 间 、机 器 和 顺 序 等 的 合 理 分 配 ,从
的不 断 加 快 , 将 科 学 的 管理 调 度 技 术 与 车 间生 产
调 度 紧 密 结 合 起 来 ,在 现 代 加 工 车 间 中 已得 到 了
题 。通 过 这 些 方 面 的 改进 ,提 高 了遗 传 算 科 学 技 术 与 车 间生 产 调 度 更
中国分类号 :T 0 P3 1 文献标识码 :B 文章编号 :1 0 — 14 2 1 ) ( 一0 3 — 4 9 0 ( 0 9 上) 0 3 0 0 3 1
Doi 1 . 9 9 J is . 0 -0 4. 0 1. fI . 2 : 3 6 / .s n 1 9 1 0 0 3 2 1 9 -) 1
生产调度算法解决实际问题实例
生产调度算法解决实际问题实例在实际生产过程中,我们常常会面临的问题是如何合理地安排生产任务、产品和人员,使得生产过程达到最佳状态。
这就需要运用合适的生产调度算法来解决这些问题。
本文将介绍一个实际的生产调度问题,并以一种经典的算法作为例子展示如何解决这一问题。
假设某工厂生产某种化学产品,包括多个工序,每个工序都有不同的机器和加工时间。
工厂在每天的生产时间内需要完成多个产品的生产,同时需要考虑到机器的利用率和工人的工作量。
我们的目标是要制定一个生产调度方案,使得每天完成的产品数量最多,同时尽量减少生产时间和生产成本。
为了解决这一问题,我们可以采用一个经典的优化算法——遗传算法。
遗传算法是一种模拟自然选择和遗传机制的优化算法,通过模拟生物进化的过程来搜索问题的最优解。
在生产调度问题中,我们可以将每个生产任务看作一个个体,每个个体都有自己的适应度(即完成产品的数量)、基因(表示工序安排顺序)和交叉、变异等操作。
通过不断迭代和进化,最终找到最优的生产调度方案。
具体的算法流程如下:1. 初始化种群:随机生成一定数量的生产任务(个体)作为初始种群;2. 选择操作:根据每个个体的适应度进行选择操作,选择适应度高的个体作为父代个体进行繁殖;3. 交叉操作:对选出的父代个体进行交叉操作,生成新的后代个体;4. 变异操作:对新生成的后代个体进行变异操作,引入一定的随机性,增加种群的多样性;5. 计算适应度:对新的种群中的每个个体计算适应度,并更新适应度最好的个体;6. 终止条件:当达到一定的迭代次数或找到满意的解时,停止算法,并输出最优的生产调度方案。
通过这个算法,我们可以不断优化生产调度方案,找到最优的生产任务安排,从而提高生产效率和降低成本。
在实际应用中,我们可以根据具体的生产情况和需求,对遗传算法进行调参和优化,以获得更好的效果。
同时,我们还可以结合其他的优化算法和技术,如模拟退火算法、禁忌搜索等,来进一步提升生产调度的效果。
基于遗传算法求解作业车间调度问题-生产运作实践
生产运作实践大作业目录目录 (1)问题一:基于遗传算法求解作业车间调度问题 (2)1.问题介绍 (2)1.1 作业车间调度问题表述 (2)1.2 作业车间调度问题研究的假设条件 (2)1.3 车间作业调度问题的数学模型 (3)2 .基本遗传算法 (4)2.1 遗传算法的基本思路 (4)2.2 基本遗传算法参数说明 (4)3 .用遗传算法对具体问题的解决 (5)3.1 参数编码 (5)3.2 初始种群的生成 (6)3.3 个体的适应度函数 (6)3.4 遗传算子的设计 (7)3.5 遗传算法终止条件 (8)4.模型的求解 (8)5.结论总结 (10)6 . 附录 (10)问题二:邮政运输网络中的邮路规划和邮车调度 (18)1.问题描述 (18)2.模型建立 (18)2.1模型的基本假设 (18)2.2符号说明 (19)2.3模型分析 (20)2.4模型的建立 (20)3.模型的求解 (21)3.1求解思路 (21)3.2求解算法 (22)问题一:基于遗传算法求解作业车间调度问题1.问题介绍1.1 作业车间调度问题表述作业车间是指利用车间资源完成的某项任务,在实际生产中,这项任务可能是装配一种产品,也可能是完成一批工件的加工,为了研究方便,我们将这项任务限定为加工一批工件。
在此基础上,可对作业车间调度问题进行一般性的描述:假定有N个工件,要经过M台机器加工,一个工件在一台机器上的加工程序称为一道“工序”,相应的加工时间称为该工序的“加工时间”,用事先给定的“加工路线”表示工件加工时技术上的约束,即工件的加工工艺过程,用“加工顺序”表示各台机器上各个工件加工的先后顺序。
在车间作业调度问题中,每个工件都有独特的加工路线,我们要解决的问题就是如何分配N个零件在M个机器上的加工顺序以使得总的加工时间最短。
1.2 作业车间调度问题研究的假设条件在研究一般的作业车间调度问题中往往需要明确两类重要假设条件:1.工艺路径约束:工件的任一工序必须在其前道工序完成后才能开始,并保证同一工件不会同时在两台机器上加工,反映了工件不同工序间的时序关系;2.资源独占性约束:任一台机器每次只能加工一个工件,且一旦开工就不能中断,反映了加工队列中工件间的时序关系。
作业车间调度遗传算法python
作业车间调度是优化生产效率和资源利用的重要工作。
在实际工厂生产中,作业车间的调度问题往往十分复杂,需要考虑多个因素和约束条件。
为了解决这一问题,许多研究者提出了多种优化算法,其中遗传算法是一种常用且有效的方法之一。
一、遗传算法概述遗传算法是一种模拟自然选择和遗传机制的优化算法,其核心思想是通过模拟自然界的进化过程,利用交叉、变异、选择等操作不断迭代,最终找到最优解。
遗传算法广泛应用于组合优化、函数优化、机器学习等领域,其灵活性和高效性受到了广泛认可。
二、遗传算法在作业车间调度中的应用1.问题建模作业车间调度问题可以理解为将一组作业分配到多台设备上,并确定它们的顺序和时间安排,以最大化生产效率和资源利用率。
这一问题的复杂性体现在多个方面,例如设备之间的关系、作业的执行时间、优先级约束等。
2.遗传算法解决方案遗传算法作为一种全局搜索算法,能够有效地处理作业车间调度问题中的复杂约束条件和多目标优化。
通过编码、交叉、变异和选择等操作,遗传算法可以逐步优化作业的调度方案,找到最优解或较优解。
三、基于Python的作业车间调度遗传算法实现基于Python语言的遗传算法库有许多,例如DEAP、Pyevolve、GAlib等。
这些库提供了丰富的遗传算法工具和接口,使得作业车间调度问题的求解变得简单且高效。
1.问题建模针对具体的作业车间调度问题,首先需要将问题进行合理的数学建模,包括作业集合、设备集合、作业执行时间、约束条件等。
然后根据问题的具体性质选择适当的遗传算法编码方式和适应度函数。
2.遗传算法实现利用Python的遗传算法库进行实现,首先需要定义遗传算法的相关参数,如种裙大小、迭代次数、交叉概率、变异概率等。
然后通过编码、交叉、变异和选择等操作,逐步优化作业的调度方案,直至达到收敛或达到一定迭代次数。
3.结果评估与分析得到最终的调度方案后,需要对结果进行评估和分析。
可以比较遗传算法得到的调度方案与其他常规方法的效果,如贪婪算法、模拟退火算法等。
一种有效的遗传算法在重入式生产调度问题中的应用
l f w o c euigpo l (F P b s gg nt loi m ( A)A f ciemua o to t n ers it ni o s psh d l rbe R S ) yui eei ag rh G . nef t tt nmeh dwi r g etc o h n m n c t e v i ha r i s po oe nmi tlunao n me(T T ,seil el g t eac et e et e e - h d l gin e e. rp sd omii z t a tr ru dt t eo i T A )e caydai ht ci ns f cv l wh nr s eui edd p l n wi h d i y ec n s
摘 要 :在 半 导体 生产 中, 圆晶 的制造 过程 无 疑是 最 复杂 也是 最 重要 的环 节 。这种 大 规模 独 立 的处理 过程 包含上百 台机器和处理步骤是高度 重入式的。关于重入式生产调度 的优化问题通 常来说都是属于N 难 问 P 题。本论文提 出了一个基 于遗传进化算法的重入式流水车间调度 问题的优化算法,即通过对变异方式的 范围限定来有效地减小产 品的总滞留时间。尤其地 ,此方法对于流水线 中突发 情况 的产 生有很好 的适应 性,能够根 绝突变有效地进行重新排序 并且我们还将改进的遗传算法与局部搜 索算法和FF 算法分别 IO 进行 了比较。最后 实验结果表 明,本文提 出的改进算法能够有效地保 证维种群 多样和计算 时间之 间的平 衡。 关键词 :遗传 算法,流水车间调度 ,重入式
Th n we c mp r h o i e e e i t o t c l e r h meh d a d F F meh d E p rme t l e u t i d c t d t a h e o a e t em d f d g n t me h d wi l a a c t o n I O t o . x e i n a s l n ia e t e i c h o s r s h t
生产计划排程中的遗传算法优化
生产计划排程中的遗传算法优化遗传算法是一种模拟自然界生物进化的计算方法,适用于解决优化问题。
在生产计划排程中,遗传算法可以优化排程顺序和时间,提高生产的效率和优化生产计划。
本文将详细介绍如何使用遗传算法优化生产计划排程。
首先,需要确定生产计划排程的目标。
在生产计划排程中,主要目标是最小化生产时间和成本,同时满足资源约束和工作人员的工作要求。
为了实现这些目标,需要将产能、生产过程、资源约束和人员安排等因素纳入考虑。
在遗传算法中,首先需要定义个体表示和适应度函数。
个体表示可以是排程序列,染色体表示了工序的顺序,染色体长度等于工序数量。
适应度函数用于评估个体的优劣,可以是生产时间的总和、生产成本的总和或者二者的加权和,具体根据生产计划排程的目标来决定。
第二步是初始化种群。
种群是由多个个体组成的集合,表示了不同的排程方案。
每个个体都是一个工序排列,通过随机生成的方式初始化种群。
种群的大小和生成方式对优化结果有一定的影响,在实际应用中需要进行多次实验来找到最适合的设置。
接下来是选择操作。
选择操作根据适应度值对种群中的个体进行选择,选择适应度较高的个体作为父代。
常用的选择算法有轮盘赌选择、锦标赛选择和排名选择等。
选择操作能够保留适应度较高的个体,并筛选掉适应度较低的个体。
然后是交叉操作。
交叉操作模拟了生物的基因交换,将父代的染色体中的信息进行组合生成新的个体。
交叉操作可以采用单点交叉、多点交叉或均匀交叉等方式。
交叉操作可以增加种群的多样性,保留了更多的信息。
接下来是变异操作。
变异操作模拟了生物的基因变异,通过随机改变染色体的一部分信息,生成新的个体。
变异操作在遗传算法中起到了维持种群多样性的作用。
变异操作可以采用交换位置、插入或删除等方式进行。
最后是更新种群。
将新生成的个体替换掉适应度较低的个体,更新种群,继续进行选择、交叉和变异操作。
重复进行这些步骤,直到满足终止条件,例如达到最大迭代次数或者适应度值满足要求。
基于遗传算法的离散制造系统生产调度问题研究
过适应度函数来控制染色体 向目标函数方 向移动。
本 文 以最 大加 工 时间最 短 为调度 的优 化 目标 , 因此 将 适应 度 函数 f 1 定 义为 : ()
f 1 () 1
1 ≤ ≤
因为每个零件的最后一道工序加工完成 即这个零 件 加工 结束 , 以所 有零 件 的最后 一道 工序 加工 结 所
mi n:
余度高等特点, 解决了产品加工路径的多样化需求 的问题 , 但同时提高 了资源 冲突的发生率 , 增加了 生产调度和协调的难度 , 使得生产调度系统无法按 照原计 划 执 行 J 也 增 加 了对 系 统 分 析 研 究 的 复 ,
杂性 。 因此 , 长期 以来学 者 、 家都 是 采用 智 能算 专 法来求 解这类 问题 , 如遗传 算法 、 启发式 算 法等 。 最 近 几年 有关 用 遗传 算 法 求解 生 产调 度 问题
离散制造 系统 的调 度 问题 可描 述 为 个 工 件
收 稿 日期 :0 9 1 5 2 0 —1 —0 基 金项 目 : 州 市科 技计 划 项 目 (【】c 3 0 1 广 2J7 1G0 2 ) (
£ u
.
.
z
保证 了同一时刻 , 一台设备只能加
工一 个工件 的一道 工 序 。 为设 备 数 ;z ,为本 次 调
1 M ≤ , ≤ i 7 ≤ 1 ≤ 2 1≤ r ≤ , 1≤ ≤
式 中 : e 为工 件 上 的最后 一道工 序 的加 工完成 t .
数值的算法。在该算法中, 工序的加工开始时间等 于上一道工序的加工结束 时间和相应加工设备上 的上一 道工序 加工结 束 时间 中的较大 时间 , 工序 的
度的工件数 ; 表示能加工工件 M井 的第 道工序的
基于遗传算法的流水车间调度问题
中文摘要流水车间调度问题是研究多个工件在若干个机器上的加工次序的问题,有效的调度算法对企业提高生产效率有着重要作用。
本文使用遗传算法求解流水车间调度问题,把一个染色体编码成若干个自然数,表示相应工件的排序权值;通过简单交换两个父代的若干相同位置的基因,产生能够继承父代优良特性的子代;并且采用均匀变异,更好地保持种群中的基因的多样性。
实验表明,该方法能取得较好的效果。
关键字:遗传算法,流水车间调度方法,实数编码,基因链码,群体,适应度。
外文摘要Abstract: Flow-shop scheduling problem study the problem the processing sequence of A plurality of workpieces on some working machine,and it makes good effects on proving production efficiency to the industries with effective methods.In the case,we deal with flow-shop scheduling problem using a algorithm,the Genetic Algorithm.There is a chromosome we've just coded into some natural numbers to represent the weight order of these workpieces; exchanging simply two fathers' places of some gene to produce new children that carried good feature on two fathers;we also use the Uniform Mutation,and it keeps its diversity of gene on the population.This experiment show this method can achieve good results.Key Words: Genetic Algorithm, Flow-shop scheduling problem,natural number coding,genic bar code,group,fitness.目录中文摘要 (1)外文摘要 (2)目录 (3)1 引言 (4)1.1 论文的发展背景及重要性 (4)1.1.1 时代背景 (4)1.1.2 论文研究的重要性 (4)1.2 论文的研究问题及解决方法 (4)2 FSP问题描述 (5)2.1 排序问题的基本概念 (5)2.1.1 名词术语 (5)2.1.2 条件假设 (5)2.2车间作业排序问题的特点 (6)2.3 车间作业排序问题 (6)2.3.1 目标函数 (6)2.3.2 车间调度问题的分类 (7)3 遗传算法理论 (7)3.1 遗传算法的产生和发展 (7)3.2 遗传算法的基本思想 (8)3.2.1 基本概念 (8)3.2.2 遗传算法的基本思想 (9)4 基于遗传算法的流水车间调度方法 (11)4.1 问题的提出 (11)4.2 遗传算法基本步骤 (11)4.2.1 编码 (11)4.2.2 初始群体生成 (12)4.2.3 适应度计算 (12)4.2.4 选择 (14)4.2.5 交叉 (15)4.2.6 变异 (17)4.2.7 终止 (19)5. 研究成果 (20)5.1 算法求解与分析 (20)5.2 实验结果 (21)参考文献 (22)附录 (23)1 引言1.1 论文的发展背景及重要性1.1.1 时代背景从第一次工业革命起,由于科技的进步人类社会就开始了一个经济腾飞的大时代。
求解作业车间调度问题的改进遗传算法
求解作业车间调度问题的改进遗传算法①陈金广, 马玲叶, 马丽丽(西安工程大学 计算机科学学院, 西安 710048)通讯作者: 陈金广摘 要: 使用遗传算法求解作业车间调度问题时, 为了获得最优解, 提高算法的收敛速度, 提出了改进遗传算法. 算法以最小化最大完工时间为优化目标, 初始化时将种群规模扩大为原来的两倍以增加种群多样性; 迭代时使用新的适应度函数让染色体间更易区分; 通过轮盘赌法完成染色体选择; 用POX (Precedence Operation Crossover)交叉算子完成交叉操作; 用互换法完成变异操作; 通过具有自我调节能力的交叉和变异概率不断地调整概率值来提高算法寻优能力和收敛速度. 仿真结果表明, 改进后的遗传算法收敛速度快, 寻优能力强, 获得的最优解优于标准遗传算法, 更适用于作业车间的加工生产.关键词: 遗传算法; 作业车间调度; 改进; 轮盘赌; 自适应概率引用格式: 陈金广,马玲叶,马丽丽.求解作业车间调度问题的改进遗传算法.计算机系统应用,2021,30(5):190–195. /1003-3254/7921.htmlImproved Genetic Algorithm for Job Shop Scheduling ProblemCHEN Jin-Guang, MA Ling-Ye, MA Li-Li(School of Computer Science, Xi’an Polytechnic University, Xi’an 710048, China)Abstract : When a genetic algorithm is used to solve job shop scheduling, in order to obtain the optimal solution and increase the convergence speed of the algorithm, we propose an improved genetic algorithm in this study. The goal of the algorithm is to minimize the maximum completion time. First, the population size is doubled during the initialization to increase the diversity of the population and a new fitness function is adopted to make chromosome distinguishing easier in the iteration. Then, chromosomes are selected via roulette. Furthermore, crossover is completed by Precedence Operation Crossover (POX) and mutation by Reciprocal Exchange Mutation (REM). Finally, the optimization ability and convergence speed of the proposed algorithm are improved by adjusting the crossover and mutation probability with self-regulation. The simulation results show that the improved genetic algorithm has faster convergence, stronger optimization ability, and better optimal solution than the traditional one and thus it is more suitable for the processing and production in job shops.Key words : genetic algorithm; job shop scheduling; optimization; roulette; adaptive probability1 引言作业车间调度问题的求解目标是得到一个科学、合理的调度方案. 一个科学、合理的调度方案能够有效提高生产效率、降低加工成本. 调度方案主要是确定各工件的加工次序和加工机器, 这是典型的NP-hard 问题[1]. 现代企业间的竞争日趋激烈, 合理安排作业车间调度至关重要. 此外, 工业工程中车间生产规模逐渐扩大, 作业车间调度越来越复杂, 作业车间调度的计算机系统应用 ISSN 1003-3254, CODEN CSAOBNE-mail: Computer Systems & Applications,2021,30(5):190−195 [doi: 10.15888/ki.csa.007921] ©中国科学院软件研究所版权所有.Tel: +86-10-62661041① 基金项目: 陕西省教育厅科研计划(18JK0349)Foundation item: Scientific Research Program of Education Bureau, Shaanxi Province (18JK0349)收稿时间: 2020-09-13; 修改时间: 2020-10-09, 2020-10-28; 采用时间: 2020-10-30; csa 在线出版时间: 2021-04-28190组合改进问题已成为当今工业工程领域发展研究的热点问题之一[2]. 作业车间调度(JSP)都是凭借着工人的工作经验来安排工件的加工顺序, 然而这种方法不仅对工人要求较高, 且会出现安排不合理的情况. 启发式研究方法可以很好的解决这类问题, 常用的主流求解方法有粒子群优化算法、遗传算法、神经网络算法、禁忌搜索算法等[3–8]. 其中遗传算法(Genetic Algorithm, GA)作为一种群智能算法, 具有隐式并行性和全局搜索特性, 是求解作业车间调度问题的有力工具, 因此遗传算法被很多学者用来解决作业车间调度问题, 其在柔性作业车间(FJSP)的应用最为广泛. 根据FJSP的特点, 刘琼等[9]提出了一种改进的交叉变异方法并设计了一种初始解产生机制. 张国辉等[10]采用一种随机和优化相结合的初始化种群方法. 赵诗奎等[11]运用均匀设计原对遗传算法中的初始种群及适应度函数进行设计并将其应用到FJSP中. 对于上述3篇文献, 交叉和变异概率均是通过多次试验和前人经验给定, 没有采用自适应的方法确定. Kacem等[12]和Zhang等[13]分别提出了基于时间表和机器时间数组的机器指派法,取得了较好的成效, 然而, 这两种方法都是基于单步优化指派机器, 最终的指派结果没有定量的全局性衡量指标, 不能保证最终机器指派结果的质量. 不同类型的作业车间所需的调度方法不同, 对于JSP, 何斌等研究了自适应交叉与变异概率提高了算法的寻优能力和收敛速度, 但其染色体总数仅根据初始种群数决定, 染色体多样性低[14]. 李春廷等通过改变遗传算法编码研究以及遗传算子的设计证明其算法的有效性, 但其实验时交叉、变异概率难以确定[15].综上所述, 对于作业车间调度问题存在着染色体多样性低, 收敛速度慢, 遗传参数难以确定的问题. 对此本文提出了一种改进后的遗传算法来解决作业车间调度问题. 改进后的遗传算法在初始化时能够适当扩大种群, 在迭代过程中运用更易区分染色体的适应度函数计算染色体的适应度值, 并且运用能够自适应改变交叉和变异概率的算子调整概率值. 实验结果表明改进后的遗传算法更适用于作业车间调度.2 车间调度问题描述在作业车间中有一批待加工工件, 这批待加工工件中有n个不同的工件, 每个工件均包含m道工序, 需要在m台机器上加工. 加工这批工件需要同时满足以下几点约束条件:1) 所有工件的工序之间都有顺序约束, 即同一工件的各工序间有先后顺序, 需按照工序顺序进行加工;2) 不同工件的加工工序之间没有顺序约束;3) 每道工序只能在一台机器上加工;4) 各工件工序的加工时间由对应的加工机器确定;5) 在同一时刻车间中的同一机器只能加工一道工序;6) 一道工序同一时刻只能在一台机器上加工, 且不能中途中断;7) 不同工件之间优先级是相同的;8) 不考虑机器故障等随机性因素.本文求解目标为确定每台机器上工序的加工顺序和每个工序的开工时间, 使得最大完工时间 最小. 优化目标函数如式(1)所示:C max C ik式中, 表示最大完成时间, 表示工件i在机器k上的完工时间.3 改进算法设计3.1 染色体编码遗传算法的基因编码方式有很多种, 如浮点数编码、二进制编码、整数编码、符号编码、矩阵编码等[16].基因编码在算法中起着至关重要的作用, 编码的方式直接影响遗传算法的运行速度以及能否找到全局最优解[17]. 对于作业车间问题, 本文采用基于工序的实数编码来表示染色体[18], 一个编码后的染色体代表一个车间调度问题的调度方案.对于n个不同工件在m台机器上加工的作业车间调度问题, 采用基于工序的编码方式编码后, 每条染色体均含有n×m个基因, 染色体的基因顺序对应所有工件工序的加工顺序, 即一条染色体代表一个车间调度问题的调度方案. 每条染色体的基因表示如下: 每个工件号在染色体中只能出现m次; 从染色体的第一个基因位到最后一个基因位依次遍历, 若同一工件号出现第k次则表示为此工件的第k道工序, 如染色体[3 3 2 1 2 1], 其中第一个3代表3号工件的第一道工序, 第二个3代表3号工件的第二道工序, 以此类推.3.2 种群初始化首先给定种群的初始值p; 然后根据作业车间一道工序只在一台机器上加工的特点, 生成一个有n×m个2021 年 第 30 卷 第 5 期计算机系统应用191基因的染色体; 最后调用randperm函数处理生成的染色体, 使其循环p次, 得到一个初始种群.3.3 染色体适应度值本文的优化目标是最小化最大完成时间, 因此最大完成时间越小的染色体越优良. 染色体的适应度值是用来区分染色体间的优劣程度, 染色体越优良适应度值越大, 被选中的概率越大, 染色体越差适应度值越低, 被选中的概率越低. 为了更好的体现遗传算法优胜劣汰的准则, 本文采用新的计算染色体适应度值的方法, 使染色体间的区分度更加明显, 优良染色体被选中的概率大.假设现有4个工件, 其加工完成时间分别为[20, 21, 22, 23], 利用取最大完成时间倒数方法得到的适应度值分别为[0.05, 0.0476, 0.0454, 0.0425], 改进后的算法得到的适应度值分别为[1,0.6308, 0.2923, 0]. 从这两组适应度值可看出, 这样设定适应度值可以让最大完成时间小的染色体被多次选择, 最大完成时间最大的染色体被少选择或者不被选择, 拉开了染色体间差距,保障了对优良染色体的选择, 比前者获得优良染色体的概率更大.适应度函数如式(2)所示, 最大完工时间的倒数如式(3)所示:式(2)、式(3)中, i为初始种群中的任意一条染色体, Max表示h(i)的最大值, Min表示h(i)的最小值.在确定好各染色体的适应度值后在采用轮盘赌[19]的方法选择初始种群中的染色体.3.4 交叉与变异交叉操作可以增加种群的多样性, 提高算法的搜索能力, 有利于产生优秀的染色体, 即有利于产生优秀的作业车间调度方案. 鉴于优先工序交叉法POX (Precedence Operation Crossover)能够很好地继承父代优良特征并且子代总是可行的这一特点, 本文选择POX进行交叉操作[20], 具体步骤如下所述:步骤1. 按顺序依次选择种群中的一条染色体作为父代1即Parent1, 随机选择种群中的一条染色体作为父代2即Parent2;步骤2. 将工件集{1, 2, 3, …, n}随机划分为两个非空子集j1, j2;j1={2}j1={2}步骤3. 将Parent1和Parent2中包含工件号分别按其在染色体中的位置复制到子代1即Children1和子代2即Children2中, 将Parent1和Parent2中包含工件号分别按其在染色体中的顺序复制到Children2和Children1中; Children1和Children2这两条染色体即为交叉后的染色体. 如Parent1={3, 2, 2, 3, 1, 1}, Parent2={1, 1, 3, 2, 2, 3}, 对工件集{1, 2, 3}随机划分生成j1={2}, j2={3,1}, 经过POX交叉后得到Children1={1, 2, 2, 1, 3, 3}, Children2={3, 3, 1, 2, 2, 1}.变异操作是小概率发生的, 它能够对染色体产生较小的扰动来增加种群的多样性, 从而产生更能满足目标函数要求的调度方案. 交叉后的染色体在进行小概率的变异操作, 可得到新的染色体, 保持种群多样性.为了保证新得到的染色体编码是可调度的, 避免将不可行调度转换成可行调度, 减少代码运行时间, 本文采用互换法(Reciprocal Exchange Mutation, REM)进行变异操作[21]. 对一个染色体随机选择两个基因号, 将两个基因号上对应的工件号进行互换, 循环i次后可得到变异后的染色体.3.5 交叉与变异概率交叉和变异概率影响着交叉操作和变异操作的发生, 当交叉和变异概率大于由rand函数在(0, 1)之间随机产生的值时, 染色体发生交叉、变异.标准遗传算法的交叉和变异概率通常都是固定不变的值, 一般根据前人经验给定或者根据实验结果给定, 当给定的值较小时会使搜索范围变小, 不利于寻找更优解; 而当给定值较大时则可能导致已有的优良染色体在交叉和变异操作后变差; 在实验中容易出现早熟问题, 即未成熟收敛. 本文确定交叉和变异概率值时采用文献[22]提出的自适应改变交叉和变异概率的方法, 该算法能够在种群进化初期提高进化能力, 降低陷入局部最优的风险, 避免早熟问题的出现, 解决了参数难以确定的问题. 自适应交叉概率函数如式(4)所示,自适应变异概率函数如式(5)所示:计算机系统应用2021 年 第 30 卷 第 5 期192g max g avg 式(4)、式(5)中, 表示当前种群中所有染色体的最大适应度值; 表示当前种群中所有染色体的平均适应度值; 为两个交叉染色体中适应度值较大的值;g 表示选中的变异染色体的适应度值. 算法中k 1, k 2, k 3,k 4的值在(0, 1)范围中选择即可.4 仿真实验程序运行平台为MacOS10. 13.6操作系统上的Matlab_R2018a 软件, 用标准遗传算法和改进算法分别对测试用例库中的FT06和LA01这两个用例进行实验. FT06是一个6×6的测试用例, 即共有6个工件, 每个工件都有6个加工工序, FT06的工件工序集J =[3, 1,2, 4, 6, 5; 2, 3, 5, 6, 1, 4; 3, 4, 6, 1, 2, 5; 2, 1, 3, 4, 5, 6; 3,2, 5, 6, 1, 4; 2, 4, 6, 1, 5, 3]; 加工FT06各个工序所需时间集T =[1, 3, 6, 7, 3, 6; 8, 5, 10, 10, 10, 4; 5, 4, 8, 9, 1, 7;5, 5, 5, 3, 8, 9; 9, 3, 5, 4, 3, 1; 3, 3, 9, 10, 4, 1]; LA01是一个10×5的测试用例, 即共有10个工件, 每个工件都有5个加工工序, LA01的工件工序集J =[2, 1, 5, 4, 3; 1,4, 5, 3, 2; 4, 5, 2, 3, 1; 2, 1, 5, 3, 4; 1, 4, 3, 2, 5; 2, 3, 5, 1,4; 4, 5, 2, 3, 1; 3, 1, 2, 4, 5; 4, 2, 5, 1, 3; 5, 4, 3, 2, 1]; 加工LA01各个工序所需时间集T =[21, 53, 95, 55, 34;21, 52, 16, 26, 71; 39, 98, 42, 31, 12; 77, 55, 79, 66, 77;83, 34, 64, 19, 37; 54, 43, 79, 92, 62; 69, 77, 87, 87, 93;38, 60, 41, 24, 83; 17, 49, 25, 44, 98; 77, 79, 43, 75, 96].此次实验涉及到标准遗传算法和对标准遗传算法的种群初始化, 适应度函数, 交叉、变异概率的确定进行优化后得到的遗传算法. 根据多次实验以及前人实验结果, 标准遗传算法的参数设置为: 迭代次数为200,种群总大小为100, 交叉概率为0.9, 变异概率为0.05;改进后的遗传算法参数设置为: 迭代次数为200, 种群总大小为100, 在初始化时将种群总大小扩大为原来的2倍, 以增加染色体的多样性, 并且由于改进算法中交叉和变异概率是自适应调节的, 无需直接指定, 由式(4)和式(5)确定, 优化后的遗传算法参数设置为迭代次数为200, 种群总大小为100, k 1=k 2=0.9, k 3=k 4=0.1. 运行20次后, 图1和图2分别为使用标准遗传算法与改进后的遗传算法求解FT06和LA01得到的最优解值.从图1和图2中可知, 在20次实验中, 改进后的遗传算法得到的最优解都优于标准遗传算法得到的最优解, 证明改进后的遗传算法的寻优能力强于标准遗传算法. 分析总结图1、图2中的数据, 结合每次实验得到的迭代过程图, 得到结果对比表如表1所示.图1 FT06基准案例最优解2468101214161820LA01 实验次数传统遗传算法优化后遗传算法图2 LA01基准案例最优解表1 基准案例(FT06, LA01)结果对比表项目FT06LA01标准算法本文算法标准算法本文算法最优解5955740666最优解个数212114最优解均值61.556.2774.35671.3最优迭代次数310418平均迭代次数11.638.058.476.6从表1可看出, 用FT06基准案例验证时, 标准算法求得的最优解为59, 20次实验中有2次求得59, 所得解均值是61.5, 当求得最优解为59时, 最优迭代次数为3, 平均迭代次数为11.6; 改进算法求得的最优解为55, 20次实验中有12次求得55, 所得解均值为56.2, 当求得最优解为55时, 最优迭代次数为10, 平均迭代次数为38.05; 用LA01基准案例验证时, 标准算法求得的最优解为740, 20次实验中有1次求得740,所得解均值为774.35, 当求得最优解为740时, 最优迭代次数为4, 平均迭代次数为8.4; 改进算法求得的最优解为666, 20次实验中有14次求得最优解, 最优解平均值为671.3, 当求得最优解为666时, 最优迭代次数2021 年 第 30 卷 第 5 期计算机系统应用193为18, 平均迭代次数为76.6.由此可以看出, 改进后的遗传算法得到的最优解优于标准遗传算法, 解决了标准算法的早熟问题; 同时在进行20次实验后, 改进后的算法得到最优解的次数分别为12和14次大于标准算法得到最优解的次数,解决了标准算法的解的稳定性差问题.运用标准遗传算法对不同基准案例进行验证时,可能需要不同的交叉和变异参数来提高算法的收敛速度和搜索能力. 而交叉和变异概率难以确定, 一般由实验经验或者参考前人的参数设计给出, 给定后的值固定不变. 对于标准遗传算法只改进适应度函数后进行实验验证, 给定交叉概率为0. 9, 变异概率为0. 05, 实验结果如表2所示.表2 改进适应度函数后的实验结果表项目基准案例FT06LA01最优解55666最优迭代次数30130对比表1, 表2可知, 表2中迭代次数均大于表1中本文算法对应的迭代次数. 由此可知, 改进算法中的自适应交叉和变异概率提高算法的收敛速度.由参考文献[23]可知, FT06的最优解为55, LA01的最优解为666. 结合结果分析可知, 不论是FT06基准案例还是LA01基准案例, 改进算法均能得到与基准案例最优解相同的解, 并且在20次实验中, 改进算法得到最优解的次数分别为12和14次, 均高于标准算法; 改进算法在得到最优解时, 其迭代次数分别为10和18, 相比于只改进寻优能力后得到的最优解时的迭代次数, 改进算法可以提高收敛速度.用FT06和LA01验证改进后的遗传算法, 生成的遗传代数图和甘特图分别如图3~图6所示. 由图4可知每台机器上的工序顺序, 以及加工完所有工件花费的最少加工时间55, 由图3可知得到此调度方案只迭代了10次; 由图6可知每台机器上的工序顺序, 以及加工完所有工件花费的最少加工时间666, 由图5可知得到此调度方案只迭代了18次. 仿真结果表明改进后的遗传算法比标准遗传算法收敛速度快, 所得解更稳定, 遗传参数较易确定. 相较于文献[14,15], 优化后的遗传算法的收敛速度更优, 交叉和变异概率采用自适应交叉、变异函数确定, 解决了参数难以确定的问题,证实了改进后遗传算法的有效性和可靠性.图3 FT06遗传代数图图4 FT06甘特图图5 LA01遗传代数图图6 LA01甘特图计算机系统应用2021 年 第 30 卷 第 5 期1945 结束语以最小化最大完成时间为优化目标, 对标准遗传算法进行改进, 以求解目标问题的最优解. 在初始化时扩大种群数量以增加种群多样性, 采用的适应度函数可以增加染色体区分度, 使用POX算法完成交叉操作,产生的子代可以很好地继承父代优良特征并且子代总是可行, 交叉和变异概率采用自适应交叉和变异概率,概率可根据染色体适应度值自动调整. 通过对FT06和LA01进行仿真实验, 所得的实验结果表明改进后的遗传算法解决了标准遗传算法中参数难以确定, 早熟收敛, 所得解不稳定的问题, 提高算法的寻优能力和收敛速度, 比标准遗传算法更适用于作业车间生产. 对于柔性作业车间调度问题, 其每道工序可以在多台机床上加工, 并且在不同的机床上加工所需时间不同, 因此本文算法不适用于柔性作业车间的调度问题, 下一步将研究能够处理柔性作业车间的调度问题.参考文献徐华, 程冰. 混合遗传蝙蝠算法求解单目标柔性作业车间调度问题. 小型微型计算机系统, 2018, 39(5): 1010–1015.[doi: 10.3969/j.issn.1000-1220.2018.05.026]1曹磊, 叶春明, 黄霞. 变邻域杂草算法在多目标柔性作业车间调度中的应用. 计算机应用研究, 2018, 35(1): 150–154, 165. [doi: 10.3969/j.issn.1001-3695.2018.01.031]2Ariyasingha IDID, Fernando TGI. A performance study for the multi-objective ant colony optimization algorithms on the job shop scheduling problem. International Journal of Computer Applications, 2015, 132(14): 1–8. [doi: 10.5120/ ijca2015907638]3Florez E, Gomez W, Lola B. An ant colony optimization algorithm for job shop scheduling problems. International Journal of Artificial Intelligence & Applications, 2013, 4(4): 53–66.4Peng B, Lu ZP, Cheng TCE. A tabu search/path relinking algorithm to solve the job shop scheduling problem.Computers & Operations Research, 2015, 53: 154–164.5Spanos AC, Ponis ST, Tatsiopoulos IP, et al. A new hybrid parallel genetic algorithm for the job-shop scheduling problem. International Transactions in Operational Research, 2014, 21(3): 479–499. [doi: 10.1111/itor.12056]6Nasiri MM. A modified ABC algorithm for the stage shop scheduling problem. Applied Soft Computing, 2015, 28: 81–89. [doi: 10.1016/j.asoc.2014.12.001]7Karimi-Nasab M, Modarres M, Seyedhoseini SM. A self-8adaptive PSO for joint lot sizing and job shop scheduling with compressible process times. Applied Soft Computing, 2015, 27: 137–147. [doi: 10.1016/j.asoc.2014.10.015]刘琼, 张超勇, 饶运清, 等. 改进遗传算法解决柔性作业车间调度问题. 工业工程与管理, 2009, 14(2): 59–66. [doi:10.3969/j.issn.1007-5429.2009.02.011]9张国辉, 高亮, 李培根, 等. 改进遗传算法求解柔性作业车间调度问题. 机械工程学报, 2009, 45(7): 145–151.10赵诗奎, 方水良, 顾新建. 柔性车间调度的新型初始机制遗传算法. 浙江大学学报(工学版), 2013, 47(6): 1022–1030. 11Kacem I, Hammadi S, Borne P. Approach by localization and multiobjective evolutionary optimization for flexible job-shop scheduling problems. IEEE Transactions on Systems, Man, and Cybernetics, Part C (Applications and Reviews), 2002, 32(1): 1–13. [doi: 10.1109/TSMCC.2002.1009117]12Zhang GH, Gao L, Shi Y. An effective genetic algorithm for the flexible job-shop scheduling problem. Expert Systems with Applications, 2011, 38(4): 3563–3573. [doi: 10.1016/ j.eswa.2010.08.145]13何斌, 张接信, 张富强. 一种求解作业车间调度问题的改进遗传算法. 制造业自动化, 2018, 40(8): 113–117. [doi: 10.3969/ j.issn.1009-0134.2018.08.029]14李春廷. 基于遗传算法的作业车间调度问题研究[硕士学位论文]. 秦皇岛: 燕山大学, 2007.15张国辉, 吴立辉. 求解柔性作业车间调度的GATOC混合方法. 计算机工程与应用, 2015, 51(23): 266–270. [doi: 10.3778/j.issn.1002-8331.1502-0171]16王雷, 蔡劲草, 李明. 基于正交试验的遗传算法参数优化.工程技术版, 2016, 16(2): 81–85.17玄登影, 王福林, 高敏慧, 等. 一种改进适应度函数的遗传算法. 数学的实践与认识, 2015, 45(16): 232–238.18李兢尧, 黄媛, 王军强, 等. 求解扩展双资源约束作业车间调度的分支种群遗传算法. 西北工业大学学报, 2016, 34(4): 634–640. [doi: 10.3969/j.issn.1000-2758.2016.04.013]19张雪艳, 梁工谦, 董仲慧. 基于改进自适应遗传算法的柔性作业车间调度问题研究. 机械制造, 2016, 54(6): 1–4, 33.[doi: 10.3969/j.issn.1000-4998.2016.06.001]20黄俊生, 广晓平. 关于生产车间作业优化调度效率仿真研究. 制造业自动化, 2017, 39(10): 95–99. [doi: 10.3969/j.issn.1009-0134.2017.10.022]21郑先鹏, 王雷. 面向作业车间调度问题的遗传算法改进. 河北科技大学学报, 2019, 40(6): 496–502. [doi: 10.7535/hbkd.2019yx06006]22王明. 基于改进遗传算法的作业车间调度问题研究[硕士学位论文]. 芜湖: 安徽工程大学, 2019.232021 年 第 30 卷 第 5 期计算机系统应用195。
生产调度算法总结归纳
生产调度算法总结归纳在现代制造业中,生产调度是一个关键而又复杂的问题。
生产调度算法作为解决这一问题的工具,扮演着重要的角色。
本文将对常见的生产调度算法进行总结归纳,为生产调度决策提供参考。
一、先来先服务(First Come First Serve, FCFS)先来先服务算法是最简单的调度算法之一。
它按照任务到达的先后顺序进行调度,即先到车间的任务先得到执行。
这种算法简单易懂,但不考虑任务的紧急程度和工艺的复杂性,容易导致长作业时间和低资源利用率。
二、最早截止时间优先(Earliest Due Date, EDD)最早截止时间优先算法是基于任务的截止时间确定任务的优先级。
截止时间越早的任务优先级越高,先执行。
该算法考虑了任务的时效性,但未考虑任务所需的时间和资源,可能导致其他任务的延误。
三、最短加工时间优先(Shortest Processing Time, SPT)最短加工时间优先算法是根据任务的加工时间确定优先级。
加工时间越短的任务优先级越高,先执行。
该算法能够快速完成短任务,提高生产效率,但对长任务的处理可能存在延误。
四、最高优先权优先(Highest Priority First, HPF)最高优先权优先算法是基于任务的优先级确定任务的执行顺序。
优先级越高的任务优先执行。
这种算法能够灵活地处理不同优先级的任务,使得高优先级任务能够尽快得到执行。
但需要合理确定任务的优先级,否则可能会导致某些任务长时间得不到执行。
五、遗传算法(Genetic Algorithm, GA)遗传算法是一种启发式搜索算法,模拟了生物进化的过程。
它通过随机生成初始群体,利用选择、交叉和变异等操作不断迭代,最终找到最优解。
遗传算法能够全局搜索解空间,并且对于复杂的生产调度问题具有较高的适应度。
但算法参数的选择和不确定性运算过程可能导致算法的收敛速度较慢。
六、模拟退火算法(Simulated Annealing, SA)模拟退火算法是一种基于退火原理的全局优化算法。
基于遗传算法求解作业车间调度问题本科毕业设计论文
基于遗传算法求解作业车间调度问题摘要作业车间调度问题(JSP)简单来说就是设备资源优化配置问题。
作业车间调度问题是计算机集成制造系统(CIMS)工程中的一个重要组成部分,它对企业的生产管理和控制系统有着重要的影响。
在当今的竞争环境下,如何利用计算机技术实现生产调度计划优化,快速调整资源配置,统筹安排生产进度,提高设备利用率已成为许多加工企业面临的重大课题。
近年来遗传算法得到了很大的发展,应用遗传算法来解决车间调度问题早有研究。
本文在已有算法基础上详细讨论了染色体编码方法并对其进行了改进。
在研究了作业车间调度问题数学模型和优化算法的基础上,将一种改进的自适应遗传算法应用在作业车间调度中。
该算法是将sigmoid函数的变形函数应用到自适应遗传算法中,并将作业车间调度问题中的完工时间大小作为算法的评价指标,实现了交叉率和变异率随着完工时间的非线性自适应调整,较好地克服了标准遗传算法在解决作业车间调度问题时的“早熟”和稳定性差的缺点,以及传统的线性自适应遗传算法收敛速度慢的缺点。
以改进的自适应遗传算法和混合遗传算法为调度算法,设计并实现了作业车间调度系统,详细介绍了各个模块的功能与操作。
最后根据改进的编码进行遗传算法的设计,本文提出了一种求解车间作业调度问题的改进的遗传算法,并给出仿真算例表明了该算法的有效性。
关键词:作业车间调度;遗传算法;改进染色体编码;生产周期Solving jopshop scheduling problem based ongenetic algorithmAbstractSimply speaking, the job shop scheduling problem(JSP) is the equipment resources optimization question. Job Shop Scheduling Problem as an important part of Computer IntegratedManufacturing System (CIMS) engineering is indispensable, and has vital effect onproduction management and control system. In the competion ecvironment nowadays, how touse the assignments quickly and to plan production with due consideration for all concernedhas become a great subject for many manufactory.In recent years,the genetic algorithms obtained great development it was used to solve the job shop scheduling problem early.This paper discusses the chromosome code method in detail based on the genetic algorithms and make the improvement on it. Through the research on mathematics model of JSP and optimized algorithm, theimproved adaptive genetic algorithm (IAGA) obtained by applying the improved sigmoidfunction to adaptive genetic algorithm is proposed. And in IAGA for JSP, the fitness ofalgorithm is represented by completion time of jobs. Therefore, this algorithm making thecrossover and mutation probability adjusted adaptively and nonlinearly with the completiontime, can avoid such disadvantages as premature convergence, low convergence speed andlow stability. Experimental results demonstrate that the proposed genetic algorithm does notget stuck at a local optimum easily, and it is fast in convergence, simple to be implemented. the job shop scheduling system based on IAGA and GASH is designed andrealized, and the functions and operations of the system modules are introduced detailedly. In the end ,according to the code with improved carries on the genetic algorithms desing, this paper offer one improved genetic algorithms about soloving to the job shop scheduling problem, and the simulated example has indicated that this algorithm is valid.Keywords: jop shop scheduling; genetic algorithm; improvement chromosome code; production cycl毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
运筹学中的优化算法与生产调度问题研究
运筹学中的优化算法与生产调度问题研究运筹学是一门研究如何通过利用数学模型和优化算法来实现最佳决策的学科。
生产调度问题是运筹学中非常重要的一个应用领域,涉及到如何安排生产过程中的各项任务,以达到最优的效率和利润。
本文将探讨运筹学中的优化算法与生产调度问题的研究。
首先,介绍一下优化算法在运筹学中的重要性。
优化算法是解决运筹学中复杂问题的关键工具,通过寻找最优的解决方案来提高效率和效益。
运筹学中的优化问题通常是一个数学模型,其中包含着目标函数和约束条件。
优化算法的作用就是在给定的约束条件下,找到能够使目标函数取得最大或最小值的解。
在生产调度问题中,优化算法的作用体现在如何最优地安排生产任务,以实现最大的效率和利润。
生产调度问题一般包括任务的分配、任务的排序和任务的调度等方面。
优化算法可以帮助确定最佳的任务分配方式,使得每个任务都能被合适的人员或机器进行处理;可以帮助确定最佳的任务排序方式,使得任务之间的依赖关系和先后顺序被合理地安排;可以帮助确定最佳的任务调度方案,使得每个任务的执行时间和资源利用最优化。
在运筹学中,有很多经典的优化算法可以用于解决生产调度问题。
其中最常用的算法包括动态规划、线性规划、整数规划、遗传算法和模拟退火算法等。
动态规划是一种解决多阶段决策问题的优化算法。
在生产调度问题中,任务的执行往往是有顺序的,即一些任务必须在其他任务之前完成。
动态规划可以通过将整个生产过程分为多个阶段,并依次决策每个阶段的任务来求解最优解。
线性规划是一种在约束条件下求解线性目标函数最优解的优化算法。
在生产调度问题中,线性规划可以帮助确定最佳的资源分配方案,以最小化生产成本或最大化生产效率。
整数规划是一种在约束条件下求解整数目标函数最优解的优化算法。
在生产调度问题中,整数规划可以帮助确定最佳的任务排序方式,以便按照优先级进行执行。
遗传算法是一种模拟自然界遗传机制的优化算法。
在生产调度问题中,遗传算法可以通过模拟遗传过程,逐步优化产生出最优的任务调度方案。
基于智能算法的工业工程生产车间调度优化研究
基于智能算法的工业工程生产车间调度优化研究引言随着科技的迅速发展和人们对效率的不断追求,工业工程领域的调度优化问题日益受到关注。
工业生产车间的调度优化是指在满足不同任务和资源限制的前提下,通过合理安排工序和资源,以最大限度地提高生产效率和降低生产成本。
本文将通过研究基于智能算法的工业工程生产车间调度优化方法,探讨如何应用智能算法技术解决这一问题。
一、调度优化问题的背景在工业生产车间中,调度优化问题是一个复杂的组合优化问题。
它涉及到任务的排列顺序、机器的选择、设备的运行速度等多个因素。
传统的调度优化方法由于其模型复杂度高、计算量大的特点,导致无法有效解决大规模调度问题。
而基于智能算法的调度优化方法则能够通过模拟和优化技术,快速寻找到一个近似最优解,大大提高了调度效率。
二、基于智能算法的调度优化方法1. 遗传算法遗传算法是一种模拟自然界中生物进化过程的优化算法。
它通过模拟生物的遗传、变异和选择等操作,搜索最优解。
在工业工程中,可以将任务和资源等因素编码成染色体,通过交叉和变异操作产生新的染色体,进而不断优化求解结果。
遗传算法不依赖于问题的具体形式,具有较强的适应性和全局优化能力。
2. 粒子群算法粒子群算法是一种模拟鸟群觅食行为的优化算法。
它通过模拟每个粒子的位置和速度变化,来搜索最优解。
在工业工程中,可以将每个粒子看作是一个潜在的解,并通过计算粒子的位置和速度来更新其搜索方向。
粒子群算法具有快速收敛和高效优化的特点,适用于中小规模调度问题。
3. 蚁群算法蚁群算法是一种模拟蚂蚁觅食行为的优化算法。
它通过模拟蚂蚁在环境中留下信息素,以及蚂蚁对信息素的感知和选择行动,来搜索最优解。
在工业工程中,可以将任务看作是蚂蚁,通过留下和感知信息素来选择任务的调度顺序。
蚁群算法具有强大的全局搜索和优化能力,适用于大规模复杂调度问题。
三、智能算法在工业工程生产车间调度优化中的应用基于智能算法的调度优化方法已经在工业工程领域得到了广泛应用。
智能工厂生产调度算法优化研究
智能工厂生产调度算法优化研究一、前言随着智能化技术的快速发展和应用,智能工厂在生产调度方面的优化变得更加重要和具有现实意义。
庞大的工厂体系中,复杂的生产流程,需要高效、准确的生产调度算法来提高生产效率和降低成本。
因此,本文将会探讨智能工厂生产调度算法的优化研究。
二、智能工厂的一般模型智能工厂通常包括三部分:物料供应、生产制造、产品分配。
物料供应部分负责为生产制造部分提供原材料;生产制造部分则负责加工原材料并生产出产品;产品分配则将制造好的产品分配到不同的市场或客户手中。
整个过程通常由一个统一的中心进行管理和控制。
三、生产调度问题生产调度问题是指通过合理安排工人、设备和物料的工作,以达到最大化利润或最小化成本的问题。
其目标是协调所需生产的生产数量和生产时间之间的平衡,以确保生产过程中可靠和经济的运作。
四、智能工厂生产调度算法智能工厂生产调度算法的目的不仅仅是优化生产过程,同时也要提高生产效率和降低成本。
以下是一些现代生产调度算法的类型:1、模拟退火算法模拟退火算法是一种优化算法。
其目标是寻找一个最优的解决方案。
该算法基于物理学中的“冷却”理论,其本质是在搜寻解空间中的最小值。
通过这种方法找到最佳解决方案,并尽可能的避免较劣的解决方案。
2、遗传算法遗传算法是一种从生物学中得到的新兴方法。
其基本思想是从目标函数中找到最优的解决方案。
这种方法通过模拟遗传变异和适应性交叉来实现该目标。
基于种群的基本操作,遗传算法通过选择、学习和变异等操作产生高优解。
3、神经网络算法神经网络算法是一种受人工智能和生物学启发的算法。
其目的是解决模式识别和分类的问题。
该方法的优点是可以处理复杂的问题,如非线性例行任务等,通过训练神经网络,可以生成模型来对数据进行分类和处理。
五、优化智能工厂生产调度算法1、优化资源分配策略为实现更好的资源分配策略,需要分析实际生产环境和条件,并根据资源的特点选择合适的策略,以提高资源的利用效率。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数学建模与计算》生产调度问题—遗传算法背景及摘要这是一个典型的Job-Shop动态排序问题。
目前调度问题的理论研究成果主要集中在以Job-Shop问题为代表的基于最小化完工时间的调度问题上。
一个复杂的制造系统不仅可能涉及到成千上万道车间调度工序,而且工序的变更又可能导致相当大的调度规模。
解空间容量巨大,N个工件、M台机器的问题包含M(N)!种排列。
由于问题的连环嵌套性,使得用图解方法也变得不切实际。
传统的运筹学方法,即便在单目标优化的静态调度问题中也难以有效应用。
本文给出三个模型。
首先通过贪婪法手工求得本问题最优解,既而通过编解码程序随机模拟优化方案得出最优解。
最后采用现代进化算法中有代表性发展优势的遗传算法。
文章有针对性地选取遗传算法关键环节的适宜方法,采用MATLAB 软件实现算法模拟,得出优化方案,并与计算机随机模拟结果加以比较显示出遗传算法之优化效果。
对车间调度系列问题的有效解决具有一定参考和借鉴价值。
一.问题重述某重型机械厂产品都是单件性的,其中有一车间共有A,B,C,D四种不同设备,现接受6件产品的加工任务,每件产品接受的程序在指定的设备上加工,其工序与加工周期如下表:(S-设备号、T-周期)( 表一 )条件:1、每件产品必须按规定的工序加工,不得颠倒; 2、每台设备在同一时间只能担任一项任务。
(每件产品的每个工序为一个任务)问题:做出生产安排,希望在尽可能短的时间里,完成所接受的全部任务。
要求:给出每台设备承担任务的时间表。
注:在上面,机器 A ,B ,C ,D 即为机器 1,2,3,4,程序中以数字1,2,3,4表示,说明时则用A ,B ,C ,D二.模型假设1.每一时刻,每台机器只能加工一个工件,且每个工件只能被一台机器所加工 ,同时加工过程为不间断;2.所有机器均同时开工,且工件从机器I 到机器J 的转移过程时间损耗不计; 3.各工件必须按工艺路线以指定的次序在机器上加工多次;4.操作允许等待,即前一操作未完成,则后面的操作需要等待,可用资源有限。
三.符号说明及初始数据表达分析i J - 第i 个工件 (i=1…6)M J - 机器顺序阵 )(j i J M,表示i 工件的第 j 个操作的机器号j M - 第j 台机器 (j=1…4)J M - 工件排列阵 ),(j i M J 表示i 机器上第j 次加工的工件号T - 加工时间阵 ),(j i T 为i 工件的第 j 个操作的时间周期C - 整个任务完成时间整理数据后得到:J=[ C A B C D 0 0 0 ] T= [ 8 2 4 24 6 0 0 0 ] M[ A D B C 0 0 0 0 ] [ 4 5 3 4 0 0 0 0 ] [ C D A B A 0 0 0 ] [ 3 7 15 20 8 0 0 0 ] [ B C D A D C 0 0 ] [ 7 6 21 1 16 3 0 0 ] [ D B C D A C D 0 ] [ 10 4 8 4 12 6 1 0 ] [ A B A C D A C A ] [ 1 4 7 3 5 2 5 8 ] 上述二阵直接从题目得出,而M则是我们要求的。
J关于工件的加工时间表:(表二)关于机器的加工时间表:(表三)分析:由于各产品总净加工时间和各机器总净加工时间之中最大值为 75,而总计为247,那么总时间 C 介于[75,247]。
同时各工件加工繁杂程度不一,各机器的任务量也有轻重之别。
合理的调度排序是对于节省时间和资源是必要的。
希望最优化答案是75,这样达到最小值,如果答案是75,那么意味着机器D 不间断工作,直至全部加工任务完成。
六.遗传算法模型建立和步骤解法遗传算法(Genetic Algorithm)作为一种优化算法特别适合于对象模型难于建立、搜索空间非常庞大的复杂问题的优化求解。
它和模糊控制技术一样,虽然在理论上还没有完善,但是在实践中已经得到了广泛的应用。
遗传算法的基本思想是:模仿生物系统“适者生成"的原理,通过选择、复制、交叉、变异等简单操作的多次重复来达到去劣存优的目的,从而获得问题的优化结果。
遗传算法的实现由两个部分组成,一是编码与解码,二是遗传操作。
其中遗传操作又包括选择、复制、交叉、变异等步骤。
本文根据实际情况采取了1-6整数编码。
数字1,2,3,4,5,6分别代表6件待加工产品。
本文遗传算法基本流程:通过编码,解码程序随机产生N 个(有一定数量,如50或100)个体构成初始种群a) 从初始中群中选取2个具有最优染色体(最有排序方案)的个体作为临时个体(父代);b) 如果此2个体中有一个个体通过解码操作能够实现最优排序(即使总时间为75周期),那么结束此算法,得到最优解;c) 对2个临时个体以一定方式(循环交叉)执行染色体交叉变换和变异选择(小概率,互换操作),产生2个新的个体;d) 对父代和子代共4个个体进行选择,从中选出最佳的2个个体,做为下一代的父代;e) 重复执行第二步(b)操作;f) 如果执行完M 步后仍然未得出答案75,那么将目前的最优解作为本算法的最优解答案。
1.编码随机产生生产的工序操作优先顺序,进行编码,如:K=[ 4 3 5 6 6 2 3 1 41 6 3 5 4 5 3 6 6 4 1 5 5 1 32 6 2 2 4 4 1 5 6 6 5 ] (注:同时作为下文的染色体之用) 意思为:工件4优先被考虑进行第一次操作,然后3进行其第一步操作,然后5操作,6操作,再6操作其第二步工序,依次进行。
如果前后互相不冲突,则可同时在不同机器上操作。
通过排列组合得出,总共有类似K 的排列序列 22310 多种!当然,这其中只对应解 [75,247],意味着有大量排列序列对应同一加工方案,而大量加工方案又对应同一时间解。
2.解码即对编码进行翻译,产生具体可操作工序安排方案,这里采用活动化解码算法。
例如工件2第i步操作(记为J(2,i),且在机器A上进行)被安排在M工件3第j步操作(记为JM(3,j))后面进行,那么如果安排好JM (3,j)后,只要J(2,i)在工件2已经排序好的操作之后进行,那么操M作J(2,i)可插入到机器A处最前可安置的时间段进行。
M在这里,一个编码序列对应一个加工方案,而一个加工方案可对应一个或多个编码序列,这就是二者之关系。
3.交叉变换(crossover)对2个父代临时个体进行染色体交叉变换,采用循环交叉方法(Cycle crossover CX),如父代染色体为:X:[9 2 6 4 7 3 5 8 1]和Y:[3 4 5 8 1 6 7 2 9],如果随机选到第二位开始交叉,那么X的2对应Y的4,X的4对应Y的8,X的8对应Y的2,这样就确定了以上为不变的染色体,其余位置的染色体互换位置,最后得到X': [3 2 5 4 1 6 7 8 9], Y': [9 4 6 8 7 3 5 2 1],实现交叉变换。
4.变异选择(mutation)采用互换操作(SWAP),,即随机交换染色体中两不同基因的位置。
如上面的染色体为:X': [3 2 5 4 1 6 7 8 9] 。
随机产生变换位置号,如产生随机数3和5,那么交换数字后得到染色体: [3 2 1 4 5 6 7 8 9],变异概率取0.1 。
5.选择操作(selection)对父代2个体f1,f2和子代2个体f3,f4进行选择,通过编码操作确定具有最优解的2个个体,成为新一代f1和f2 。
如此,通过多次编码和解码随机产生一定数量的个体,选取2个最佳个体进行交叉变换操作,产生2个新个体,然后对4个个体进行选择,产生下一代,如果某时刻通过解码操作得出最优解(所有解的下限,这里是75周期),那么算法结束,否则循环进行,直至预先给定的循环次数达到为止,以最后得到的最优解作为最终最优解。
七.遗传算法模拟(采用MATLAB工具编程)主程序如下:(子程序见略)% 本程序为主程序,调用以下各分支程序task= 'Welcome! Wait a moment please! --- Writer: 孙卓明 ,信息 014',f1=zeros(1,35);f2=zeros(1,35);while f1==f2; % 此步避免初始染色体 f1,f2 相同,导致以下死循环 [minminmax1,s1]=chushijie(N); % 种群初始化;基于操作的编码策略;活动化解码算法;chushijie(N) 参数 N 为初始种群数f1=s1 ; minminmax1, % 选取的第一个初始个体[minminmax2,s2]=chushijie(N); % 再次种群初始化f2=s2 ; minminmax2, % 选取的第二个初始个体end;for e=1:M; % e=1:M 进行 M 次遗传操作(交叉-变异-选择)[D]=jiaocha(f1,f2); % 交叉变化(循环交叉操作,cycle crossover CX),选取f1; f2; “染色体”无需变动部分基因[f3,f4]=jiaocha_bianyi(f1,f2,D); % 生成交叉后的“染色体”,并进行变异选择f3; f4;[f1,f2]=xuanze(f1,f2,f3,f4); % 选择:对父代f1,f2和子代f3,f4进行解码,得出2个f1; f2; 较优个体,成为下一代的父代[minmaxf1,a1,b1]=tongbujinzhan(f1); % 求该时刻个体f1的最优时间(因为f1优于f2)if minmaxf1==75;f1,a1,b1,minminmax1,minminmax2,minminmax_last=minmaxf1,task='Finish! Successful! Best answer! Congratulation! ' , return ;end; end;f1,a1,b1,minminmax1,minminmax2,minminmax_last=minmaxf1,if minminmax_last>=90; task='Finish! Action again please!',end;if minminmax_last>=80&&minminmax_last<90; task='Finish!' , end;if minminmax_last<80; task='Finish! Successful!', end;八.遗传算法模拟结果首先给出最优方案:在进行某次n=100,m=200的操作后得到模拟最优结果75周期时间:minminmax1 =83 minminmax2 =78 (二个初始较优个体解)f1 =[4 5 6 6 3 1 3 6 4 5 6 1 3 2 5 4 5 3 1 5 2 6 4 5 6 4 6 6 4 3 2 2 5 1 1](f1为各工件优先选择顺序排列,即“染色体”)a1 = 5 35 39 64 0 0 0 0 0 (a1,b1为四台机器空闲周期段)15 24 0 0 0 0 0 0 017 53 65 0 0 0 0 0 00 0 0 0 0 0 0 0 0b1 =11 38 42 65 0 0 0 0 020 35 0 0 0 0 0 0 018 54 68 0 0 0 0 0 00 0 0 0 0 0 0 0 0minminmax = 75 (最终最优解)其中机器A空闲时间段为:5-11,35-38,39-42,64-65; 机器B则为:15-20,24-35; 机器C为:17-18,53-54,65-68;机器D无空闲。