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

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

物流运筹实务课程设计

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

目录

一、前言 (5)

二、问题描述 (6)

三、算法设计 (7)

四、实验结果 (15)

摘要

自从Johnson 1954年发表第一篇关于流水车间调度问题的文章以来.流水车间调度问题引起了许多学者的关注。安排合理有效的生产调度是生产活动能井然有序开展,生产资源得到最佳配置,运作过程简明流畅的有力保证。流水车间调度问题是许多实际流水线生产调度问题的简化模型。它无论是在离散制造工业还是在流程工业中都具有广泛的应用。因此,对进行研究具有重要的理论意义和工程价值。流水线调度问题中一个非常典型的问题,而置换流水线调度问题作为FSP 问题的子问题,是一个著名的组合优化问题。该问题是一个典型的NP难问题,也是生产管理的核心内容。随着生产规模的扩大,流水线调度问题的优化对提高资源利用率的作用越来越大,因此对其研究具有重要的理论和现实意义。

关键字:流水车间,单件小批量生产,jsp模型,Matlab

前言

企业资源的合理配置和优化利用很大程度上体现在车间一层的生产活动中,所以加强车间层的生产计划与控制一直在企业生产经营活动中占有十分重要的地位。车间生产计划与控制的核心理论是调度理论。车间调度问题是一类重要的组合优化问题。为适应订货式、多品种、小批量生产的需要,引进了置换流水车间调度概念。在置换流水车间调度优化后,可以避免或大大减少流程工作时间、提高生产效率。因此,研究成组技术下车间调度问题是很有必要的。生产调度,即对生产过程进行作业计划,是整个个先进生产制造系统实现管理技术、优化技术、白动化与计算机技术发展的核心。置换流水车间调度问题是许多实际生产调度问题的简化模型。生产计划与调度直接关系着企业的产出效率和生产成本,有效的计划与调度算法能最大限度地提高企业的效益。调度问题是组合优化问题,属于NP问题,难以用常规力一法求解。随着制造业的快速发展,大规模定制生产、全球化

制造等思想的提出,使车间调度问题呈现出以下的新特点:约束条件多,时间复杂度高,空问复杂度高。这将导致在许多情况下,求解所建立的数学模型的快速性无法满足,如果采用适度线形化处理之后求解,将会因简化太多而使结果严承失真。所以需选择功能强大的数值计算工具来实现这一问题的求解。MATLAB恰好提供了这样的平台。MATLAB是一个高度集成的系统,集科学计算、图像处理、声音处理于一体,具有极高的编程效率。典型JSP模型分析与Matlab的应用结合使流水车间调度问题迎刃而解。最大完工时间是生产调度中最常用的性能度量指标之一,最大完工时间越短,则说明产品总的生产周期越短,生产能力越大;此类调度问题的优化研究有助于提高企业的生产效率与资源利用率。

一、问题描述

流水车间调度问题通常可以描述为n个工件要在m台机器上加工,每个工件有m道工序,每道工序都要在不同的机器上加工,所有工件的加工顺序都相同,问题的目标是确定每台机器上工件的加工顺序及开工时间,使得特定的性能指标最优。置换流水车间调度问题PFSP是对流水车间调度问题的进一步约束,即约定每台机器上所有工件的加工顺序相同,其解空间的规模为!n,远远小于流水车间调度问题的规模(!)m

n。

本次课程实验主要研究PFSP中的最小化最大完工时间问题,利用三元组表示

