基于遗传算法的作业车间调度问题研究

基于遗传算法的作业车间调度问题研究
基于遗传算法的作业车间调度问题研究

浙江大学

硕士学位论文

基于遗传算法的作业车间调度问题研究

姓名:余琦玮

申请学位级别:硕士

专业:机械设计及理论

指导教师:潘双夏;赵亮

20040201

内容摘要

面向顾客定货的多品种、小批量生产将是21世纪的主导生产模式,相应地,制造企业正向着精益生产和敏捷制造的方向发展。在这种生产环境下,如何安排小产计划、如何进行调度成为企、lk生产顺利、有效进行的关键问题。有效的调度方法与优化技术的研究和应用,刈‘于制造企业提高生产效率、降低生产成木等方面起着重要作用,因而越来越受到学者们的关注。

本文存综合国内外关于车间调度问题研究状况的基础l:,考虑现行作业车间运作的实际情况,对作业车间的生产调度问题进行了深入系统的研究。

首先,针对经典车间调度问题的局限性,研究了FMS环境下,先进制造车间具有路径柔性的优化调度问题。同时考虑车间调度问题多Fj标的特点和现代生产准时制的要求,建立了柔性作业车间调度问题的双目标数学优化模型,并结合凯凌项目给出了一个建模实例。

其次,提出运用遗传算法求解柔性作业车间调度模型。在阐述遗传算法的基本概念、原理和方法的基础上,对该算法在柔性作业车间调度优化|!!=的具体应用进行了详细地设计,并给出问题求解的仿真实验结果。

最后,针对车问调度动态随机性、复杂性的特点,对车间动态调度问题进行了较为深入地研究,提出了车间动态调度的实现方案,给出了仿真实例。并采用面向对象的方法分析和设计了车问动态调度系统。

关键词:柔性作业车蒯调度,优化,遗传算法,动态调度

Abstract

Multi—productandsmall—batchproductionwhichismadetOorderwillbethemainproductionmodeof21century.C0rrespOndjngIy,manufactoryisonthedevelopmenttoleanproductionandagilemanufacturingInthiscondition,howtoplanandschedulebecomesthekeyissuetomakethemanufactureprocesssmoothlyandefficientlyItisveryimportanttoresearchoneffectiveschedulingandoptimizationtoimproveproductivityandreducecost.Somoreandmoreresearcherspayattentiontothisresearch.

Onthebasisofthetechnicalreviewonthedomesticandforeignresearch,thisthesishasanextensiveandsystematicstudyonthejob—shopschedulingcombiningtheactualjob-shopoperation

Firstly,thethesisstudiestheflexiblejob—shopoptimalschedulingprobleminFMSonanalyzingtheweaknessofclassicaljob—shopAndthen,consideringmulti?objectiveofshopschedulingandjust—in—timeproduction,themathematicalmodelofflexiblejob-shopscheduling(FJSS)forbi—objectiveisestablished.Atthesametime,amodelingexampleisgivencombiningKailingproject.

Secondly,tosolvethismodel,ageneticalgorithmisdevelopedOnthebasisofdissertatingthefundamentalconception,principleandmethodofGeneticAlgorithm,thepaperdesignsthisalgorithmdetailedlytoapplyittoflexiblejob-shopschedulingoptimizationAtthesametime,thedigitalcomputationresultisgiven.

Finally,becausethejob—shopschedulingisstochastic,dynamicandcomplicated,thepaperstudiesthedynamicjob—shopschedulingdeeply.Thentherealizationprojectofdynamicjob—shopschedulingispresentedandasimulationexampleisgiven.Lastly,thispaperanalysesanddesignsthedynamicjob’shopschedulingsystemusingtheobject—orientedanalysismethod

Keywords:flexiblejob—shopscheduling,optimization,geneticalgorithmdynamicscheduling

浙江火学硕上学位论义

第一章绪论

【摘要】本章主要讨论了课题的提出及意义,并总结了车间调度问题的研究现状,包括相关概念、研究方法、存在问题及发展趋势,为后续章节关于本课题的研究奠定了理论基础,最后介绍了课题的主要工作和全文的主要内容。

【关键词】敏捷制造,车间调度问题,作业车间,研究方法

1.1课题的提出及意义

敏捷制造作为21世纪企业的先进制造模式,综合了JIT、并行工程、精益生产等多种先进制造模式的哲理,其目的是要以最低成本制造出顾客满意的产品,即是完全面向顾客的。在这种模式下如何进行组织管理,包括如何组织动态联盟、如何重构车问和单元、如何安排生产计划、如何进行调度都是我们面临的:i:要问题。其中车问作业调度与控制技术是实现生产高效率、高柔性和高可靠性的关键,有关资料表明,制造过程中95%之削的消耗在非切削过程中”I。因此,有效的调度方法与优化技术的研究和应用,已成为先进制造技术(AMT)实践的基础和关键。

那么什么是车问调度?车间调度主要是针到一项可分解的工作(如产品制造),探讨在尽可能满足约束条件(如交货期、工艺路线、资源情况)的前提下,通过F‘达生产指令,安排其组成部分(操作)使用哪些资源、其加工时间及加]I的先后顺序,以获得产品制造时问或成本的最优化吼在理论研究中,车间佾【k调度问题常被称为排序问题或资源分配问题或组合优化问题。在过去的几十年犟,基于实际的及理论上的考虑,不断地激励着人们寻找新的调度算法,其中一个重要原因是产品制造界的市场竞争性在不断提高,好的生产调度能提高资源的利用率和操作管理水平,生产出具有竞争力的产品。车间的调度优化工作,因其在提高生产效率,降低生产成本等方面所起的重要作用,正越来越受到学者们的关注,也是本课题的研究意义所在。

桀于遗传算法的竹业车间训度问题1FfJf.

1.2车间调度问题研究现状

调度问题的研究始于20世纪50年代,Johnson提m了解决n/2/F/Cmax和部分特殊的n/3/F/Cmax问题的优化算法,代表凋度理论研究的开始;60~70年代建立了调度理论的主体(经典调度理论)并重视调度复杂性的研究。随着70年代后期调度理论研究的深入及各种交叉学科的发展,又涌现出了许多新的车间调度理论与方法【31。

1.2.1车问调度问题的描述、分类及特点

从数学规划的角度看,车间调度可表达为在等式或不等式约束下,对一个或多个目标函数的优化。现代典型的车间调度问题是:将作业均衡地安排到各处理机上,并合理地安排作业的加工次序和开始时间,使约束条件被满足,同时优化。些性能指标。

对于车间调度问题,Graves等人进行了分类整理【…,按照不同的分类标准,可分为以F四种类型:

(1)根据加工系统的复杂程度,可分为单机、多台并行机、flowshoD和jobshop。

单机调度问题是所有的操作任务都在单台机器上完成,为此存在任务的优化排队问题;多台并行机的调度问题更复杂,因而优化问题更突出:flo、 ̄shoD型问题假设所有作业都在同样的设备上加:r,并有一致的加工操作和加工顺序;iobshop是最一般的调度类型,不同的作业具有不同的加工操作和加工顺序,并不限制作业的加工设备a现代车间调度类型往往是jobshop型的,本课题的研究就是针对jobshop型的调度问题展开。

(2)根据性能指标,分为基于调度费用和调度性能的指标两犬类。

(3)根据生产环境的特点,可将调度问题分为确定性调度和随机性调度问题。

(4)根据作业的加工特点,可将调度问题分为静态调度和动念调度。

静态橱度是指所有待安排加工的工作均处于待加工状态,因而进行一次调度后,各作j』k的加二L时间被确定,在以后的加工过程中就不再改变:动态调度是指

塑堡查竺堡兰兰些兰兰——————————————————一作业依次进入待加工状态、各种作业不断进入系统接受加工、唰时完成加工的作业又不断离丌,还要考虑作业环境中不断出现的动态扰动、如作业的加工超日J、设备的损坏等。因此动态调度要根据系统中作业、设备等的状况,不断地进行调度。实际调度的类型往往是jobshop型,且是动态的。

实际的凋度问题有以下特点:

(1)复杂性

由于装卸作业、装卸设备、库场、搬运系统之间相互影响、相互作用、每个作业又要考虑它的到达时问、装卸时阃、准备时间、操作顺序、交货期等,因而相当复杂。而且调度问题是在等式或不等式约束下求性能指标的优化,在计算量上往往是NP完全问题,即随着问题规模的增大,对于求解最优化的计算量呈指数增长,使得一些常规的最优化方法往往无能为力。

(2)动态随机性

在实际的生产调度系统中存在很多随机的和不确定的因素,比如作业到达时间的不确定性、作业的加工时间也有一定的随机性,而且生产系统中常出现1‘些实发偶然事件,如设备的损坏/修复、作业交货期的改变等。

(3)多目标性。

实际的计划调度往往是多目标的,并且这些目标间可能发生冲突。Kiran等人将调度目标分三类:基于作业交货期的目标、基于作业完成时削的目标、基于生产成本的目标【”。这种多目标性导致调度的复杂性和计算量急剧增加。

1.2.2车间调度问题的研究方法

