求解调度问题的启发式算法(1)讲课教案
一种求解Job shop调度问题的启发式组合邻域交换算法

一种求解Job shop调度问题的启发式组合邻域交换算法崔健双;李铁克
【期刊名称】《管理工程学报》
【年(卷),期】2009(023)003
【摘要】针对job shop调度问题提出一种启发式组合邻域交换算法(HCNA).首先从对任意给定的初始可行调度利用本文提出的最大完工时间贪心算法(CMA)计算出初始可行解,然后利用组合条件邻域交换策略不断地产生新的调度.每当一个新调度形成就调用GMA作可行性判断,过滤掉不可行方案或计算出最大完工时间.对可行方案则反复调用改进的关键路径法(CPA)进行局部优化.文中证明了一个关于调度可行性的定理,指出调度方案的可计算性是其可行性的充要条件.对现有的一些Benchmark问题进行了测试计算,与国内外同类算法最新研究文献中给出的结果作了比较.表明无论从计算时间还是计算精度该算法都占有一定的优势.
【总页数】6页(P97-102)
【作者】崔健双;李铁克
【作者单位】北京科技大学经济管理学院,北京,100083;北京科技大学经济管理学院,北京,100083
【正文语种】中文
【中图分类】TP273.1
【相关文献】
1.一种求解Job Shop调度问题的混合粒子群优化算法 [J], 宋晓宇;张峰;任义;曹阳
2.一种求解Job-Shop调度问题的混合自适应变异粒子群算法 [J], 邓慈云;陈焕文;刘泽文;万杰
3.一种求解Job Shop调度问题的改进遗传算法 [J], 沈镇静;郑湃;李家霁
4.求解Job Shop调度问题的一种新的邻域搜索算法 [J], 曾立平;黄文奇
5.一种求解Job-Shop调度问题的新型蚁群算法 [J], 李胜;周明;许洋
因版权原因,仅展示原文概要,查看原文内容请购买。
进程调度算法的课程设计

进程调度算法的课程设计一、课程目标知识目标:1. 学生能理解进程调度算法的基本概念,掌握其分类和各自特点。
2. 学生能描述并分析不同进程调度算法的优缺点及其适用场景。
3. 学生能运用进程调度算法解决实际问题,如进程优先级分配、CPU利用率优化等。
技能目标:1. 学生通过案例学习,培养分析问题、解决问题的能力,能设计简单的进程调度算法。
2. 学生能运用所学知识,对实际操作系统中的进程调度进行模拟和优化。
3. 学生能运用图表、流程图等工具,清晰、有条理地展示进程调度算法的过程。
情感态度价值观目标:1. 学生培养对计算机操作系统及进程调度算法的兴趣,激发探索计算机科学领域的热情。
2. 学生通过学习进程调度算法,认识到优化算法对提高计算机系统性能的重要性,增强社会责任感和创新意识。
3. 学生通过小组合作学习,培养团队协作精神,提高沟通、交流能力。
课程性质:本课程为计算机科学领域的基础课程,主要研究操作系统中进程调度算法的原理及其应用。
学生特点:学生已具备一定的计算机操作基础,对操作系统有初步了解,但进程调度算法较为抽象,需要结合实际案例进行讲解。
教学要求:结合实际案例,采用启发式教学,引导学生主动思考、探索和解决问题。
注重理论与实践相结合,培养学生的实际操作能力和创新意识。
通过小组合作、讨论等形式,提高学生的沟通能力和团队协作精神。
在教学过程中,关注学生的个体差异,因材施教,确保每个学生都能达到课程目标。
二、教学内容1. 进程调度算法概述:介绍进程调度算法的基本概念、目的和重要性。
- 理解进程与线程的区别,掌握进程调度的基本任务。
- 熟悉进程调度算法的分类,如先来先服务、短作业优先、优先级调度等。
2. 先来先服务调度算法(FCFS):分析算法原理、特点及优缺点。
- 学习FCFS算法的作业排序规则,分析其对作业执行时间的影响。
3. 短作业优先调度算法(SJF):介绍SJF算法的原理,比较其与FCFS算法的差异。
流水车间调度问题的一种启发式算法