F prmu C)求解Carlier (1978)提出的8个算例、以及Reeves (1995)提法(

max

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

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

表4-3 某产品加工时间表

计算步骤如下:首先确定n/m/F/C max 的最大完工时间为: 1,11

)1,(c j t j =

k j t k j c i j c 1

)1,(),(11+-= k=2,...,m

111)1,(c )1,(c i

j i t j j +=- i=2,...,n

k j i i i i

t k j c k j k j +-=-)}1,();,(c max{),(c 1

则 C max =),(c n m j

二、算法设计 (一)

假设工件在机器上的加工顺序是相同的,同时假定各工件准备就绪,机器一开动就投入生产,开工时间为0,则最大完工时间等于最大流程时间。同时3台机器以上的流水车间调度是NP 难问题,所以本文只考虑了2台、3台机器的情况,解决3台机器以上的问题方法也可运用人工智能算法,解的质量更高,但因该类算法需良好的软件编程能力,故本文不加探究。n 个工件在m 台机器上的加工顺序相同。工件在机器上的加工时间是给定的。问题的目标是求n 个工件在每合机器上的最大完工时间等于最大流程时间。这种流水线调度问题要在满足以下两个约束条件的前提下,使得加工完所有 的工件所花的时间尽可能地少:

1、工件约束

每个工件在每台机器上恰好加工一次,每个工件在各机器上加工顺序相同。不失一般性,假设各工件按机

器1至m 的顺序进行加工。各工件在各机器上的加工时间已知。

2、机器约束

每台机器在任何时刻至多加工一个工件,每台机器加工的各工件的顺序相同。 置换流水线调度问题实质是如何调整加工工件的序列,提高机器的利用率的

问题,即在同一时刻正在加工的机攫数越多,机器利用率越大口根据该原则,我们根据下面规则安排

工件的加工顺序:

(l)在前面机器加工时间较短、后面机器加工时间较长的工件,安排在序列前。这样可以使得后面的机器尽快参加工作,并且后面的机器不需要作空等待,

(2)机器加工时间较为平均且加工时间较长的工件,安排在序列的中部。这样可以使得各个机器在中期的时候都能得到运作。

(3〕前面加工时间较长,后面加一〔时间较短的上件女排在序列尾部。这样使得前面的机器能“延迟”完工,后面的机器尽快完工。

(二)

利用Matlab软件对上面的案例进行求解,编程如下:

软件输出相应的结果,如下:

(三)

绘制甘特图编程如下:

三、实验结果

1、根据上面matlab的求解得到以下实验结果:

最优排序为13 4 12 6 7 10 1 14 8 9 3 11 25 min(Cmax)= 8423

2、甘特图如下所示:

四、流水线型车间作业调度问题遗传算法MATLAB源码

流水线型车间作业调度问题可以描述如下:n个任务在流水线上进行m个阶段的加工,每一阶段至少有一台机器且至少有一个阶段存在多台机器,并且同一阶段上各机器的处理性能相同,在每一阶段各任务均要完成一道工序,各任务的每道工序可以在相应阶段上的任意一台机器上加工,已知任务各道工序的处理时间,要求确定所有任务的排序以及每一阶段上机器的分配情况,使得调度指标(一般求Makespan)最小。

下面的源码是求解流水线型车间作业调度问题的遗传算法通用MATLAB源码

function [Zp,Y1p,Y2p,Y3p,Xp,LC1,LC2]=JSPGA(M,N,Pm,T,P)

% 输入参数列表

% 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

farm{k}=X;

end

counter=0;%设置迭代计数器

while counter

%第三步:交叉

newfarm=cell(1,N);%交叉产生的新种群存在其中

Ser=randperm(N);

for i=1:2:(N-1)

A=farm{Ser(i)};%父代个体

Manner=unidrnd(2);%随机选择交叉方式

if Manner==1

cp=unidrnd(m-1);%随机选择交叉点

%双亲双子单点交叉

a=[A(1:cp,:);B((cp+1):m,:)];%子代个体

b=[B(1:cp,:);A((cp+1):m,:)];

else

cp=unidrnd(n-1);%随机选择交叉点

b=[B(:,1:cp),A(:,(cp+1):n)];

end

newfarm{i}=a;%交叉后的子代存入newfarm

newfarm{i+1}=b;

end

%新旧种群合并

FARM=[farm,newfarm];

%第四步:选择复制

FITNESS=zeros(1,2*N);

fitness=zeros(1,N);

plotif=0;

for i=1:(2*N)

X=FARM{i};

Z=COST(X,T,P,plotif);%调用计算费用的子函数

FITNESS(i)=Z;

end

%选择复制采取两两随机配对竞争的方式,具有保留最优个体的能力

Ser=randperm(2*N);

for i=1:N

f2=FITNESS(Ser(2*i));

if f1<=f2

farm{i}=FARM{Ser(2*i-1)};

fitness(i)=FITNESS(Ser(2*i-1));

else

farm{i}=FARM{Ser(2*i)};

end

end

%记录最佳个体和收敛曲线

minfitness=min(fitness)

meanfitness=mean(fitness)

LC1(counter+1)=minfitness;%收敛曲线1,各代最优个体适应值的记录 LC2(counter+1)=meanfitness;%收敛曲线2,各代群体平均适应值的记录 pos=find(fitness==minfitness);

Xp=farm{pos(1)};

%第五步:变异

for i=1:N

if Pm>rand;%变异概率为Pm

X=farm{i};

I=unidrnd(m);

J=unidrnd(n);

X(I,J)=1+(P(J)-eps)*rand;

farm{i}=X;

end

end

farm{pos(1)}=Xp;

counter=counter+1

end

%输出结果并绘图

figure(1);

plotif=1;

X=Xp;

[Zp,Y1p,Y2p,Y3p]=COST(X,T,P,plotif);

figure(2);

plot(LC1);

figure(3);

plot(LC2);

function [Zp,Y1p,Y2p,Y3p]=COST(X,T,P,plotif)

% JSPGA的内联子函数,用于求调度方案的Makespan值

% 输入参数列表

% X 调度方案的编码矩阵,是一个实数编码的m×n矩阵

% T m×n的矩阵,存储m个工件n个工序的加工时间

% P 1×n的向量,n个工序中,每一个工序所具有的机床数目% plotif 是否绘甘特图的控制参数

% 输出参数列表

% Zp 最优的Makespan值

% Y1p 最优方案中,各工件各工序的开始时刻

% Y2p 最优方案中,各工件各工序的结束时刻

% Y3p 最优方案中,各工件各工序使用的机器编号

%第一步:变量初始化

[m,n]=size(X);

Y1p=zeros(m,n);

Y2p=zeros(m,n);

Y3p=zeros(m,n);

%第二步:计算第一道工序的安排

Q1=zeros(m,1);

Q2=zeros(m,1);

R=X(:,1);%取出第一道工序

Q3=floor(R);%向下取整即得到各工件在第一道工序使用的机器的编号%下面计算各工件第一道工序的开始时刻和结束时刻

for i=1:P(1)%取出机器编号

pos=find(Q3==i);%取出使用编号为i的机器为其加工的工件的编号 lenpos=length(pos);

if lenpos>=1

Q1(pos(1))=0;

if lenpos>=2

for j=2:lenpos

Q1(pos(j))=Q2(pos(j-1));

Q2(pos(j))=Q2(pos(j-1))+T(pos(j),1);

end

end

end

end

Y1p(:,1)=Q1;

Y3p(:,1)=Q3;

%第三步:计算剩余工序的安排

for k=2:n

R=X(:,k);%取出第k道工序

Q3=floor(R);%向下取整即得到各工件在第k道工序使用的机器的编号

%下面计算各工件第k道工序的开始时刻和结束时刻

for i=1:P(k)%取出机器编号

pos=find(Q3==i);%取出使用编号为i的机器为其加工的工件的编号

lenpos=length(pos);

if lenpos>=1

EndTime=Y2p(pos,k-1);%取出这些机器在上一个工序中的结束时刻

POS=zeros(1,lenpos);%上一个工序完成时间由早到晚的排序

for jj=1:lenpos

POS(jj)=ppp(1);

EndTime(ppp(1))=Inf;

end

%根据上一个工序完成时刻的早晚,计算各工件第k道工序的开始时刻和结束时刻

Q1(pos(POS(1)))=Y2p(pos(POS(1)),k-1);

Q2(pos(POS(1)))=Q1(pos(POS(1)))+T(pos(POS(1)),k);%前一个工件的结束时刻

if lenpos>=2

for j=2:lenpos

Q1(pos(POS(j)))=Y2p(pos(POS(j)),k-1);%预定的开始时刻为上一个工序的结束时刻

if Q1(pos(POS(j)))

Q1(pos(POS(j)))=Q2(pos(POS(j-1)));

end

end

end

end

end

Y1p(:,k)=Q1;

Y2p(:,k)=Q2;

Y3p(:,k)=Q3;

end

%第四步:计算最优的Makespan值

Y2m=Y2p(:,n);

Zp=max(Y2m);

%第五步:绘甘特图

if plotif

for i=1:m

for j=1:n

mPoint1=Y1p(i,j);

mPoint2=Y2p(i,j);

mText=m+1-i;

PlotRec(mPoint1,mPoint2,mText);

Word=num2str(Y3p(i,j));

%text(0.5*mPoint1+0.5*mPoint2,mText-0.5,Word); hold on

x1=mPoint1;y1=mText-1;

x2=mPoint2;y2=mText-1;

x4=mPoint1;y4=mText;

%fill([x1,x2,x3,x4],[y1,y2,y3,y4],'r');

fill([x1,x2,x3,x4],[y1,y2,y3,y4],[1,0.5,1]); text(0.5*mPoint1+0.5*mPoint2,mText-0.5,Word); end

end

end

function PlotRec(mPoint1,mPoint2,mText)

% 此函数画出小矩形

% 输入:

% mPoint1 输入点1,较小,横坐标

% mPoint2 输入点2,较大,横坐标

% mText 输入的文本,序号,纵坐标

vPoint = zeros(4,2) ;

vPoint(1,:) = [mPoint1,mText-1];

vPoint(2,:) = [mPoint2,mText-1];

vPoint(3,:) = [mPoint1,mText];

vPoint(4,:) = [mPoint2,mText];

plot([vPoint(1,1),vPoint(2,1)],[vPoint(1,2),vPoint(2,2)]); hold on ;

plot([vPoint(1,1),vPoint(3,1)],[vPoint(1,2),vPoint(3,2)]); plot([vPoint(2,1),vPoint(4,1)],[vPoint(2,2),vPoint(4,2)]); plot([vPoint(3,1),vPoint(4,1)],[vPoint(3,2),vPoint(4,2)]);

参考文献

(1)《MATLAB基础教程》清华大学出版社 2011.3 第一版

(2)《计算机工程与应用》 2009年第36期

流水车间调度问题的研究-周杭超

流水车间调度问题的研究 机械工程学院 2111302120 周杭超 如今,为了满足客户多样化与个性化的需求,多品种、小批量生产己经为一种重要的生产方式。与过去大批量、单一的生产方式相比,多品种、小批量生产可以快速响应市场,满足不同客户的不同需求,因此,受到越来越多的企业管理者的重视。特别是以流水线生产为主要作业方式的企业,企业管理者致力于研究如何使得生产均衡化,以实现生产批次的最小化,这样可以在不同批次生产不同品种的产品。在这种环境下,对于不同批次的产品生产进行合理调度排序就显得十分重要。 在传统的生产方式中,企业生产者总是力求通过增加批量来减小设备的转换次数,因此在生产不同种类的产品时,以产品的顺序逐次生产或用多条生产线同时生产。这样,必然会一次大批量生产同一产品,很容易造成库存的积压。在实际生产中如果需要生产A, B, C, D 四种产品各100件,各种产品的节拍都是1分钟,如果按照传统的做法,先生产出100件A产品,其次是B,然后是C,最后生产产品D。在这种情况下,这四种产品的总循环时间是400分钟。然而,假设客户要求的循环时间为200分钟(四种产品的需求量为50件),那么在200分钟的时间内就只能生产出产品A和产品B,因而不能满足客户需求,同时还会过量生产产品A和B,造成库存积压的浪费。这种生产就是非均衡的,如图1所示。 比较均衡的生产方式(图2 )是:在一条流水线上同时将四种产品

混在一起生产,并且确定每种品种一次生产的批量。当然,如果在混合生产时不需要对设备进行转换,那么单件流的生产方式是最好的。然而,在实际生产A, B, C , D 四种不同产品时,往往需要对流水线上的某些设备进行工装转换。单件流的生产方式在此难以实现,需要根据换装时间来确定每种产品一次生产的批量。同时,由于现实生产中不同产品在流水线上各台机器的加工时间很难相同,因此,流水线的瓶颈会随着产品组合的不同而发生变化。当同一流水线加工多产品,并且每种产品在各道工序(各台机器)的加工时间差异较大时,瓶颈就会在各道工序中发生变化,如何对各种产品的投产顺序进行优化以协调这些变化的瓶颈是生产管理中一个很重要的问题。 图1 图2 因而对流水线调度问题的研究正是迎合这种多品种、小批量生产方式的需要,我们要讨论得是如何对流水线上生产的不同产品的调度顺序进行优要化。 流水车间调度问题一般可以描述为n 个工件要在 m 台机器上加工,每个工件需要经过 m 道工序,每道工序要求不同的机器,n 个工件在 m 台机器上的加工顺序相同。工件在机器上的加工时间是给定的,设为(1,,;1,,)ij t i n j m ==L L 。问题的目标是确定个工件在每台机器上的最优加工顺序,使最大流程时间达到最小。

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

物流运筹实务课程设计 题目:置换流水车间调度问题的MATLAB求解置换流水车间调度问题的MATLAB求解

目录 一、前言 (5) 二、问题描述 (6) 三、算法设计 (7) 四、实验结果 (15)

摘要 自从Johnson 1954年发表第一篇关于流水车间调度问题的文章以来.流水车间调度问题引起了许多学者的关注。安排合理有效的生产调度是生产活动能井然有序开展,生产资源得到最佳配置,运作过程简明流畅的有力保证。流水车间调度问题是许多实际流水线生产调度问题的简化模型。它无论是在离散制造工业还是在流程工业中都具有广泛的应用。因此,对进行研究具有重要的理论意义和工程价值。流水线调度问题中一个非常典型的问题,而置换流水线调度问题作为FSP问题的子问题,是一个著名的组合优化问题。该问题是一个典型的NP难问题,也是生产管理的核心内容。随着生产规模的扩大,流水线调度问题的优化对提高资源利用率的作用越来越大,因此对其研究具有重要的

理论和现实意义。 关键字:流水车间,单件小批量生产,jsp模型,Matlab 前言 企业资源的合理配置和优化利用很大程度上体现在车间一层的生产活动中,所以加强车间层的生产计划与控制一直在企业生产经营活动中占有十分重要的地位。车间生产计划与控制的核心理论是调度理论。车间调度问题是一类重要的组合优化问题。为适应订货式、多品种、小批量生产的需要,引进了置换流水车间调度概念。在置换流水车间调度优化后,可以避免或大大减少流程工作时间、提高生产效率。因此,研究成组技术下车间调度问题是很有必要的。生产调度,即对生产过程进行作业计划,是整个个先进生产制造系统实现管理技术、优化技术、白动化与计算机技术发展的核心。置换流水车间调度问题是许多实际生产调度问题的简化模型。生产计划与调度直接关系着企业的产出效率和生产成本,有效的计划与调度算法能最大限度地提高企业的效益。调度问题是组合优化问题,属于NP问题,难以用常规力一法求解。随着制造业的快速发展,大规模定制生产、全球化制造等思想的提出,使车间调度问题呈现出以下的新特点:约束条件多,时间复杂度高,空问复杂度高。这将导致在许多情况下,求解所建立的数学模型的快速性无法满

常规混合流水车间调度问题的等价变换

第37卷?第9期?2015-09(下)? 【45】 常规混合流水车间调度问题的等价变换 Equivalent transformation of standard hybrid flow shop scheduling problem 苏志雄,伊俊敏 SU Zhi-xiong, YI Jun-min (厦门理工学院 管理学院,厦门 361024) 摘 要:常规混合流水车间调度问题具有多阶段、同速平行机、总完工时间最小化等特征,它是研究混 合流水车间调度问题最为自然的起点。对于此类NP难问题的基本性质的研究还不够充分,其算法设计缺乏系统的理论知识指导。因此,针对常规混合流水车间调度问题的性质展开研究, 探讨了调度问题的可逆性特征,并在此基础上分析了基于逆序变换进行问题求解的可行性,为算法设计提供了理论依据。 关键词:生产调度;混合流水车间;逆序变换;等价性中图分类号:TP278 文献标识码:A 文章编号:1009-0134(2015)09(下)-0045-04Doi:10.3969/j.issn.1009-0134.2015.09(下).13 收稿日期:2015-06-03 基金项目:国家自然科学基金面上项目(71371162);福建省自然科学基金(2014J01271);厦门理工学院高层次人才 项目(YSK10009R ) 作者简介:苏志雄(1980 -),男,福建龙海人,博士,研究方向为生产计划与调度、运输调度和软计算方法。 0 引言 混合流水车间(Hybrid Flow Shop, HFS )调度问题是在流水车间(Flow Shop, FS )调度问题的基础上发展起来的,其特点是所有阶段或部分阶段上存在并行设备。常规HFS 调度问题可以描述为n 个工件要在s 个阶段的流水车间上加工,其中阶段k 具有M (k)个同速平行机、且至少有一个阶段存在两台以上的平行机,在满足一系列基本假设和约束条件的基础上去寻找一个调度解使得最大完工时间(makespan )最小。虽然不同的HFS 问题不能完全满足常规问题的所有假设和约束,但是也只是在设备加工环境、加工约束和特征、优化准则等方面存在较小的差异。常规HFS 问题作为HFS 调度问题的“模板”,其研究成果可以为更加复杂的实际调度问题研究提供基础,受到了学术界和产业界的广泛关注。 由于常规HFS 调度问题的NP 难特性[1],精确算法[2,3] 只能求解很小规模的问题。对于近似求解方法来说,启发式算法 [4,5] 求解快速,然而其求解质量还有较大的改 进空间;元启发式算法[6~10] 求解质量较高,通常需要更 多的计算资源,难以应用于大规模或者实时性要求高的问题。从已有研究来看,现有的调度算法在求解质量、求解效率方面仍存在一定的不足,其主要原因在于算法设计的理论基础不够完善,现有的调度算法尚未很好地融入领域知识(domain knowledge )。此外,文献[7]试图通过反例来说明常规HFS 问题不具备加工可逆性:对于一个给定的工件排列次序(初始阶段),采用正序、逆序调度方法可以获得不同的makespan 值;然而在给定工件排列次序的情况下,可以生成不同的工件设备指派 方案,进而可以得到一系列不同的调度解,该结论并不严谨。因此,本文进一步对常规HFS 调度问题的本质特征展开研究,首先通过逆序变换定义了常规HFS 调度问题的逆序问题,然后从数学角度证明了两者之间的等价关系,最后给出了一种基于逆序变换进行问题求解的方法,旨在为后续的研究提供理论依据。 1 数学模型 1.1 符号定义 为了叙述方便,引入下列符号: J 为待加工的工件集合,{1,,}J n = ;j 为工件编号,j J ∈;k 为阶段编号,{1,,}k s ∈ ;m 为设备编号; M (k)为阶段k 上的平行机数;(j,k)为工件j 在第k 个阶段的操作;p jk 为工件j 在阶段k 的加工时间; t jk ,c jk 为工件j 在阶段k 的开工时间、完工时间;N km 为阶段k 上的设备m 所加工的操作集合;k ?为阶段k 上的工件设备指派方案集合,集合的元 素() 1,(,,)k k k k M N N ω= 满足以下两个条件:1)'km km N N =? ,,'()m m m =??≠∈(){1,2,,}k M ;2)() 1{(,)|}k M m km N j k j ==? ; ?为 12s ?=?×?××? 为可行的工件设备指派方案集合,其元素记为ω; km π为 k 上的 设备m ); π为表示工件的加工顺序方案,其

