【优化算法】海洋捕食者算法(MPA)【含Matlab源码 478期】
2021/6/28 14:22:03
本文主要是介绍【优化算法】海洋捕食者算法(MPA)【含Matlab源码 478期】,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、简介
海洋捕食者算法(MPA)是一种自然启发式的优化算法,它遵循在最佳觅食策略中自然支配的规则,并且在海洋生态系统中遇到捕食者与猎物之间的速率策略。
二、源代码
%_________________________________________________________________________ % Marine Predators Algorithm source code (Developed in MATLAB R2015a) % % programming: Afshin Faramarzi & Seyedali Mirjalili % % paper: % A. Faramarzi, M. Heidarinejad, S. Mirjalili, A.H. Gandomi, % Marine Predators Algorithm: A Nature-inspired Metaheuristic % Expert Systems with Applications % DOI: doi.org/10.1016/j.eswa.2020.113377 % % E-mails: afaramar@hawk.iit.edu (Afshin Faramarzi) % muh182@iit.edu (Mohammad Heidarinejad) % ali.mirjalili@laureate.edu.au (Seyedali Mirjalili) % gandomi@uts.edu.au (Amir H Gandomi) %_________________________________________________________________________ % -------------------------------------------- % fobj = @YourCostFunction % dim = number of your variables % Max_iteration = maximum number of iterations % SearchAgents_no = number of search agents % lb=[lb1,lb2,...,lbn] where lbn is the lower bound of variable n % ub=[ub1,ub2,...,ubn] where ubn is the upper bound of variable n % --------------------------------------------------------- clear all clc format long SearchAgents_no=25; % Number of search agents Function_name='F23'; Max_iteration=500; % Maximum number of iterations [lb,ub,dim,fobj]=Get_Functions_details(Function_name); [Best_score,Best_pos,Convergence_curve]=MPA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj); % function topology figure('Position',[500 400 700 290]) subplot(1,2,1); func_plot(Function_name); title('Function Topology') xlabel('x_1'); ylabel('x_2'); zlabel([Function_name,'( x_1 , x_2 )']) % Convergence curve subplot(1,2,2); semilogy(Convergence_curve,'Color','r') title('Objective space') xlabel('Iteration'); ylabel('Best score obtained so far'); %_________________________________________________________________________ % Marine Predators Algorithm source code (Developed in MATLAB R2015a) % % programming: Afshin Faramarzi & Seyedali Mirjalili % % paper: % A. Faramarzi, M. Heidarinejad, S. Mirjalili, A.H. Gandomi, % Marine Predators Algorithm: A Nature-inspired Metaheuristic % Expert Systems with Applications % DOI: doi.org/10.1016/j.eswa.2020.113377 % % E-mails: afaramar@hawk.iit.edu (Afshin Faramarzi) % muh182@iit.edu (Mohammad Heidarinejad) % ali.mirjalili@laureate.edu.au (Seyedali Mirjalili) % gandomi@uts.edu.au (Amir H Gandomi) %_________________________________________________________________________ % This function containts full information and implementations of the benchmark % functions in Table 1, Table 2, and Table 3 in the paper % lb is the lower bound: lb=[lb_1,lb_2,...,lb_d] % up is the uppper bound: ub=[ub_1,ub_2,...,ub_d] % dim is the number of variables (dimension of the problem) function [lb,ub,dim,fobj] = Get_Functions_details(F) switch F case 'F1' fobj = @F1; lb=-100; ub=100; dim=50; case 'F2' fobj = @F2; lb=-10; ub=10; dim=50; case 'F3' fobj = @F3; lb=-100; ub=100; dim=50; case 'F4' fobj = @F4; lb=-100; ub=100; dim=50; case 'F5' fobj = @F5; lb=-30; ub=30; dim=50; case 'F6' fobj = @F6; lb=-100; ub=100; dim=50; case 'F7' fobj = @F7; lb=-1.28; ub=1.28; dim=50; case 'F8' fobj = @F8; lb=-500; ub=500; dim=50; case 'F9' fobj = @F9; lb=-5.12; ub=5.12; dim=50; case 'F10' fobj = @F10; lb=-32; ub=32; dim=50; case 'F11' fobj = @F11; lb=-600; ub=600; dim=50; case 'F12' fobj = @F12; lb=-50; ub=50; dim=50; case 'F13' fobj = @F13; lb=-50; ub=50; dim=50; case 'F14' fobj = @F14; lb=-65.536; ub=65.536; dim=2; case 'F15' fobj = @F15; lb=-5; ub=5; dim=4; case 'F16' fobj = @F16; lb=-5; ub=5; dim=2; case 'F17' fobj = @F17; lb=[-5,0]; ub=[10,15]; dim=2; case 'F18' fobj = @F18; lb=-2; ub=2; dim=2; case 'F19' fobj = @F19; lb=0; ub=1; dim=3; case 'F20' fobj = @F20; lb=0; ub=1; dim=6; case 'F21' fobj = @F21; lb=0; ub=10; dim=4; case 'F22' fobj = @F22; lb=0; ub=10; dim=4; case 'F23' fobj = @F23; lb=0; ub=10; dim=4; end end % F1 function o = F1(x) o=sum(x.^2); end % F2 function o = F2(x) o=sum(abs(x))+prod(abs(x)); end % F3 function o = F3(x) dim=size(x,2); o=0; for i=1:dim o=o+sum(x(1:i))^2; end end % F4 function o = F4(x) o=max(abs(x)); end
三、运行结果
四、备注
版本:2014a
完整代码或代写加1564658423
这篇关于【优化算法】海洋捕食者算法(MPA)【含Matlab源码 478期】的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?
- 2024-05-09企业src漏洞挖掘-有意思的命令执行