clc;
clear;
close all;
%% Problem Definition
CostFunction=@(x) Sphere(x); % Cost Function
nVar=5; % Number of Decision Variables
VarSize=[1 nVar]; % Decision Variables Matrix Size
VarMin=-10; % Lower Bound of Variables
VarMax= 10; % Upper Bound of Variables
%% ICA Parameters
MaxIt=500; % Maximum Number of Iterations
nPop=100; % Population Size
nEmp=15; % Number of Empires/Imperialists
alpha=1; % Selection Pressure
beta=1.5; % Assimilation Coefficient
pRevolution=0.05; % Revolution Probability
mu=0.1; % Revolution Rate
zeta=0.2; % Colonies Mean Cost Coefficient
%% Globalization of Parameters and Settings参数和设置的全球化
global ProblemSettings;
ProblemSettings.CostFunction=CostFunction;
ProblemSettings.nVar=nVar;
ProblemSettings.VarSize=VarSize;
ProblemSettings.VarMin=VarMin;
ProblemSettings.VarMax=VarMax;
global ICASettings;
ICASettings.MaxIt=MaxIt;
ICASettings.nPop=nPop;
ICASettings.nEmp=nEmp;
ICASettings.alpha=alpha;
ICASettings.beta=beta;
ICASettings.pRevolution=pRevolution;
ICASettings.mu=mu;
ICASettings.zeta=zeta;
%% Initialization
% Initialize Empires
emp=CreateInitialEmpires();
% Array to Hold Best Cost Values
BestCost=zeros(MaxIt,1);%% MaxIt=500
%% ICA Main Loop
for it=1:MaxIt
% Assimilation
emp=AssimilateColonies(emp);
% Revolution
emp=DoRevolution(emp);
% Intra-Empire Competition
emp=IntraEmpireCompetition(emp);
% Update Total Cost of Empires
emp=UpdateTotalCost(emp);
% Inter-Empire Competition
emp=InterEmpireCompetition(emp);
% Update Best Solution Ever Found
imp=[emp.Imp];
[~, BestImpIndex]=min([imp.Cost]);
BestSol=imp(BestImpIndex);
% Update Best Cost
BestCost(it)=BestSol.Cost;
% Show Iteration Information
disp(['Iteration ' num2str(it) ': Best Cost = ' num2str(BestCost(it))]);
end
%% Results
figure;
%plot(BestCost,'LineWidth',2);
semilogy(BestCost,'LineWidth',2);
xlabel('Iteration');
ylabel('Best Cost');
grid on;
没有合适的资源?快使用搜索试试~ 我知道了~
matlab 实现帝国竞争算法,帝国竞争算法受帝国主义殖民竞争机制的启发,Atashpaz-Gargari和Lucas于2007年提出了一种新的智能优化算法—帝国竞争算法 (ICA)。与GA, PSO, ABC等受生物行为启发的群智能算法不同,ICA受社会行为启发,通过摸拟殖民地同化机制和帝国竞争机制而形成的一种优化方法。ICA也是一种基于群体的优化方法,其解空间由称为国家的个体组成。ICA将国家分为几个子群,称为帝国。在每个帝国内,ICA通过同化机制使非最优的国家(殖民地)向最优国家(帝国主义国家)靠近,该过程类似于PSO。帝国竞争机制是ICA的关键,ICA通过帝国竞争机制将最弱帝国中的一个或多个殖民地移动到其他帝国,使帝国之间可以进行信息交互。 目前,国外已有许多学者对ICA的性能改进以及实际应用进行了大量的研究,也取得了一定的进展。ICA已被广泛用于解决各种实际的优化问题,如调度问题、分类问题、机械设计等。然而,该算法仍然存在多样性下降较快、易早熟收敛等缺陷。另外,ICA提出的时间较短,尚有很大的研究空间。
资源推荐
资源详情
资源评论
收起资源包目录
帝国竞争算法源代码.rar (10个子文件)
帝国竞争算法源代码
Imperialist Competitive Algorithm
main.m 401B
DoRevolution.m 1KB
RouletteWheelSelection.m 545B
InterEmpireCompetition.m 1KB
CreateInitialEmpires.m 1KB
ica.m 2KB
Sphere.m 442B
UpdateTotalCost.m 727B
IntraEmpireCompetition.m 374B
AssimilateColonies.m 886B
共 10 条
- 1
资源评论
运筹学爱好者
- 粉丝: 3
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功