置換流水車間調(diào)問(wèn)題的MATLAB求解_第1頁(yè)
置換流水車間調(diào)問(wèn)題的MATLAB求解_第2頁(yè)
置換流水車間調(diào)問(wèn)題的MATLAB求解_第3頁(yè)
置換流水車間調(diào)問(wèn)題的MATLAB求解_第4頁(yè)
置換流水車間調(diào)問(wèn)題的MATLAB求解_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、物流運(yùn)籌實(shí)務(wù)課程設(shè)計(jì)題目:置換流水車間調(diào)度問(wèn)題的MATLAB求解置換流水車間調(diào)度問(wèn)題的MATLAB求解目錄一、 前言 5二、 問(wèn)題描述 6三、 算法設(shè)計(jì) 7四、 實(shí)驗(yàn)結(jié)果 15摘要自從Johnson 1954年發(fā)表第一篇關(guān)于流水車間調(diào)度問(wèn)題的文章以來(lái)流水車間調(diào)度問(wèn)題引起了許多學(xué)者的關(guān)注。安排合理有效的生產(chǎn)調(diào)度是生產(chǎn)活動(dòng)能井然有序開展,生產(chǎn)資源得到最佳配置,運(yùn)作過(guò)程簡(jiǎn)明流暢的有力保證。流水車間調(diào)度問(wèn)題是許多實(shí)際流水線生產(chǎn)調(diào)度問(wèn)題的簡(jiǎn)化模型。它無(wú)論是在離散制造工業(yè)還是在流程工業(yè)中都具有廣泛的應(yīng)用。因此,對(duì)進(jìn)行研究具有重要的理論意義和工程價(jià)值。流水線調(diào)度問(wèn)題中一個(gè)非常典型的問(wèn)題,而置換流水線調(diào)度問(wèn)題

2、作為FSP問(wèn)題的子問(wèn)題,是一個(gè)著名的組合優(yōu)化問(wèn)題。該問(wèn)題是一個(gè)典型的NP難問(wèn)題,也是生產(chǎn)管理的核心內(nèi)容。隨著生產(chǎn)規(guī)模的擴(kuò)大,流水線調(diào)度問(wèn)題的優(yōu)化對(duì)提高資源利用率的作用越來(lái)越大,因此對(duì)其研究具有重要的理論和現(xiàn)實(shí)意義。關(guān)鍵字:流水車間,單件小批量生產(chǎn),jsp模型,Matlab前言企業(yè)資源的合理配置和優(yōu)化利用很大程度上體現(xiàn)在車間一層的生產(chǎn)活動(dòng)中,所以加強(qiáng)車間層的生產(chǎn)計(jì)劃與控制一直在企業(yè)生產(chǎn)經(jīng)營(yíng)活動(dòng)中占有十分重要的地位。車間 生產(chǎn)計(jì)劃與控制的核心理論是調(diào)度理論。車間調(diào)度問(wèn)題是一類重要的組合優(yōu)化問(wèn)題。為適應(yīng)訂貨式、多品種、小批量生產(chǎn)的需要,引進(jìn)了置換流水車間調(diào)度概念。在置換流水車間調(diào)度優(yōu)化后,可以避免或

3、大大減少流程工作時(shí)間、提高生產(chǎn)效率。因此,研究成組技術(shù)下車間調(diào)度問(wèn)題是很有必要的。生產(chǎn)調(diào)度,即對(duì)生產(chǎn)過(guò)程進(jìn)行作業(yè)計(jì)劃,是整個(gè)個(gè)先進(jìn)生產(chǎn)制造系統(tǒng)實(shí)現(xiàn)管理技術(shù)、優(yōu)化技術(shù)、白動(dòng)化與計(jì)算機(jī)技術(shù)發(fā)展的核心。置換流水車間調(diào)度問(wèn)題是許多實(shí)際生產(chǎn)調(diào)度問(wèn)題的簡(jiǎn)化模型。生產(chǎn)計(jì)劃與調(diào)度直接關(guān)系著企業(yè)的產(chǎn)出效率和生產(chǎn)成本,有效的計(jì)劃與調(diào)度算法能最大限度地提高企業(yè)的效益。調(diào)度問(wèn)題是組合優(yōu)化問(wèn)題,屬于NP問(wèn)題,難以用常規(guī)力一法求解。隨著制造業(yè)的快速發(fā)展,大規(guī)模定制生產(chǎn)、全球化制造等思想的提出,使車間調(diào)度問(wèn)題呈現(xiàn)出以下的新特點(diǎn):約束條件多,時(shí)間復(fù)雜度高,空問(wèn)復(fù)雜度高。這將導(dǎo)致在許多情況下,求解所建立的數(shù)學(xué)模型的快速性無(wú)法滿

