网站大量收购闲置独家精品文档,联系QQ:2885784924

09车间作业调度问题(JSP)的遗传算法通用MATLAB源代码.docx

09车间作业调度问题(JSP)的遗传算法通用MATLAB源代码.docx

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
欢迎访问GreenSim团队主页→ 邮箱: 第 PAGE \* MERGEFORMAT 1页 车间作业调度问题(JSP)的遗传算法通用MATLAB源代码 车间作业调度问题(JSP)是一类满足任务配置和顺序约束要求的资源分配问题,是最难的组合优化问题之一。下面的MATLAB源代码可用于求解标准JSP问题,虽然采用的是最普通的遗传算法,但在编解码环节,采用了十分巧妙的设计,可以大幅提高有哪些信誉好的足球投注网站效率。 function [S_best,T_min,LC]=JSPGA(M,N,Pc,Pm,Q,W) %% 车间作业调度问题遗传算法 % GreenSim团队——专业级算法设计代写程序 % 欢迎访问GreenSim团队主页→ %% 输入参数列表 % M 遗传算法进化代数 % N 种群规模 % Pc 交叉概率 % Pm 变异概率 % Q 机器序号矩阵 % W 操作时间矩阵 %% 输出参数列表 % S_best 最优调度方案,m×1的细胞结构,每个细胞单元为La×2的矩阵 % T_min 最优调度方案对应的最短调度时间 % LC 历史最优适应值收敛曲线 %% 第一步:参数初始化 [n,k]=size(Q);%n为工件总数,k为工序总数 m=max(max(Q));%m为机器总数 S_best=cell(m,1); T_min=inf; LC=zeros(1,M); %% 第二步:产生初始种群 farm=InitPop(N,Q,W,n,k,m);%调用产生初始种群的子函数 %% counter=0;%设置迭代计数器 while counterM%停止条件为达到最大迭代次数 %% 第三步:交叉 FARM=Cross(farm,Pc,m);%调用交叉子函数 %% 第四步:变异 FARM=Mutate(FARM,Pm,m);%调用变异子函数 %% 第五步:修正算子 FARM=Modify(FARM,Q,W,n,k);%调用修正子函数 %% 第六步:计算适应值 FITNESS=Fit(FARM);%调用计算适应值的子函数 %% 第七步:选择复制 [farm,fitness]=Select(FARM,FITNESS);%调用选择复制子函数 %% 第八步:记录和更新 [S_best,T_min,LC]=Updata(S_best,T_min,LC,farm,fitness,counter);%记录和更新子函数 counter=counter+1; disp(counter); end function FARM=Cross(farm,Pc,m) %% 子函数:交叉子函数 %% 输入参数列表 % farm 交叉操作之前的种群 % Pc 交叉概率 % Q 机器序号矩阵,n×k的矩阵 % W 操作时间矩阵,n×k的矩阵 % n 工件总数 % k 工序总数 % m 机器总数 %% 输出参数列表 % FARM 输出种群 %% N=size(farm,2); newfarm=cell(m,2*N); SER=randperm(N); A=farm(:,1); B=farm(:,N); pos=unidrnd(m-1); AA=[A(1:pos,:);B((pos+1):end,:)]; BB=[B(1:pos,:);A((pos+1):end,:)]; newfarm(:,1)=AA; newfarm(:,2)=BB; for i=1:(N-1) A=farm(:,SER(i)); B=farm(:,SER(i+1)); pos=unidrnd(m-1); AA=[A(1:pos,:);B((pos+1):end,:)]; BB=[B(1:pos,:);A((pos+1):end,:)]; newfarm(:,2*i+1)=AA; newfarm(:,2*i+2)=BB; end %% for i=1:(2*N) if Pcrand A=newfarm(:,i); for j=1:m Aj=A{j}; L=size(Aj,2); if L2 pos=unidrnd(L-2)+1;

文档评论(0)

wnqwwy20 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档