入侵性杂草优化算法的改进与应用(Matlab代码实现)

简介: 入侵性杂草优化算法的改进与应用(Matlab代码实现)

💥1 概述

入侵杂草算法(IWO算法)是模拟杂草繁衍过程的一种随机搜索方法,具有鲁棒性、自适应性强和编程简单等优点,但也有搜索效率低,容易陷入局部最优的不足.在种群初始化阶段,研究者采用多子群法、反向学习法和混沌序列等方法使种群在全局空间分布更均匀;在空间扩散阶段,研究者将防早熟的杂草算法、Alopex算法、Lévy飞行法和蝙蝠算法等应用于IWO算法,使得部分种子在空间扩散阶段获得更强的全局搜索能力;在竞争排斥阶段,采用差分进化算法,可改善种群的多样性,并且更容易选择出优秀个体,提高收敛速度.  


📚2 运行结果

 

 

🎉3 参考文献

[1]周立军.入侵杂草算法及其改进方法综述[J].白城师范学院学报,2021,35(05):35-42.

👨‍💻4 Matlab代码

主函数部分代码:

clc;
clear;
close all;
format shortG
%% Insert Data
data=InsertData();
nvar = data.nvar;           % Number of Decision Variables
SizeX = [1 nvar];     % Decision Variables Matrix Size
lb = -1*ones(1,nvar);       % Lower Bound of Decision Variables
ub = 1*ones(1,nvar);        % Upper Bound of Decision Variables
%% IWO Parameters
Maxiter =200;    % Maximum Number of iterations
npop0 = 40;     % Initerial Population Size
npop = npop0*4;     % Maximum Population Size
Smin = 0;       % Minimum Number of Seeds
Smax = 5;       % Maximum Number of Seeds
Exponent = 2;           % Variance Reduction Exponent
sigma_initerial = 1;      % Initerial Value of Standard Deviation
sigma_final = 0.001;    % Final Value of Standard Deviation
%% Initerialization
tic
% Empty Plant Structure
emp.x = [];
emp.fit = [];
emp.info = [];
pop = repmat(emp, npop0, 1);    % Initerial Population Array
for i = 1:numel(pop)
    % Initerialize x
    pop(i).x = unifrnd(lb, ub);
    % Evaluation
    pop(i)= fitness(pop(i),data);
end
% Initerialize Best fit History
BEST = zeros(Maxiter, 1);
%% IWO Main Loop
for iter = 1:Maxiter
    % Update Standard Deviation
    sigma = ((Maxiter - iter)/(Maxiter - 1))^Exponent * (sigma_initerial - sigma_final) + sigma_final;
    % Get Best and Worst fit Values
    fits = [pop.fit];
    Bestfit = min(fits);
    Worstfit = max(fits);
    % Initerialize Offsprings Population
    newpop = [];
    % Reproduction
    for i = 1:numel(pop)
        ratio = (pop(i).fit - Worstfit)/(Bestfit - Worstfit);
        S = floor(Smin + (Smax - Smin)*ratio);
        for j = 1:S
            % Initerialize Offspring
            newsol = emp;
            % Generate Random Location
            newsol.x = pop(i).x + sigma * randn(SizeX);
            % Apply Lower/Upper Bounds
            newsol.x = CB(newsol.x, lb,ub);
            % Evaluate Offsring
            newsol = fitness(newsol,data);
            % Add Offpsring to the Population
            newpop = [newpop
                      newsol];  %#ok
        end
    end
    % Merge Populations
    [pop] = [pop
           newpop];
    % Sort Population
    [~, ind]=sort([pop.fit]);
    pop = pop(ind);
    % Competiterive Exclusion (Delete Extra Members)
    if numel(pop)>npop
        pop = pop(1:npop);
    end
    % Store Best Solution Ever Found
    gpop = pop(1); % gpop: global Solution
    % Store Best fit History
    BEST(iter) = gpop.fit;
    % Display iteration Information
    disp(['iter ' num2str(iter) ' Best = ' num2str(BEST(iter))]);
end


