当前位置: 首页 > news >正文

【单目标优化算法】海鸥优化算法(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

海鸥优化算法是印度学者Gaurav Dhiman于2018年提出的一种受生物启发的智能优化算法,该算法的主要灵感来自于自然界中海鸥的迁徙和攻击行为,这些行为经过数学建模和实现,可以在给定搜索空间中进行探索和利用。

详细数学模型和讲解见参考文献。

📚2 运行结果

部分代码:


%% 海鸥算法子函数            
function [Best_pos,Best_score,curve]=SOA(pop,Max_iter,lb,ub,dim,fobj)

fc = 2;%可调

if(max(size(ub)) == 1)
   ub = ub.*ones(1,dim);
   lb = lb.*ones(1,dim);  
end

%种群初始化
X0=initialization(pop,dim,ub,lb);
X = X0;
%计算初始适应度值
fitness = zeros(1,pop);
for i = 1:pop
   fitness(i) =  fobj(X(i,:));
end
 [fitness, index]= sort(fitness);%排序
GBestF = fitness(1);%全局最优适应度值
%按适应度排序,X(1,:)代表最优位置,X(end,:)代表最差位置
for i = 1:pop
    X(i,:) = X0(index(i),:);
end

GBestX = X(1,:);%全局最优位置
curve=zeros(1,Max_iter);
X_new = X;
Ms = zeros(pop,dim);
Cs = zeros(pop,dim);
Ds = zeros(pop,dim);
for t = 1: Max_iter
    
    Pbest = X(1,:);
   for i = 1:pop
        %% 计算Cs
        A = fc - (t*(fc/Max_iter));   
        Cs(i,:) =  X(i,:).*A;

        %% 计算Ms
        rd = rand();
        B = 2*A^2*rd;
        Ms(i,:) = B.*(Pbest - X(i,:));

        %% 计算Ds
        Ds(i,:) = abs(Cs(i,:) + Ms(i,:));

        %% 局部搜索
        u = 1; v = 1;
        theta = rand();
        r = u.*exp(theta*v);
        x = r.*cos(theta.*2.*pi);
        y = r.*sin(theta.*2.*pi);
        z = r.*theta;
    %% 位置更新
        X_new(i,:) = x.*y.*z.*Ds(i,:) + Pbest;
    end
   %边界控制
   for j = 1:pop
       for a = 1: dim
           if(X_new(j,a)>ub)
               X_new(j,a) =ub(a);
           end
           if(X_new(j,a)<lb)
               X_new(j,a) =lb(a);
           end
       end
   end 
   %更新位置
   for j=1:pop
    fitness_new(j) = fobj(X_new(j,:));
   end
   for j = 1:pop
    if(fitness_new(j) < GBestF)
        GBestF = fitness_new(j);
        GBestX = X_new(j,:);   
    end
   end
    X = X_new;
    fitness = fitness_new;
    %排序更新
   [fitness, index]= sort(fitness);%排序
   for j = 1:pop
      X(j,:) = X(index(j),:);
   end
   curve(t) = GBestF;
end
Best_pos = GBestX;
Best_score = curve(end);
end

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]杨硕,叶鹏,刘俐利,王欢,孙峰.基于海鸥算法的综合能源系统优化规划研究[J].沈阳工程学院学报(自然科学版),2022,18(04):62-69.DOI:10.13888/j.cnki.jsie(ns).2022.04.012.

[2]李大华,聂前,田禾,付文成,杜洋.改进海鸥优化算法在光伏系统MPPT中的应用[J].电源技术,2022,46(05):556-559.

🌈4 Matlab代码实现

http://www.lryc.cn/news/15005.html

相关文章:

  • 筑基六层 —— 整型提升及实用调式技巧
  • 后端前端文件传输2中传出模式
  • 【ZOJ 1067】Color Me Less 题解(vector+开方)
  • 凌恩生物经典文章:孟德尔诞辰200周年,Nature Genetics礼献豌豆高质量精细图谱
  • 进程间通信(二)/共享内存
  • 电路模型和电路定律——“电路分析”
  • 软件工程 | 第一章:软件工程学概述
  • 前端开发页面HEAD作用
  • CSS开发技巧——行为技巧
  • PX4之代码结构
  • 【C++11】可变参数模板(函数模板、类模板)
  • centos安装高版本cmake
  • 重温一下C#的时间类型,并简单写一个定时器功能
  • MYSQL查询语句执行顺序
  • 总结:电容在电路35个基本常识
  • Kroger EDI 855 采购订单确认报文详解
  • HANA SDA-远程数据源访问
  • 【AUTOSAR】:OS-Hook
  • Open3d入门
  • linux部署zookeeper
  • Junit4升级Junit5汇总
  • Axios二次封装和Api的解耦
  • SpringAOP从入门到源码分析大全,学好AOP这一篇就够了(一)
  • 【单目标优化算法】樽海鞘群算法(Matlab代码实现)
  • 手把手教你,解决C盘分区不足,C盘怎么扩大磁盘分区
  • Ethernet-APL——过程自动化的新黄金标准
  • LVGL Styles
  • 扬帆优配|联通港股创近两年新高!A股资源类股爆发,食品饮料领跌
  • Win10+VS2019+Qt5.15.2下编译QCAD
  • 【微信小程序】原生微信小程序ts模板下引入vant weapp