09车间作业调度问题(jsp)的遗传算法通用matlab源代码

09车间作业调度问题(jsp)的遗传算法通用matlab源代码

ID:1131199

大小:29.83 KB

页数:4页

时间:2017-11-07

09车间作业调度问题(jsp)的遗传算法通用matlab源代码_第1页
09车间作业调度问题(jsp)的遗传算法通用matlab源代码_第2页
09车间作业调度问题(jsp)的遗传算法通用matlab源代码_第3页
09车间作业调度问题(jsp)的遗传算法通用matlab源代码_第4页
资源描述:

《09车间作业调度问题(jsp)的遗传算法通用matlab源代码》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、欢迎访问GreenSim团队主页→http://blog.sina.com.cn/greensim邮箱:greensim@163.com车间作业调度问题(JSP)的遗传算法通用MATLAB源代码车间作业调度问题(JSP)是一类满足任务配置和顺序约束要求的资源分配问题,是最难的组合优化问题之一。下面的MATLAB源代码可用于求解标准JSP问题,虽然采用的是最普通的遗传算法,但在编解码环节,采用了十分巧妙的设计,可以大幅提高搜索效率。function[S_best,T_min,LC]=JSPGA(M,N,Pc,Pm,Q,W)%%车间作业调度问题遗传算法%GreenSim团队——专业

2、级算法设计&代写程序%欢迎访问GreenSim团队主页→http://blog.sina.com.cn/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,

3、M);%%第二步:产生初始种群farm=InitPop(N,Q,W,n,k,m);%调用产生初始种群的子函数%%counter=0;%设置迭代计数器whilecounter

4、页→http://blog.sina.com.cn/greensim邮箱:greensim@163.com[farm,fitness]=Select(FARM,FITNESS);%调用选择复制子函数%%第八步:记录和更新[S_best,T_min,LC]=Updata(S_best,T_min,LC,farm,fitness,counter);%记录和更新子函数counter=counter+1;disp(counter);endfunctionFARM=Cross(farm,Pc,m)%%子函数:交叉子函数%%输入参数列表%farm交叉操作之前的种群%Pc交叉概率%Q机器序号

5、矩阵,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;fori=1:(N-1)A=farm(:,SER(i));B=farm(:,SER

6、(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%%fori=1:(2*N)ifPc>randA=newfarm(:,i);forj=1:mAj=A{j};第4页欢迎访问GreenSim团队主页→http://blog.sina.com.cn/greensim邮箱:greensim@163.comL=size(Aj,2);ifL>2pos=unidrnd(L-2)

7、+1;Bj=[Aj(:,1),Aj(:,(pos+1):end),Aj(:,2:pos)];A{j}=Bj;endendnewfarm(:,i)=A;endendFARM=[farm,newfarm];functionFARM=Mutate(FARM,Pm,m)%%子函数:变异子函数%%输入参数列表%FARM交叉操作之后新旧种群的合并种群%Pm变异概率%%输出参数列表%FARM输出种群%%NN=size(FARM,2);fori=1:NNifPm>randA=FARM(:,i);forj=1

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

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

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