置换流水车间调度问题的MATLAB求解

合集下载

求解置换流水车间调度问题的memetic算法

求解置换流水车间调度问题的memetic算法

求解置换流水车间调度问题的memetic算法
Memetic算法是一种基于遗传算法和局部搜索算法结合的混合
算法,在求解置换流水车间调度问题时,可以通过将遗传算法和局部搜索算法结合,以提高求解效率。

步骤一:初始化参数
首先,需要初始化算法的参数,包括种群规模、变异率、交叉率、迭代次数等。

步骤二:初始化种群
然后,初始化种群,即产生一组初始解,用于进行后续的搜索。

步骤三:进行遗传算法迭代
接着,进行遗传算法的迭代,即对当前种群进行变异、交叉、选择等操作,以获得新的种群,并计算当前种群的适应度。

步骤四:进行局部搜索
然后,对当前种群中的某个解进行局部搜索,以求得更优的解。

步骤五:更新种群
最后,将局部搜索得到的更优解替换原有解,更新当前种群,并重复以上步骤,直至达到迭代次数为止。

matlab车辆调度优化算法

matlab车辆调度优化算法

车辆调度优化算法在现代物流和运输领域中扮演着重要的角色。

随着城市化进程的加快和人们对快速高效货运的需求不断增加,车辆调度优化算法的研究和应用变得尤为重要。

其中,matlab作为一种强大的计算工具,被广泛应用于车辆调度优化算法的研究和实践中。

本文将从以下几个方面对matlab车辆调度优化算法进行探讨。

一、matlab在车辆调度优化算法中的应用概述1. Matlab在数学建模方面的优势Matlab作为一种强大的数学软件工具,拥有丰富的数学函数库和强大的矩阵运算能力,能够快速高效地进行数学建模和优化计算。

在车辆调度优化算法中,这种优势使得Matlab成为一种理想的工具。

2. Matlab在算法研究和实现中的应用Matlab提供了丰富的算法工具箱,包括遗传算法、模拟退火算法、粒子裙优化算法等常用的优化算法,这些算法的灵活性和易用性使得Matlab成为车辆调度优化算法研究和实现的理想选择。

二、matlab在车辆路径规划中的应用1. 车辆路径规划的基本问题和挑战车辆路径规划是车辆调度优化算法中的重要问题之一,它涉及到如何合理安排车辆的行驶路线,以最大限度地减少行驶距离和时间。

这是一个 NP 难题,需要运用各种优化算法来求解。

2. Matlab在车辆路径规划中的具体应用Matlab提供了丰富的优化算法工具箱,可以很方便地用来解决车辆路径规划中的优化问题。

可以利用遗传算法来对车辆路径进行优化,或者利用模拟退火算法来寻找最优路径。

三、matlab在车辆调度问题中的应用实例1. 基于Matlab的车辆调度优化算法研究以某物流公司的货物配送路线为例,通过Matlab对车辆调度优化算法进行研究和实现,能够有效降低运输成本,提高运输效率。

2. 基于Matlab的算法实现与性能评测通过实际案例,可以用Matlab对车辆调度优化算法进行实现,并进行性能评测,评估算法的优劣,为实际应用提供参考。

matlab在车辆调度优化算法中具有重要的应用价值,并且在实际的研究和实践中得到了广泛的应用。

matlab生产调度问题及其优化算法

matlab生产调度问题及其优化算法

生产调度问题及其优化算法(采用遗传算法与MATLAB编程)信息014 孙卓明二零零三年八月十四日生产调度问题及其优化算法背景及摘要这是一个典型的Job-Shop动态排序问题。

目前调度问题的理论研究成果主要集中在以Job-Shop问题为代表的基于最小化完工时间的调度问题上。

一个复杂的制造系统不仅可能涉及到成千上万道车间调度工序,而且工序的变更又可能导致相当大的调度规模。

解空间容量巨大,N个工件、M台机器的问题包含M(N)!种排列。

由于问题的连环嵌套性,使得用图解方法也变得不切实际。

传统的运筹学方法,即便在单目标优化的静态调度问题中也难以有效应用。

本文给出三个模型。

