《MATLAB智能算法30个案例》:第11章 基于多层编码遗传算法的车间调度算法

  • 1. 前言
  • 2. MATLAB 仿真示例
  • 3. 小结

1. 前言

《MATLAB智能算法30个案例分析》是2011年7月1日由北京航空航天大学出版社出版的图书,作者是郁磊、史峰、王辉、胡斐。本书案例是各位作者多年从事算法研究的经验总结。书中所有案例均因国内各大MATLAB技术论坛网友的切身需求而精心设计,其中不少案例所涉及的内容和求解方法在国内现已出版的MATLAB书籍中鲜有介绍。《MATLAB智能算法30个案例分析》采用案例形式,以智能算法为主线,讲解了遗传算法、免疫算法、退火算法、粒子群算法、鱼群算法、蚁群算法和神经网络算法等最常用的智能算法的MATLAB实现。

本书共给出30个案例,每个案例都是一个使用智能算法解决问题的具体实例,所有案例均由理论讲解、案例背景、MATLAB程序实现和扩展阅读四个部分组成,并配有完整的原创程序,使读者在掌握算法的同时更能快速提高使用算法求解实际问题的能力。《MATLAB智能算法30个案例分析》可作为本科毕业设计、研究生项目设计、博士低年级课题设计参考书籍,同时对广大科研人员也有很高的参考价值。

《MATLAB智能算法30个案例分析》与《MATLAB 神经网络43个案例分析》一样,都是由北京航空航天大学出版社出版,其中的智能算法应该是属于神经网络兴起之前的智能预测分类算法的热门领域,在数字信号处理,如图像和语音相关方面应用较为广泛。本系列文章结合MATLAB与实际案例进行仿真复现,有不少自己在研究生期间与工作后的学习中有过相关学习应用,这次复现仿真示例进行学习,希望可以温故知新,加强并提升自己在智能算法方面的理解与实践。下面开始进行仿真示例,主要以介绍各章节中源码应用示例为主,本文主要基于MATLAB2015b(32位)平台仿真实现,这是本书第十一章基于多层编码遗传算法的车间调度算法实例,话不多说,开始!

2. MATLAB 仿真示例

打开MATLAB,点击“主页”,点击“打开”,找到示例文件

选中main.m,点击“打开”