台机器上的最优加工顺序,使所有加工任务全部完工的时间最短。该问题通常需要作如下假设:每个加工任
, m ;每台机器同时只能进行 1 个加工任务;1 个加工任务不能同时在不同的
机器上进行;各任务在加工完后立即送下一道工序;任务在机器上开始加工,必须一直进行到该工序完工, 中途不允许停下来插入其它任务;所有任务在 0 时刻已准备就绪,机器调整时间包括在加工时间内;允许任
矩阵 P 的第 i 行表示第 i 台机器而第 j 列表示第 j 个工件,而 i 行 j 列对应的值为 pi , j 。而对于一个特定 的排列 ,可将加工时间矩阵在形式上简写为:
p1,1 p2,1 P p m,1 p1,2 p2,2 pm,2 p1, n p2, n pm, n
T (1, 2, , n 1) p1, j p2, n 1 ,
j 1 n 1
T (1, 2,
, n 1) T (1, 2,
, n) p2, n 1
n 1 j 1
此时有
T (1, 2, , n 1) max{T (1, 2, , n) p2, n 1 , p1, j p2, n 1}
Scientific Journal of Information Engineering December 2014, Volume 4, Issue 6, PP.152-157
A Heuristic Algorithm for Flowshop Scheduling Problem
Yilin Liu
引言
流水车间调度问题是当前很多以流水线方式生产的制造业车间调度的抽象模型,也被证明是一个典型的 NP 完全问题 [1] ,具有很高的理论研究价值和实践价值。自从 1954 年 Johnson 发表第一篇流水车间调度 (Flowshop Scheduling) 问题的文章以来, 流水车间调度问题一直被很多学者所关注。 总完工时间 (makespan) 是流水车间调度问题中的一个非常重要的性能指标,总完工时间最小可使得资源更加有效利用、任务更迅速 传递及在制品库存最小。对于以最小 makespan 为目标的流水车间调度问题我们可以做如下描述:n 个工件在 m 台机器上加工,每个工件需要经过 m 道工序,每道工序要求不同的机器,这 n 个工件通过 m 台机器的顺 序相同,它们在每台机器上的加工顺序也相同;定义 Oi , j 为第 j 个工件在第 i 台机器上操作, pi , j 为 Oi , j 的执 行时间而 ci , j 表示 Oi , j 的完成时间,其中 i 1, 2, 务在机器上的加工顺序为 1, 2,
电梯调度算法课程设计

电梯调度算法课程设计一、课程目标知识目标:1. 学生理解电梯调度算法的基本原理和概念;2. 学生掌握至少两种常见的电梯调度算法,如扫描算法和最短路径算法;3. 学生了解电梯调度算法在现实生活中的应用场景。
技能目标:1. 学生能够运用流程图和伪代码表达电梯调度算法;2. 学生通过编程实践,掌握一种电梯调度算法的实现;3. 学生能够分析并评估不同电梯调度算法的性能和优劣。
情感态度价值观目标:1. 学生培养对算法问题的兴趣,激发探索精神和创新意识;2. 学生在小组合作中,学会沟通与协作,培养团队精神;3. 学生通过学习电梯调度算法,认识到科技对提高生活质量的贡献,增强社会责任感。
课程性质:本课程为信息技术或计算机科学相关课程的拓展内容,旨在通过实践性学习,提高学生的算法思维和编程能力。
学生特点:假设为高中二年级学生,已具备一定的编程基础和问题解决能力。
教学要求:课程要求学生在理论学习的基础上,结合实践操作,深入理解电梯调度算法的设计与实现。
通过课程学习,学生能够将所学知识应用于实际问题的解决,提高综合运用能力。
教学过程中注重培养学生的独立思考、团队协作和创新能力。
课程目标的设定旨在使学生在知识、技能和情感态度价值观方面取得全面发展。
二、教学内容本课程教学内容围绕以下三个方面展开:1. 理论知识:- 电梯调度算法的基本概念与原理;- 常见电梯调度算法的介绍,包括扫描算法、最短路径算法等;- 电梯调度算法在实际应用中的优势与局限。
2. 实践操作:- 使用流程图和伪代码表达电梯调度算法;- 编程实现一种电梯调度算法;- 分析并比较不同电梯调度算法的性能。
3. 教学大纲与进度安排:- 第一章节:电梯调度算法基本概念与原理(1课时)- 内容:介绍电梯调度算法的定义、发展历程及基本原理;- 第二章节:常见电梯调度算法(2课时)- 内容:详细讲解扫描算法、最短路径算法等,并通过实例进行分析;- 第三章节:电梯调度算法的应用与实践(3课时)- 内容:实践操作部分,包括流程图绘制、伪代码编写、编程实现及性能分析。
柔性作业车间调度问题的一种启发式算法

