• 2024最新算法:鳑鲏鱼优化算法(Bitterling Fish Optimization,BFO)求解23个基准函数(提供MATLAB代码)


    一、鳑鲏鱼优化算法

    鳑鲏鱼优化算法(Bitterling Fish Optimization,BFO)由Lida Zareian 等人于2024年提出。鳑鲏鱼在交配中,雄性和雌性物种相互接近,然后将精子和卵子释放到水中,但这种方法有一个很大的缺点。幼鱼暴露在各种外部危害中,很容易成为其他动物的猎物。换句话说,这些卵中只有少数会变成鱼——不幸的是,大多数鱼都是被其他水生动物猎杀的。苦鱼有不同的繁殖机制。这种鱼从牡蛎开始。寻找合适的产卵壳的任务是雄性物种的责任。他们需要找到更大的牡蛎,并有更多的空间来容纳它们的卵。当这些鱼找到一个或多个受害者(牡蛎)时,它们就会与敌人对抗。雄性物种具有攻击性行为的原因是其他一些雄性物种也倾向于将牡蛎用于自己。在战斗模式中,雄鱼的体色变暗,并尽其所能保卫自己的领地。在交配阶段,会发生一种称为性选择的现象。在性选择过程中,雌性物种根据颜色和体力选择雄性鱼。

    该算法通过创建初始种群、更新参数、评估解决方案、搜索和捕获牡蛎、从其他鱼类中逃脱、走向鱼类积累、鱼类生产、繁殖和不需要的鱼类灭绝,实现优化。

    参考文献

    [1] Zareian, L., Rahebi, J. & Shayegan, M.J. Bitterling fish optimization (BFO) algorithm. Multimed Tools Appl (2024). https://doi.org/10.1007/s11042-024-18579-0.

    二、23个函数介绍

    参考文献:

    [1] Yao X, Liu Y, Lin G M. Evolutionary programming made faster[J]. IEEE transactions on evolutionary computation, 1999, 3(2):82-102.

    三、BFO求解23个函数

    3.1部分代码

    close all ;
    clear
    clc
    Npop=30;                
    Function_name='F1';     % Name of the test function that can be from F1 to F23 ( 
    Tmax=300;              
    [lb,ub,dim,fobj]=Get_Functions_details(Function_name);
    [Best_fit,Best_pos,Convergence_curve]=BFO(Npop,Tmax,lb,ub,dim,fobj);
    figure('Position',[100 100 660 290])
    %Draw search space
    subplot(1,2,1);
    func_plot(Function_name);
    title('Parameter space')
    xlabel('x_1');
    ylabel('x_2');
    zlabel([Function_name,'( x_1 , x_2 )'])
    %Draw objective space
    subplot(1,2,2);
    semilogy(Convergence_curve,'Color','r','linewidth',3)
    title('Search space')
    xlabel('Iteration');
    ylabel('Best score obtained so far');
    axis tight
    grid on
    box on
    legend('BFO')
    saveas(gca,[Function_name '.jpg']);
    
    
    display(['The best solution is ', num2str(Best_pos)]);
    display(['The best fitness value is ', num2str(Best_fit)]);
    
    
    

    3.2部分结果

    四、完整MATLAB代码

  • 相关阅读:
    Qt Creator插件
    P2404 自然数的拆分问题
    git commit后如何撤销或修改
    Dubbo学习
    ReactNative 网络库
    containerd的ctr tasks kill不起作用
    【OpenDDS开发指南V3.20】第四章:条件和监听
    halcon学习和实践(svm模型训练实战)
    【毕业设计】基于单片机的MP3设计与实现 - stm32
    用二叉树或栈求表达式的值--代码实现+算法分析
  • 原文地址:https://blog.csdn.net/2401_82411023/article/details/136424402