車(chē)間作業(yè)調(diào)度問(wèn)題遺傳算法Matlab源碼程序
推薦 + 挑錯(cuò) + 收藏(0) + 用戶(hù)評(píng)論(0)
車(chē)間作業(yè)調(diào)度問(wèn)題遺傳算法Matlab源碼程序:function [Zp,Y1p,Y2p,Y3p,Xp,LC1,LC2]=JSPGA(M,N,Pm,T,P)
%--------------------------------------------------------------------------
%? JSPGA.m
%? 車(chē)間作業(yè)調(diào)度問(wè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)方案中,各工件各工序的結(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);%收斂曲線1
LC2=zeros(1,N);%收斂曲線2
%第二步:隨機(jī)產(chǎn)生初始種群
farm=cell(1,N);%采用細(xì)胞結(jié)構(gòu)存儲(chǔ)種群
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;%設(shè)置迭代計(jì)數(shù)器
while counter
??
??? %第三步:交叉
??? newfarm=cell(1,N);%交叉產(chǎn)生的新種群存在其中
??? Ser=randperm(N);
??? for i=1:2:(N-1)
??????? A=farm{Ser(i)};%父代個(gè)體
??????? B=farm{Ser(i+1)};
??????? Manner=unidrnd(2);%隨機(jī)選擇交叉方式
??????? 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,:);A((cp+1):m,:)];
??????? else
??????????? cp=unidrnd(n-1);%隨機(jī)選擇交叉點(diǎn)
??????????? a=[A(:,1:cp),B(:,(cp+1):n)];%雙親雙子單點(diǎn)交叉
??????????? b=[B(:,1:cp),A(:,(cp+1):n)];
??????? end
??????? newfarm{i}=a;%交叉后的子代存入newfarm
??????? newfarm{i+1}=b;
??? end
??? %新舊種群合并
??? FARM=[farm,newfarm];
非常好我支持^.^
(3) 100%
不好我反對(duì)
(0) 0%
下載地址
車(chē)間作業(yè)調(diào)度問(wèn)題遺傳算法Matlab源碼程序下載
相關(guān)電子資料下載
- MATLAB程序算法實(shí)例 65
- matlab怎么取三位數(shù)的每一位 85
- 現(xiàn)代永磁同步電機(jī)原理及matlab仿真 136
- 應(yīng)用衛(wèi)星通信領(lǐng)域的一個(gè)坐標(biāo)轉(zhuǎn)換過(guò)程—機(jī)體坐標(biāo)系與ENU坐標(biāo)系的轉(zhuǎn)換 97
- ZEMAX與MATLAB動(dòng)態(tài)數(shù)據(jù)交換及其應(yīng)用 314
- 無(wú)線通信空間調(diào)制的基本原理 200
- 利用MATLAB進(jìn)行天線陣列方向圖綜合 558
- FPGA圖像處理—ISP算法BLC知識(shí)詳解 475
- 虛擬驗(yàn)證輔助工具助力抗震建筑物設(shè)計(jì) 231
- 基于Simulink的迷你無(wú)人機(jī)飛行控制系統(tǒng)設(shè)計(jì) 142