%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Portion of MATLAB Code for %
% %
% Imperialistic Competitive Algorithm (ICA) %
% Version 1.9 - May 2010 %
% %
% Programmed By: S. Mostapha Kalami Heris %
% Member of MATLABSITE.com Programmers Group %
% %
% Site URL: http://www.matlabsite.com %
% %
% Support e-Mails: info@matlabsite.com %
% %
% Author e-Mails: sm.kalami@gmail.com %
% kalami@ee.kntu.ac.ir %
% %
% Author Homepage: http://www.kalami.ir %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function imp=InitializeImperials()
global ProblemSettings;
global ICASettings;
CostFunction=ProblemSettings.CostFunction;
nVar=ProblemSettings.nVar;
VarMin=ProblemSettings.VarMin;
VarMax=ProblemSettings.VarMax;
nPop=ICASettings.nPop;
nImp=ICASettings.nImp;
nCol=ICASettings.nCol;
EmptyColony.Position=[];
EmptyColony.Cost=[];
Colonies=repmat(EmptyColony,nPop,1);
for k=1:nPop
Colonies(k).Position=unifrnd(VarMin,VarMax,[1 nVar]);
Colonies(k).Cost=CostFunction(Colonies(k).Position);
end
[SortedCosts CostsSortOrder]=sort([Colonies.Cost]);
Colonies=Colonies(CostsSortOrder);
EmptyImperial.Position=[];
EmptyImperial.Cost=[];
EmptyImperial.TotalCost=[];
EmptyImperial.nCol=[];
EmptyImperial.Colonies=[];
imp=repmat(EmptyImperial,nImp,1);
for i=1:nImp
imp(i).Position=Colonies(i).Position;
imp(i).Cost=Colonies(i).Cost;
end
Colonies=Colonies(nImp+1:end);
if isempty(Colonies)
return;
end
ImpCosts=[imp.Cost];
MaxImpCost=max(ImpCosts);
ImpFitness=1.2*MaxImpCost-ImpCosts;
p=ImpFitness/sum(ImpFitness);
nc=round(p*nCol);
snc=sum(nc);
if snc>nCol
i=1;
while snc>nCol
nc(i)=max(nc(i)-1,0);
i=i+1;
if i>nImp
i=1;
end
snc=sum(nc);
end
elseif snc<nCol
i=nImp;
while snc<nCol
nc(i)=nc(i)+1;
i=i-1;
if i<1
i=nImp;
end
snc=sum(nc);
end
end
Colonies=Colonies(randperm(nCol));
for i=1:nImp
imp(i).nCol=nc(i);
imp(i).Colonies=Colonies(1:nc(i));
Colonies=Colonies(nc(i)+1:end);
end
end
ICA.rar_ optimization ICA_ICA Imperialist_ICA types matlab_The P
版权申诉
199 浏览量
2022-09-14
20:47:20
上传
评论
收藏 7KB RAR 举报
JonSco
- 粉丝: 75
- 资源: 1万+
最新资源
- php根据ip获取所在城市
- 植物大战僵尸射手版新型大炮版(欢迎下载,免下载积分!)
- 【华为云批量导入】国外服务器 + CloudFlare + 自动化平台 让用户访问秒开
- HTML5小游戏【天天爱消除系列游戏-糖果版】游戏源码分享下载 - games.zip
- 1111111111111
- 使用Docker Compose部署包含MySQL、Redis、Nginx和Mosquitto的容器
- 基于Python的广州南方学院课程设计源码
- Uniapp开发的微商个人相册多端小程序源码
- VirtualBox-5.2.26-128414-Win
- 2024最新Python发送Google邮件原创,以及Shell文件方法
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