資源描述:
《流水線型車(chē)間作業(yè)調(diào)度問(wèn)題遺傳算法matlab源碼》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、流水線型車(chē)間作業(yè)調(diào)度問(wèn)題遺傳算法MATLAB源碼流水線型車(chē)間作業(yè)調(diào)度問(wèn)題可以描述如下:n個(gè)任務(wù)在流水線上進(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)最小。下面的源碼是求解流水線型車(chē)間作業(yè)調(diào)度問(wèn)題的遺傳算法通用MATLAB源碼,屬于GreenSim團(tuán)隊(duì)原創(chuàng)作品,轉(zhuǎn)載請(qǐng)注明。function[Zp,Y1
2、p,Y2p,Y3p,Xp,LC1,LC2]=JSPGA(M,N,Pm,T,P)%--------------------------------------------------------------------------%??JSPGA.m%??流水線型車(chē)間作業(yè)調(diào)度遺傳算法%??GreenSim團(tuán)隊(duì)原創(chuàng)作品,轉(zhuǎn)載請(qǐng)注明%??Email:greensim@163.com%??GreenSim團(tuán)隊(duì)主頁(yè):http://blog.sina.com.cn/greensim%??歡迎訪問(wèn)GreenSim——算法仿真團(tuán)隊(duì)→http://blog.sina.com.cn/
3、greensim%--------------------------------------------------------------------------%??輸入?yún)?shù)列表%??M????遺傳進(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????最優(yōu)的Makespan值%??Y1p????最優(yōu)方案中,各工件各工序的開(kāi)始時(shí)刻,可根據(jù)它繪出甘特圖%??Y2p????最優(yōu)方案中,
4、各工件各工序的結(jié)束時(shí)刻,可根據(jù)它繪出甘特圖%??Y3p????最優(yōu)方案中,各工件各工序使用的機(jī)器編號(hào)%??Xp????最優(yōu)決策變量的值,決策變量是一個(gè)實(shí)數(shù)編碼的m×n矩陣%??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%第二步
5、:隨機(jī)產(chǎn)生初始種群farm=cell(1,N);%采用細(xì)胞結(jié)構(gòu)存儲(chǔ)種群fork=1:N??X=zeros(m,n);??forj=1:n??????fori=1:m????????X(i,j)=1+(P(j)-eps)*rand;??????end??end??farm{k}=X;endcounter=0;%設(shè)置迭代計(jì)數(shù)器whilecounter6、i)};%父代個(gè)體??????Manner=unidrnd(2);%隨機(jī)選擇交叉方式??????ifManner==1????????cp=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,:)];??????else????????cp=unidrnd(n-1);%隨機(jī)選擇交叉點(diǎn)????????b=[B(:,1:cp),A(:,(cp+1):n)];??????end??????newfarm
7、{i}=a;%交叉后的子代存入newfarm??????newfarm{i+1}=b;??end??%新舊種群合并??FARM=[farm,newfarm];????%第四步:選擇復(fù)制??FITNESS=zeros(1,2*N);??fitness=zeros(1,N);??plotif=0;??fori=1:(2*N)??????X=FARM{i};??????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
8、(2*N)