资源简介
进化策略算法实现公交车调度,人工智能课程设计,自己原创,在MATLAB上调试通过
代码片段和文件信息
%进化策略算法 (μλ)-ES
%μ个父代进化产生λ个子代,新产生的λ个新个体中择优选择μ个个体作为下一代群体
%f(x)=x1+x2+x3+x4+x5+x6
clear all;
close all;
clc
%变量初始化
populationSize = 15; %种群大小及子代个数 比例1/7
childrenSize = 100;
best=0; %存放父代最优值及所在列
bestIndex=1;
fitness = zeros( childrenSize 13); %存放子代 其中(1:6)存放子代个体6个分量,(7:12)存放子代个体6个方差,(113)存放子代的适应度函数
population=zeros(populationSize 13); %存放父代
% 初始化父代
for i = 1 : populationSize
population(i 1) = round(rand * 60);
population(i 2) = round(rand * 70);
population(i 3) = round(rand * 60);
population(i 4) = round(rand * 50);
population(i 5) = round(rand * 20);
population(i 6) = round(rand * 30);
while (population(i 1)+population(i 6))<60||(population(i 1)+population(i 2))<70||...
(population(i 3)+population(i 2))<60||(population(i 4)+population(i 3))<50||...
(population(i 5)+population(i 4))<20 || (population(i 6)+population(i 5))<30
population(i 1) = round(rand * 60);
population(i 2) = round(rand * 70);
population(i 3) = round(rand * 60);
population(i 4) = round(rand * 50);
population(i 5) = round(rand * 20);
population(i 6) = round(rand * 30);
end
for j=7:13
population(ij)=3.0;%sigma初始化
if j==13
population(i 13) = population(i 1)+population(i 2)+population(i 3)+population(i 4)+population(i 5)+ population(i 6);
end
end
if best>population(i 13)
best=population(i13);
bestIndex=i;
end
end
bestFitness=population(bestIndex:);%精英保留
% 进行100次迭代
for t = 1 : 100
% 产生childrenSize个子代,并计算其方差、适应度保存到fitness数组中
for i=1:childrenSize
populationIndex = round(rand * (populationSize-1))+1;% 从父代中随机挑选一个用于产生子代
for j=1:6
fitness(i6+j)=population(populationIndex6+j) * exp(1 * normrnd(0 1) + 1 * normrnd(0 1)); % 调整sigma参数
fitness(ij)=round(population(populationIndex j) + fitness(i6+j) *normrnd(0 1));
end
fitness(i13)=fitness(i1)+fitness(i2)+fitness(i3)+fitness(i4)+fitness(i5)+fitness(i6);
%根据条件产生符合条件的子代
while fitness(i1) < 0 || fitness(i1) > 60 || fitness(i6) < 0 || fitness(i6) > 60 || (fitness(i1)+fitness(i6))<60 ||...
(fitness(i1)+fitness(i2))<70 || fitness(i2)<0 || fitness(i2)>70 || (fitness(i3)+fitness(i2))<60 || fitness(i3)<0 || fitness(i3)>60||...
(fitness(i3)+fitness(i4))<50 || fitness(i4)<0 || fitness(i4)>50 || (fitness(i5)+fitness(i4))<20 ||...
(fitness(i6)+fitness(i5))<30 || fitness(i5)<0 || fitness(i5)>30
for j=1:6
fitness(i6+j)=population(populationIndex6+j) * exp(1 * normrnd(0 1) + 1 * normrnd(0 1)); % 调整sigma参数
fitness(ij)=round(population(populationIndex j) + fitness(i6+j) *normrnd(0 1));
end
fitness(i13)=fitness(i1)+fitness(i2)+fitness(i3属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 91648 2014-03-21 19:37 EvolutionStrategy\BusDispatch.doc
文件 3624 2013-06-19 21:54 EvolutionStrategy\EvolutionStrategy.m
目录 0 2014-03-21 19:51 EvolutionStrategy
----------- --------- ---------- ----- ----
95272 3
相关资源
- 基于小波变换的数字水印算法115024
- matlab_OFDM调制解调(来自剑桥大学)
- Matlab路面裂缝识别69319
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
川公网安备 51152502000135号
评论
共有 条评论