4、足,如果采用適度線形化處理之后求解,將會(huì)因簡(jiǎn)化太多而使結(jié)果嚴(yán)承失真。所以需選擇功能強(qiáng)大的數(shù)值計(jì)算工具來(lái)實(shí)現(xiàn)這一問(wèn)題的求解。MATLAB恰好提供了這樣的平臺(tái)。MATLAB是一個(gè)高度集成的系統(tǒng),集科學(xué)計(jì)算、圖像處理、聲音處理于一體,具有極高的編程效率。典型JSP模型分析與Matlab的應(yīng)用結(jié)合使流水車間調(diào)度問(wèn)題迎刃而解。最大完工時(shí)間是生產(chǎn)調(diào)度中最常用的性能度量指標(biāo)之一,最大完工時(shí)間越短,則說(shuō)明產(chǎn)品總的生產(chǎn)周期越短,生產(chǎn)能力越大;此類調(diào)度問(wèn)題的優(yōu)化研究有助于提高企業(yè)的生產(chǎn)效率與資源利用率。一、問(wèn)題描述流水車間調(diào)度問(wèn)題通??梢悦枋鰹閭€(gè)工件要在臺(tái)機(jī)器上加工,每個(gè)工件有道工序,每道工序都要在不同的機(jī)器上加

5、工,所有工件的加工順序都相同,問(wèn)題的目標(biāo)是確定每臺(tái)機(jī)器上工件的加工順序及開工時(shí)間,使得特定的性能指標(biāo)最優(yōu)。置換流水車間調(diào)度問(wèn)題PFSP是對(duì)流水車間調(diào)度問(wèn)題的進(jìn)一步約束,即約定每臺(tái)機(jī)器上所有工件的加工順序相同,其解空間的規(guī)模為,遠(yuǎn)遠(yuǎn)小于流水車間調(diào)度問(wèn)題的規(guī)模。本次課程實(shí)驗(yàn)主要研究PFSP中的最小化最大完工時(shí)間問(wèn)題,利用三元組表示法()求解Carlier (1978)提出的8個(gè)算例、以及Reeves (1995)提出的21個(gè)算。由于三臺(tái)機(jī)器以上的調(diào)度問(wèn)題被證明是NP難問(wèn)題,對(duì)于大規(guī)模的調(diào)度,至今仍未出現(xiàn)求解最優(yōu)的方法,常常采用啟發(fā)式算法來(lái)求解近優(yōu)解。本案例主要采用instance car2進(jìn)行求解

6、。案例:某產(chǎn)品,需要經(jīng)過(guò)4道工序?qū)?3個(gè)工件進(jìn)行加工,這13個(gè)工件的生產(chǎn)流程是一樣的。加工時(shí)間表見(jiàn)下:表4-3 某產(chǎn)品加工時(shí)間表工件號(hào)加工時(shí)間12345678910111213tj178963021457321865821420778569653212457tj293021425789653214254786532112412345678tj321475320124752147532145763214257854123tj4320142753214528653514527536214528888999計(jì)算步驟如下:首先確定n/m/F/Cmax的最大完工時(shí)間為: k=2,.,m i=2,.,n

7、則 Cmax=二、算法設(shè)計(jì)(一)假設(shè)工件在機(jī)器上的加工順序是相同的,同時(shí)假定各工件準(zhǔn)備就緒,機(jī)器一開動(dòng)就投入生產(chǎn),開工時(shí)間為0,則最大完工時(shí)間等于最大流程時(shí)間。同時(shí)3臺(tái)機(jī)器以上的流水車間調(diào)度是NP難問(wèn)題,所以本文只考慮了2臺(tái)、3臺(tái)機(jī)器的情況,解決3臺(tái)機(jī)器以上的問(wèn)題方法也可運(yùn)用人工智能算法,解的質(zhì)量更高,但因該類算法需良好的軟件編程能力,故本文不加探究。n個(gè)工件在m臺(tái)機(jī)器上的加工順序相同。工件在機(jī)器上的加工時(shí)間是給定的。問(wèn)題的目標(biāo)是求n個(gè)工件在每合機(jī)器上的最大完工時(shí)間等于最大流程時(shí)間。這種流水線調(diào)度問(wèn)題要在滿足以下兩個(gè)約束條件的前提下,使得加工完所有的工件所花的時(shí)間盡可能地少:1、工件約束每個(gè)工