首先通过贪婪法手工求得本问题最优解,既而通过编解码程序随机模拟优化方案得出最优解。

最后采用现代进化算法中有代表性发展优势的遗传算法。

文章有针对性地选取遗传算法关键环节的适宜方法,采用MATLAB 软件实现算法模拟,得出优化方案,并与计算机随机模拟结果加以比较显示出遗传算法之优化效果。

对车间调度系列问题的有效解决具有一定参考和借鉴价值。

一.问题重述某重型机械厂产品都是单件性的,其中有一车间共有A,B,C,D四种不同设备,现接受6件产品的加工任务,每件产品接受的程序在指定的设备上加工,条件:1、每件产品必须按规定的工序加工,不得颠倒;2、每台设备在同一时间只能担任一项任务。

(每件产品的每个工序为一个任务)问题:做出生产安排,希望在尽可能短的时间里,完成所接受的全部任务。

要求:给出每台设备承担任务的时间表。

注:在上面,机器 A,B,C,D 即为机器 1,2,3,4,程序中以数字1,2,3,4表示,说明时则用A,B,C,D二.模型假设1.每一时刻,每台机器只能加工一个工件,且每个工件只能被一台机器所加工 ,同时加工过程为不间断; 2.所有机器均同时开工,且工件从机器I 到机器J 的转移过程时间损耗不计; 3.各工件必须按工艺路线以指定的次序在机器上加工多次; 4.操作允许等待,即前一操作未完成,则后面的操作需要等待,可用资源有限。

matlab鸟群算法求解车间调度问题详解及实现源码

matlab鸟群算法求解车间调度问题详解及实现源码

matlab鸟群算法求解车间调度问题详解及实现源码⽬录⼀、车间调度简介1 车间调度定义2 传统作业车间调度3 柔性作业车间调度⼆、蝴蝶优化算法(MBO)简介1 介绍2 ⾹味3 具体算法三、部分源代码五、matlab版本及参考⽂献⼀、车间调度简介1 车间调度定义车间调度是指根据产品制造的合理需求分配加⼯车间顺序,从⽽达到合理利⽤产品制造资源、提⾼企业经济效益的⽬的。

车间调度问题从数学上可以描述为有n个待加⼯的零件要在m台机器上加⼯。

问题需要满⾜的条件包括每个零件的各道⼯序使⽤每台机器不多于1次,每个零件都按照⼀定的顺序进⾏加⼯。

2 传统作业车间调度传统作业车间带调度实例有若⼲⼯件,每个⼯件有若⼲⼯序,有多个加⼯机器,但是每道⼯序只能在⼀台机器上加⼯。

对应到上⾯表格中的实例就是,两个⼯件,⼯件J1有三道⼯序,⼯序Q11只能在M3上加⼯,加⼯时间是5⼩时。

约束是对于⼀个⼯件来说,⼯序的相对顺序不能变。

O11->O12->O13。

每时刻,每个⼯件只能在⼀台机器上加⼯;每个机器上只能有⼀个⼯件。

调度的任务则是安排出⼯序的加⼯顺序,加⼯顺序确定了,因为每道⼯序只有⼀台机器可⽤,加⼯的机器也就确定了。

调度的⽬的是总的完⼯时间最短(也可以是其他⽬标)。

举个例⼦,⽐如确定了O21->O22->O11->O23->O12->O13的加⼯顺序之后,我们就可以根据加⼯机器的约束,计算出总的加⼯时间。

M2加⼯O21消耗6⼩时,⼯件J2当前加⼯时间6⼩时。

M1加⼯O22消耗9⼩时,⼯件J2当前加⼯时间6+9=15⼩时。

M3加⼯O11消耗5⼩时,⼯件J1当前加⼯时间5⼩时。

M4加⼯O23消耗7⼩时,⼯件J2加⼯时间15+7=22⼩时。

M1加⼯O12消耗11⼩时,但是要等M1加⼯完O22之后才开始加⼯O12,所以⼯件J1的当前加⼯时间为max(5,9)+11=20⼩时。

M5加⼯O13消耗8⼩时,⼯件J2加⼯时间20+8=28⼩时。

