优化算法杂草优化算法(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期

WSN布局基于差分进化策略结合杂草算法实现WSN节点优化部署matlab源码

基于加入差分进化策略的杂草算法实现WSN节点优化部署matlab代码