新!!!基于多策略改进2024年鹦鹉智能优化算法MSPO 有对比 也可使用MSPO优化机器学习模型参数进行回归、分类、时序预测

新!!!基于多策略改进2024年鹦鹉智能优化算法MSPO 有对比 也可使用MSPO优化机器学习模型参数进行回归、分类、时序预测


前言

多策略改进鹦鹉优化算法(MSPO)结合了几种优化策略和改进措施,旨在提高算法的全局搜索能力和收敛速度。以下是对每个改进策略的概述:

  1. 基于cat映射 + 反向策略的种群初始化

    • Cat映射初始化:利用“cat映射”技术,可以有效地初始化种群,提高种群的多样性和初始探索能力。Cat映射是一种启发式方法,模拟猫的行为来生成种群的初始解。
    • 反向策略:在初始化过程中引入反向策略,有助于增加种群的多样性,避免种群陷入局部最优。
  2. 自适应权重切换因子

    • 权重切换因子:通常指在算法执行过程中调整不同策略的权重或者调整算法参数的因子。自适应权重切换因子可以根据算法的表现和当前问题的特性动态调整,以优化算法的全局搜索和局部收敛能力。
  3. 混合柯西和高斯变异

    • 柯西变异:柯西分布在优化算法中常用于增加种群的多样性,其尾部厚重有助于更广泛地探索搜索空间。
    • 高斯变异:高斯分布则更适合于精细调节和局部搜索,能够帮助算法更快地收敛到局部最优解。
    • 混合变异策略:结合柯西和高斯变异,可以平衡全局探索和局部搜索的需求,提高算法在复杂优化问题中的适应性和收敛速度。

综合来看,多策略改进鹦鹉优化算法通过这些改进措施,有效地提高了算法的探索能力和收敛速度,使其更适用于复杂、多模态的优化问题。

一、基于cat映射 + 反向策略的种群初始化

为保持种群多样性,使初始种群个体尽可能均匀分
布,本文结合混沌初始化方法和基于反向学习初始化策
略,提出了混沌反向学习初始化策略,有助于加快算法
的收敛速度。将混沌映射序列与传统优化算法相结合
的混合优化算法纷纷产生,而且取得了比较良好的结
果,但是,这些算法均基于 Logistic 映射,寻优速度受到
Logistic遍历不均匀性的影响,同时Logistic映射对初值
设置敏感,且遍历性和均匀性都相对较差(映射点边缘
处密度很高而区间中央密度较低),这将直接影响混沌
搜索的遍历性能。
公式如下:
在这里插入图片描述

  • CatMap.m函数
%% cat 映射
function Xout = catMap(dim)
    a = 1;b = 1;
    x1 = zeros(1,dim);
    y1 = zeros(1,dim);
    x = rand(dim);
    y = rand(dim);
    N = 1;
    for i = 1:dim
        x1(i) = mode(x(i) + b.*y(i),N);
        y1(i) = mode(a*x(i) + a.*b.*y(i),N);
    end
    Xout = (x1 - min(x1))./(max(x1) - min(x1));
end

参考文献:
徐辰华,李成县,喻昕,黄清宝.基于Cat混沌与高斯变异的改进灰狼优化算法[J].计算机工程与应用,2017,53(04):1-9+50

二、自适应切换因子

交流行为阶段可以对H变量进行更改与变换公式自适应的变换公式

H = rand(1)*((Max_iter-i)/Max_iter);

三. 混合柯西和高斯变异

公式参考这个
在这里插入图片描述
当然也可以仅仅使用高斯变异公式
在这里插入图片描述

        %% ★★改进3:混合柯西和高斯变异
        for j =1:N 
            
            %% 柯西变异
            pd = makedist('tLocationScale','mu',0,'sigma',1,'nu',1);
            kexi(j, :) = random(pd,1,1);     
            %% 高斯变异
            gaosi(j, :) = X_new(j, :).*randn();

            %% 混合柯西和高斯变异
            w1 = rand();
            w2 = rand();
            temp = X_new(j, :) + (1 + w1 * gaosi(j, :) + w2 * kexi(j, :));
            Flag4ub=temp>ub;
            Flag4lb=temp<lb;
            temp=(temp.*(~(Flag4ub+Flag4lb)))+ub.*Flag4ub+lb.*Flag4lb;  
            if fobj(temp) < fobj(X_new(j, :))
                X_new(j, :) = temp;
            end
        end

四.实验结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 38
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值