MATLAB粒子群算法工具箱求解水电站优化调度问题

MATLAB粒子群算法工具箱求解水电站优化调度问题

文章编号:1007 2284(2009)01 0114 03MATLAB 粒子群算法工具箱求解水电站优化调度问题芮 钧1,2,陈守伦1(1.河海大学水利水电学院,江苏南京210098; 2.国网南京自动化研究院,江苏南京210003)摘 要:粒子群算法因其原理简单、易于编程、适于并行计算等优点而得到了广泛的应用。

本文探讨和分析了M at lab 粒子群算法工具箱,并提出了基于该工具箱来实现水电站优化调度计算的方法。

计算实例表明,M atlab 粒子群算法工具箱可以很好地用于解决水电站优化调度问题,可获得比动态规划算法更好的精度。

关键词:M atlab;粒子群算法;水电站;优化调度 中图分类号:T V697.1 文献标识码:AOptimal Dispatch of Hydropower Stations by Using Matlab Particle S warm Algorithm ToolboxesRUI Jun 1,2,C HEN Shou lun 1(1.Colleg e o f Water Co nser vancy and H ydro po wer Eng ineering,H ohai U niver sity ,N anjing 210098,China;2.N anjing A utomation Resea rch I nstit ute,Nanjing 210003,China)Abstract:Because of its simplicity ,generality and parallelism,PSO (P article Sw arm Optimization)is w idely used.T he M atlab par ti cle sw ar m alg or ithm too lbox is ana lyzed,and a metho d based o n it is also pr oposed to solve the pr oblem of optimal dispatch o f hy dr o pow er stations.Pr actical application indicates that t he M atlab par ticle swar m algo rithm too lbox can solve pr oblems mo re precisely than dynamic prog ramming.Key words:M atlab;hy dr opow er statio n;optimal reg ulatio n;pa rticle sw arm o pt imizatio n algo rit hm收稿日期:2008 03 01作者简介:芮 钧,(1978 ),男,工程师、博士研究生,主要从事梯级水电站群优化调度及自动发电控制研究。

解决多目标置换流水车间问题的改进MDPSO算法

解决多目标置换流水车间问题的改进MDPSO算法

解决多目标置换流水车间问题的改进MDPSO算法摘要:置换流水车间调度问题(flow-shop scheduling problem)是生产调度问题的一个子问题,是NP-hard组合优化离散问题之一,具有很强的实际研究意义。

在现代的生产制造过程中,单一的目标优化已经满足不了日益发展的工业需求,所以对多目标流水车间调度问题的研究显得尤为重要,已在实际生产中得到广泛应用。

本文在多目标进化算法粒子群算法PSO的基础上设计了一种多目标进化算法离散多目标粒子群优化算法MDPSO以求解该问题,用 MATLAB 编程实现该算法并对几个标准多目标flowshop 算例进行仿真测试。

实验结果表明,提出的算法比已有的NSGA_II算法具有更好的优化性能。

关键词:多目标flowshop问题;MDPSO算法;NSGA-II;Improved MDPSO method for Multi-objective flow-shop scheduling problemWu Ye, Li Xiaoyu, Yao Jun(Shanghai zhengfan technology co. Ltd , School of Mechatronics and Automation, Shanghai University, Shanghai, China)AbstractMulti-objective flow-shop scheduling problem is a sub problem of production scheduling problem. It is one of the discrete problems of NP-hard optimization and has strong theoretical and actual purpose.In the modern production and manufacturing process, single-objective optimization can’t meet the growing industrial demand, sothe research on the scheduling problem of multi-objective flow-shop is particularly important. This paper designs a Multi-objective evolutionary algorithm based on the PSO to solve this problem. It was implemented by MATLAB and simulation on a kind of benchmark functions. The experimental results show that the proposed algorithm hasa better optimization performance than the NSGA – II.Keywords: Multi-objective flow-shop scheduling problem; MDPSO; NSGA-II1 引言在现实生活中,许多问题都需要寻找一个最优决策或者是最佳解决方案,这类问题被统称为优化问题,仅有一个目标函数的最优化问题称为单目标优化问题,目标函数超过一个的最优化问题称为多目标优化问题(Multi-objective Optimization Problems,MOP)[1]。

