es算法matlab编程,matlab练习程序(演化策略ES)
% 算法步骤如下:
% 1.设定种群个体数和需要迭代的次数。
% 2.选择父代中的个体按照公式:
% z1=sqrt(-2*ln(u1))*sin(2*pi*u2)*m,
% z2=sqrt(-2*ln(u1))*cos(2*pi*u2)*m
% 这里u1,u2都是随机值,m是控制因子,演化次数越多m,
% m越小,父代通过与z1,z2相加得到后代。
% 3.计算后代的适应性。
% 4.选择后代中最优的适应性作为全局最优适应性。
%% matlab 代码开始
clc;
clear all;
close all;
%% 绘出所求函数图形
[x,y] = meshgrid(-100:100,-100:100);
sigma = 50;
img = (1/(2*pi*sigma^2))*exp(-(x.^2 + y.^2)/(2*sigma^2));
mesh(img);
axis([-100,100,-100,100,2e-5,8e-5]);
hold on
%% 初始化种群
pop_size = 20;%种群规模
pop = struct([]);
iterative = 100;
for i = 1:pop_size
pop(i).x = -100 + 200*rand();
pop(i).y = -100 + 200*rand();
pop(i).fit = compute_fit(pop(i));
end
pop_best = pop(1);
%% 演化开始
p1 = plot3(pop_best.x +100,pop_best.y+100,pop_best.fit,‘k.‘,‘markersize‘,30);
for i = 1:iterative
set(p1, ‘xdata‘,pop_best.x+100,‘ydata‘,pop_best.y+100,‘zdata‘,pop_best.fit)
drawnow
pause(.1)
[pop,pop_best] = select_and_combin(pop,pop_best,pop_size,i,iterative);
end
function [new_pop,pop_best] = select_and_combin(pop,pop_best,pop_size,k,iterative)
mul = (iterative - k) / iterative;
new_pop = pop;
% z1=sqrt(-2*ln(u1))*sin(2*pi*u2)*m,
% z2=sqrt(-2*ln(u1))*cos(2*pi*u2)*m
for i = 1:pop_size
%随机数
u1 = rand();
u2 = rand();
z1 = sqrt(-2*log(u1))*sin(2*pi*u2)*mul;
z2 = sqrt(-2*log(u1))*cos(2*pi*u2)*mul;
%变异
new_pop(i).x = pop(i).x + z1;
new_pop(i).y = pop(i).y + z2;
%计算适应值
new_pop(i).fit = compute_fit(new_pop(i));
if new_pop(i).fit < pop(i).fit
new_pop(i) = pop(i);
end
if pop_best.fit < new_pop(i).fit
pop_best = pop(i);
end
end
end
function re = compute_fit(pop)
x = pop.x;
y = pop.y;
sigma = 50;
if x < -100 || x > 100 || y < -100 || y > 100
re = 0;
else
re =(1/(2*pi*sigma^2))*exp(-(x^2 + y ^2)/(2 * sigma^2));
end
http://www.cnblogs.com/tiandsp/p/3165388.html
原文:http://www.cnblogs.com/Kermit-Li/p/4051915.html
es算法matlab编程,matlab练习程序(演化策略ES)相关推荐
- 人工变量法的matlab编程运算,单纯形法程序
2分 2 230.5KB 2011-11-20 单纯形表第一部分 单纯形法之单纯形表第一部分 单纯形法之单纯形表单纯形表 计算举例 p17---例2-10 计算举例 p17---例2-10[立即查看] ...
- matlab编程 英文翻译,MATLAB编程,MATLAB programming,音标,读音,翻译,英文例句,英语词典...
Image:114994698204558.jpg matlab matlab是矩阵实验室(matrix laboratory)之意.除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理 ...
- 连续梁的matlab编程,MATLAB在连续梁计算和作图中的应用
*收稿日期:2010-12-02 作者简介:李继生(1965-),男,河南汝南人,黄淮学院数学科学系教师,从事力学教学和相关研究工作. 2011年3月第10卷第2期(总第50期)安阳工学院学报Jour ...
- 差商matlab编程,MATLAB程序设计教程(8)
第8章MATLAB数值积分与微分 8.1数值积分 8.2数值微分 8.1数值积分 8.1.1数值积分基本原理 求解定积分的数值方法多种多样,如简单的梯形法.辛普生(Simpson)法.牛顿-柯特斯(N ...
- 狼羊白菜过河matlab编程,matlab绘制农夫过河动态图
仿真秀平台一直有做针对于matlab入门的公开课,算法工匠带你学MATLAB基础课程,入门一段时间后我们就可以用 matlab做一下有意思的事比如说画个动态图: 是不是很神奇,使用好matlab动态绘 ...
- 差商matlab编程,Matlab数值计算差商与插值
均差定义 若已知函数f(x)在点x0,x1,...xn处的值f(x0),f(x1),...f(xn).如果i≠j,则 一阶均差f[xj,xj+1]=f(xj+1)−f(xj)xj+1−xj(j=0,1 ...
- 马尔可夫预测matlab编程,MATLAB马尔科夫链预测法
MATLAB马尔科夫链预测法 发布时间:2018-06-10 09:10, 浏览次数:1195 , 标签: MATLAB 1,确定初始概率分布p0 输入初始状态矩阵: >>A=[11 19 ...
- 热力学分布用matlab,热力学matlab
东南大学能源与环境学院课程作业报告作业名称:传热学大作业--利用 matlab 程序解决热传导问题院系:能源与环境学院 专业:建筑环境与设备工程学号: 姓名: 2014 年 ...... 并用高性能语 ...
- java opengl es_OPENGL ES 3.0编程指南
OPENGL ES 3.0编程指南 OPENGL ES 3.0编程指南\.gitignore, 215, 2017-05-03 __MACOSX __MACOSX\OPENGL ES 3.0编程指南 ...
最新文章
- 1122 Hamiltonian Cycle (25 分)【难度: 一般 / 知识点: 模拟 哈密顿回路】
- socket通信中的几个重要结构体定义
- 动态更改echarts 高度_结合Echarts、Ajax技术实现可视化大屏监控 3D
- oracle走当前时间分区,Oracle分区使用波斯日历的时间间隔
- SignalR介绍与Asp.net
- 在CentOS中安装NodeJS
- 集合 (二) ----- Map集合详解
- sourcemointor评价代码
- 关于VS2015卸载后,重装无法修改路径问题
- 安装 ansible tower 报错:
- 必备技能10:管理学类重要期刊名录 -- UTD24 和 FT50
- DCDC电源中同步与异步的区别
- MacOS 下恢复使用谷歌浏览器翻译功能
- 计步器(Pedometer)实现原理简介
- 《我是一只IT小小鸟》读后感,献给要正在找工作的有缘朋友
- 跨城实践中,腾讯如何应用 Apache Pulsar
- 拉姆.查兰《执行》笔记
- 计算机专业车辆控制,智能无人驾驶汽车的计算机控制系统详细介绍和要求及设计资料概述...
- ESC32 windows 环境搭建【Visual Studio Code】
- 一年级课程表(3月28日-4月1日)
热门文章
- iView Input 输入框表单非空校验,默认值是 Number 类型校验失败
- linux自动获取ip网卡配置文件,linux 命令行下配置网卡自动获取 IP
- 加大weblogic在Linux内存,在linux运行weblogic出现运行内存不足错误,求鞭挞....
- html hover 效果,CSS八种让人眼前一亮的HOVER效果的示例代码
- iOS7下隐藏status bar的详细研究
- java内存管理机制剖析(一)
- 第一次使用最新开发的在线编辑器讲课记录笔记
- R语言比较运算符和逻辑运算符
- 洛谷P2483 Bzoj1975 [SDOI2010]魔法猪学院
- 【UIKit】UITableView 3