车间作业调度问题遗传算法matlab源码

车间作业调度问题遗传算法matlab源码

ID:10236589

大小:28.50 KB

页数:3页

时间:2018-06-12

车间作业调度问题遗传算法matlab源码_第1页
车间作业调度问题遗传算法matlab源码_第2页
车间作业调度问题遗传算法matlab源码_第3页
资源描述:

《车间作业调度问题遗传算法matlab源码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、车间作业调度问题遗传算法Matlab源码function[Zp,Y1p,Y2p,Y3p,Xp,LC1,LC2]=JSPGA(M,N,Pm,T,P)%--------------------------------------------------------------------------% JSPGA.m% 车间作业调度问题遗传算法%--------------------------------------------------------------------------% 输入参数列表% M      遗传进化迭代次数% N      种群规模(取偶数)% P

2、m     变异概率% T      m×n的矩阵,存储m个工件n个工序的加工时间% P      1×n的向量,n个工序中,每一个工序所具有的机床数目% 输出参数列表% Zp     最优的Makespan值% Y1p    最优方案中,各工件各工序的开始时刻,可根据它绘出甘特图% Y2p    最优方案中,各工件各工序的结束时刻,可根据它绘出甘特图% Y3p    最优方案中,各工件各工序使用的机器编号% Xp     最优决策变量的值,决策变量是一个实数编码的m×n矩阵% LC1    收敛曲线1,各代最优个体适应值的记录% LC2    收敛曲线2,各代群体平均适应值的

3、记录% 最后,程序还将绘出三副图片:两条收敛曲线图和甘特图(各工件的调度时序图)%第一步:变量初始化[m,n]=size(T);%m是总工件数,n是总工序数Xp=zeros(m,n);%最优决策变量LC1=zeros(1,M);%收敛曲线1LC2=zeros(1,N);%收敛曲线2%第二步:随机产生初始种群farm=cell(1,N);%采用细胞结构存储种群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}

4、=X;endcounter=0;%设置迭代计数器whilecounter      %第三步:交叉   newfarm=cell(1,N);%交叉产生的新种群存在其中   Ser=randperm(N);   fori=1:2:(N-1)       A=farm{Ser(i)};%父代个体       B=farm{Ser(i+1)};       Manner=unidrnd(2);%随机选择交叉方式       ifManner==1           cp=unidrnd(m-1);%随机选择交叉点           %双亲双子单点交叉           a=[A

5、(1:cp,:);B((cp+1):m,:)];%子代个体           b=[B(1:cp,:);A((cp+1):m,:)];       else           cp=unidrnd(n-1);%随机选择交叉点           a=[A(:,1:cp),B(:,(cp+1):n)];%双亲双子单点交叉           b=[B(:,1:cp),A(:,(cp+1):n)];       end       newfarm{i}=a;%交叉后的子代存入newfarm       newfarm{i+1}=b;   end   %新旧种群合并   FARM

6、=[farm,newfarm];      %第四步:选择复制   FITNESS=zeros(1,2*N);   fitness=zeros(1,N);   plotif=0;   fori=1:(2*N)       X=FARM{i};       Z=COST(X,T,P,plotif);%调用计算费用的子函数       FITNESS(i)=Z;   end   %选择复制采取两两随机配对竞争的方式,具有保留最优个体的能力   Ser=randperm(2*N);   fori=1:N       f1=FITNESS(Ser(2*i-1));       f2=F

7、ITNESS(Ser(2*i));       iff1<=f2           farm{i}=FARM{Ser(2*i-1)};           fitness(i)=FITNESS(Ser(2*i-1));       else           farm{i}=FARM{Ser(2*i)};           fitness(i)=FITNESS(Ser(2*i));       end   end   %记录最佳个体和收敛曲线   minfitness=min(fitn

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。