8、件在每臺(tái)機(jī)器上恰好加工一次,每個(gè)工件在各機(jī)器上加工順序相同。不失一般性,假設(shè)各工件按機(jī)器1至m的順序進(jìn)行加工。各工件在各機(jī)器上的加工時(shí)間已知。2、機(jī)器約束每臺(tái)機(jī)器在任何時(shí)刻至多加工一個(gè)工件,每臺(tái)機(jī)器加工的各工件的順序相同。置換流水線調(diào)度問(wèn)題實(shí)質(zhì)是如何調(diào)整加工工件的序列,提高機(jī)器的利用率的問(wèn)題,即在同一時(shí)刻正在加工的機(jī)攫數(shù)越多,機(jī)器利用率越大口根據(jù)該原則,我們根據(jù)下面規(guī)則安排工件的加工順序: (l)在前面機(jī)器加工時(shí)間較短、后面機(jī)器加工時(shí)間較長(zhǎng)的工件,安排在序列前。這樣可以使得后面的機(jī)器盡快參加工作,并且后面的機(jī)器不需要作空等待, (2)機(jī)器加工時(shí)間較為平均且加工時(shí)間較長(zhǎng)的工件,安排在序列的中部。

9、這樣可以使得各個(gè)機(jī)器在中期的時(shí)候都能得到運(yùn)作。 (3前面加工時(shí)間較長(zhǎng),后面加一時(shí)間較短的上件女排在序列尾部。這樣使得前面的機(jī)器能“延遲”完工,后面的機(jī)器盡快完工。(二)利用Matlab軟件對(duì)上面的案例進(jìn)行求解,編程如下:軟件輸出相應(yīng)的結(jié)果,如下:clc; clear all;temp= 0 456 1 856 2 963 3 696 0 789 1 930 2 21 3 320 0 630 1 214 2 475 3 142 0 214 1 257 2 320 3 753 0 573 1 896 2 124 3 214 0 218 1 532 2 752 3 528 0 653 1 142 2

10、 147 3 653 0 214 1 547 2 532 3 214 0 204 1 865 2 145 3 527 0 785 1 321 2 763 3 536 0 696 1 124 2 214 3 214 0 532 1 12 2 257 3 528 0 12 1 345 2 854 3 888 0 457 1 678 2 123 3 999;T=temp(:,2:2:end); n,m=size(T); %n為工件數(shù),m為機(jī)器數(shù)txm=; %所有m-1個(gè)兩臺(tái)虛擬機(jī)器問(wèn)題的加工時(shí)間矩陣Cmax=; %所有m-1個(gè)兩臺(tái)虛擬機(jī)器問(wèn)題的總完工時(shí)間TXY=; %存放m-1個(gè)加工順序ticfor

11、 i=1:m-1 for j=1:n tx(j,1)=sum(T(j,1:i); %第一臺(tái)虛擬機(jī)器上的加工時(shí)間 tx(j,2)=sum(T(j,m+1-i:m); %第二臺(tái)虛擬機(jī)器上的加工時(shí)間 end cmax,xy=johnson(tx,T,n,m); %調(diào)用Johnson 算法函數(shù) Cmax = Cmax,cmax; txm=txm,tx; TXY=TXY,xy;endtxm, Cmax, TXYoptim=min(Cmax) %近似最優(yōu)總完工時(shí)間ind=find(Cmax =optim);optim_seq=TXY(:,ind)' %近似最優(yōu)加工順序rumTime=tocMatl

12、ab運(yùn)行:txm = 456 696 1312 1659 2275 2515 789 320 1719 341 1740 1271 630 142 844 617 1319 831 214 753 471 1073 791 1330 573 214 1469 338 1593 1234 218 528 750 1280 1502 1812 653 653 795 800 942 942 214 214 761 746 1293 1293 204 527 1069 672 1214 1537 785 536 1106 1299 1869 1620 696 214 820 428 1034 552

13、 532 528 544 785 801 797 12 888 357 1742 1211 2087 457 999 1135 1122 1258 1800Cmax = 8679 8423 8667TXY = 13 13 4 9 4 7 4 12 13 8 6 9 6 7 14 1 10 8 14 1 6 7 14 1 10 8 10 12 9 2 2 3 5 5 11 3 11 2 12 3 5 11optim = 8423optim_seq = 13 4 12 6 7 10 1 14 8 9 3 11 2 5(三)繪制甘特圖編程如下:% 已知nbjobs, nbmachines, P% 通

14、過(guò)computeCmax計(jì)算完工時(shí)間矩陣,然后畫甘特圖temp= 0 456 1 856 2 963 3 696 0 789 1 930 2 21 3 320 0 630 1 214 2 475 3 142 0 214 1 257 2 320 3 753 0 573 1 896 2 124 3 214 0 218 1 532 2 752 3 528 0 653 1 142 2 147 3 653 0 214 1 547 2 532 3 214 0 204 1 865 2 145 3 527 0 785 1 321 2 763 3 536 0 696 1 124 2 214 3 214 0 53

15、2 1 12 2 257 3 528 0 12 1 345 2 854 3 888 0 457 1 678 2 123 3 999;P=temp(:,2:2:end);nbjobs=14;nbmachines=4;% 給定工件的加工順序,計(jì)算完工時(shí)間,進(jìn)而求makespanjobOrder= 13 4 12 6 7 10 1 14 8 9 3 11 2 5;C=zeros(nbjobs,nbmachines); % 完工時(shí)間矩陣% 第一道工序,工件的完工時(shí)間C(jobOrder(1),1)=P(jobOrder(1),1); % 第一個(gè)工件的完工時(shí)間for i=2:nbjobs % 在加工順序

16、里面的位置 % 第一道工序上,上一個(gè)工件加工完下一個(gè)工件才可以加工 C(jobOrder(i),1)=C(jobOrder(i-1),1)+P(jobOrder(i),1);end% 其余工序,工件的完工時(shí)間for j=2:nbmachines C(jobOrder(1),j)=C(jobOrder(1),j-1)+P(jobOrder(1),j); for i=2:nbjobs % 在上道工序加工完,且前一個(gè)工件加工完,才可以加工 C(jobOrder(i),j)=max(C(jobOrder(i),j-1),C(jobOrder(i-1),j)+P(jobOrder(i),j); ende

17、ndCmax=max(C(:,nbmachines); % Cmaxfigure_handle=figure;hold on;% Create titletitle('置換流水車間調(diào)度甘特圖(Cmax= ',num2str(Cmax),')',. 'FontWeight','bold','FontSize',12);xlabel('時(shí) 間');ymax=nbmachines+1;xmax=Cmax;axis(0 xmax 0 ymax);%-YLabel=cell(ymax,1);y=ymax;fo

18、r j=1:nbmachines YLabely='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:nbmachines for i=1:nbjobs xi=C(jobOrder(i), j)-P(jobOrder(i),j); wi=P(jobOrder(i), j); rectangle('Position&#

19、39;,xi,yi,wi,hi); text(xi+0.5*wi,yi+0.5*hi,int2str(jobOrder(i),'HorizontalAlignment',. 'center'); end yi=yi-1; nb=nb+1;endyi=yi-1;hold off;三、實(shí)驗(yàn)結(jié)果1、根據(jù)上面matlab的求解得到以下實(shí)驗(yàn)結(jié)果:最優(yōu)排序?yàn)?3 4 12 6 7 10 1 14 8 9 3 11 25min(Cmax)= 84232、甘特圖如下所示:四、流水線型車間作業(yè)調(diào)度問(wèn)題遺傳算法MATLAB源碼流水線型車間作業(yè)調(diào)度問(wèn)題可以描述如下:n個(gè)任務(wù)在流水線上

20、進(jìn)行m個(gè)階段的加工,每一階段至少有一臺(tái)機(jī)器且至少有一個(gè)階段存在多臺(tái)機(jī)器,并且同一階段上各機(jī)器的處理性能相同,在每一階段各任務(wù)均要完成一道工序,各任務(wù)的每道工序可以在相應(yīng)階段上的任意一臺(tái)機(jī)器上加工,已知任務(wù)各道工序的處理時(shí)間,要求確定所有任務(wù)的排序以及每一階段上機(jī)器的分配情況,使得調(diào)度指標(biāo)(一般求Makespan)最小。 下面的源碼是求解流水線型車間作業(yè)調(diào)度問(wèn)題的遺傳算法通用MATLAB源碼function Zp,Y1p,Y2p,Y3p,Xp,LC1,LC2=JSPGA(M,N,Pm,T,P)%  輸入?yún)?shù)列表%  M    

21、   遺傳進(jìn)化迭代次數(shù)%  N       種群規(guī)模(取偶數(shù))%  Pm      變異概率%  T       m×n的矩陣,存儲(chǔ)m個(gè)工件n個(gè)工序的加工時(shí)間%  P       1×n的向量,n個(gè)工序中,每一個(gè)工序所具有的機(jī)床數(shù)目%  輸出參數(shù)列表%  Zp   &#

22、160;  最優(yōu)的Makespan值%  Y1p     最優(yōu)方案中,各工件各工序的開始時(shí)刻,可根據(jù)它繪出甘特圖%  Y2p     最優(yōu)方案中,各工件各工序的結(jié)束時(shí)刻,可根據(jù)它繪出甘特圖%  Y3p     最優(yōu)方案中,各工件各工序使用的機(jī)器編號(hào)%  Xp      最優(yōu)決策變量的值,決策變量是一個(gè)實(shí)數(shù)編碼的m×n矩陣% &#

23、160;LC1     收斂曲線1,各代最優(yōu)個(gè)體適應(yīng)值的記錄%  LC2     收斂曲線2,各代群體平均適應(yīng)值的記錄%  最后,程序還將繪出三副圖片:兩條收斂曲線圖和甘特圖(各工件的調(diào)度時(shí)序圖)%第一步:變量初始化m,n=size(T);%m是總工件數(shù),n是總工序數(shù)Xp=zeros(m,n);%最優(yōu)決策變量LC1=zeros(1,M);%收斂曲線1LC2=zeros(1,N);%收斂曲線2%第二步:隨機(jī)產(chǎn)生初始種群farm=cell(1,N);%采用細(xì)胞結(jié)構(gòu)存儲(chǔ)種群for

24、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    farmk=X;endcounter=0;%設(shè)置迭代計(jì)數(shù)器while counter<M%停

25、止條件為達(dá)到最大迭代次數(shù)        %第三步:交叉    newfarm=cell(1,N);%交叉產(chǎn)生的新種群存在其中    Ser=randperm(N);    for i=1:2:(N-1)        A=farmSer(i);%父代個(gè)體        Manner=unidrnd(2);%隨機(jī)選擇交叉方式      &#

26、160; if Manner=1            cp=unidrnd(m-1);%隨機(jī)選擇交叉點(diǎn)            %雙親雙子單點(diǎn)交叉            a=A(1:cp,:);B(cp+1):m,:);%子代個(gè)體            b=B(1:cp

27、,:);A(cp+1):m,:);        else            cp=unidrnd(n-1);%隨機(jī)選擇交叉點(diǎn)            b=B(:,1:cp),A(:,(cp+1):n);        end        newfarmi