流水车间调度问题的研究-周杭超

流水车间调度问题的研究-周杭超

流水车间调度问题的研究 机械工程学院 2111302120 周杭超 如今,为了满足客户多样化与个性化的需求,多品种、小批量生产己经为一种重要的生产方式。与过去大批量、单一的生产方式相比,多品种、小批量生产可以快速响应市场,满足不同客户的不同需求,因此,受到越来越多的企业管理者的重视。特别是以流水线生产为主要作业方式的企业,企业管理者致力于研究如何使得生产均衡化,以实现生产批次的最小化,这样可以在不同批次生产不同品种的产品。在这种环境下,对于不同批次的产品生产进行合理调度排序就显得十分重要。 在传统的生产方式中,企业生产者总是力求通过增加批量来减小设备的转换次数,因此在生产不同种类的产品时,以产品的顺序逐次生产或用多条生产线同时生产。这样,必然会一次大批量生产同一产品,很容易造成库存的积压。在实际生产中如果需要生产A, B, C, D 四种产品各100件,各种产品的节拍都是1分钟,如果按照传统的做法,先生产出100件A产品,其次是B,然后是C,最后生产产品D。在这种情况下,这四种产品的总循环时间是400分钟。然而,假设客户要求的循环时间为200分钟(四种产品的需求量为50件),那么在200分钟的时间内就只能生产出产品A和产品B,因而不能满足客户需求,同时还会过量生产产品A和B,造成库存积压的浪费。这种生产就是非均衡的,如图1所示。 比较均衡的生产方式(图2 )是:在一条流水线上同时将四种产品

