github: 智能算法的课件和参考资料以及实验代码
进化策略和遗传算法统称为进化算法,二者的思想很类似,但步骤和应用方向有所差别。
具体关于这两种算法介绍可以下载课件查看
我们举个二元函数最大值优化问题,分别用这两种算法简单搜索最优值:
用matlab实现:
ES:
f2.m
function y = f2(x1, x2)
% 二元函数求最大值的优化问题 x1∈[-3.0, 12.1], x2∈[4.1, 5.8]
y = 21.5 + x1 * sin(4 *pi * x1) + x2 * sin(20 * pi * x2);
ES.m
clear
clc
N=10; % 初始种群规模
x1=15.1*rand(1,N)-3;
x2=1.7*rand(1,N)+4.1;
X=[x1;x2]; % 生成初始种群矩阵,一列表示一个可行解
sigma=rand(2,N);
T=50; % 迭代次数
maxf=0; % 记录最大适应度
for t=1:T
lamda=1;
while lamda<=7*N
pos=1+fix(rand(1,2)*(N-1)); % [1,9]范围的二元行向量 此处范围错误,应为[1, 10]
% pa1、pa2分别是X中的一个随机解,可能相同
pa1=X(:,pos(1));