优化算法杂草优化算法(IWO)含Matlab源码 1076期
Posted 紫极神光(Q1564658423)
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了优化算法杂草优化算法(IWO)含Matlab源码 1076期相关的知识,希望对你有一定的参考价值。
一、简介
2006年,Mehrabian等提 出 了一种新 颖 的 智 能 优 化 算 法—入 侵 杂 草 优 化 算 法(Invasive Weed Optimization,IWO).该算法模拟杂草种子在自然界的扩散、生长、繁殖和竞争性消亡的基本过程,具有很强的鲁棒性和自适应性,能够有效地收敛于问题的最优解 。
1 算法原理
2 算法流程图
二、源代码
clc;
clear;
close all;
tic; %%% 记录程序运行时间 %%%
%%%%%%%%%%%%%% 1 初始化种群 %%%%%%%%%%%%%
M0=30; %%% 初始种群个体数 %%%
Mmax=50; %%%% 最大种群个体数 %%%%%
itmax=2000; %%%% 迭代次数 %%%%
dim=30; %%%%%% 问题维数 %%%%%
smax=5; %%%%% 最大种子数 %%%%%
smin=2; %%%%%% 最小种子数 %%%%
n=3; %%% 调和指数 计算方差时要用的,是设好的固定值 %%%%%
delta_initial=10; %%% 方差最大值 %%%%
delta_final=0.001; %%% 方差最小值 %%%%
xmax=100;
xmin=-100; %%%% 问题解的最大最小 范围 %%%%%%%%
X=xmin+(xmax-xmin)*rand(M0,dim); %%%%% 随机产生初始种群 %%%%%
fit=fitness(X); %%% 计算种群的适应度函数值 %%%%%%
best=0; %%% 定义一个数,用来存储最优解 %%%
evrybest=[]; %%% 定义一个空阵,用来存储每代的最优解 %%%
%%%%%%%%%%%%%%%%%%%%%%%%%主程序%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
iter=1;
while iter<=itmax %%%%%% 循环迭代 %%%%
%%%%%%%%%%%% 2 生长繁殖 产生种子 %%%%%%%%%%%%%
Nseed=round(-(smax-smin)/(max(fit)-min(fit))*(fit-min(fit))+smax);
%%%%%%%%%%%% 3 空间扩散 以正态随机分布 %%%%%%%%%%%%%
delta_iter=(itmax-iter)^n/(itmax)^n*(delta_initial-delta_final)+delta_final;
%%%% 上面的式子求正态分布的方差 %%%%
l=size(X);
X1=[];
for i=1:l(1) %%% 对于每个个体 %%%
for j=1:Nseed(i) %%% 对于每个个体产生的种子数 %%%%
Xnew=normrnd(X(i,:),delta_iter^2); %%%% 产生正态分布随机数 %%%
if Xnew(:)>xmax
Xnew(:)=xmax;
end
if Xnew(:)<xmin
Xnew(:)=xmin;
end %%%%% 限制解的范围 解决实际问题时,这步可有可无 %%%%%
X1=[X1;Xnew]; %%% 将产生的所有子代存在X1中 %%%%
end
end %%%%%% 上面一段是 产生子代的过程 %%%%%%%%%
三、运行结果
四、备注
版本:2014a
以上是关于优化算法杂草优化算法(IWO)含Matlab源码 1076期的主要内容,如果未能解决你的问题,请参考以下文章
优化覆盖基于matlab入侵杂草和花授粉混合算法无线传感器覆盖优化问题含Matlab源码 1328期
优化算法差分进化优化杂草优化(DIWO)含Matlab源码 1482期
优化算法差分进化优化杂草优化(DIWO)含Matlab源码 1482期
数据聚类基于matlab杂草算法优化K-means算法数据聚类含Matlab源码 2168期