在对车问调度问题进行研究的方法上,最初是集中在整数J{!i!划、仿真和简单的规则上,这些方法不是调度结果不理想就是难以解决复杂的问题。随着各种新的相关学科与优化技术的建立与发展,在调度领域也出现了许多新的优化方法,比如神经网络、模拟退火法、遗传算法、禁忌搜索法等,使得调度问题的研究方法向多元化方向发展。总结起来,现有调度问题的研究方法大体上可以分为以下儿种类别。

(1)基于运筹学(OR)的方法

摧于遗传算法的作业车l可讪度问题研究

OR方法是将生产调度问题简化为数学规划模型,采用基于枚举思想的分枝定界法或动态规划算法进行解决调度最优化或近优化问题,属于精确方法。这类方法虽然从理论上能求得最优解,但由于其计算复杂性的原因、因而不能获得真『F的实用。对于复杂的问题,这种纯数学方法有模型抽取困难、运算量大、算法难以实现的弱点,仅适合较小舰模的调度问题【6】。

(2)基于启发式规则的方法

从实用的角度束看,启发式算法因其易于实现、计算复杂度低等原因,在实际中得到了比较广泛的应用,并且不断涌现出许多新的调度规则,可将其分为三类:简单规则、复杂规则、启发式规则。虽然启发式规则常被用于实际当中,但它们一般不具有全局优化的特点"】。

(3)控制理论方法

Gershwin等人从控制理论的角度出发,较全面地阐述了控制理论方法在制造系统的应用情况[8】。摔制论方法比较适合定量地定义基本问题,但还没有形成‘套有效的凋度模型表达、分析设计的技术。其缺点是:模型描述能力有限,建模时不得不对真实环境进行大量的简化,求得最优解的实践随着问题规模的增大而呈指数规律增长。因此也只适合对小规模的系统求解‘引。

(4)基于人工智能(AI)的方法

AI方法是通过提高调度方法的智能而解决各类生产调度问题方法的总称。单一的数学方法和工具不足以解决实际的调度问题,AI和专家系统的出现对解决调度的实时性和智能性提供了新的辅助手段。它们用于调度可以克服数学舰划和仿真方法的不足,根据系统当前的状态和给定的优化目标,对知识库进行有效的启发式搜索和并行模糊推理机制,避丌了繁琐的计算,并选择最优的调度策略,为在线决策提供支持。在基-f:生N识和规则的调度系统中,常用的知识表示法有产生式规则、语义网络、框架等;常用的调度技术有生产蚬则、探试法搜索、机会主义的推理、仿真和分级式的分解等。

专家系统作为一个较好的调度方法,存在一些不足之处:①对新的调度环境的适应性较差。②丌发周期长、成本昂贵。③需要很多现场调度人员丰富的调度经验和知识,然而获取调度人员的调度经验是较困难的和有限的。同时.由于

渐FI.夫学颤f.学位论文

AI投术本身发展水j『,的限制,它有三个明显缺陷;执行速度慢.对异步发生的外柬事件不敏感,系统不通用【9J。

(5)基于DEDS的解析模型方法

对于车问类型的DEDS,同样可用其解析模型与方法来解决车间调度问题。如QN、檄大代数法、动态规划法等.但它们都只适合于制造系统的性能分析。Pearl网除具有并发、动态、直观等优点外,还有能够准确快速地反映制造系统实时调度的离散性与随机性等特点,所以它与其它方法相结合在调度问题中得到Tr。泛的应用‘…】。目前,Petri网用于制造系统渊度存在以F.问题:①节点语义的单义性,使得所携带的系统信息不够丰富。②重用性差。③当调度规则或方法复杂时,建模困难。

(6)基于仿真的方法

由于制造系统的复杂性,以致于很难用精确的解析模型对其进行描述分析。但仿真却能提供这种理想模型,且可以定量地进行评估.从而对实际系统采用合适的调度方法㈣。

仿真方法用于调度的优点有①实验时间短.不受时空限制;②可以测试不同悯度决策的性能,进而选择较优的调度决策;⑧能够对用分折方法解决的问题寻求可行解。其不足之处是①由于仿真具有实验的特点,很难从特定的实验中提炼出一般的规律性;②生产调度成本高:③仿真结果的价值和可信度严重依赖仿真模型、仿真方法及仿真实验输入数据;④仿真的准确性受程序员判断能力和技能的限制。

(7)基于模糊数学理论的方法

客观现象具有确定性与不确定性两个基本方面,经典数学表达的是现象的确定性:不确定性一方面表现为随机性,另~方面表现为模糊性。正是利用此特点,许多学者把它引入了调度领域‘比1。但与专家系统相似,这种方法同样存在开发周期长、需要丰富的调度经验和知识等缺点。

(8)拉氏(Lag艘lgian)松驰法

拉氏松驰法由于其在可行的时间里能对复杂的规划问题提供好的次优解.并能列解的次优性进行定量i平估,近年来已成为解决复杂车间调度问题的一种重要疗法”“。但不可避免的是,拉氏松驰法其对偶问题存在搜索效率低、可行调度的

攮十遗传算法的作业车间洲度问题研究

构造有待于进‘步研究等问题。

(9)神经网络(NN)优化法

NN用于车问调度主要有三类方式:①利用其并行计算能力,求解优化调度,以克服凋度的NP难问题。②利用其学习能力,从优化轨迹中提取调度知识。③用NN来描述渊度约束或调度策略,以实现对生产过程的可行或次优调度‘14-t5J。Hopfield神经网络模型的提出为求解各种有约束优化问题开辟了一条新途径,用Hopfield网络解决TSP问题就是其在组合优化问题中的最成功的应用之~陋”J。

(10)具有汁算智能的局域嫂索法

近年来,一些高级局域搜索法由于具有普遍适用陛和较低的经验复杂性等优点,得到了广泛的重视和应用。主要有以下几种方法。

①遗传算法(GA)GoldbergUs1首次将GA应用到实际的工程系统的优化当中。山于GA原理和操作简单,通用性强,不受限制条件的约束,且具有隐含并行性和全局解空问搜索能力,在机器学习、模式识别、控制工程、优化等领域,尤其是在生产调度领域得到广泛的应用。如何利用GA高效求解调度问题,一直被认为是一个具有挑战意义的难题并成为研究的热点,近年来涌现出大量论文并取得较大进展‘19’2“。GA的早熟和搜索效率低问题是它的主要缺陷。

②禁忌搜索(Ts)TS是解决复杂组合优化问题的一种搜索策略和方法,由Glovcr等人提出、完善和发展㈣。目前,TS已在凋度、交通运输、TSP问题、也了电路设计等诸多领域中得到应用[24-261。

③模拟退火(SA)SA可求得组合优化问题的最优或次最优解。首次将SA用于优化领域的是Kirkpatrick,他尝试了将SA用于TSP问题的求解【”J。此外,sA存Jobshop和Flowshop问题中也得到了一定的应用[28-29】。

由于这些算法本质上是启发式算法且引入了随机的概念,所以存在性能稳定性的问题。

(11)组合调度方法

由f各种调度算法都不同程度地存在着这样或那样的优缺点,除了传统组合的启发式规则外,近来人们开始把各种近似算法的组合应用研究作为热点,以弥补各自的缺点,发挥各自的优势,达到高度次优化的目标‘30-321。目前,各种算法的组合应用已成为解决优化调度问题很有前途的方法。

泊fn大学颀-:学位论文

1.2.3车间调度研究存在的问题

调度领域中的大部分问题都具有NP问题,虽然对它的研究已有几l’年的历史,但至今尚未形成一套系统的方法和理论,理论研究与实际应用之间还存在着很人差距。尤其随着JIT(Just.In—Time)思想的广泛采用,E/T(Earliness/Tardiness)调度问题,即使得工件尽量按交货期完成,变得越来越突出[33-341。实际应用中的调度方法虽然能够响应系统的动态变化,但不能保证得到好的调度。’些理论上的最优化方法能提供最优调度,但由于其计算的复杂性,并且忽略了很多实际阕素,离实际运用还有较大距离。

由于大多调度问题属于一类NP困难组合问题,因此寻找具有多项式复杂性的最优算法几乎是不可能的。各种近似/启发式方法、诸如基于规则的算法等,}h于能在合理的时州内产生比较满意的涮度,因此广泛应用于实际调度中,但其往往对所得的调度解的次优性不能进行评估。在这方面有必要探索更好的近似最优调度算法,可以考虑增加合理的计算时间代价,提高解的次优性。各种基于统训优化的方法、诸如模拟退火法、遗传算法等,提供了-1+解决调度优化问题的新途径,但同别的优化算法类似,其也存在着一定程度的牧举、一般来说收敛到撮优解很慢,并且对于判断解的最优陛出很困难。在这方面也需要做进一步的研究。

在调度问题的理论研究中,大多数还是集中在针对经典的调度问题设计优化算法㈣陋。361,而经典调度问题与实际相差较大,尤其在目前柔性制造环境下,柔性车删作业调度问题将是一个研究的重点和进一步研究的方向,而目前对于这方面研究的文献相对来说较少。在实际车间调度中,车间计划与车间调度往往是分层进行的,但这可能造成计划在实际调度中的不可行问题,如何将计划与调度结合考虑,以求总体的优化也是需要进一步研究的。另外,还有很多有待进一步研究的问题,比如实际车间调度的多目标性、动态随机性等。

1.2.4车问调度研究的发展趋势

针对_J:述存在的问题以及车间调度系统的日益复杂性,目前车间调度问题的研究形成了下列一些策略和研究趋势。

璀于遗传算法的作业车间调度问题研究

(1)并行或分布策略适合不同车间控制结构与高度问题复杂性的实际需要,不少学者提出并行或分柿策略来解决调度问题[37-38】。

(2)分解与成组策略‘”1利用分解生产计划或GT的调度策略可以大人降低问题的复杂性和规模,求得调度问题的较优解,同时优化系统的一些性能指标。近年来GT或独立制造岛的应用实践便是一个明显的例证。

(3)人机协同策略【30J调度问题的性质、现有研究方法的缺陷以及人类独特的思维能力决定了人机协同策略的生命力。大量的研究成果表明:人机协同交互的策略可以减少系统的搜索空间,可在有限的时间、背景知识条件下解决困难的问题。

(4)实时或动态重调度策略[30_川车间制造过程的随时性、不确定性需要不断地进行重调度,以处理突发的事件。基于目fi{f的研究,对于动态调度的具体策略有周期调度、连续调度、事件驱动调度、周期与事件驱动混合调度、周期与连续渊度混合的策略等。

(5)生产计划与调度集成策略删12‘1生产计划与调度的集成研究具有全局优化的特征,也符合先进制造模式的思想,同时提高了生产系统的柔性。

(6)多目标权衡决策‘42‘431实际调度问题是多目标的,且这些目标往往相瓦冲突,如何对调度系统的不同目标进行权衡分析,实现多目标调度是车间调度问题的一个值得研究的方向。

(7)异地生产调度策略‘441作为AM模式的关键技术之一,异地生产凋度己成为近期的研究热点。国家863/CIMS专题也己把此项研究列入重点研究领域予以支持。

总之,对车间调度领域这一具有NP~hard特性的研究,随着应用数学理论的进一步发展,必然朝着集成化、柔性化、多目标化、动态实用化、高度次优化方向深入进行。

1.3课题主要工作

综合困内外关于车间优化调度问题的研究现状、存在问题及发展趋势,结合凯凌制动器并行协同设计项目,考虑现行作业车间运作的实际情况,本文以“基于遗传算法的作业车问调度优化问题研究’’为题,主要于l:展以下几个方面的研究。

{fli江人学砸}‘学位论文

(1)提出柔性作业车间调发模型(FlexibleJobShopScheduling,简称FJSS)。目前,大多数研究还是针对经典的作业车问调度问题展开,而这类调度问题中,每道工序所使用的机床事先被唯一确定,这样直接导致了加工计划和生产吼度相脱节。随着加工技术、自动化技术的发展,特别是柔。I生-Dn.T.系统(FMS)的出现,使得在实际生产中,一道工序可以在不同的机床上加工,增加了机床选择的柔性。本文针对这类情况,结台现代生产准时制的要求,建立双目标柔性作业车问调度数学优化模型。

(2)研究遗传算法对于FJSS模型的求解方法,以寻求问题的最优解。车间调度问题是典型的组合优化问题,随着问题规模的扩大,可行解的数同非常多,冈此在诸多解中寻求一个最优解是比较困难的。由于遗传算法的隐含并行性和全局搜索能力使其具有较强的寻优能力,目前广泛应用于车间调度问题的优化中。柔性作业车间调度问题较一般的调度问题更具复杂性,面临着机器选择的问题,而运用遗传算法求解这类问题的文献并不多见。本文将遗传算法运用到模型的求解中,并进行相应的算法设计。

(3)研究车间动态调度系统的实现方案。在FMS的生产过程中,任何事先ii确定的优化调度方案,总会面临一些新情况、新变化,调度方案的执行是一个动态的过程,因此在车间调度系统中使用动态调度方案,将使调度结果更符合实阳;情况。本文提出基于周期和事件驱动的动态渊度策略,并将(1)、(2)的研究成果应用于该动态调度系统中,在实现优化调度的同时,提高了系统的实时性和动态响应能力。

1.3全文的结构安排及主要内容

全文茫分五章,其结构安排如图1.1所示:

第一章主要介绍了车间调度问题的研究现状,包括车间调度问题的相关概念,研究方法,存在问题及发展趋势,为后面章节关于本课题的研究奠定了理论基础。并介绍了课题的主要工作及内容。

第二章在分析车间调度问题建模方法的基础上,提出采用数学分析的方法建立调度模型。通过对柔性作业车间调度问题的研究,提出了该问题的模型框架,并建立了双目标的数学优化模型。最后结合凯凌项目,给出了一个建模实例。

苎±望堡堑垄堕堡些至坚塑壁堕婆型竺—————————————一一

幽11

第三章介绍了遗传算法的基本原理及在车间调度优化中的应用情况。具体给出了遗传算法求解FJSS模型的实现步骤及遗传操作设计,提出了染色体两层编码的思想,并将AOV网络图运用到算法中。最后给出了一个具体算例,验证了算法的有效性和先进性。

第四章在分析车问动态调度问题的基础上,提出了基于周期和事什驱动的滚动窗口动态调度策略,建立了车间动态调度系统的功能结构,并采用面向对象(Object.Oriented,0.0)技术分析和设计了车间动态调度系统。最后通过一个仿真实例验证了所提出的动态调度策略的可行性。

第五章全文的总结与展望

浙江大学颂士学位论文

第二章柔性作业车间调度模型分析

【摘要】本章针对经典调度问题的局限性,提出了研究柔性作业车间调度问题的意义,在对该问题进行分析的基础上,建立了基于双目标的数学优化模型,并结合凯凌项目给出了建模实例。

【关键词】柔性作业车间调度,数学优化模型,双目标

2.1引言

Jobshop是一类最具一般性的生产加工环境,该类调度问题已得到广泛的关注和研究。在传统的Jobshop调度问题研究中,仅考虑各工序在唯一确定的机床上加工的情况,即先有确定的加工计划,再进行作业调度,缺乏一定的柔性。随着FMS的出现,这一传统限制已被突破,各工序可以在多台可选的机床上加工,即路径柔性已成为生产的实际需求。路径柔性是FMS的一个重要特性,它可有效地平衡工序负荷,缩短加工时间,减少在制品库存,并能应对突发事件的]二扰,大火提高了加工系统的整体性能。因此,研究具有路径柔性的车问调度问题具有重要的理论和应用意义。

一般的车间调度问题都是对于具体生产环境中复杂动态、多目标、多约束调度的一种抽象和简化,其首要问题是对调度问题进行建模。本章在对柔性作、世车问调度(FlexibleJobShopScheduling,简称FJSS)问题进行分析的基础上,建立了该问题的数学优化模型,并结合凯凌项目给出了建模实例。

2.2车间调度问题的建模方法

在自然科学、工程技术和社会科学的许多领域中,定量的系统分析、系统综合已受到人们愈来愈多的重视。模型是歼展这些工作的有效工具,而模型化则是开展这些工作的前提和基础嘲。车间调度问题的建模方法很多,主要有以下两大类。

(1)数学分析的方法

数学分析模型通常用数学关系式表达所研究系统变量之问的相互关系。大多

基十遗传算法的作业车间调度问题I卅究

数分析模型是掐述性的,即在一组条件下预测某一方案的各种后果数值。有类预测模型需要分辨出最优后果,即需求出最优解,在车间优化调度中,就是要从多个调度方案巾寻求满足约束条件和目标的最佳调度方案。寻求最优解的过程常称优化,这类数学模型称为优化模型。系统工程中常用的基本优化模型可如下表示:

=≤

此模型中,优化即表示最大或最小,下标j表示可能是一个或多个待优化的函数,需寻求使函数工(x)达到最优值的向量五,向量x的各分量称为模型的决策变量,待优化的函数为目标函数,约束条件指优化过程中所必须遵循的其它条件。整数下标i指所需满足的某种约束条件,约束条件可以是等式,也可以是不等式,每一常数6『表示相应的约束函数曼(x)必须满足的界限值。概括说来,求出的解瓦应使每个目标函数一(x)最优且同时满足各个约束关系。

数学优化模型逻辑性强,能清楚地表示出复杂系统中的各种输入输出变量以及较好地反映出多个变量之间的关系,并能实现系统的优化,且建模方便,是车问凋度问题中应用较多的一种建模方法。

(2)图与fci||络的方法

用于车间调度系统的建模主要有析取图…】、关键路径法.Petri朗”1等。其中Petri网以其独特的优势广泛应用于制造系统的设计、分析与仿真中。这里主要介绍一下Petri网。

①基本Petri网基本Petri具有直观、易理解的优点,但其在描述复杂系统时节点数R过多,因而只适用于简单系统的建模。

②扩展Petri网主要有几种典型的扩展Petri网。a.EP—N模型通过增加决策节点,使Petri网具有描述诸如FMS调度决策过程的能力。这种模型有节点数目过多的缺点,只适用于简单系统的建模。b.CP—N模型是Petri的压缩形式,具有较少的节点数目,较适合复杂系统的建模,但其分析方法较为复杂。.1‘()

J【E∈】I((rl—_L

c.TP—N模型不仅能够描述系统中事件与状态演化中的逻辑关系,而且通过设置时问与变迁或库所的联系来分析Petri演化过程。d.P/TP-N模型这种网比EP.N有更少的结点和更简单的结构,但没有决策节点。e.HLP—NJensen将P/TP—N和CP—N结合起来,提出了HLP-N。严洪森在HLP-N和EP.N的基础上,提出了EHLEP—N,孩网结构简单,节点少,很适合于FMS的建模、仿真与控制。

通过对上述两类建模方法的介绍和分析,结合柔性作业车f叶调度复杂性的特点,本文采用数学分析的方法建立车间调度优化模型。

2.3柔性作业车间调度问题分析

从“系统工程方法论”的角度来看,建模是在选定目标、约束条件及研究环境等:[作基础上进行的。因此在建立FJSS模型之前,首先要对FJSS问题有个清楚的描述,明确问题的特点、目标、约束及输入输出。

2.3.1问题描述

FJSS问题的描述如p:

假定一个加工系统有rfl台机器和n个工件,每个工件包含一道或多道工序,工件的二『j序顺序是预先确定的,每道工序可以在多台不同的机床上加工,工序的加工时间随机床的性能不同而变化。调度目标是为每道工序选择最合适的机器,以及确定每台机器上各工件工序的最佳加工顺序及开工时间,使系统的某些性能指标达到最优。

下面是针对该调度问题的假设;

(1)工序一旦进行不能中断。

(2)所有机床一开始均处于空闲状态。

(3)假定工件之间具备相同的优先级。

(4)不同工件的工序之间没有先后约束。

(j)在零时刻,所有的工件都可被加工。

(6)各工件的准备时间和移动时问一起计入加工时间。

基于遗传算法的作业乍fH]i14度问题t,Tf'JT,

2.3.2目标与约束

实际的车间调度系统是个多目标的系统,如果调度能较好的满足多个目标的要求,那么车间加工系统将会达到比较好的性能水平。以往的车间调度问题的研究大多基于单目标优化,如使工件在系统中的流通时间(Makespan)最短。随着产品生命周期的F|益缩短和客户需求水平的不断提高,企业对于准时交货的要求越来越高,产品的提前/拖期罚款最少也成为衡量调度系统性能的一个主要目标。因此,本文在以往研究的基础上,提出双目标FJSS模型,在增加系统柔性的同时还提高了系统的性能水平。主要目标如下:

①使所有工件在系统中的流通时问最短,即Makespan最小。工件的流通时f自J反映工件在系统中的驻留时间,能较全面地反映系统的生产时间。

②刘工件提前/拖期完工进行的惩罚最小

FJSS问题所受的约束条件如下:

①每道工序必须在前一道工序完成之后才能加工。

②某’-mJ刻一台机器只能加工一个工件。

2.3.3模型的输入输出

建立模型的关键是确定输入输出,划于车间调度模型的输入输}b可以用图2,1表示:

其中生产定单提供一定计划期内需要加工的:I:件信息,包括工件的丌:【.时间、完工时间、数量、提前/拖期惩罚系数等。工艺路线文件提供工件的各道加』=工序及先后关系,资源清单提供工序所需的加工机器及相应的加工叫间等信息。各项输入参数通过模型,由遗传算法对模型进行优化求解,最后输出如图所示的车间调度甘特图。甘特图(Oanttchart)可直观地表示出各定单在所需资源上的加工顺序以及加工丌始时蚓和结束时间,是显示车间调度结果的良好工具。

浙江人学颧I‘学位论文

1015

FJSS模型的输入输出图

2.4柔性作业车间调度的数学优化模型

2.4.1变量描述

模型所需的变量如下:

j:工件序号,i=l,2…3.,N

j:工件i的工序号,j=1,2…3..,,

k:机器序号,k=l,2,3..,K

N:工件数量

K:机器总数

m。:工件i的第j道工序在机器k上的加工时间

%:工件i的第j道工序在机器k上的丌始时间

‰:14't二i的第j道工序在机器k上的完工时间

n峨:所有工件在机器k上的完I:时问

螭r遗传舅.法塑生些兰塑塑垦塑望竺!!—一—————————————————一

MS:所有工件的最后完工时问

D_:工件i的交货期

,:工件i提前完工的惩罚系数

。t:工件i拖期完工的惩罚系数

,1,工件i的中第j道工序和工件e的第g道1:序在同一台机器尺。。jk上执行,若工序j先于工序g

o,其它

,1,若工件i的第j道工序在机器k上执行

‰t。,其它

其中,i、J、k、N、K、Ⅲ扯、D,、‘、wf为输入变量,s叶、岛*、MPk、硒为输出变量,盖m、尺㈣为决策变量。与传统的车间调度模型相比,FJss模型增加了决策变量x∥即工序选择在哪台机器上加工。该变量的增加提高了调度系统的应变能力,同时也大大提高了模型求解的复杂程度,也是后章节算法研究2.4.2优化模型

目标函数:

①使丁件在系统中的流通时间最短

Min(MS)5盟臻(慨)

②对工件提前/拖期完工进行的惩罚最小

minP=釜.[。。m。x(OoD/一勺.≈)十,卿x(o,勺,≈一哆)】

f擎一气≈’十’砌瓤‘0’点哆‘一哆川约束条件:

①顺序约束——工艺要求的同一工件相邻工序问的加工顺序

‰一E(一)。≥删啦(1)

基于遗传算法的车间调度算法

得分:_______ 南京林业大学 研究生课程论文 2011~2012学年第一学期 课程号:73327 课程名称:Matlab语言 论文题目:基于遗传算法的车间调度算法 学科专业:交通运输工程 学号:8113102 姓名:闫盖 任课教师:王一雄 二○一一年十二月

基于遗传算法的车间调度算法 【摘要】车间调度问题具有建模复杂性、计算复杂性、动态多约束、多目标性等特点。近几年,各种演化计算方法逐渐被引入到生产调度中,特别是遗传算法的应用。本文主要介绍了企业车间调度问题的遗传算法实现,通过Matlab 实现对遗传算法的编程,其仿真调度结果验证了遗传算法用于求解车间调度问题的可行性和有效性。 【关键词】遗传算法 车间调度 Matlab Flow-Shop scheduling based on genetic algorithm Abstract :The Flow-Shop scheduling problem has the property of modeling complexity, computational complexity, dynamic multi-constraint and multi-targeted. In recent years a variety of evolutionary computation methods, in particular, the application of genetic algorithms has been gradually introduced into the production scheduling problem. This paper puts forward a method to design Flow-Shop by using genetic algorithm. Program about genetic algorithm designs by using Matlab, Simulation results of our experiment show the feasibility and effectiveness of genetic algorithm for solving Flow-Shop scheduling. Key words :Genetic algorithm Flow-Shop scheduling Matlab 引言 生产调度对企业的生产作业过程具有重要的作用。有效的调度方法和优化技术是实现先进制造和提高生产效益的基础和关键。研究和解决好调度问题,能极大提高企业的生产效率,从而提高这些企业的竞争力。自从1954年Johnson 发表第一篇关于流水车间调度问题的文章以来,流水车间调度问题引起了许多学者的关注,提出了许多解决的方法。其中,以遗传算法、模拟退火、禁忌搜索以及人工神经网络为代表的智能化优化技术迅速发展,用来解决流水车间调度问题,受到人们的普遍关注。遗传算法以其优良的计算性能和显著的应用效果而特别引人注目,很多启发式混合方法都是在此基础上发展起来的。本文采用遗传算法进行求解。 1车间调度问题描述 车间调度是指根据产品制造的合理需求分配加工车间顺序,从而达到合理利用产品制造资源,提高企业经济效益的目的。车间调度问题从数学上可以描述为有n 个代加工的零件在m 台机器上加工,车间调度的数学模型如下: (1) 机器集},,{21m m m m M ,?=,j m 表示第j 台机器,j=1,2,…,m 。 (2) 零件集},,{21n p p p P ,?=,i p 表示第i 个零件,i=1,2,…,n 。 (3) 工序序列集},,{21n op op op OP ,?=,},,{21ik i i i op op op op ,?=表示零件i p 加工工序序列。 (4) 可选机器集},,{21ik i i op op op OPM ,?=,},,{21ijk ij ij ij op op op op ,?=表示零件 i p 加工工序j 可以选择的加工机器。

作业调度算法C++实现

学号: 姓名: 班级: 实验时间: 2011-10-10 实验编号 002 实验名称 作业调度算法 实验目的和 要求 通过对作业调度算法的模拟加深对作业概念和作业调度算法的理解 实验内容 (1) 模拟FCFS 算法实现作业调度 (2) 模拟短作业优先算法实现作业调度 模拟最高相应比优先算法实现作业调度 一、 实验题目 输入:作业流文件,其中存储的是一系列要执行的作业, 每个作业包括三个数据项: 作业号、作业进入系统的时间(用一小数表示,如10:10,表示成10.10)、估计执行时间(单位小时,以十进制表示) 参数用空格隔开,下面是示例: 1 8.00 0.5 2 8.15 0.3 3 8.30 0.25 4 8.35 0.20 5 8.45 0.15 6 9.00 0.10 7 9.20 0.05 其中调度时刻为最后一个作业到达系统的时间! 输出:作业号 进入内存的时间,每行输出一个作业信息。 并输出每一种调度算法的平均周转时间和平均带权周转时间。 二、 算法设计思路 首先用一个switch 函数做界面选择进入哪一种算法。用一个内来定义作业 float s;//提交时间 float j;//执行时间 float k;//开始时间 float w;//完成时间 float z;//周转时间 float d;//带权周转时间 1, 先来先服务,首先计算第一个作业的完成时间,周转时间,带权周转时间。再用for 循 环来计算剩下每一个作业的完成时间,周转时间,带权周转时间。然后再算出平均周转时间和平均带权周转时间。 2, 短作业有优先,首先计算第一个作业的完成时间,周转时间,带权周转时间。再用来计 算其他作业的。其中在for 循环中嵌套while 函数,在每一次计算前判断处于等待状态 计算机操作系统 实验报告

处理器调度习题

处理器调度 选择题 当CPU执行操作系统代码时,则处理机处于( )。 A.执行态 B.目态 C.管态 D.就绪态 ( )是机器指令的扩充,是硬件的首次延伸,是加在硬件上的第一层软件。 A.系统调用 B.操作系统 C.内核 D.特权指令 操作系统提供给程序员的接口是( )。 A.进程 B.系统调用 C.库函数 D.B和C 用户程序向系统提出使用外设的请求方式是( )。 A.作业申请 B.原语 C.系统调用 D.I/O指令 当作业正常完成进入完成状态时,操作系统( )。 A.将输出该作业的结果并删除内存中的作业 B.将收回该作业的所占资源并输出结果 C.将收回该作业的所占资源及输出结果,并删除该作业 D.将收回该作业的所占资源及输出结果,并将它的控制块从当前的队列中删除 下列选项是关于作业和进程关系的描述,其中哪一个是不正确的( )。 A.作业的概念主要用在批处理系统中,而进程的概念则用在几乎所有的OS中。 B.作业是比进程低一级的概念。 C.一个作业至少由一个进程组成。 D.作业是用户向计算机提交任务的实体,而进程是完成用户任务的执行实体以及向系统申请分配资源的基本单位。 作业从后备作业到被调度程序选中的时间称为( )。 周转时间B.响应时间C.等待调度时间D.运行时间 设有三个作业J1,J2,J3,它们同时到达,运行时间分别为T1,T2,T3,且T1≤T2≤T3,若它们在一台处理机上按单道运行,采用短作业优先算法,则平均周转时间为( )。 A.T1+T2+T3 B.1/3(T1+T2+T3) C.T1+2/3T2+1/3T3 D.T1+1/3T2+2/3T3 从作业提交给系统到作业完成的时间间隔称为作业的( )。 A.中断时间 B.等待时间 C.周转时间 D.响应时间 设有四个作业同时到达,每个作业执行时间均为2 h,它们在一台处理机上按单道方式运行,则平均周转时间为( )。 A.1 h B.5 h C.2.5 h D.8 h FCFS调度算法有利于( )。 A.长作业和CPU繁忙型作业 B.长作业和I/O繁忙型作业 C.短作业和CPU繁忙型作业 D.短作业和I/O繁忙型作业 下列哪种说法不是SJ(P)F调度算法的缺点( )。 A.对于长作业(进程)不利 B.未考虑作业(进程)的紧迫程度 C.不能有效降低作业(进程)的平均等待时间 D.由于根据的是用户提供的估计执行时间,因此不一定真正做到短而优先。 选择排队进程中等待时间最长的进程被优先调度,该调度算法是( )。 A.先来先服务调度算法B.短进程优先调度算法 C.优先权调度算法D.高响应比优先调度算法 在采用动态优先权的优先权调度算法中,如果所有进程都具有相同优先权初值,则此时的优先权调度算法实际上和( )相同。

流水线车间生产调度的遗传算法MATLAB源代码

流水线车间生产调度的遗传算法MATLAB源代码 n个任务在流水线上进行m个阶段的加工,每一阶段至少有一台机器且至少有一个阶段存在多台机器,并且同一阶段上各机器的处理性能相同,在每一阶段各任务均要完成一道工序,各任务的每道工序可以在相应阶段上的任意一台机器上加工,已知任务各道工序的处理时间,要求确定所有任务的排序以及每一阶段上机器的分配情况,使得调度指标(一般求Makespan)最小。 function [Zp,Y1p,Y2p,Y3p,Xp,LC1,LC2]=JSPGA(M,N,Pm,T,P) %-------------------------------------------------------------------------- % % 流水线型车间作业调度遗传算法 % GreenSim团队——专业级算法设计&代写程序 % 欢迎访问GreenSim团队主页→输入参数列表 % M 遗传进化迭代次数 % N 种群规模(取偶数) % Pm 变异概率 % T m×n的矩阵,存储m个工件n个工序的加工时间 % P 1×n的向量,n个工序中,每一个工序所具有的机床数目 % 输出参数列表 % Zp 最优的Makespan值 % Y1p 最优方案中,各工件各工序的开始时刻,可根据它绘出甘特图 % Y2p 最优方案中,各工件各工序的结束时刻,可根据它绘出甘特图 % Y3p 最优方案中,各工件各工序使用的机器编号 % Xp 最优决策变量的值,决策变量是一个实数编码的m×n矩阵 % LC1 收敛曲线1,各代最优个体适应值的记录 % LC2 收敛曲线2,各代群体平均适应值的记录 % 最后,程序还将绘出三副图片:两条收敛曲线图和甘特图(各工件的调度时序图) %第一步:变量初始化 [m,n]=size(T);%m是总工件数,n是总工序数 Xp=zeros(m,n);%最优决策变量 LC1=zeros(1,M);%收敛曲线1 LC2=zeros(1,N);%收敛曲线2 %第二步:随机产生初始种群 farm=cell(1,N);%采用细胞结构存储种群 for k=1:N X=zeros(m,n); for j=1:n for i=1:m X(i,j)=1+(P(j)-eps)*rand; end end

作业车间调度模型

基于WSA算法的作业车间低碳调度方法研究 1.1 引言 本章主要研究了以最大化完工时间和能耗指标为目标的作业车间低碳调度模型的求解方法。首先,建立了多目标作业车间低碳调度模型;然后基于Pareto 支配理论,设计了一种高效的MODWSA算法获得满意的Pareto非支配解;最后,设计了一套测试算例,将MODWSA算法与其它经典多目标算法进行比较分析,验证了MODWSA算法的优越性。在本研究中,作者完成了两项工作:首先,构建了一个新的多目标作业车间低碳数学模型;其次,设计了一种高效的MODWSA算法获得满意的Pareto非支配解。 1.2 作业车间低碳调度模型 本章研究的作业车间低碳调度问题可描述如下:对给定的n个工件及k台机器,一个工件的加工需要经过m道工序,每道工序允许在特定的机器上加工,任意一台机器在任意一个时刻仅能加工某一工件的某一道工序,并且一个工件只能在其上道工序完成后下一道工序才能开始加工[插入文献]。 考虑机器的准备时间,准备时间与同一机器上相邻两工件的加工顺序相关,并且机器的启动和工件的加工是相连的。对应于不同工序,机器具有不同的速率档位进行加工,并且可以进行调节。从能耗的角度来看,机器有四种不同的状态:加工状态(机器在加工工件),启动状态(机器在准备加工一个新的工件),待机状态(机器处于空转中),以及关机状态(机器被关机)。通常情况下,当机器在较高速率运作时,工件的加工时间会被缩短,但是相应的能耗会增加。因此本问题以最大化完工时间和能耗指标为目标,由于本章所研究问题的特点,该问题要比传统的作业车间调度问题要复杂的多。在该问题中,其它设定如下: ●工件在车间里被连续加工。也就是说,加工过程不能被中断。 ●机器允许有空闲时间,并且各阶段间具有容量无限的缓冲区。 ●当有第一个工件在机器上加工时,机器开机;当在该机器上加工的所有工件 加工完毕后,机器关机。 ●机器速度在工件加工过程中不能进行调整。 1.2.1 混合整数规划模型 为了提出问题的数学模型,根据上面对问题的描述,我们首先定义了下面的相关数学符号。

作业调度算法(先来先服务算法,短作业算法)

《操作系统》实验报告 题目:作业调度算法 班级:网络工程 姓名:朱锦涛 学号:E31314037

一、实验目的 用代码实现页面调度算法,即先来先服务(FCFS)调度算法、短作业优先算法、高响应比优先调度算法。通过代码的具体实现,加深对算法的核心的理解。 二、实验原理 1.先来先服务(FCFS)调度算法 FCFS是最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,系统将按照作业到达的先后次序来进行调度,或者说它是优先考虑在系统中等待时间最长的作业,而不管该作业所需执行的时间的长短,从后备作业队列中选择几个最先进入该队列的作业,将它们调入内存,为它们分配资源和创建进程。然后把它放入就绪队列。 2.短作业优先算法 SJF算法是以作业的长短来计算优先级,作业越短,其优先级越高。作业的长短是以作业所要求的运行时间来衡量的。SJF算法可以分别用于作业和进程调度。在把短作业优先调度算法用于作业调度时,它将从外存的作业后备队列中选择若干个估计运行时间最短的作业,优先将它们调入内存。 3、高响应比优先调度算法

高响应比优先调度算法则是既考虑了作业的等待时间,又考虑了作业的运行时间的算法,因此既照顾了短作业,又不致使长作业等待的时间过长,从而改善了处理机调度的性能。 如果我们引入一个动态优先级,即优先级是可以改变的令它随等待的时间的延长而增加,这将使长作业的优先级在等待期间不断地增加,等到足够的时间后,必然有机会获得处理机。该优先级的变化规律可以描述为: 优先权 = (等待时间 + 要求服务时间)/要求服务时间 三、实验内容 源程序: #include #include #include struct work { i nt id; i nt arrive_time;

3-2 作业调度算法

第二讲作业调度算法主讲教师:张新彩

3.2 作业调度算法 3.2.1 先来先服务算法 3.2.2 短作业 / 进程优先算法 3.2.3 优先级调度算法 3.2.4 高响应比优先调度算法

3.2.1 先来先服务算法 ?适用于作业调度 ?从后备作业队列中选择一个或多个最先进入的作业,将 它们调入内存,为它们分配资源、创建进程,然后放入 就绪队列。 ?适用于进程调度 ?从就绪进程队列中选择一个最先进入的进程,为之分配 处理机,使之投入运行;直到运行完成或阻塞,才会让 出处理机。

3.2.1 先来先服务算法 4 平均周转时间为(4+6+10+11+14)/5=9 作业A 、B 、C 、D 、E 分别在0、1、2、3、4时刻到达,需要的服务时间分别为4、3、5、2、4。请用先来先服务算法计算它们的完成时间、周转时间、带权周转时间和平均周转时间。 作业 名 到达 时间 服务 时间 开始执 行时间 完成 时间 周转 时间 带权周 转时间 A 4 B 1 3 C 2 5 D 3 2 E 4 4 4 7 12 14 1 2 2 5.5 0 4 7 12 4 6 10 11 18 3.5 14 14 简单易实现,有利于长作业,不利于短作业

3.2.2 短作业 / 进程优先算法 ?短作业优先(SJF) ?从后备队列中选择一个或多个估计运行时间最短的作业 调入内存。 ?短进程优先(SPF) ?从就绪队列中选出一个估计运行时间最短的进程,将处 理机分配给它,使它立即执行。

3.2.2 短作业 / 进程优先算法 6 平均周转时间为(4+3+8+9+16)/5=8 作业 名 到达 时间 服务 时间 开始执 行时间 完成 时间 周转 时间 带权周 转时间 作业A 、B 、C 、D 、E 分别在0、1、2、3、4时刻到达,需要的服务时间分别为4、3、5、2、4。请用短作业优先算法计算它们的完成时间、周转时间、带权周转时间和平均周转时间。 4 1 0 4 6 1. 5 4 3 9 8/3 6 8 13 9/4 9 9 18 16/5 13 16 D 3 2 B 1 3 E 4 4 C 2 5 A 0 4

操作系统短作业优先调度算法

课程设计 采用短作业优先调度算法调度程序 学号: 姓名: 专业: 指导老师: 日期:

目录 一、实验题目 (3) 二、课程设计的目的 (3) 三、设计内容 (3) 四、设计要求 (3) 五、主要数据结构及其说明 (4) 六、程序运行结果 (5) 七、流程图 (7) 八、源程序文件 (9) 九、实验体会 (13) 十、参考文献 (13)

摘要 在多道程序环境下,主存中有着多个进程,其数目往往多于处理机数目。这就要求系统能按某种算法,动态地把处理机分配给就绪队列中的一个进程,使之执行。分配处理机的任务是由处理机调度程序完成的。由于处理机是最重要的计算机资源,提高处理机的利用率及改善系统性能(吞吐量、响应时间),在很大程度上取决于处理机调度性能的好坏,因而,处理机调度便成为操作系统设计的中心问题之一。 在多道程序系统中,一个作业被提交后必须经过处理机调度后,方能获得处理机执行。对于批量型作业而言,通常需要经历作业调度和进程调度两个过程后方能获得处理机。作业调度是对成批进入系统的用户作业,根据作业控制块的信息,按一定的策略选取若干个作业使它们可以去获得处理器运行的一项工作。而对每个用户来说总希望自己的作业的周转时间是最小的,短作业优先(SJF)便是其中一种调度方法。本次课程设计主要是模拟短作业优先(SJF)调度算法。

一、实验题目 采用短作业优先算法的的进程调度程序 二、课程设计的目的 操作系统课程设计是计算机专业重要的教学环节,它为学生提供了一个既动手又动脑,将课本上的理论知识和实际有机的结合一起,独立分析和解决实际问题的机会。 进一步巩固和复习操作系统的基础知识。 培养学生结构化程序、模块化程序设计的方法和能力。 提高学生调试程序的技巧和软件设计的能力。 提高学生分析问题、解决问题以及综合利用C语言进行程序设计的能力。 三、设计内容 设计并实现一个采用短作业优先算的进程调度算法演示程序 四、设计要求 1. 每一个进程有一个PCB,其内容可以根据具体情况设定。 2. 进程数、进入内存时间、要求服务时间、优先级等均可以在界面上设定 3. 可读取样例数据(要求存放在外部文件中)进行进程数、进入内存时间、时间片长度、进程优先级的初始化 4. 可以在运行中显示各进程的状态:就绪、执行(由于不要求设置互斥资源与进程间同步关系,故只有两种状态) 5. 采用可视化界面,可在进程调度过程中随时暂停调度,查看当前进程的状态以及相应的阻塞队列

处理器调度习题教学内容

处理器调度习题

处理器调度 选择题 ?当CPU执行操作系统代码时,则处理机处于( )。 ?A.执行态 B.目态 C.管态 D.就绪态 ?( )是机器指令的扩充,是硬件的首次延伸,是加在硬件上的第一层软件。 ?A.系统调用 B.操作系统 C.内核 D.特权指令 ?操作系统提供给程序员的接口是( )。 ?A.进程 B.系统调用 C.库函数 D.B和C ?用户程序向系统提出使用外设的请求方式是( )。 ?A.作业申请 B.原语 C.系统调用 D.I/O指令 ?当作业正常完成进入完成状态时,操作系统( )。 ?A.将输出该作业的结果并删除内存中的作业 ?B.将收回该作业的所占资源并输出结果 ?C.将收回该作业的所占资源及输出结果,并删除该作业 ?D.将收回该作业的所占资源及输出结果,并将它的控制块从当前的队列中删除 ?下列选项是关于作业和进程关系的描述,其中哪一个是不正确的( )。 ?A.作业的概念主要用在批处理系统中,而进程的概念则用在几乎所有的OS中。 ?B.作业是比进程低一级的概念。 ?C.一个作业至少由一个进程组成。 ?D.作业是用户向计算机提交任务的实体,而进程是完成用户任务的执行实体以及向系统申请分配资源的基本单位。 ?作业从后备作业到被调度程序选中的时间称为( )。 ?周转时间B.响应时间C.等待调度时间D.运行时间 ?设有三个作业J1,J2,J3,它们同时到达,运行时间分别为T1,T2,T3,且T1≤T2≤T3,若它们在一台处理机上按单道运行,采用短作业优先算法,则平均周转时间为( )。 ?A.T1+T2+T3 B.1/3(T1+T2+T3) ?C.T1+2/3T2+1/3T3 D.T1+1/3T2+2/3T3 ?从作业提交给系统到作业完成的时间间隔称为作业的( )。 ?A.中断时间 B.等待时间 C.周转时间 D.响应时间 ?设有四个作业同时到达,每个作业执行时间均为2 h,它们在一台处理机上按单道方式运行,则平均周转时间为( )。 ?A.1 h B.5 h C.2.5 h D.8 h ?FCFS调度算法有利于( )。 ?A.长作业和CPU繁忙型作业 B.长作业和I/O繁忙型作业 ?C.短作业和CPU繁忙型作业 D.短作业和I/O繁忙型作业 ?下列哪种说法不是SJ(P)F调度算法的缺点( )。 ?A.对于长作业(进程)不利 ?B.未考虑作业(进程)的紧迫程度 ?C.不能有效降低作业(进程)的平均等待时间 ?D.由于根据的是用户提供的估计执行时间,因此不一定真正做到短而优先。 ?选择排队进程中等待时间最长的进程被优先调度,该调度算法是( )。 ?A.先来先服务调度算法B.短进程优先调度算法 ?C.优先权调度算法D.高响应比优先调度算法 ?在采用动态优先权的优先权调度算法中,如果所有进程都具有相同优先权初值,则此时的优先权调度算法实际上和( )相同。 ?A.先来先服务调度算法B.短进程优先调度算法

先来先服务和短作业优先调度算法

操作系统》实验一实验报告 【实验题目】:先来先服务FCFS 和短作业优先SJF进程调度算法【实验目的】 通过这次实验,加深对进程概念的理解,进一步掌握进程状态的转变、进程调度的策略及对系统性能的评价方法。 【实验内容】 问题描述: 设计程序模拟进程的先来先服务FCFS 和短作业优先SJF 调度过程。假设有n个进程分别在T1, ?,T n时刻到达系统,它们需要的服务时间分别为S1, ?,S n。分别采用先来先服务FCFS和短作业优先SJF 进程调度算法进行调度,计算每个进程的完成时间,周转时间和带权周转时间,并且统计n 个进程的平均周转时间和平均带权周转时间。 程序要求如下: 1)进程个数n;每个进程的到达时间T1, ?,T n 和服务时间S1, ?,S n;选择算法1-FCFS,2-SJF。 2)要求采用先来先服务FCFS 和短作业优先SJF分别调度进程运行,计算每个进程的周转时间,带权周转时间,并且计算所有进程的平均周转时间,带权平均周转时间; 3)输出:要求模拟整个调度过程,输出每个时刻的进程运行状态,如“时刻3:进程 B 开始运行”等等;

4)输出:要求输出计算出来的每个进程的周转时间,带权周转时间, 所有进程的平均周转时间,带权平均周转时间 【实验过程】 #include using namespace std; #define MaxNum 100 int ArrivalTime[MaxNum]; double ServiceTime[MaxNum]; double FinishTime[MaxNum]; double WholeTime[MaxNum]; double AVEWholeTime[MaxNum]; double AVEWeightWholeTime[MaxNum]; double WeightWholeTime[MaxNum]; double AverageWT_FCFS,AverageWT_SJF; double AverageWWT_FCFS,AverageWWT_SJF; double AllTime,WeightAllTime; double a[MaxNum]; int b[MaxNum]; int c[MaxNum]; int d[MaxNum]; void FCFS(); void SJF(); void FCFS() { int ProcessNum; cout<<" --------- 先来先服务算法"<

操作系统实验 FCFS和短作业优先SJF调度算法模拟

. 题目先来先服务FCFS和短作业优先SJF进程调度算法 姓名: 学号: 专业: 学院: 指导教师:林若宁 二零一八年十一月

一、实验目的 模拟单处理器系统的进程调度,分别采用短作业优先和先来先服务的进程调度算法作为进程设计算法,以加深对进程的概念及进程调度算法的理解. 二、实验内容 1. 短作业优先调度算法原理 短作业优先调度算法,是指对短作业或断进程优先调度的算法。它们可以分别可以用于作业调度和进程调度。短作业优先调度算法,是从后备队列中选择一个或若干个运行时间最短的作业,将它们调入内存运行。短进程优先调度算法,是从就绪队列中选出一个估计运行时间最短的进程,将处理机分配给它使它立即执行并一直执行到完成,或发生某事件而被阻塞放弃处理机时再重新调度。 2. 先来先服务调度算法原理 先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程,然后放入就绪队列。在进程调度中采用FCFS算法时,则每次调度是从就绪队列中选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。该进程一直运行到完成或发生某事件而阻塞后才放弃处理机。 三、程序设计 1.概要设计 程序包括主函数、FCFS算法函数、SJF算法函数、输出函数;主函数流程:输入文件中的数据—显示各进程数据—选择算法—调用相应算法的函数—输出结果 2.算法流程

SJF算法流程图:

3.详细设计 (1)定义一个结构体 typedef struct PCB { char job_id[10]; //作业ID float Arr_time; //到达时刻 float Fun_time; //估计运行时间 float Wait_time; //等待时间 float Start_time; //开始时刻 float Fin_time; //完成时刻 float Tur_time; //周转时间 float WTur_time; //带权周转时间 int Order; //优先标记 }list; (2)先来先服务算法函数 void fcfs(list *p,int count) //先来先服务算法{ list temp; //临时结构体变量int i; int j;

操作系统作业调度算法

操作系统上机测试作业调度算法算法 一、实验目的和要求(供参考) 1.掌握作业调度功能和调度程序常用算法。 2.掌握利用C语言设计实现不同调度策略的作业调度算法。 3.验证不同作业调度算法对性能的影响。 二、实验环境(供参考) 1.知识准备:学过进程管理、作业管理、处理机调度等章节的内容。 2.开发环境与工具: 硬件平台——个人计算机。 软件平台——C语言开发环境。 三、实验内容 用“先来先服务(FCFS)”算法和“最短作业优先(SJF)”算法模拟作业调度。 要求:按作业的到达顺序输入各作业需要的运行时间,按算法调度输出平均周转时间。 例如(FCFS),输入:8(到达时间0),5(到达时间2),7(到达时间3),1(到达时间6)J1 J2 J3 J4 0 8 13 20 21 输出:aver=(8+(13-2)+(20-3)+(21-6))/4=51/4 例如(SJF),输入:8(到达时间0),5(到达时间2),7(到达时间3),1(到达时间6)J1 J4 J2 J3 0 8 9 14 21 输出:aver=(8+(9-6)+(14-2)+(21-3))/4=42/4 注:输入的格式任意,只要输出平均周转时间即可。

四、代码(带注释) 1、先来先服务 实验结果(截图呈现) 代码: #include using namespace std; class Fcfs { private: int num[10]; //作业编号 double arriveTime[10]; //到达时间 double startTime[10]; //开始时间,进内存时间 double workTime[10]; //工作时间 double finishTime[10]; //完成时间 double cirTime[10]; //存放每一个作业的周转时间 //double freeTime[10]; //上一个作业已结束,但下一个作业还未到,存放这一段空闲时间 public: Fcfs(int n) //n为作业数目 { cout<<"默认第一个作业的到达时间为0。"<

基于遗传算法的流水车间调度问题

中文摘要 流水车间调度问题是研究多个工件在若干个机器上的加工次序的问题,有效的调度算法对企业提高生产效率有着重要作用。本文使用遗传算法求解流水车间调度问题,把一个染色体编码成若干个自然数,表示相应工件的排序权值;通过简单交换两个父代的若干相同位置的基因,产生能够继承父代优良特性的子代;并且采用均匀变异,更好地保持种群中的基因的多样性。实验表明,该方法能取得较好的效果。 关键字:遗传算法,流水车间调度方法,实数编码,基因链码,群体,适应度。

外文摘要 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.

各类作业调度算法

实验二作业调度实验 一. 目的要求: 用高级语言编写和调试一个或多个作业调度的模拟程序,以加深对作业调度算法的理解。 二. 例题:为单道批处理系统设计一个作业调度程序。 由于在单道批处理系统中,作业一投入运行,它就占有计算机的一切资源直到作业完成为止,因此调度作业时不必考虑它所需要的资源是否得到满足,它所占用的 CPU时限等因素。 作业调度算法:采用先来先服务(FCFS)调度算法,即按作业提交的先后次序进行调度。总是首先调度在系统中等待时间最长的作业。 每个作业由一个作业控制块JCB表示,JCB可以包含如下信息:作业名、提交时间、所需的运行时间、所需的资源、作业状态、链指针等等。 作业的状态可以是等待W(Wait)、运行R(Run)和完成F(Finish)三种状态之一。每个作业的最初状态总是等待W。 各个等待的作业按照提交时刻的先后次序排队,总是首先调度等待队列中队首的作业。 每个作业完成后要打印该作业的开始运行时刻、完成时刻、周转时间和带权周转时间,这一组作业完成后要计算并打印这组作业的平均周转时间、带权平均周转时间。 调度算法的流程图如下图所示。

三 . 实习题: 1、编写并调试一个单道处理系统的作业等待模拟程序。 作业等待算法:分别采用先来先服务(FCFS),最短作业优先(SJF)、响应比高者优先(HRN)的调度算法。 对每种调度算法都要求打印每个作业开始运行时刻、完成时刻、周转时间、带权周转时间,以及这组作业的平均周转时间及带权平均周转时间,以比较各种算法的优缺点。 2、编写并调度一个多道程序系统的作业调度模拟程序。

作业调度算法:采用基于先来先服务的调度算法。可以参考课本中的方法进行设计。 对于多道程序系统,要假定系统中具有的各种资源及数量、调度作业时必须考虑到每个作业的资源要求。 3、编写并调试一个多道程序系统的作业调度模拟程序。 作业调度算法:采用基于优先级的作业调度。 可以参考课本中的例子自行设计。 三 . 实验过程: 1、编写并调试一个单道处理系统的作业等待模拟程序。 先来先服务(FCFS): main.cpp: /* **先来先服作业调度算法模拟 */ #include #include #define MAX_SOURCE 1000 //资源总数(对于单通道的作业调度可以忽略系统资源问题) using namespace std; struct jobCB { string name; double subtime;//提交时间 double runtime;//运行时间 double source;//资源 char state;//进程状态 struct jobCB *next; //链指针 }*ready,*rail,*p; int length; double maxsource; double now_source; double allTi;//总周转时间 double allWi;//总带权周转时间 double time;//时钟 void init()

作业调度实验报告

实验二作业调度 一.实验题目 1、编写并调试一个单道处理系统的作业等待模拟程序。 作业调度算法:分别采用先来先服务(FCFS),最短作业优先(SJF)、响应比高者优先(HRN)的调度算法。 (1)先来先服务算法:按照作业提交给系统的先后顺序来挑选作业,先提交的先被挑选。 (2)最短作业优先算法:是以进入系统的作业所提出的“执行时间”为标准,总是优先选取执行时间最短的作业。 (3)响应比高者优先算法:是在每次调度前都要计算所有被选作业(在后备队列中)的响应比,然后选择响应比最高的作业执行。 2、编写并调度一个多道程序系统的作业调度模拟程序。 作业调度算法:采用基于先来先服务的调度算法。可以参考课本中的方法进行设计。 对于多道程序系统,要假定系统中具有的各种资源及数量、调度作业时必须考虑到每个作业的资源要求。 二.实验目的: 本实验要求用高级语言(C语言实验环境)编写和调试一个或多个作业调度的模拟程序,了解作业调度在操作系统中的作用,以加深对作业调度算法的理解 三 .实验过程 <一>单道处理系统作业调度 1)单道处理程序作业调度实验的源程序: 执行程序: 2)实验分析:

1、由于在单道批处理系统中,作业一投入运行,它就占有计算机的一切资源直到作业完成为止,因此调度作业时不必考虑它所需要的资源是否得到满足,它所占用的 CPU 时限等因素。 2、每个作业由一个作业控制块JCB 表示,JCB 可以包含如下信息:作业名、提交时间、所需的运行时间、所需的资源、作业状态、链指针等等。作业的状态可以是等待W(Wait)、运行R(Run)和完成F(Finish)三种状态之一。每个作业的最初状态总是等待W 。 3、对每种调度算法都要求打印每个作业开始运行时刻、完成时刻、周转时间、带权周转时间,以及这组作业的平均周转时间及带权平均周转时间。 3)流程图: 二.最短作业优先算法 三.高响应比算法 图一.先来先服务流程图 4)源程序: #include <> #include <> #include <> #define getpch(type) (type*)malloc(sizeof(type)) #define NULL 0 int n; 代替 代替

遗传算法在作业车间调度问题中的应用——先进制造管理作业

先进制造管理 报告 遗传算法在作业车间调度问题中的应用 专业:管理科学与工程 时间:2015年1月

遗传算法在作业车间调度问题中的应用 1作业车间调度问题 所谓生产调度,即对生产过程进行作业计划,作为一个关键模块,是整个先进生产制造系统实现管理技术、运筹方法、优化技术、自动化与计算机技术发展的核心,有效的调度方法和优化技术的研究与应用,是实现先进制造和提高生产效益的基础和关键。 作业车间调度(job-shop)问题可以表述为:设有N个工件在M台机器上加工,根据工件加工工艺的要求,每个工件使用机器的顺序及其每道工序所花时间已给定,调度问题的目标就是如何选择加工顺序使得总的加工时间最短最优。 前提假设: 1. 每一台机器每次只能加工一个工件,每一个工件在机器上的加工被成为一道工序。 2. 不同工件的加工工序可以不同; 3. 所有工件的工序数不大于设备数; 4. 每道工序必须在指定的某种设备上加工; 5. 任何作业没有抢先加工的优先权; 6. 在作业优化过程中既没有新的工件加入也没有取消的工件; 车间作业是指利用车间资源(如机床、刀具、夹具等)完成的某项任务。在实际生产中,这项任务可能是装配一种产品,也可能是完成一批工件的加工。而在本文中,为了研究方便,我们将这项任务限定为加工一批工件。在此基础上,可对车间作业调度问题进行一般性的描述:假定有多个工件,要经过多台机器加工。一个工件在一台机器上的加工程序称为一道“工序”,相应的加工时间称为该工序的“加工时间”。用事先给定的“加工路线”表示工件加工时技术上的约束,即工件的加工工艺过程。用“加工顺序”表示各台机器上各个工件加工的先后顺序。车间作业调度问题中,每个工件都有独特的加工路线。它所要解决的问题就是确定每台机器上不同工件的加工顺序,以及每个工件的所有工序的起始加工时间,以最优化某个性能指标。然而,车间调度是一个 NP-Hard 问题,运用穷举法又会大大增加计算量,所以考虑利用遗传算法求解。

处理器调度习题

处理器调度 选择题 ?当CPU执行操作系统代码时,则处理机处于( )。 ?A.执行态B.目态C.管态D.就绪态 ?( )是机器指令的扩充,是硬件的首次延伸,是加在硬件上的第一层软件。 ?A.系统调用B.操作系统C.内核D.特权指令 ?操作系统提供给程序员的接口是( )。 ?A.进程B.系统调用C.库函数D.B和C ?用户程序向系统提出使用外设的请求方式是( )。 ?A.作业申请B.原语C.系统调用D.I/O指令 ?当作业正常完成进入完成状态时,操作系统( )。 ?A.将输出该作业的结果并删除内存中的作业 ?B.将收回该作业的所占资源并输出结果 ?C.将收回该作业的所占资源及输出结果,并删除该作业 ?D.将收回该作业的所占资源及输出结果,并将它的控制块从当前的队列中删除 ?下列选项是关于作业和进程关系的描述,其中哪一个是不正确的( )。 ?A.作业的概念主要用在批处理系统中,而进程的概念则用在几乎所有的OS中。 ?B.作业是比进程低一级的概念。 ?C.一个作业至少由一个进程组成。 ?D.作业是用户向计算机提交任务的实体,而进程是完成用户任务的执行实体以及向系统申请分配资源的基本单位。 ?作业从后备作业到被调度程序选中的时间称为( )。 ?周转时间B.响应时间C.等待调度时间D.运行时间 ?设有三个作业J1,J2,J3,它们同时到达,运行时间分别为T1,T2,T3,且T1≤T2≤T3,若它们在一台处理机上按单道运行,采用短作业优先算法,则平均周转时间为( )。 ?A.T1+T2+T3 B.1/3(T1+T2+T3) ?C.T1+2/3T2+1/3T3 D.T1+1/3T2+2/3T3 ?从作业提交给系统到作业完成的时间间隔称为作业的( )。 ?A.中断时间B.等待时间C.周转时间D.响应时间 ?设有四个作业同时到达,每个作业执行时间均为2 h,它们在一台处理机上按单道方式运行,则平均周转时间为( )。 ?A.1 h B.5 h C.2.5 h D.8 h ?FCFS调度算法有利于( )。 ?A.长作业和CPU繁忙型作业B.长作业和I/O繁忙型作业 ?C.短作业和CPU繁忙型作业D.短作业和I/O繁忙型作业 ?下列哪种说法不是SJ(P)F调度算法的缺点( )。 ?A.对于长作业(进程)不利 ?B.未考虑作业(进程)的紧迫程度 ?C.不能有效降低作业(进程)的平均等待时间 ?D.由于根据的是用户提供的估计执行时间,因此不一定真正做到短而优先。 ?选择排队进程中等待时间最长的进程被优先调度,该调度算法是( )。 ?A.先来先服务调度算法B.短进程优先调度算法 ?C.优先权调度算法D.高响应比优先调度算法 ?在采用动态优先权的优先权调度算法中,如果所有进程都具有相同优先权初值,则此时的优先权调度算法实际上和( )相同。 ?A.先来先服务调度算法B.短进程优先调度算法 ?C.时间片轮转调度算法D.长进程优先调度算法

02流水线车间生产调度的遗传算法MATLAB源代码

流水线车间生产调度的遗传算法MATLAB源代码n个任务在流水线上进行m个阶段的加工,每一阶段至少有一台机器且至少有一个阶段存在多台机器,并且同一阶段上各机器的处理性能相同,在每一阶段各任务均要完成一道工序,各任务的每道工序可以在相应阶段上的任意一台机器上加工,已知任务各道工序的处理时间,要求确定所有任务的排序以及每一阶段上机器的分配情况,使得调度指标(一般求Makespan)最小。 function [Zp,Y1p,Y2p,Y3p,Xp,LC1,LC2]=JSPGA(M,N,Pm,T,P) %-------------------------------------------------------------------------- % JSPGA、m % 流水线型车间作业调度遗传算法 % GreenSim团队——专业级算法设计&代写程序 % 欢迎访问GreenSim团队主页→ %-------------------------------------------------------------------------- % 输入参数列表 % M 遗传进化迭代次数 % N 种群规模(取偶数) % Pm 变异概率 % T m×n的矩阵,存储m个工件n个工序的加工时间 % P 1×n的向量,n个工序中,每一个工序所具有的机床数目 % 输出参数列表 % Zp 最优的Makespan值 % Y1p 最优方案中,各工件各工序的开始时刻,可根据它绘出甘特图 % Y2p 最优方案中,各工件各工序的结束时刻,可根据它绘出甘特图 % Y3p 最优方案中,各工件各工序使用的机器编号 % Xp 最优决策变量的值,决策变量就是一个实数编码的m×n矩阵 % LC1 收敛曲线1,各代最优个体适应值的记录 % LC2 收敛曲线2,各代群体平均适应值的记录 % 最后,程序还将绘出三副图片:两条收敛曲线图与甘特图(各工件的调度时序图) %第一步:变量初始化 [m,n]=size(T);%m就是总工件数,n就是总工序数 Xp=zeros(m,n);%最优决策变量 LC1=zeros(1,M);%收敛曲线1 LC2=zeros(1,N);%收敛曲线2 %第二步:随机产生初始种群 farm=cell(1,N);%采用细胞结构存储种群 for k=1:N

相关文档
最新文档