柔性作业车间调度问题的一种启发式算法柔性作业车间调度问题是一个复杂的优化问题,其目标是在给定生产任务和作业要求的前提下,最小化车间生产周期,并保证调度结果的合理性。
解决柔性作业车间调度问题的必要方法之一是利用启发式方法,即引入一定的人工规则处理调度问题,采用数据驱动、实例驱动和规则驱动以灵活处理复杂问题,以达到期望的调度结果。
本文将介绍一种启发式算法,其旨在为柔性作业车间调度问题提供一个可行的优化方案。
一、算法介绍本次启发式算法构建基于三个步骤,分别为:(1)任务分配;(2)调度安排;(3)调度优化。
1.任务分配首先,要求对当前车间作业,根据各作业间的关联性把具有相似性的作业归属与相同的任务,并依据作业资源、生产要求等因素,将任务进行拆解分配,具体可采用文丘里极小值算法(Wendong'salgorithm)。
2.调度安排接下来,基于任务分配结果对每一任务中的作业进行调度安排,采用贪心法构建最优调度序列,即将作业一路朝正确的顺序排列,依据单元时间增加进行比较,可以较快速地构建出调度序列,以满足当前复杂制造生产的需求。
3.调度优化最后,要在调度的的基础上,采用基于交换算子的调度优化技术,即针对每一任务、每一任务分配中的作业,对调度情况进行分析,根据时间,贴紧原则,不影响任务完成时间,在一定条件下,找到调度序列中可以进行交换的作业,实现任务最优分配,从而提高整体工厂效率,达到柔性作业车间调度问题的优化目标。
二、算法性能本次启发式算法的性能分析表明,相比其他传统算法,本算法的整体周期时间有了显著缩短,具有良好的计算效率和强大的解决能力;此外,本算法灵活方便,可以有效应对柔性作业车间多变的特点,用于处理带有柔性优先的作业列表,可以构建出更高效的调度方案,从而有效减少车间完成整个任务所需要的总时间。
遗传算法优化任务调度问题中的启发式搜索方法

遗传算法优化任务调度问题中的启发式搜索方法引言:在现代社会中,任务调度问题是一个非常重要的研究领域。
在各种应用场景中,如计算机网络、物流管理和生产调度等,都需要高效地安排任务的执行顺序和分配资源。
然而,由于任务的复杂性和资源的有限性,传统的优化方法往往难以找到最优解。
因此,研究者们开始应用启发式搜索方法,其中遗传算法是一种常见且有效的方法。
1. 遗传算法的基本原理遗传算法是一种模拟自然界进化过程的优化算法。
它通过模拟遗传、交叉和变异等过程,逐步寻找最优解。
具体而言,遗传算法包括以下几个步骤:1.1 初始化种群首先,需要随机生成一组初始解,称为种群。
每个个体代表一种解决方案,即任务调度的一种可能安排。
1.2 适应度评估对于每个个体,需要根据预先定义的适应度函数对其进行评估。
适应度函数是衡量个体解决方案优劣的标准,一般是根据任务完成时间、资源利用率等指标来定义。
1.3 选择操作根据个体的适应度值,进行选择操作,即根据适应度值大小决定个体是否被选中作为下一代的父代。
通常采用轮盘赌选择或竞争选择等方法。
1.4 交叉操作选中的父代个体进行交叉操作,生成新的子代个体。
交叉操作通过交换个体的染色体片段,产生新的解决方案。
1.5 变异操作为了增加种群的多样性,需要对部分个体进行变异操作。
变异操作通过改变个体的染色体中的基因值,引入新的解决方案。
1.6 更新种群根据选择、交叉和变异操作的结果,更新种群,得到新一代的个体。
1.7 终止条件通过迭代以上步骤,直到满足终止条件,如达到最大迭代次数或找到满足要求的解。
2. 启发式搜索方法在遗传算法中的应用遗传算法的优势在于能够在大规模的解空间中搜索最优解。
然而,由于任务调度问题的复杂性,传统的遗传算法往往需要大量的计算资源和时间。
为了提高搜索效率,研究者们引入了启发式搜索方法。
2.1 邻域搜索邻域搜索是一种基于局部搜索的方法,通过在当前解的邻域中搜索更好的解。
在遗传算法中,可以在交叉和变异操作中引入邻域搜索。
车辆调度问题的分派启发式算法

1 问题的提出
车辆从一车场出发去完成一些货运任务, 当各任务量较小 ( 小于车辆容量) 时, 为了提高车辆的利用 率, 可安排一辆车执行几项运输任务, 这时, 如何安排车辆的路线, 使得既满足各任务的需求, 能够完成任 务, 而又使总路程最短, 这就是一个需要解决的问题. 设车场为 D , 所有车辆容量为 q, 现有 n 项货物运输任务 1, …, n , 任务 i 的货运量为 g i < q ( i = 1, …, n ) 且完成任务所需要的时间 ( 装货或卸货) 为 T i , 任务 i 要求在一定的时间范围 [ a i , bi ] 内开始, 其中 a i 为任务
i 的允许最早开始时间, bi 为任务 i 的允许最迟开始时间 . 已知任务 i 与任务 j 的距离为 d ij , 求满足货运要求
的路程最短的车辆行驶路线. 此问题称之为有时间窗的车辆调度问题.
2 模型
. 那么, 完成任务 i 所需要的时间实际为 T i s i 表示任务 i 的开始时刻, 以 e i 表示完成任务 i 的终止时刻 = e i - s i. 设 t ij 为车辆完成任务 i 后行驶到任务 j 的时间 . 为构造数学模型, 定义变量如下:
. 在 此, 采 用 启 发 式 方 法 , 构 造 f ( z k ) 的 线 性 近 似 f ( z k ) 相 当 复 杂, 只 有 对 特 定 的 问 题 才 能 够 写 出 来
6
ssk i y k i , 这样就可以下式代替模型 P1 中的目标函数求解模型 P2:
i
© 1995-2005 Tsinghua Tongfang Optical Disc Co., Ltd. All rights reserved.
3 算法
求解调度问题的启发式算法

一种改进的关键工序算法刘智勇 徐昕江苏科技大学经济管理学院,江苏 镇江 212003摘要:针对max ///n m p F 问题,改进了关键工序法法,该算法同时注重关键工件与关键工序,通过对关键工件与非关键工件在关键工序前后的加工时间计算、比较来获得各工件加工的先后顺序,缩短最长流程时间。
并将该启发式算法与关键工序法进行了对比分析,最后利用仿真的方法来验证所提出的方法的可行性。
关键词:Flow-shop 关键工件 关键工序 启发式算法 最长流程时间 0引言Flow-shop 调度问题(flow shop scheduling problem,FSP )是许多实际流水线生产调度问题的简化模型,它无论是在离散制造工业还是在流程工业中都具有广泛的应用,因此其研究具有重要的理论意义和工程价值。
n/m/p/F max 问题是Flow-shop调度问题中的一种特殊情况,即所有工件在各台机器上的加工顺序都相同,也称流水作业排列排序问题或同顺序排序问题。
其求解方法有精确方法[1](分支定界法、穷举法等)、智能搜索法[2,3,4](神经网络法、遗传算法、蚁群算法等)、启发式算法[4,5,6,7](Palmer 算法、C-D-S 法、关键工序法、最小排序系数法等)等等。
由于Flow-shop 调度问题一般都属于NP 难题(nondeterministic polynomial)。
精确方法只能求解小规模问题,对于大规模问题几乎被认为是无效算法,智能搜索法在求解上虽比启发式算法更接近最有解,但由于设计针对具体问题的智能搜索法对于许多人来说比较困难,特别是对于实际工程人员更是如此。
所以启发式算法仍是用的很多的方法。
主要的启发式算法有Palmer 算法、关键工序法和最小排序系数法等。
其中,关键工序法贯穿着当前先进的管理思想,能够很好的对现实情况进行解释和分析。
然而关键工序法所求的可行解很可能与最优解相差甚远,鉴于此,本文对其进行了改进。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一种改进的关键工序算法刘智勇 徐昕江苏科技大学经济管理学院,江苏 镇江 212003摘要:针对max ///n m p F 问题,改进了关键工序法法,该算法同时注重关键工件与关键工序,通过对关键工件与非关键工件在关键工序前后的加工时间计算、比较来获得各工件加工的先后顺序,缩短最长流程时间。
并将该启发式算法与关键工序法进行了对比分析,最后利用仿真的方法来验证所提出的方法的可行性。
关键词:Flow-shop 关键工件 关键工序 启发式算法 最长流程时间 0引言Flow-shop 调度问题(flow shop scheduling problem,FSP )是许多实际流水线生产调度问题的简化模型,它无论是在离散制造工业还是在流程工业中都具有广泛的应用,因此其研究具有重要的理论意义和工程价值。
n/m/p/F max 问题是Flow-shop调度问题中的一种特殊情况,即所有工件在各台机器上的加工顺序都相同,也称流水作业排列排序问题或同顺序排序问题。
其求解方法有精确方法[1](分支定界法、穷举法等)、智能搜索法[2,3,4](神经网络法、遗传算法、蚁群算法等)、启发式算法[4,5,6,7](Palmer 算法、C-D-S 法、关键工序法、最小排序系数法等)等等。
由于Flow-shop 调度问题一般都属于NP 难题(nondeterministic polynomial)。
精确方法只能求解小规模问题,对于大规模问题几乎被认为是无效算法,智能搜索法在求解上虽比启发式算法更接近最有解,但由于设计针对具体问题的智能搜索法对于许多人来说比较困难,特别是对于实际工程人员更是如此。
所以启发式算法仍是用的很多的方法。
主要的启发式算法有Palmer 算法、关键工序法和最小排序系数法等。
其中,关键工序法贯穿着当前先进的管理思想,能够很好的对现实情况进行解释和分析。
然而关键工序法所求的可行解很可能与最优解相差甚远,鉴于此,本文对其进行了改进。
1 max ///n m p F 问题描述max///n m p F 问题可以描述为:有n 个工件在m 台机器上加工,各工件有完全相同的工艺路线,每一台机器上加工工件的先后顺序也完全相同;一个工件不能同时在不同的机器上加工;每台机器同时只能加工一个工件;各工件在加工完后立即送下一道工序;工件在机器上开始加工,必须一直进行到该工序完工,中途不允许停下来插入其它工件;所有工件在0时刻已准备就绪,机器调整时间包括在加工时间内;允许工件在工序之间等待,允许机器在任务未到达时闲置;优化目标是求出这n 个任务的一个全排列,使其最长流程时间(也称加工周期)max F 最短,则max F 的计算方法如下:,00,,11,1,1,,11,,max,00max(,)(1,2,,1,2,,i j i i i i ji j i j i j n m C C C C t C C C t F C i n j m ---==⎧⎪=+⎪⎨=+⎪⎪==⋅⋅⋅=⋅⋅⋅⎩;其中;) 上式中,i j C 代表工件i 在机器j 上的完工时间,,i j t 代表工件i 在机器j 上的加工时间。
2改进的关键工序法改进的关键工序法要求抓住关键工序和关键工件,定义关键工序为各道工序上加工各个工件总时间最长的工序;定义关键工件为各个工件在各道工序加工总时间最长的工件。
若关键工件都多个,则按照各关键工件首道工序加工时间与尾道工序加工时间的大小分组,首道工序加工时间小于尾道的工件为第一组,首道工序加工时间等于尾道的工件第二组,首道工序加工时间大于尾道的工件为第三组,优先顺序为{第一组,第二组,第三组},对于第一组中的各关键工件之间的排序则按关键工序前各道工序总加工时间从小到大排序,对于第三组的各关键工件之间的排序则按关键工序后各道工序总加工时间从大到小排序,第二组的各关键工件的排序时需先比较第一组与第三组内的工件个数,当第一组的工件个数少于或等于第三组时,第二组内工件按第一组规则排,否则按第三组的规则排。
对关键工件以外的所有工件同样比较首道工序加工时间与尾道工序加工时间,按小于、等于、大于分为三组,其组内排序规则与关键工件个组内排序规则相同。
最后按{非关键工件第一组,非关键工件第二组,关键工件第一组,关键工件第二组,关键工件第三组,非关键共建第三组}的顺序进行总排序,即可获得满意的max F 。
对于关键工序为首道工序的情形,就把次关键工序看成是上述的关键工序,排序步骤不变。
用数学语言表示如下:Step1: 对i ∀,计算,*,1m i i j j t t ==∑,对j ∀,计算*,,1nj i j i t t ==∑,定义{}",*1,*2,*,*|max(,,,)i n i A i t t t t ∈==⋅⋅⋅为关键工件,定义{}"*,*,1*,2*,|max(,,,)j m j B j t t t t ∈==⋅⋅⋅ 为关键工序。
Step2::若()1Card A >(其中()Card 表示括号中集合包含元素的个数),则⑴{}"""1,1,|i i m A i t t =<≠∅,则计算""1,1j i j j t -=∑的值,按该值从小到大排列获得"i 一个排序优先1C 。
⑵{}"""2,1,|i i m A i t t =>≠∅,则计算"",1m i j j j t =+∑的值,按该值从大到小排列获得"i 一个排序优先序列2C 。
⑶{}"""3,1,|i i m A i t t ==≠∅,则①当12()()Card A Card A ≤时,那么按⑴的规则获得3A 中元素的排序;②当12()()Card A Card A >时,那么按⑵的规则获得3A 中元素的排序;设3A 中元素的排序优先序列为3C 。
将Step2:中的各种排序优先序列一起排序,得到1C →3C →2C 。
Step3::若i A ∉,则⑴{}4,1,|i i m A i t t =<≠∅,则计算"1,1j i j j t -=∑的值,按该值从小到大排列获得i 一个排序优先4C 。
⑵{}5,1,|i i m A i t t =>≠∅,则计算",1m i j j j t =+∑的值,按该值从大到小排列获得i 一个排序优先序列5C 。
⑶{}6,1,|i i m A i t t ==≠∅,则①当45()()Card A Card A ≤时,那么按Step3中⑴的规则获得6A 中元素的排序;②当45()()Card A Card A >时,那么按Step3中⑵的规则获得6A 中元素的排序;设6A 中元素的排序优先序列为6C 。
Step4::将上述结果进行总排序优先级:4C →5C →1C →3C →2C →6C 。
经过上述四步,获得的结果就是满意解。
3算法示例设有8个零件A 、B 、C 、D 、E 、F 、G 、H 在8台机器M1、M2、M3、M4、M5、M6、M7、M8上同顺序加工,其工艺过程及工时定额见表1,试求出最长流程时间F max .现利用改进的关键工序法求解:⑴计算每个工件的总加工时间以及每个工序总加工时间,见表,可知关键工件有两个A、B,关键工序有一个M4。
⑵针对A工件,首道工序加工时间大于尾道工序加工时间,B工件,首道工序加工时间小于尾道工序加工时间,自然A排B的前面,即A→B。
⑶对剩余工件,按首道工序加工时间大于、等于、小于尾道工序加工时间分成三类,可得首道工序加工时间大于尾道工序加工时间的工件有C、D、F;首道工序加工时间等于尾道工序加工时间的工件E;首道工序加工时间小于尾道工序加工时间的工件有G、H。
①对C、D、E、F按关键工序前的各道工序时间相加(M1+M2+M3),得到T C=6+2+10=18,T D=9+4+9=22,T F=2+5+0=4,则C、D、F的排序按T值从小到大为F→C→D;②对G、H按按关键工序后的各道工序时间相加(M5+M6+M7),得到T G=5+3+2+6=16,T H=5+2+3+4=14,则G、H的排序按T值从大到小为G→H。
⑷按{首道工序加工时间大于尾道工序加工时间的工件,首道工序加工时间等于尾道工序加工时间的工件,关键工件,首道工序加工时间小于尾道工序加工时间的工件}的顺序进行全排,获得F→C→D→E→A→B→G→H。
H4算法测试与比较通过MATLAB 程序对max ///n m p F 问题进行100次仿真,将关键工序法和文中提出的改进方法进行了对比。
结果如图1所示:图1 不同规模Flow-shop 求解结果比较a) m=50,n=50b)m=100,n=100c)m=150,n=150d)m=200, n=200可见,本文所提出的改进方法普遍优于原本的关键工序方法。
当所要求解的Flow-shop问题规模较小时,如图1中 a)所示,改进方法不略于关键工序法。
但两条曲线几乎重合,优势比较小。
这说明在规模较小的Flow-shop问题中,关键工序法依然十分有效。
然而,当问题规模较大时,如图1中b)所示,本文中的改进方法明显优于关键工序法。
这说明关键工序法在大规模问题中,相对于最优解将产生明显偏差,并且这种偏差是随着问题规模的扩大而增大的。
而本文所提出的改进算法,恰恰弥补了关键工序法在大规模Flow-shop问题中表现较差这一问题。
5参考文献[1] Liu Lili Tang Guochun. A Branch and Bound Approach and Heuristic Algorithms for Scheduling a Batching Machine[J].2004,8(3):39-44.[2]REEVES C R. A genetic algorithm for flowshop sequencing[J].Computer and Operations Research,1995,22(1):5-23.[3]RAJENDRAN C,ZIEGLER H. Ant-colony algorithms for permutation flowshop scheduling to minimize makespan/total flowtime jobs[J]. European Journal of Operational Research,2004,155(2):426-438[4]叶春明生产计划与控制[M],北京:高等教育出版社,2005:391-400。