資源描述:
《生產(chǎn)調(diào)度matlab推薦WORD范文.docx》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、.function[Zp,Y1p,Y2p,Y3p,Xp,LC1,LC2]=JSPGA(M,N,Pm,T,P)%greemsim原創(chuàng)--------------------------------------------------------------------------%JSPGA.m%輸入?yún)?shù)列表%M遺傳進(jìn)化迭代次數(shù)%N種群規(guī)模(取偶數(shù))%Pm變異概率%Tm×n的矩陣,存儲m個(gè)工件n個(gè)工序的加工時(shí)間%P1×n的向量,n個(gè)工序中,每一個(gè)工序所具有的機(jī)床數(shù)目%輸出參數(shù)列表%Zp最優(yōu)的Makespa
2、n值%Y1p最優(yōu)方案中,各工件各工序的開始時(shí)刻,可根據(jù)它繪出甘特圖%Y2p最優(yōu)方案中,各工件各工序的結(jié)束時(shí)刻,可根據(jù)它繪出甘特圖%Y3p最優(yōu)方案中,各工件各工序使用的機(jī)器編號%Xp最優(yōu)決策變量的值,決策變量是一個(gè)實(shí)數(shù)編碼的m×n矩陣%LC1收斂曲線1,各代最優(yōu)個(gè)體適應(yīng)值的記錄%LC2收斂曲線2,各代群體平均適應(yīng)值的記錄%最后,程序還將繪出三副圖片:兩條收斂曲線圖和甘特圖(各工件的調(diào)度時(shí)序圖)%第一步:變量初始化精品doc.[m,n]=size(T);%m是總工件數(shù),n是總工序數(shù)Xp=zeros(m,n)
3、;%最優(yōu)決策變量LC1=zeros(1,M);%收斂曲線1LC2=zeros(1,N);%收斂曲線2%第二步:隨機(jī)產(chǎn)生初始種群farm=cell(1,N);%采用細(xì)胞結(jié)構(gòu)存儲種群fork=1:NX=zeros(m,n);forj=1:nfori=1:mX(i,j)=1+(P(j)-eps)*rand;endendfarm{k}=X;endcounter=0;%設(shè)置迭代計(jì)數(shù)器whilecounter4、中Ser=randperm(N);fori=1:2:(N-1)A=farm{Ser(i)};%父代個(gè)體精品doc.B=farm{Ser(i+1)};Manner=unidrnd(2);%隨機(jī)選擇交叉方式ifManner==1cp=unidrnd(m-1);%隨機(jī)選擇交叉點(diǎn)%雙親雙子單點(diǎn)交叉a=[A(1:cp,:);B((cp+1):m,:)];%子代個(gè)體b=[B(1:cp,:);A((cp+1):m,:)];elsecp=unidrnd(n-1);%隨機(jī)選擇交叉點(diǎn)a=[A(:,1:cp),B(:,(cp
5、+1):n)];b=[B(:,1:cp),A(:,(cp+1):n)];endnewfarm{i}=a;%交叉后的子代存入newfarmnewfarm{i+1}=b;end%新舊種群合并FARM=[farm,newfarm];?%第四步:選擇復(fù)制FITNESS=zeros(1,2*N);fitness=zeros(1,N);plotif=0;fori=1:(2*N)精品doc.X=FARM{i};Z=COST(X,T,P,plotif);%調(diào)用計(jì)算費(fèi)用的子函數(shù)FITNESS(i)=Z;end%選擇復(fù)制采
6、取兩兩隨機(jī)配對競爭的方式,具有保留最優(yōu)個(gè)體的能力Ser=randperm(2*N);fori=1:Nf1=FITNESS(Ser(2*i-1));?f2=FITNESS(Ser(2*i));iff1<=f2farm{i}=FARM{Ser(2*i-1)};fitness(i)=FITNESS(Ser(2*i-1));elsefarm{i}=FARM{Ser(2*i)};fitness(i)=FITNESS(Ser(2*i));endend%記錄最佳個(gè)體和收斂曲線minfitness=min(fitnes
7、s)meanfitness=mean(fitness)LC1(counter+1)=minfitness;%收斂曲線1,各代最優(yōu)個(gè)體適應(yīng)值的記錄LC2(counter+1)=meanfitness;%收斂曲線2精品doc.,各代群體平均適應(yīng)值的記錄pos=find(fitness==minfitness);Xp=farm{pos(1)};?%第五步:變異fori=1:NifPm>rand;%變異概率為PmX=farm{i};I=unidrnd(m);J=unidrnd(n);X(I,J)=1+(P(J)
8、-eps)*rand;farm{i}=X;endendfarm{pos(1)}=Xp;?counter=counter+1end%輸出結(jié)果并繪圖figure(1);plotif=1;X=Xp;[Zp,Y1p,Y2p,Y3p]=COST(X,T,P,plotif);figure(2);精品doc.plot(LC1);figure(3);plot(LC2);function[Zp,Y1p,Y2p,Y3p]=COST(X,T,P,plotif)%