混在一起生产,并且确定每种品种一次生产的批量。当然,如果在混合生产时不需要对设备进行转换,那么单件流的生产方式是最好的。然而,在实际生产A, B, C , D 四种不同产品时,往往需要对流水线上的某些设备进行工装转换。单件流的生产方式在此难以实现,需要根据换装时间来确定每种产品一次生产的批量。同时,由于现实生产中不同产品在流水线上各台机器的加工时间很难相同,因此,流水线的瓶颈会随着产品组合的不同而发生变化。当同一流水线加工多产品,并且每种产品在各道工序(各台机器)的加工时间差异较大时,瓶颈就会在各道工序中发生变化,如何对各种产品的投产顺序进行优化以协调这些变化的瓶颈是生产管理中一个很重要的问题。 图1 图2 因而对流水线调度问题的研究正是迎合这种多品种、小批量生产方式的需要,我们要讨论得是如何对流水线上生产的不同产品的调度顺序进行优要化。 流水车间调度问题一般可以描述为n 个工件要在 m 台机器上加工,每个工件需要经过 m 道工序,每道工序要求不同的机器,n 个工件在 m 台机器上的加工顺序相同。工件在机器上的加工时间是给定的,设为(1,,;1,,)ij t i n j m ==。问题的目标是确定个工件在每台机器上的最优加工顺序,使最大流程时间达到最小。