main.m源码如下:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%功能:基于多层编码遗传算法的车间调度算法示例
%环境:Win7,Matlab2015b
%Modi: C.S
%时间:2022-07-5
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 清空环境
clc
clear all
close alltic
%% 下载数据
load scheduleData Jm T JmNumber
%工序 时间%% 基本参数
NIND=40;        %个体数目
MAXGEN=50;      %最大遗传代数
GGAP=0.9;       %代沟
XOVR=0.8;       %交叉率
MUTR=0.6;       %变异率
gen=0;          %代计数器
%PNumber 工件个数 MNumber  工序个数
[PNumber MNumber]=size(Jm);
trace=zeros(2, MAXGEN);      %寻优结果的初始值
WNumber=PNumber*MNumber;     %工序总个数%% 初始化
Number=zeros(1,PNumber);     % PNumber 工件个数
for i=1:PNumberNumber(i)=MNumber;         %MNumber工序个数
end% 代码2层,第一层工序,第二层机器
Chrom=zeros(NIND,2*WNumber);
for j=1:NINDWPNumberTemp=Number;for i=1:WNumber%随机产成工序val=unidrnd(PNumber);while WPNumberTemp(val)==0val=unidrnd(PNumber);end%第一层代码表示工序Chrom(j,i)= val;WPNumberTemp(val)=WPNumberTemp(val)-1;%第2层代码表示机器Temp=Jm{val,MNumber-WPNumberTemp(val)};SizeTemp=length(Temp);%随机产成工序机器Chrom(j,i+WNumber)= unidrnd(SizeTemp);end
end%计算目标函数值
[PVal ObjV P S]=cal(Chrom,JmNumber,T,Jm);  %% 循环寻找
while gen<MAXGEN%分配适应度值FitnV=ranking(ObjV);  %选择操作SelCh=select('rws', Chrom, FitnV, GGAP);       %交叉操作SelCh=across(SelCh,XOVR,Jm,T);          %变异操作SelCh=aberranceJm(SelCh,MUTR,Jm,T);            %计算目标适应度值[PVal ObjVSel P S]=cal(SelCh,JmNumber,T,Jm);   %重新插入新种群[Chrom ObjV] =reins(Chrom, SelCh,1, 1, ObjV, ObjVSel);       %代计数器增加gen=gen+1;       %保存最优值trace(1, gen)=min(ObjV);       trace(2, gen)=mean(ObjV);  % 记录最佳值if gen==1Val1=PVal;Val2=P;MinVal=min(ObjV);%最小时间STemp=S;end%记录 最小的工序if MinVal> trace(1,gen)Val1=PVal;Val2=P;MinVal=trace(1,gen);STemp=S;endend% 当前最佳值
PVal=Val1; %工序时间
P=Val2;  %工序
S=STemp; %调度基因含机器基因%% 描绘解的变化
figure(1)
plot(trace(1,:));
hold on;
plot(trace(2,:),'-.');grid;
legend('解的变化','种群均值的变化');%% 显示最优解
figure(2);
MP=S(1,PNumber*MNumber+1:PNumber*MNumber*2);
for i=1:WNumber  val= P(1,i);a=(mod(val,100)); %工序b=((val-a)/100); %工件Temp=Jm{b,a};mText=Temp(MP(1,i));x1=PVal(1,i);x2=PVal(2,i);y1=mText-1;y2=mText;PlotRec(x1,x2,mText);PlotRec(PVal(1,i),PVal(2,i),mText);hold on;fill([x1,x2,x2,x1],[y1,y1,y2,y2],[1-1/b,1/b,b/PNumber]);text((x1+x2)/2,mText-0.25,num2str(P(i)));
end
toc

添加完毕,点击“运行”,开始仿真,输出仿真结果如下:

时间已过 1.742001 秒。


3. 小结

多层编码遗传算法把个体编码分成多层,每层编码均表示不同的含义,多层编码共同完整表达了问题的解。多层编码遗传算法扩展了遗传算法的使用领域,使得遗传算法可以方便用于复杂问题的求解。以车间调度问题为例,车间调度问题是指根据产品的制造需求,分配加工车间顺序。要考虑的因素有:机器集、零件集、工序序列集、可选机器集、使用机器加工零件的时间矩阵、费用矩阵。对本章内容感兴趣或者想充分学习了解的,建议去研习书中第十一章节的内容。后期会对其中一些知识点在自己理解的基础上进行补充,欢迎大家一起学习交流。

