1 简介

【优化求解】基于多元宇宙MVO算法求解最优目标matlab源码_多元宇宙算法

【优化求解】基于多元宇宙MVO算法求解最优目标matlab源码_多元宇宙算法_02

【优化求解】基于多元宇宙MVO算法求解最优目标matlab源码_多元宇宙算法_03

2 部分代码

```matlab

%_______________________________________________________________________________________%

%  Multi-Verse Optimizer (MVO) source codes demo version 1.0                            %

                               %

%_______________________________________________________________________________________%


% You can simply define your cost in a seperate file and load its handle to fobj 

% The initial parameters that you need are:

%__________________________________________

% fobj = @YourCostFunction

% dim = number of your variables

% Max_iteration = maximum number of generations

% 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

% If all the variables have equal lower bound you can just

% define lb and ub as two single number numbers


% To run MVO: [Best_score,Best_pos,cg_curve]=MVO(Universes_no,Max_iteration,lb,ub,dim,fobj)

%__________________________________________


clear all 

clc


Universes_no=60; %Number of search agents (universes)


Function_name='F1'; %Name of the test function that can be from F1 to F23 (Table 1,2,3 in the paper)


Max_iteration=500; %Maximum numbef of iterations


%Load details of the selected benchmark function

[lb,ub,dim,fobj]=Get_Functions_details(Function_name);


[Best_score,Best_pos,cg_curve]=MVO(Universes_no,Max_iteration,lb,ub,dim,fobj);


figure('Position',[290   206   648   287])


%Draw the search space

subplot(1,2,1);

func_plot(Function_name);

title('Test function')

xlabel('x_1');

ylabel('x_2');

zlabel([Function_name,'( x_1 , x_2 )'])

grid off

shading interp;

light;

lighting phong;

shading interp;


%Draw the convergence curve

subplot(1,2,2);

semilogy(cg_curve,'Color','r')

title('Convergence curve')

xlabel('Iteration');

ylabel('Best score obtained so far');


axis tight

grid off

box on

legend('MVO')


display(['The best solution obtained by MVO is : ', num2str(Best_pos)]);

display(['The best optimal value of the objective funciton found by MVO is : ', num2str(Best_score)]);


3 仿真结果

【优化求解】基于多元宇宙MVO算法求解最优目标matlab源码_多元宇宙算法_04

4 参考文献

[1]刘京昕. 多元宇宙优化算法的改进及应用[D]. 广西民族大学, 2019.

【优化求解】基于多元宇宙MVO算法求解最优目标matlab源码_多元宇宙算法_05