一、遗传算法简介

1 引言


2 遗传算法理论
2.1 遗传算法的生物学基础


2.2 遗传算法的理论基础




2.3 遗传算法的基本概念






2.4 标准的遗传算法


2.5 遗传算法的特点


2.6 遗传算法的改进方向

3 遗传算法流程



4 关键参数说明

二、部分源代码

clear all;
close all;
clc;%变量初始化
populationSize=80;   %群体大小
generationSize=800;     %进化代数
codeLength=35;  %编码长度
children=zeros(populationSize,7); %存储子代分量及适应度
pr=0.15;    %复制概率
pm=0.1;     %变异概率
pc=0.60;    %交叉概率
E=round(rand(populationSize,codeLength));    %随机产生二进制串%主函数
for k=1:1:generationSizefor s=1:1:populationSize
x=E(s,:);
temp=zeros(1,7);%临时保存子代各分量的十进制值
%编码
for i=1:35if i<=6temp(1)=temp(1)+x(i)*2^(i-1);elseif i>=7 && i<=13temp(2)=temp(2)+x(i)*2^(i-6-1);elseif i>=14 && i<=19temp(3)=temp(3)+x(i)*2^(i-13-1);elseif i>=20 && i<=25temp(4)=temp(4)+x(i)*2^(i-19-1);elseif i>=26 && i<=30temp(5)=temp(5)+x(i)*2^(i-25-1);elseif i>=31 && i<=35temp(6)=temp(6)+x(i)*2^(i-30-1);end
end
children(s,1)=round(60*temp(1)/(2^6-1));
children(s,2)=round(70*temp(2)/(2^7-1));
children(s,3)=round(60*temp(3)/(2^6-1));
children(s,4)=round(50*temp(4)/(2^6-1));
children(s,5)=round(20*temp(5)/(2^5-1));
children(s,6)=round(30*temp(6)/(2^5-1));
children(s,7)=round(children(s,1)+children(s,2)+children(s,3)+children(s,4)+children(s,5)+children(s,6));while children(s,1)+children(s,6)<60||children(s,1)+children(s,2)<70||children(s,2)+children(s,3)<60||...children(s,3)+children(s,4)<50||children(s,4)+children(s,5)<20||children(s,5)+children(s,6)<30E(s,:)=round(rand(1,codeLength));x=E(s,:);temp=zeros(1,7);for i=1:35if i<=6temp(1)=temp(1)+x(i)*2^(i-1);elseif i>=7 && i<=13temp(2)=temp(2)+x(i)*2^(i-6-1);elseif i>=14 && i<=19temp(3)=temp(3)+x(i)*2^(i-13-1);elseif i>=20 && i<=25temp(4)=temp(4)+x(i)*2^(i-19-1);elseif i>=26 && i<=30temp(5)=temp(5)+x(i)*2^(i-25-1);elseif i>=31 && i<=35temp(6)=temp(6)+x(i)*2^(i-30-1);endend
children(s,1)=round(60*temp(1)/(2^6-1));
children(s,2)=round(70*temp(2)/(2^7-1));
children(s,3)=round(60*temp(3)/(2^6-1));
children(s,4)=round(50*temp(4)/(2^6-1));
children(s,5)=round(20*temp(5)/(2^5-1));
children(s,6)=round(30*temp(6)/(2^5-1));
children(s,7)=round(children(s,1)+children(s,2)+children(s,3)+children(s,4)+children(s,5)+children(s,6));
end
end% Step 1 : 确定适应度函数
fitness=1./children(:,7);
[orderFitness,indexFitness]=sort(fitness);     %orderFitness按行从小到大排序的新矩阵,indexFitness元素位置构成的新矩阵
bestFitness=orderFitness(populationSize);      %bestFitness=max(fitness)
bestS=E(indexFitness(populationSize),:);       %bestS 精英保留%Step 2 : 复制操作
sumFitness=sum(fitness);
fitnessSize=(orderFitness/sumFitness)*populationSize;
fitnessSelect=floor(fitnessSize);        %朝负无穷大方向取整
kk=1;
for i=1:1:populationSizefor j=1:1:fitnessSelect(i)            %Select and Reproduce TempE(kk,:)=E(indexFitness(i),:);  kk=kk+1;                           %kk is used to reproduceend
end%Step 3 : 交叉操作
n=ceil(35*rand);                %朝正无穷大方向取整
for i=1:2:(populationSize-1)temp=rand;if pc>temp                  %Crossover Conditionfor j=n:1:35TempE(i,j)=E(i+1,j);TempE(i+1,j)=E(i,j);endend
end
TempE(populationSize,:)=bestS;
E=TempE;%Step 4: 变异操作
for i=1:1:populationSize%Mutation Conditionif TempE(i,j)==0TempE(i,j)=1;elseTempE(i,j)=0;endendend
end
TempE(populationSize,:)=bestS;
E=TempE;
disp(['第',num2str(k),'代:',num2str(children(populationSize,:))]);
end
disp(['二进制编码:',num2str(bestS)]);
disp(['最优选择:',num2str(children(populationSize,:))]);