28、=a;%交叉后的子代存入newfarm        newfarmi+1=b;    end    %新舊種群合并    FARM=farm,newfarm;        %第四步:選擇復(fù)制    FITNESS=zeros(1,2*N);    fitness=zeros(1,N);    plotif=0;    for i=1:(2*N) 

29、;       X=FARMi;        Z=COST(X,T,P,plotif);%調(diào)用計(jì)算費(fèi)用的子函數(shù)        FITNESS(i)=Z;    end    %選擇復(fù)制采取兩兩隨機(jī)配對(duì)競(jìng)爭(zhēng)的方式,具有保留最優(yōu)個(gè)體的能力    Ser=randperm(2*N);    for i=1:N     &#

30、160;  f2=FITNESS(Ser(2*i);        if f1<=f2            farmi=FARMSer(2*i-1);            fitness(i)=FITNESS(Ser(2*i-1);        else   

31、0;        farmi=FARMSer(2*i);        end    end    %記錄最佳個(gè)體和收斂曲線    minfitness=min(fitness)    meanfitness=mean(fitness)    LC1(counter+1)=minfitness;%收斂曲線1,各代最優(yōu)個(gè)體適應(yīng)值的記錄    LC2(counter+1

32、)=meanfitness;%收斂曲線2,各代群體平均適應(yīng)值的記錄    pos=find(fitness=minfitness);    Xp=farmpos(1);        %第五步:變異    for i=1:N        if Pm>rand;%變異概率為Pm            X=farmi;    

33、;        I=unidrnd(m);            J=unidrnd(n);            X(I,J)=1+(P(J)-eps)*rand;            farmi=X;        end  

34、60; end    farmpos(1)=Xp;        counter=counter+1end%輸出結(jié)果并繪圖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的內(nèi)聯(lián)子函數(shù),用于求調(diào)度方案的Makespan值%  輸入?yún)?shù)列表% &

