文章图片
目录
1 帝国竞争算法(ICA)
2 运行结果
3 Matlab代码及文章讲解
4 参考文献
1 帝国竞争算法(ICA) 帝国竞争算法(ICA)是2007年]提出,具有收敛速度快和全局搜索能力强的特点。ICA已被应用于求解旅行商问题( traveling salesman problem , TSP) [ 12,13]。张鑫龙等人14提出一种新型ICA求解TSP ,帝国同化采用替换重建方式,革命过程结合自适应算子,得到了较好的优化效果。裴小兵等人[
15]为了降低帝国同化的复杂度,设计概率矩阵挖掘可行解中的优秀组合区块,能够对一定规模的TSP进行高效求解。
帝国竞争算法是基于人类社会政治进化现象提出的智能优化算法,算法中的每个国家均表示为一个可能的解空间,在模拟社会政治进化的过程中逐渐优化国家的解空间,找到最优解。 算法主要包括帝国初始化、帝国同化、帝国革命、殖民地竞争四个步骤 :
a) 帝国初始化 。通过随机生成的方式产生多个国家 , 根据国家的强弱分为殖民国家与殖民地, 各殖民国家及其所属殖民地构成一个帝国。b) 帝国同化 。将每个帝国殖民国家的解信息传递给其殖民地, 殖民地逐步靠近殖民国家 , 帝国整体解质量得到逐步优化 。c) 帝国革命 。该阶段模拟历史进程中的革命行为 , 一定几率下殖民地会主动优化, 甚至超越其所属殖民国家成为帝国的殖民国家。d) 殖民地竞争 。该阶段是殖民地再分配的过程 , 帝国之间通过竞争机制争夺殖民地。理想情况下只会存在一个帝国,即只有一个殖民国家,其他国家均沦为殖民地,此时算法停止,殖民国家即代表算法优化的最优解;
若仍存在多个国家则转到帝国同化阶段,依次循环更新。 2 运行结果
文章图片
3 Matlab代码及文章讲解本文仅展现部分代码,全部代码及文章见:
帝国竞争算法(ICA)(Matlab代码实现)
function emp = DoRevolution(emp)global ProblemSettings;
CostFunction = ProblemSettings.CostFunction;
nVar = ProblemSettings.nVar;
VarSize = ProblemSettings.VarSize;
VarMin = ProblemSettings.VarMin;
VarMax = ProblemSettings.VarMax;
global ICASettings;
pRevolution = ICASettings.pRevolution;
mu = ICASettings.mu;
nmu = ceil(mu*nVar);
sigma = 0.1*(VarMax-VarMin);
nEmp = numel(emp);
for k = 1:nEmpNewPos = emp(k).Imp.Position + sigma*randn(VarSize);
jj = randsample(nVar, nmu)';
NewImp = emp(k).Imp;
NewImp.Position(jj) = NewPos(jj);
NewImp.Cost = CostFunction(NewImp.Position);
if NewImp.Cost
4 参考文献 [1]蔡延光,王世豪,戚远航,王福杰,林卓胜.帝国竞争算法求解CVRP[J].计算机应用研究,2021,38(03):782-786.DOI:10.19734/j.issn.1001-3695.2020.01.0006.
【#|帝国竞争算法(ICA)(Matlab代码实现)】
文章图片
推荐阅读
- 动态多目标|动态多目标优化算法(MOEA/D-FD求解FDA1、FDA2、FDA3、FDA4和FDA5(Matlab代码))
- #|智能电网中需求响应研究(Matlab代码实现)
- 数学建模|备战数学建模2——MATLAB导入数据,处理缺失值
- 算法|Python实现多维背包问题MKP算法(1)——动态多维背包
- 机器学习|机器学习----支持向量机 (Support Vector Machine,SVM)算法原理及python实现
- 人工智能|机器学习方法之支持向量机(Support Vector Machine,SVM)
- #|vue3下watch的使用
- #|【漏洞复现】AppWeb认证绕过漏洞(CVE-2018-8715)
- 数学建模算法|2022国赛数学建模思路算法分析—XGboost