【优化调度】基于matlab遗传算法求解公交车调度优化问题【含Matlab源码 040期】
一、遗传算法简介
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期】相关推荐
- 【生产优化】基于matlab遗传算法求解帐篷工序问题【含Matlab源码 2145期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源: [生产优化]基于matlab遗传算法求解帐篷工序问题[含Matlab源码 2145期] 点击上面蓝色字体,直接付费下载,即可. 获取代码 ...
- 【Matlab肌电信号】肌电信号处理【含GUI源码 966期】
一.代码运行视频(哔哩哔哩) [Matlab肌电信号]肌电信号处理[含GUI源码 966期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余继周,杨 ...
- 【Matlab语音处理】声音信号频谱分析仪【含GUI源码 325期】
一.代码运行视频(哔哩哔哩) [Matlab语音处理]声音信号频谱分析仪[含GUI源码 325期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊, ...
- 【Matlab图像检索】综合特征图像检索【含GUI源码 395期】
一.代码运行视频(哔哩哔哩) [Matlab图像检索]综合特征图像检索[含GUI源码 395期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MAT ...
- 【Matlab条形码识别】二维条形码识别【含GUI源码 607期】
一.代码运行视频(哔哩哔哩) [Matlab条形码识别]二维条形码识别[含GUI源码 607期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MAT ...
- 【优化调度】基于matlab遗传算法求解公交车调度排班优化问题【含Matlab源码 2212期】
⛄ 一. 遗传算法简介 1 引言 公交排班问题是城市公交调度的核心内容,是公交调度人员.司乘人员进行工作以及公交车辆正常运行的基本依据.行车时刻表是按照线路的当前客流量情况,确定发车频率,提供线路车辆 ...
- 【Matlab验证码识别】遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别【含GUI源码 1694期】
一.代码运行视频(哔哩哔哩) [Matlab验证码识别]遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别[含GUI源码 1694期] 二.matlab版本及参考文献 1 matlab ...
- 【Matlab路径规划】改进的遗传算法机器人避障路径规划【含GUI源码 703期】
一.代码运行视频(哔哩哔哩) [Matlab路径规划]改进的遗传算法机器人避障路径规划[含GUI源码 703期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] ...
- 【Matlab电力负荷预测】粒子群优化支持向量机短期电力负荷预测【含GUI源码 751期】
一.代码运行视频(哔哩哔哩) [Matlab电力负荷预测]粒子群优化支持向量机短期电力负荷预测[含GUI源码 751期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 ...
- 【Matlab图像融合】小波变换遥感图像融合【含GUI源码 744期】
一.代码运行视频(哔哩哔哩) [Matlab图像融合]小波变换遥感图像融合[含GUI源码 744期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余 ...
最新文章
- 捷途ipel平台怎么样_奇瑞捷途X有望搭载北斗、GPS双导航系统
- 伪静态技术(SEO) 摘自:http://bbs.admin5.com/thread-8522290-1-1.html
- 使用HTML5画布实现的超棒javascript动画仪表板:gauge.js
- Java Bean与Map之间相互转化的实现
- linux搭建环境经验,经验总结54--搭建linux虚拟机环境
- JAVA中几个修饰符的作用以及一些相关话题
- 悔不当初:回顾进化之路
- [js] ReferenceError和TypeError有什么区别?
- Python3标准库built-in、itertools、functools中的生成器
- MarkDown中的表格在jekyll的pages博客中不能正常显示
- 荣耀平板5升级鸿蒙,荣耀能否“升级”鸿蒙?赵明正式确认:华为做得好会考虑采用!...
- 视频转换器怎么用?迅捷视频转换器图文操作教程分享
- Python 九九乘法表打印
- 品致教您如何选择合适的电流探头
- Tilera的多核CPU
- 图灵mysql_图灵学院JAVA架构师-VIP-MySQL底层实现之B+树
- Spark运行环境之SparkEnv和通信工具RpcEnv
- 如何将文字翻译成英文?简单教程讲解
- Java中方法调用完之后,原来的数改变吗?
- 使用java完成一个猜数字的小游戏(数据范围在1-100之间)
热门文章
- Windows server 2003 伪静态配置方法
- Cannot read property 'scrollWidth' of null
- ios音乐播放器使用综述
- Ajax中的get和post两种请求方式的异同
- javascript:鼠标拖动图标技术
- 七月算法机器学习4 凸优化初步
- RBG-D深度相机的相关资料
- Atitit 提现功能安全条例 目录 1. 防余额篡改	1 2. 大额 频繁交易预警系统	1 3. 增加审核 流程	1 4. 增加审计	1 5. 财务出款核对	1 6. Other	2 6.1. 数
- Atitit 如何工作积极的心态积极起来
- Atitit 多继承实现解决方案 java c#