35、#160;X       調(diào)度方案的編碼矩陣,是一個(gè)實(shí)數(shù)編碼的m×n矩陣%  T       m×n的矩陣,存儲(chǔ)m個(gè)工件n個(gè)工序的加工時(shí)間%  P       1×n的向量,n個(gè)工序中,每一個(gè)工序所具有的機(jī)床數(shù)目%  plotif  是否繪甘特圖的控制參數(shù)%  輸出參數(shù)列表%  Zp     

36、60;最優(yōu)的Makespan值%  Y1p     最優(yōu)方案中,各工件各工序的開始時(shí)刻%  Y2p     最優(yōu)方案中,各工件各工序的結(jié)束時(shí)刻%  Y3p     最優(yōu)方案中,各工件各工序使用的機(jī)器編號(hào)%第一步:變量初始化m,n=size(X);Y1p=zeros(m,n);Y2p=zeros(m,n);Y3p=zeros(m,n);%第二步:計(jì)算第一道工序的安排Q1=zeros(m,1);Q2=zeros(m,1)

37、;R=X(:,1);%取出第一道工序Q3=floor(R);%向下取整即得到各工件在第一道工序使用的機(jī)器的編號(hào)%下面計(jì)算各工件第一道工序的開始時(shí)刻和結(jié)束時(shí)刻for i=1:P(1)%取出機(jī)器編號(hào)    pos=find(Q3=i);%取出使用編號(hào)為i的機(jī)器為其加工的工件的編號(hào)    lenpos=length(pos);    if lenpos>=1        Q1(pos(1)=0;        if

38、 lenpos>=2            for j=2:lenpos                Q1(pos(j)=Q2(pos(j-1);                Q2(pos(j)=Q2(pos(j-1)+T(pos(j),1);       

39、    end        end    endendY1p(:,1)=Q1;Y3p(:,1)=Q3;%第三步:計(jì)算剩余工序的安排for k=2:n    R=X(:,k);%取出第k道工序    Q3=floor(R);%向下取整即得到各工件在第k道工序使用的機(jī)器的編號(hào)    %下面計(jì)算各工件第k道工序的開始時(shí)刻和結(jié)束時(shí)刻    for i=1:P(k)%取出機(jī)器編號(hào)    

40、;    pos=find(Q3=i);%取出使用編號(hào)為i的機(jī)器為其加工的工件的編號(hào)        lenpos=length(pos);        if lenpos>=1            EndTime=Y2p(pos,k-1);%取出這些機(jī)器在上一個(gè)工序中的結(jié)束時(shí)刻         &#

41、160;  POS=zeros(1,lenpos);%上一個(gè)工序完成時(shí)間由早到晚的排序            for jj=1:lenpos                POS(jj)=ppp(1);                EndTime(ppp(1)=Inf;    

42、        end                        %根據(jù)上一個(gè)工序完成時(shí)刻的早晚,計(jì)算各工件第k道工序的開始時(shí)刻和結(jié)束時(shí)刻            Q1(pos(POS(1)=Y2p(pos(POS(1),k-1);         

43、;   Q2(pos(POS(1)=Q1(pos(POS(1)+T(pos(POS(1),k);%前一個(gè)工件的結(jié)束時(shí)刻            if lenpos>=2                for j=2:lenpos                   

44、 Q1(pos(POS(j)=Y2p(pos(POS(j),k-1);%預(yù)定的開始時(shí)刻為上一個(gè)工序的結(jié)束時(shí)刻                    if Q1(pos(POS(j)<Q2(pos(POS(j-1)%如果比前面的工件的結(jié)束時(shí)刻還早                       &#

45、160;Q1(pos(POS(j)=Q2(pos(POS(j-1);                    end                end            end        end  &

46、#160; end    Y1p(:,k)=Q1;    Y2p(:,k)=Q2;    Y3p(:,k)=Q3;end%第四步:計(jì)算最優(yōu)的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);         

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論