置换流水车间调度问题的MATLAB求解

置换流水车间调度问题的MATLAB求解

置换流⽔车间调度问题的MATLAB求解物流运筹实务课程设计题⽬:置换流⽔车间调度问题的MATLAB求解置换流⽔车间调度问题的MATLAB求解⽬录⼀、前⾔ (5)⼆、问题描述 (6)三、算法设计 (7)四、实验结果 (15)摘要⾃从Johnson 1954年发表第⼀篇关于流⽔车间调度问题的⽂章以来.流⽔车间调度问题引起了许多学者的关注。

安排合理有效的⽣产调度是⽣产活动能井然有序开展,⽣产资源得到最佳配置,运作过程简明流畅的有⼒保证。

流⽔车间调度问题是许多实际流⽔线⽣产调度问题的简化模型。

它⽆论是在离散制造⼯业还是在流程⼯业中都具有⼴泛的应⽤。

因此,对进⾏研究具有重要的理论意义和⼯程价值。

流⽔线调度问题中⼀个⾮常典型的问题,⽽置换流⽔线调度问题作为FSP 问题的⼦问题,是⼀个著名的组合优化问题。

该问题是⼀个典型的NP难问题,也是⽣产管理的核⼼内容。

随着⽣产规模的扩⼤,流⽔线调度问题的优化对提⾼资源利⽤率的作⽤越来越⼤,因此对其研究具有重要的理论和现实意义。

关键字:流⽔车间,单件⼩批量⽣产,jsp模型,Matlab前⾔企业资源的合理配置和优化利⽤很⼤程度上体现在车间⼀层的⽣产活动中,所以加强车间层的⽣产计划与控制⼀直在企业⽣产经营活动中占有⼗分重要的地位。

车间⽣产计划与控制的核⼼理论是调度理论。

车间调度问题是⼀类重要的组合优化问题。

为适应订货式、多品种、⼩批量⽣产的需要,引进了置换流⽔车间调度概念。

在置换流⽔车间调度优化后,可以避免或⼤⼤减少流程⼯作时间、提⾼⽣产效率。

因此,研究成组技术下车间调度问题是很有必要的。

⽣产调度,即对⽣产过程进⾏作业计划,是整个个先进⽣产制造系统实现管理技术、优化技术、⽩动化与计算机技术发展的核⼼。

置换流⽔车间调度问题是许多实际⽣产调度问题的简化模型。

⽣产计划与调度直接关系着企业的产出效率和⽣产成本,有效的计划与调度算法能最⼤限度地提⾼企业的效益。

调度问题是组合优化问题,属于NP问题,难以⽤常规⼒⼀法求解。

粒子群算法解决置换流水车间调度问题方法综述

粒子群算法解决置换流水车间调度问题方法综述
Ke o d : a t l wa m tm ia i n Al o i m ; e u a i n Fl w h p S h d l g P o - y W r s P ri eS r Op i z to g r t c h P r t t o S o c e ui r b m o n
lsfrsaceso ov i ego igaddvl igop rceSO not i i grh .eet o erhr tsle t t rwn ee pn a i WI i z o a oi mR cn— to e w hh n o f tl T p m a nl t t - l, eea t m to s n e f rhs rbe .o rm t te ut r v l m n p r c w r y t r r ul eh d di a o ip olmT o oe h f r e eo e tf at l s am h e oo f a ds t p h d e p o ie ot i i loim n ov emuao f wso ceuigpolm dpoi e rne o e piz o a rh adsl p r tin o hpshdl m a n g t t e t l n rbe sa rv er eec fr — n d f d s nn e e g rh smm r e em to dpe fr ahs pi li epo ut nsh d l g i i b t r oi m, g g t a t l u ai st h d a o t o c e s vn t rd ci e ui z he s d e t no gh o c n
机 械 设 计 与 制 造
8 4
文章 编 号 :0 1 39 (0 2 0 — 0 4 0 10 — 9 7 2 1 )8 0 8 — 3
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