流水车间调度问题的研究周杭超

流水车间调度问题的研究 机械工程学院2111302120 周杭超 如今,为了满足客户多样化与个性化的需求,多品种、小批量生产己经为一种重要的生产方式。与过去大批量、单一的生产方式相比,多品种、小批量生产可以快速响应市场,满足不同客户的不同需求,因此,受到越来越多的企业管理者的重视。特别是以流水线生产为主要作业方式的企业,企业管理者致力于研究如何使得生产均衡化,以实现生产批次的最小化,这样可以在不同批次生产不同品种的产品。在这种环境下,对于不同批次的产品生产进行合理调度排序就显得十分重要。 在传统的生产方式中,企业生产者总是力求通过增加批量来减小设备的转换次数,因此在生产不同种类的产品时,以产品的顺序逐次生产或用多条生产线同时生产。这样,必然会一次大批量生产同一产品,很容易造成库存的积压。在实际生产中如果需要生产A, B, C, D 四种产品各100件,各种产品的节拍都是1分钟,如果按照传统的做法,先生产出100件A产品,其次是B,然后是C,最后生产产品D。在这种情况下,这四种产品的总循环时间是400分钟。然而,假设客户要求的循环时间为200分钟(四种产品的需求量为50件),那么在200分钟的时间就只能生产出产品A和产品B,因而不能满足客户需求,同时还会过量生产产品A和B,造成库存积压的浪费。这种生产就是非均衡的,如图1所示。 比较均衡的生产方式(图2 )是:在一条流水线上同时将四种产品