《MATLAB智能算法30个案例》:第11章 基于多层编码遗传算法的车间调度算法相关推荐

  1. 《MATLAB智能算法30个案例》:第19章 基于模拟退火算法的TSP算法

    <MATLAB智能算法30个案例>:第19章 基于模拟退火算法的TSP算法 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB智能算法30个案例分析&g ...

  2. 《MATLAB智能算法30个案例》:第20章 基于遗传模拟退火算法的聚类算法

    <MATLAB智能算法30个案例>:第20章 基于遗传模拟退火算法的聚类算法 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB智能算法30个案例分析& ...

  3. 《MATLAB智能算法30个案例》:第4章 基于遗传算法的TSP算法

    <MATLAB智能算法30个案例>:第4章 基于遗传算法的TSP算法 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB智能算法30个案例分析>是 ...

  4. 《MATLAB智能算法30个案例》:第29章 支持向量机的回归拟合——混凝土抗压强度预测

    <MATLAB智能算法30个案例>:第29章 支持向量机的回归拟合--混凝土抗压强度预测 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB智能算法30 ...

  5. 《MATLAB智能算法30个案例》:第17章 基于PSO工具箱的函数寻优算法

    <MATLAB智能算法30个案例>:第17章 基于PSO工具箱的函数寻优算法 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB智能算法30个案例分析& ...

  6. 《MATLAB智能算法30个案例》:第8章 基于量子遗传算法的函数寻优算法

    <MATLAB智能算法30个案例>:第8章 基于量子遗传算法的函数寻优算法 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB智能算法30个案例分析&g ...

  7. 《MATLAB智能算法30个案例》:第26章 有导师学习神经网络的分类——鸢尾花种类识别

    <MATLAB智能算法30个案例>:第26章 有导师学习神经网络的分类--鸢尾花种类识别 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB智能算法30 ...

  8. 《MATLAB智能算法30个案例》:第22章 蚁群算法的优化计算——旅行商问题(TSP)优化

    @[TOC](<MATLAB智能算法30个案例>:第22章 蚁群算法的优化计算--旅行商问题(TSP)优化) 1. 前言 <MATLAB智能算法30个案例分析>是2011年7月 ...

  9. 《MATLAB智能算法30个案例》:第27章 无导师学习神经网络的分类——矿井突水水源判别

    <MATLAB智能算法30个案例>:第27章 无导师学习神经网络的分类--矿井突水水源判别 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB智能算法3 ...

  10. MATLAB智能算法30个案例分析pdf

    下载地址:网盘下载 MATLAB智能算法30个案例分析,ISBN:9787512403512,作者:史峰,王辉 等编著 下载地址:网盘下载 转载于:https://www.cnblogs.com/cf ...

最新文章

  1. C++20四大之一:module特性详解
  2. python pywin32 微信_Pywin32错误地安装进Anaconda的Python里了
  3. 4月25日 python学习总结 互斥锁 IPC通信 和 生产者消费者模型
  4. Windows+Caffe(Faster RCNN/RFCN/SSD)编译(Cuda7.5+Cuda8.0)未完待续
  5. PermGen space处理方法1
  6. C和汇编-----for循环
  7. sscanf解析复杂字符串,双引号通配符的使用问题
  8. X.509证书编码及解析
  9. 蒙特卡洛_蒙特卡洛辍学
  10. JS:关于邮箱的正则表达式及规则
  11. 计算机如何接两个屏幕,笔记本连接两个显示器的步骤_笔记本电脑怎么外接两个显示器做分屏-win7之家...
  12. 抖音企业号,抖音搜索框SEO优化系统搭建。
  13. Wiremock的使用
  14. 台式计算机除尘方法,台式电脑主机彻底除尘经验
  15. Qt网路与通信(获取本机IP、MAC、IPV6子网掩码等网络信息)
  16. 想自己上线微信小程序一定要会代码?
  17. 数据堂公司董事长齐红威应邀参加安徽省政府组织的企业家恳谈会
  18. 高性价比的车联网数据记录仪--OWA4xx
  19. 带你搞懂Thrift核心源码(JAVA)
  20. 用c语言编程牛顿环实验报告,C语言和Origin7.5软件在实验中的应用——以牛顿环测纯水折射率为例.pdf...

热门文章

  1. NASA 用哈勃望远镜定格你的星空
  2. [MAC 苹果电脑] [Linux 系统] ”苹果电脑使用虚拟机安装 Linux Ubuntu系统”教程
  3. CSR3026开发问题总结-1
  4. 如何在JUnit5中使用Mockito
  5. 用R软件绘制中国分省市地图
  6. ubuntu16.04安装及卸载anaconda3
  7. linux shell 列表循环,shell脚本中,for基于列表进行循环的实现方法
  8. 工业界论文被CVPR收录有捷径?| CVPR 2017
  9. ubuntu18.04下载显卡驱动+CUDA+CUDNN
  10. 爱数私有云盘 AnyShare 部署(二)