物流运筹实务课程设计题目:置换流水车间调度问题的MATLAB求解置换流水车间调度问题的MATLAB求解目录一、前言 (5)二、问题描述 (6)三、算法设计 (7)四、实验结果 (15)摘要自从Johnson 1954年发表第一篇关于流水车间调度问题的文章以来.流水车间调度问题引起了许多学者的关注。

安排合理有效的生产调度是生产活动能井然有序开展,生产资源得到最佳配置,运作过程简明流畅的有力保证。

流水车间调度问题是许多实际流水线生产调度问题的简化模型。

它无论是在离散制造工业还是在流程工业中都具有广泛的应用。

因此,对进行研究具有重要的理论意义和工程价值。

流水线调度问题中一个非常典型的问题,而置换流水线调度问题作为FSP问题的子问题,是一个著名的组合优化问题。

该问题是一个典型的NP难问题,也是生产管理的核心内容。

随着生产规模的扩大,流水线调度问题的优化对提高资源利用率的作用越来越大,因此对其研究具有重要的理论和现实意义。

关键字:流水车间,单件小批量生产,jsp模型,Matlab前言企业资源的合理配置和优化利用很大程度上体现在车间一层的生产活动中,所以加强车间层的生产计划与控制一直在企业生产经营活动中占有十分重要的地位。

车间生产计划与控制的核心理论是调度理论。

车间调度问题是一类重要的组合优化问题。

为适应订货式、多品种、小批量生产的需要,引进了置换流水车间调度概念。

在置换流水车间调度优化后,可以避免或大大减少流程工作时间、提高生产效率。

因此,研究成组技术下车间调度问题是很有必要的。

生产调度,即对生产过程进行作业计划,是整个个先进生产制造系统实现管理技术、优化技术、白动化与计算机技术发展的核心。

置换流水车间调度问题是许多实际生产调度问题的简化模型。

生产计划与调度直接关系着企业的产出效率和生产成本,有效的计划与调度算法能最大限度地提高企业的效益。

调度问题是组合优化问题,属于NP问题,难以用常规力一法求解。

随着制造业的快速发展,大规模定制生产、全球化制造等思想的提出,使车间调度问题呈现出以下的新特点:约束条件多,时间复杂度高,空问复杂度高。

这将导致在许多情况下,求解所建立的数学模型的快速性无法满足,如果采用适度线形化处理之后求解,将会因简化太多而使结果严承失真。

所以需选择功能强大的数值计算工具来实现这一问题的求解。

MATLAB恰好提供了这样的平台。

MATLAB是一个高度集成的系统,集科学计算、图像处理、声音处理于一体,具有极高的编程效率。

典型JSP模型分析与Matlab的应用结合使流水车间调度问题迎刃而解。

最大完工时间是生产调度中最常用的性能度量指标之一,最大完工时间越短,则说明产品总的生产周期越短,生产能力越大;此类调度问题的优化研究有助于提高企业的生产效率与资源利用率。

一、问题描述n m流水车间调度问题通常可以描述为个工件要在台机器上加工,m每个工件有道工序,每道工序都要在不同的机器上加工,所有工件的加工顺序都相同,问题的目标是确定每台机器上工件的加工顺序及开工时间,使得特定的性能指标最优。

置换流水车间调度问题PFSP是对流水车间调度问题的进一步约束,即约定每台机器上所有工件的加工顺序相同,其解空间的规模为,远远小于流水车间调度问题的规模!n。

n(!)m本次课程实验主要研究PFSP中的最小化最大完工时间问题,利用F prmu C三元组表示法()求解Carlier (1978)提出的8个算例、以及maxReeves (1995)提出的21个算。

由于三台机器以上的调度问题被证明是NP 难问题,对于大规模的调度,至今仍未出现求解最优的方法,常常采用启发式算法来求解近优解。

本案例主要采用instance car2进行求解。

案例:某产品,需要经过4道工序对13个工件进行加工,这13个工件的生产流程是一样的。