混在一起生产,并且确定每种品种一次生产的批量。当然,如果在混合生产时不需要对设备进行转换,那么单件流的生产方式是最好的。然而,在实际生产A, B, C , D 四种不同产品时,往往需要对流水线上的某些设备进行工装转换。单件流的生产方式在此难以实现,需要根据换装时间来确定每种产品一次生产的批量。同时,由于现实生产中不同产品在流水线上各台机器的加工时间很难相同,因此,流水线的瓶颈会随着产品组合的不同而发生变化。当同一流水线加工多产品,并且每种产品在各道工序(各台机器)的加工时间差异较大时,瓶颈就会在各道工序中发生变化,如何对各种产品的投产顺序进行优化以协调这些变化的瓶颈是生产管理中一个很重要的问题。 图1 图2 因而对流水线调度问题的研究正是迎合这种多品种、小批量生产方式的需要,我们要讨论得是如何对流水线上生产的不同产品的调度顺序进行优要化。 流水车间调度问题一般可以描述为n 个工件要在 m 台机器上加工,每个工件需要经过 m 道工序,每道工序要求不同的机器,n 个工件在 m 台机器上的加工顺序相同。工件在机器上的加工时间是给定的,设为(1,,;1,,)ij t i n j m ==。问题的目标是确定个工件在每台机器上的最优加工顺序,使最大流程时间达到最小。

流水车间

