生产调度问题—遗传算法
基于遗传算法的车间调度系统研究

基于遗传算法的车间调度系统研究车间调度系统是生产制造中非常重要的一个环节。
为了在有限的时间内完成尽可能多的生产任务,需要合理地安排工人和机器的运转,使得生产效率最大化。
而遗传算法是一种智能化的求解算法,可以很好地应用到车间调度系统的优化问题中。
本文将介绍基于遗传算法的车间调度系统研究。
一、车间调度系统的意义与挑战车间调度系统是生产制造过程中的一个关键环节,它的优化与否对整个生产制造过程的效率和质量都会产生影响。
车间生产是一个复杂的过程,需要对众多生产任务进行安排和分配。
不同的任务需要不同的工序和生产资源,因此需要在有限的时间内合理地安排机器和人工的运转,以最大化生产效率,使得生产线实现高效的转换。
车间调度系统需要解决的主要问题是如何将各个任务分配到机器和工人之间,使得整个生产过程的效率和质量都得到保证。
车间调度系统的优化问题是一个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、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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无空闲。