第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > 【智能优化算法】基于人工蜂群算法求解多目标优化问题附matlab代码

【智能优化算法】基于人工蜂群算法求解多目标优化问题附matlab代码

时间:2023-10-19 20:28:03

相关推荐

【智能优化算法】基于人工蜂群算法求解多目标优化问题附matlab代码

1 简介

人工蜂群算法(Artificial Bee Colony Algorithm, 简称ABC算法)是一个由蜂群行为启发的算法,在由Karaboga小组为优化代数问题而提出。​

2 部分代码

%%%%%%%%%%%寻找支配解%%%%%%%%

function non_dom=quick_sort(pop)

npop=size(pop,1);

K=10;

pop(:,K+3)=0;

for i=1:npop

pop(i,K+3)=0;

for j=1:i-1

if pop(j,K+3)==0

if Dominates(pop(i,K+1:K+2)',pop(j,K+1:K+2)')

pop(j,K+3)=1;

elseif Dominates(pop(j,K+1:K+2)',pop(i,K+1:K+2)')

pop(i,K+3)=1;

break;

end

end

end

end

ind=find(pop(:,K+3)==0);

non_dom=pop(ind,1:K+2);

% [N,P]=size(pop);

% M=2;%目标函数值的个数

% V=10;%每个目标函数值的维数

% non_dom=[];

% individual=pop; %pop:种群(自变量+目标函数值),行数为种群数量

% while ~isempty(individual) %individual为空时停止循环

% temp1=[];

% temp2=[];

% flag=0;

% %Number of individuals that dominate this individual 支配i的解的个数

% %individual(i).n=0;

% %Individuals which this individual dominate被i支配的解

% %individual(i).p=[]

% for i=2:size(individual,1) %size(individual,1)为individual的行数

% dom_less=0;

% dom_equal=0;

% dom_more=0;

% for j=1:M %M=2,两个目标函数

%if(individual(1,V+j)<individual(i,V+j)) %V=6,每个目标函数均为六维 %%pareto支配判断

% dom_less=dom_less+1; %解1有可能支配解i

%elseif (individual(1,V+j)==individual(i,V+j))

% dom_equal=dom_equal+1; %互不支配

%else

% dom_more=dom_more+1; %解1有可能被解i支配

%end

% end

% if dom_less==0 && dom_equal~=M %该行为真时,表示解i支配解1

%flag=flag+1;%flag中存放解i支配解1的个数

%temp1=[temp1;individual(i,:)]; %temp1中存放支配解i

% elseif dom_more==0 && dom_equal~=M %该行为真时,表示解1支配解i

%temp2=[temp2;individual(1,:)]; %temp2中存放支配解1

% else%其余情况:两个解互不支配

%temp1=[temp1;individual(i,:)]; %temp1中也存放有可能支配的解i

% end %则称j优于i,则把此时的j放入individual(i)_p中

% end %循环结束时,表示解1依次与后面所有的解进行了支配判别

% if flag==0||isempty(temp1) %该行判断值为真时,表示解1不受当前任何解的支配

% %即解1为当前解集中的一个pareto最优解

% non_dom=[non_dom;individual(1,:)];

% end

% individual=temp1; %此时temp1中存放的就是通过上次比较后剩下的非支配解(非支配解即不受其他解支配)

end

3 仿真结果

4 参考文献

[1]李永正. 改进人工蜂群算法求解多目标连续优化问题[J]. 哈尔滨师范大学自然科学学报, , 34(2):5.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。