加工时间表见下:表4-3 某产品加工时间表12345678910111213tj178963021457321865821420778569653212457tj293021425789653214254786532112412345678tj321475320124752147532145763214257854123tj4320142753214528653514527536214528888999计算步骤如下:首先确定n/m/F/C max 的最大完工时间为:1,11)1,(c j t j = k=2,...,m k j t k j c i j c 1)1,(),(11+-=i=2,...,n111)1,(c )1,(c i j i t j j +=- kj i i i i t k j c k j k j +-=-)}1,();,(c max{),(c 1工加则 C max =),(c nm j 二、算法设计(一)假设工件在机器上的加工顺序是相同的,同时假定各工件准备就绪,机器一开动就投入生产,开工时间为0,则最大完工时间等于最大流程时间。

同时3台机器以上的流水车间调度是NP 难问题,所以本文只考虑了2台、3台机器的情况,解决3台机器以上的问题方法也可运用人工智能算法,解的质量更高,但因该类算法需良好的软件编程能力,故本文不加探究。

n 个工件在m 台机器上的加工顺序相同。

工件在机器上的加工时间是给定的。

问题的目标是求n 个工件在每合机器上的最大完工时间等于最大流程时间。

这种流水线调度问题要在满足以下两个约束条件的前提下,使得加工完所有的工件所花的时间尽可能地少:1、工件约束每个工件在每台机器上恰好加工一次,每个工件在各机器上加工顺序相同。

不失一般性,假设各工件按机器1至m 的顺序进行加工。

各工件在各机器上的加工时间已知。

2、机器约束每台机器在任何时刻至多加工一个工件,每台机器加工的各工件的顺序相同。

置换流水线调度问题实质是如何调整加工工件的序列,提高机器的利用率的问题,即在同一时刻正在加工的机攫数越多,机器利用率越大口根据该原则,我们根据下面规则安排工件的加工顺序:(l)在前面机器加工时间较短、后面机器加工时间较长的工件,安排在序列前。

这样可以使得后面的机器尽快参加工作,并且后面的机器不需要作空等待,(2)机器加工时间较为平均且加工时间较长的工件,安排在序列的中部。

这样可以使得各个机器在中期的时候都能得到运作。

(3〕前面加工时间较长,后面加一〔时间较短的上件女排在序列尾部。

这样使得前面的机器能“延迟”完工,后面的机器尽快完工。

(二)利用Matlab软件对上面的案例进行求解,编程如下:软件输出相应的结果,如下:clc; clear all;temp=[ 0 456 1 856 2 963 3 6960 789 1 930 2 21 3 3200 630 1 214 2 475 3 1420 214 1 257 2 320 3 7530 573 1 896 2 124 3 2140 218 1 532 2 752 3 5280 653 1 142 2 147 3 6530 214 1 547 2 532 3 2140 204 1 865 2 145 3 5270 785 1 321 2 763 3 5360 696 1 124 2 214 3 2140 532 1 12 2 257 3 5280 12 1 345 2 854 3 8880 457 1 678 2 123 3 999];T=temp(:,2:2:end);[n,m]=size(T); %n为工件数,m为机器数txm=[]; %所有m-1个两台虚拟机器问题的加工时间矩阵Cmax=[]; %所有m-1个两台虚拟机器问题的总完工时间TXY=[]; %存放m-1个加工顺序ticfor i=1:m-1for j=1:ntx(j,1)=sum(T(j,1:i)); %第一台虚拟机器上的加工时间tx(j,2)=sum(T(j,m+1-i:m)); %第二台虚拟机器上的加工时间end[cmax,xy]=johnson(tx,T,n,m); %调用Johnson 算法函数Cmax =[ Cmax,cmax];txm=[txm,tx];TXY=[TXY,xy];endtxm, Cmax, TXYoptim=min(Cmax) %近似最优总完工时间ind=find(Cmax ==optim);optim_seq=TXY(:,ind)' %近似最优加工顺序rumTime=tocMatlab运行:txm =456 696 1312 1659 2275 2515789 320 1719 341 1740 1271630 142 844 617 1319 831214 753 471 1073 791 1330573 214 1469 338 1593 1234218 528 750 1280 1502 1812653 653 795 800 942 942214 214 761 746 1293 1293204 527 1069 6721214 1537785 536 1106 1299 1869 1620696 214 820 428 1034 552532 528 544 785 801 79712 888 357 1742 1211 2087457 999 1135 1122 1258 1800Cmax =8679 8423 8667TXY =13 13 49 4 74 12 138 6 96 7 141 10 814 1 67 14 110 8 1012 9 22 3 55 11 311 2 123 5 11optim =8423optim_seq =13 4 12 6 7 10 1 14 8 9 3 11 2 5(三)绘制甘特图编程如下:% 已知nbjobs, nbmachines, P% 通过computeCmax计算完工时间矩阵,然后画甘特图temp=[ 0 456 1 856 2 963 3 6960 789 1 930 2 21 3 3200 630 1 214 2 475 3 1420 214 1 257 2 320 3 7530 573 1 896 2 124 3 2140 218 1 532 2 752 3 5280 653 1 142 2 147 3 6530 214 1 547 2 532 3 2140 204 1 865 2 145 3 5270 785 1 321 2 763 3 5360 696 1 124 2 214 3 2140 532 1 12 2 257 3 5280 12 1 345 2 854 3 8880 457 1 678 2 123 3 999];P=temp(:,2:2:end);nbjobs=14;nbmachines=4;% 给定工件的加工顺序,计算完工时间,进而求makespanjobOrder=[ 13 4 12 6 7 10 1 14 8 9 3 11 2 5];C=zeros(nbjobs,nbmachines); % 完工时间矩阵%% 第一道工序,工件的完工时间C(jobOrder(1),1)=P(jobOrder(1),1); % 第一个工件的完工时间for i=2:nbjobs % 在加工顺序里面的位置% 第一道工序上,上一个工件加工完下一个工件才可以加工C(jobOrder(i),1)=C(jobOrder(i-1),1)+P(jobOrder(i),1);end%% 其余工序,工件的完工时间for j=2:nbmachinesC(jobOrder(1),j)=C(jobOrder(1),j-1)+P(jobOrder(1),j);for i=2:nbjobs% 在上道工序加工完,且前一个工件加工完,才可以加工C(jobOrder(i),j)=max(C(jobOrder(i),j-1),C(jobOrder(i-1),j))+P(jobOr der(i),j);endendCmax=max(C(:,nbmachines)); % Cmaxfigure_handle=figure;hold on;% Create titletitle(['置换流水车间调度甘特图(Cmax= ',num2str(Cmax),')'],...'FontWeight','bold','FontSize',12);xlabel('时间');ymax=nbmachines+1;xmax=Cmax;axis([0 xmax 0 ymax]);%--------------------------------------------------------------------------YLabel=cell(ymax,1);y=ymax;for j=1:nbmachinesYLabel{y}=['M' int2str(j)];y=y-1;endset(gca,'Ygrid','on','YTickLabel',YLabel,'YTick',0:ymax);%%hi=0.7;nb=1; % machineyi=ymax-1;for j=1:nbmachinesfor i=1:nbjobsxi=C(jobOrder(i), j)-P(jobOrder(i),j);wi=P(jobOrder(i), j);rectangle('Position',[xi,yi,wi,hi]);text(xi+0.5*wi,yi+0.5*hi,int2str(jobOrder(i)),'HorizontalAlignment',...'center');endyi=yi-1;nb=nb+1;endyi=yi-1;hold off;三、实验结果1、根据上面matlab的求解得到以下实验结果:最优排序为13 4 12 6 7 10 1 14 8 9 3 11 25min(Cmax)= 84232、甘特图如下所示:四、流水线型车间作业调度问题遗传算法MATLAB源码流水线型车间作业调度问题可以描述如下:n个任务在流水线上进行m个阶段的加工,每一阶段至少有一台机器且至少有一个阶段存在多台机器,并且同一阶段上各机器的处理性能相同,在每一阶段各任务均要完成一道工序,各任务的每道工序可以在相应阶段上的任意一台机器上加工,已知任务各道工序的处理时间,要求确定所有任务的排序以及每一阶段上机器的分配情况,使得调度指标(一般求Makespan)最小。

相关文档
最新文档