基于遗传算法的流水车间调度方法 2.1引言流水车间(聊ow Shop)调度问题是许多实际流水线生产调度问题的简化模型,无论在离散制造工业还是在流程工业中都具有广泛的应用。研究和解决好调度问题,能极大提高企业的生产效率,从而提高企业的竞争力。自从Jolln∞n 1954年发表第一篇关于流水车间调度问题的文章以来,流水车间调度问题引起了许多学者的关注,提出了许多解决的方法。整数规划和分枝定界法是寻求最优解的常用方法,但是对于一些大规模甚至中等规模的问题,整数规划和分枝定界方法仍然不是很有效。另一方面,流水车间调度问题属NP完全问题,因此一些启发式算法被相继提出,以遗传算法、模拟退火、禁忌搜索以及人工神经网络为代表的智能化优化技术迅速发展来解决流水车间调度问题,受到人们的普遍关注。其中遗传算法以其优良的计算性能和显着的应用效果而特别引人注目,很多启发式混合方法都是在此基础上发展起来的。 遗传算法(G蛐ctic~90rithm GA)是一种模拟生物进化过程的随机搜索算法,它借用了达尔文的进化论及孟德尔的生物遗传学的思想,通过在种群内进行自然选择、遗传、变异等进化机制,实现个体适应度的提高。这体现了自然界中“物竞天择、适者生存’’的进化过程。其自组织、自适应、自学习和种群进化能力使其适合于大规模复杂优化问题,应用于全局搜索等参数优化计算领域,也适用于车间调度问题,是应用最广泛的一种演化计算方法。它作为一种非确定性的拟生态随机优化算法,在过去20年中得到了广泛的应用。由于其具有不依赖于问题模型的特性、全局最优性、随机转移性而非确定性、隐含并行性等特点,因此遗传算法更适合复杂问题的优化,比与其它优化技术相比存在显著的优势。随着计算机技术的发展,遗传算法越来越受到人们的重视,并在机器学习、模式识别、神经网络、优化控制、组合优化等领域得到了成功的应用乜¨。调度问题成为遗传算法领域里的一个热门话题,原因是该问题表现出约束组合优化问题的所有特征,并且成为测试新算法思想的范例。 2.2遗传算法(Genetic~gorithm简称G∞14浙江工业大学硕士学位论文 2.2.1遗传算法的生物学背景遗传算法是一种新兴的、发展速度非常快的、高效的随机搜索与优化的方法。遗传算法基于生物进化理论,是对生物进化的一种数抽象模拟,将达尔文进化论中的自然遗传、自然选择的机制引入到数学理论中,形成了一种具有鲜明特色的优化方法。该法作为一种搜索和自适应优化方法,主要用于求解组合优化问题以及存在不可微的复杂系统的优化问题。地球上的生物,都是经过长期进化而形成的。根据达尔文的自然选择学说,地球上的生物具有很强的繁殖能力。在繁殖过程中,大多数生物通过遗传保持相似的后代;部分生物由于变异,后代具有明显差别,甚至形成新物种。正是由于生物的不断繁殖后代,生物数目大量增加,而自然界中生物赖以生存的资源却是有限的,因此,为了生存,生物就需要竞争。生物在生存竞争中,根据对环境的适应能力,适者生存、不适者消亡,自然界中的生物,就是根据这种“优胜劣汰”的原则,不断地进行进化。遗传算法就是借用生物进化的规律,通过繁殖一竞争一再繁殖一再竞争,实现优胜劣汰,一步一步地逼近问题的最优解。遗传算法是基于自然选择和基因遗传学原理的搜索算法。它将“适者生存”这一基本的达尔文进化理论引入串结构,并且在串与串之间进行有组织但又随机的信息交换。伴随着算法的运行,优良的品质被逐步保留并加以组合,从而不断产生更佳的个体。这一过程就如生物进化一样,好的特征被不断继承下来,坏的特征被逐渐地淘汰。新一代个体中包含着上一代个体的大量信息,新一代个体不断地在总体特征上胜过旧的一代,从而使整个群体向前进化发展。遗传算法的中心问题是鲁棒性(R0bustness),所谓鲁棒性是指能在多变的环境中通过效率及功能之间的协调平衡以求生存的能力。人工系统很难达到如生物系统那样的鲁棒性。遗传算法吸取了自然生物系统“适

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

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

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

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

流水线车间生产调度的遗传算法MATLAB源代码 n个任务在流水线上进行m个阶段的加工,每一阶段至少有一台机器且至少有一个阶段存在多台机器,并且同一阶段上各机器的处理性能相同,在每一阶段各任务均要完成一道工序,各任务的每道工序可以在相应阶段上的任意一台机器上加工,已知任务各道工序的处理时间,要求确定所有任务的排序以及每一阶段上机器的分配情况,使得调度指标(一般求Makespan)最小。 function [Zp,Y1p,Y2p,Y3p,Xp,LC1,LC2]=JSPGA(M,N,Pm,T,P) %-------------------------------------------------------------------------- % JSPGA.m % 流水线型车间作业调度遗传算法 % GreenSim团队——专业级算法设计&代写程序 % 欢迎访问GreenSim团队主页→https://www.360docs.net/doc/0214371122.html,/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;

置换流水车间调度问题的两阶段分布估计算法

Computer Engineering and Applications 计算机工程与应用 2017,53(2)置换流水车间调度问题的两阶段分布估计算法 孙良旭1,曲殿利2,刘国莉3 SUN Liangxu 1,QU Dianli 2,LIU Guoli 3 1.辽宁科技大学软件学院,辽宁鞍山114051 2.辽宁科技大学高温材料与镁资源学院,辽宁鞍山114051 3.辽宁科技大学理学院,辽宁鞍山114051 1.School of Software,University of Science and Technology Liaoning,Anshan,Liaoning 114051,China 2.School of High-Temperature Materials and Magnesium Resources,University of Science and Technology Liaoning,Anshan,Liaoning 114051,China 3.School of Science,University of Science and Technology Liaoning,Anshan,Liaoning 114051,China SUN Liangxu,QU Dianli,LIU Guoli.Two-stage estimation distribution algorithm for permutation flowshop scheduling https://www.360docs.net/doc/0214371122.html,puter Engineering and Applications,2017,53(2):64-71. Abstract :Aiming to solve the permutation flow shop scheduling problem,minimizing the total flow time as the objective function,it proposes a novel two-stage estimation of distribution algorithm.In the first stage,it firstly uses NEH (Nawaz-Enscore-Ham,NEH )heuristic to construct a relatively optimal initial individual,and then generates initial popu-lation randomly.To keep the diversities of the population,it puts forward a preferred mechanism to select individuals and establish the probability model,and at the same time,uses elite mechanism to keep the optimal individual in the contem-porary populations.Finally it uses probability model to sample and generate the next generation of population.In the second stage,it uses the insert and interchange operator to do neighborhood search around the optimal individual which is got in the first stage in order to improve the global search ability of estimation of distribution algorithm and prevent it from entrapping the local optimal.Through sufficient experiments,contrast and analysis for outcome of the examples,it proves the feasibility and effectiveness of the proposed algorithm. Key words :estimation of distribution algorithm;permutation flowshop scheduling problem;NEH heuristics;preferred mechanism;neighborhood search 摘要:针对置换流水车间调度问题,以最小化总流水时间为目标,提出了一种新颖的两阶段分布估计算法。第一阶段先利用NEH (Nawaz-Enscore-Ham ,NEH )启发式构造一个较优的初始个体,然后随机生成初始种群,为保留种群的多样性,提出一种择优机制来选择个体并建立概率模型,同时在当代种群中利用精英机制保留当代种群中的最优解,最后利用概率模型采样并生成下一代种群。第二阶段采用插入、互换操作算子对第一阶段得到的最优解进行邻域搜索,来提高分布估计算法的全局搜索能力,阻止其陷入局部最优解。通过对算例进行实验、对比和分析,证明该算法的可行性和有效性。 关键词:分布估计算法;置换流水车间调度问题;NEH 启发式;择优机制;邻域搜索 文献标志码:A 中图分类号:TP301doi :10.3778/j.issn.1002-8331.1604-0262 基金项目:国家青年基金资助项目(No.71301066);国家科技支撑计划项目(No.20141BAB02B03);辽宁省科学事业公益研究基金 项目(No.2014003021)。 作者简介:孙良旭(1979—),男,博士,讲师,主要研究方向为钢铁冶金、计算机算法,E-mail :sunliangxumail@https://www.360docs.net/doc/0214371122.html, ;曲殿利 (1955—),男,博士,教授,主要研究方向为钢铁冶金;刘国莉(1979—),女,博士,副教授,主要研究方向为智能优化算法与组合优化。 收稿日期:2016-04-19修回日期:2016-06-23文章编号:1002-8331(2017)02-0064-08 CNKI 网络优先出版:2016-09-28,https://www.360docs.net/doc/0214371122.html,/kcms/detail/11.2127.TP.20160928.1625.072.html 64万方数据

基于机制设计的柔性流水车间调度问题的研究与分析

目录 摘要.............................................................. I Abstract ......................................................... I II 第一章绪论 .. (1) 1.1研究背景与意义 (1) 1.2国内外研究现状 (3) 1.3本文研究内容 (5) 1.4本文组织结构 (7) 第二章流水车间调度问题及经典算法介绍 (8) 2.1调度问题模型及分类 (8) 2.2经典调度算法 (9) 本章小结 (12) 第三章混合搜索机制粒子群算法 (13) 3.1问题描述 (13) 3.2混合搜索机制粒子群算法 (14) 3.3实验仿真及算法分析 (22) 本章小结 (29) 第四章双目标零等待柔性流水车间调度问题算法 (30) 4.1问题描述 (30) 4.2产生初始种群的五种启发式算法 (31) 4.3精英粒子群算法 (32) 4.4联姻帝国竞争算法 (38) 4.5实验仿真及算法分析 (44) 4.5.1数据生成 (44) 4.5.2算法性能指标 (44) 4.5.3算法参数 (45) 4.5.4仿真实验 (48) 本章小结 (55)

第五章基于算法机制设计的柔性流水车间调度问题算法 (56) 5.1机制设计问题描述 (56) 5.2基于算法机制设计的柔性流水车间调度问题模型 (57) 5.3柔性流水车间调度问题的诚实机制设计 (59) 本章小结 (62) 第六章总结与展望 (63) 致谢 (65) 参考文献 (66) 附录 (69) 图版 (70)

相关文档
最新文档