三、运行结果

四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016.
[2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017.

【优化调度】基于matlab遗传算法求解公交车调度优化问题【含Matlab源码 040期】相关推荐

  1. 【生产优化】基于matlab遗传算法求解帐篷工序问题【含Matlab源码 2145期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源: [生产优化]基于matlab遗传算法求解帐篷工序问题[含Matlab源码 2145期] 点击上面蓝色字体,直接付费下载,即可. 获取代码 ...

  2. 【Matlab肌电信号】肌电信号处理【含GUI源码 966期】

    一.代码运行视频(哔哩哔哩) [Matlab肌电信号]肌电信号处理[含GUI源码 966期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余继周,杨 ...

  3. 【Matlab语音处理】声音信号频谱分析仪【含GUI源码 325期】

    一.代码运行视频(哔哩哔哩) [Matlab语音处理]声音信号频谱分析仪[含GUI源码 325期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊, ...

  4. 【Matlab图像检索】综合特征图像检索【含GUI源码 395期】

    一.代码运行视频(哔哩哔哩) [Matlab图像检索]综合特征图像检索[含GUI源码 395期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MAT ...

  5. 【Matlab条形码识别】二维条形码识别【含GUI源码 607期】

    一.代码运行视频(哔哩哔哩) [Matlab条形码识别]二维条形码识别[含GUI源码 607期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MAT ...

  6. 【优化调度】基于matlab遗传算法求解公交车调度排班优化问题【含Matlab源码 2212期】

    ⛄ 一. 遗传算法简介 1 引言 公交排班问题是城市公交调度的核心内容,是公交调度人员.司乘人员进行工作以及公交车辆正常运行的基本依据.行车时刻表是按照线路的当前客流量情况,确定发车频率,提供线路车辆 ...

  7. 【Matlab验证码识别】遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别【含GUI源码 1694期】

    一.代码运行视频(哔哩哔哩) [Matlab验证码识别]遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别[含GUI源码 1694期] 二.matlab版本及参考文献 1 matlab ...

  8. 【Matlab路径规划】改进的遗传算法机器人避障路径规划【含GUI源码 703期】

    一.代码运行视频(哔哩哔哩) [Matlab路径规划]改进的遗传算法机器人避障路径规划[含GUI源码 703期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] ...

  9. 【Matlab电力负荷预测】粒子群优化支持向量机短期电力负荷预测【含GUI源码 751期】

    一.代码运行视频(哔哩哔哩) [Matlab电力负荷预测]粒子群优化支持向量机短期电力负荷预测[含GUI源码 751期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 ...

  10. 【Matlab图像融合】小波变换遥感图像融合【含GUI源码 744期】

    一.代码运行视频(哔哩哔哩) [Matlab图像融合]小波变换遥感图像融合[含GUI源码 744期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余 ...

最新文章

  1. 捷途ipel平台怎么样_奇瑞捷途X有望搭载北斗、GPS双导航系统
  2. 伪静态技术(SEO) 摘自:http://bbs.admin5.com/thread-8522290-1-1.html
  3. 使用HTML5画布实现的超棒javascript动画仪表板:gauge.js
  4. Java Bean与Map之间相互转化的实现
  5. linux搭建环境经验,经验总结54--搭建linux虚拟机环境
  6. JAVA中几个修饰符的作用以及一些相关话题
  7. 悔不当初:回顾进化之路
  8. [js] ReferenceError和TypeError有什么区别?
  9. Python3标准库built-in、itertools、functools中的生成器
  10. MarkDown中的表格在jekyll的pages博客中不能正常显示
  11. 荣耀平板5升级鸿蒙,荣耀能否“升级”鸿蒙?赵明正式确认:华为做得好会考虑采用!...
  12. 视频转换器怎么用?迅捷视频转换器图文操作教程分享
  13. Python 九九乘法表打印
  14. 品致教您如何选择合适的电流探头
  15. Tilera的多核CPU
  16. 图灵mysql_图灵学院JAVA架构师-VIP-MySQL底层实现之B+树
  17. Spark运行环境之SparkEnv和通信工具RpcEnv
  18. 如何将文字翻译成英文?简单教程讲解
  19. Java中方法调用完之后,原来的数改变吗?
  20. 使用java完成一个猜数字的小游戏(数据范围在1-100之间)

热门文章

  1. Windows server 2003 伪静态配置方法
  2. Cannot read property 'scrollWidth' of null
  3. ios音乐播放器使用综述
  4. Ajax中的get和post两种请求方式的异同
  5. javascript:鼠标拖动图标技术
  6. 七月算法机器学习4 凸优化初步
  7. RBG-D深度相机的相关资料
  8. Atitit 提现功能安全条例 目录 1. 防余额篡改 1 2. 大额 频繁交易预警系统 1 3. 增加审核 流程 1 4. 增加审计 1 5. 财务出款核对 1 6. Other 2 6.1. 数
  9. Atitit 如何工作积极的心态积极起来
  10. Atitit 多继承实现解决方案 java c#