相关文章
|
2天前
|
算法 数据安全/隐私保护 计算机视觉
基于二维CS-SCHT变换和LABS方法的水印嵌入和提取算法matlab仿真
该内容包括一个算法的运行展示和详细步骤,使用了MATLAB2022a。算法涉及水印嵌入和提取,利用LAB色彩空间可能用于隐藏水印。水印通过二维CS-SCHT变换、低频系数处理和特定解码策略来提取。代码段展示了水印置乱、图像处理(如噪声、旋转、剪切等攻击)以及水印的逆置乱和提取过程。最后,计算并保存了比特率,用于评估水印的稳健性。
|
2天前
|
机器学习/深度学习 算法 数据挖掘
基于GWO灰狼优化的CNN-LSTM-Attention的时间序列回归预测matlab仿真
摘要: 本文介绍了使用matlab2022a中优化后的算法,应用于时间序列回归预测,结合CNN、LSTM和Attention机制,提升预测性能。GWO算法用于优化深度学习模型的超参数,模拟灰狼社群行为以求全局最优。算法流程包括CNN提取局部特征,LSTM处理序列依赖,注意力机制聚焦相关历史信息。GWO的灰狼角色划分和迭代策略助力寻找最佳解。
|
2天前
|
机器学习/深度学习 数据采集 自然语言处理
理解并应用机器学习算法:神经网络深度解析
【5月更文挑战第15天】本文深入解析了神经网络的基本原理和关键组成,包括神经元、层、权重、偏置及损失函数。介绍了神经网络在图像识别、NLP等领域的应用,并涵盖了从数据预处理、选择网络结构到训练与评估的实践流程。理解并掌握这些知识,有助于更好地运用神经网络解决实际问题。随着技术发展,神经网络未来潜力无限。
|
2天前
|
算法 Python
利用贝叶斯算法对简单应用实现预测分类
利用贝叶斯算法对简单应用实现预测分类
6 0
|
2天前
|
算法 计算机视觉
基于高斯混合模型的视频背景提取和人员跟踪算法matlab仿真
该内容是关于使用MATLAB2013B实现基于高斯混合模型(GMM)的视频背景提取和人员跟踪算法。算法通过GMM建立背景模型,新帧与模型比较,提取前景并进行人员跟踪。文章附有程序代码示例,展示从读取视频到结果显示的流程。最后,结果保存在Result.mat文件中。
|
2天前
|
资源调度 算法 块存储
m基于遗传优化的LDPC码OMS译码算法最优偏移参数计算和误码率matlab仿真
MATLAB2022a仿真实现了遗传优化的LDPC码OSD译码算法,通过自动搜索最佳偏移参数ΔΔ以提升纠错性能。该算法结合了低密度奇偶校验码和有序统计译码理论,利用遗传算法进行全局优化,避免手动调整,提高译码效率。核心程序包括编码、调制、AWGN信道模拟及软输入软输出译码等步骤,通过仿真曲线展示了不同SNR下的误码率性能。
9 1
|
2天前
|
机器学习/深度学习 算法 API
【Paddle】PCA线性代数基础 + 领域应用:人脸识别算法(1.1w字超详细:附公式、代码)
【Paddle】PCA线性代数基础 + 领域应用:人脸识别算法(1.1w字超详细:附公式、代码)
8 0
|
2天前
|
机器学习/深度学习 数据采集 算法
深入理解并应用机器学习算法:支持向量机(SVM)
【5月更文挑战第13天】支持向量机(SVM)是监督学习中的强分类算法,用于文本分类、图像识别等领域。它寻找超平面最大化间隔,支持向量是离超平面最近的样本点。SVM通过核函数处理非线性数据,软间隔和正则化避免过拟合。应用步骤包括数据预处理、选择核函数、训练模型、评估性能及应用预测。优点是高效、鲁棒和泛化能力强,但对参数敏感、不适合大规模数据集且对缺失数据敏感。理解SVM原理有助于优化实际问题的解决方案。
|
2天前
|
机器学习/深度学习 算法
理解并应用机器学习算法:决策树
【5月更文挑战第12天】决策树是直观的分类与回归机器学习算法,通过树状结构模拟决策过程。每个内部节点代表特征属性,分支代表属性取值,叶子节点代表类别。构建过程包括特征选择(如信息增益、基尼指数等)、决策树生成和剪枝(预剪枝和后剪枝)以防止过拟合。广泛应用在信贷风险评估、医疗诊断等领域。理解并掌握决策树有助于解决实际问题。
|
2天前
|
机器学习/深度学习 算法
应用规则学习算法识别有毒的蘑菇
应用规则学习算法识别有毒的蘑菇

热门文章

最新文章