文章目录

  • 一、理论基础
    • 1、帝国竞争算法
      • 1.1 国家初始化
      • 1.2 殖民地同化
      • 1.3 帝国竞争
      • 1.4 国家汇聚
    • 2、ICA算法流程图
  • 二、仿真实验与分析
  • 三、参考文献

一、理论基础

1、帝国竞争算法

Gargari等人于2007年提出了帝国竞争算法(Imperialist Competitive Algorithm, ICA),其灵感源于人类社会帝国殖民竞争机制,是一种完全受社会行为启发的群体随机优化搜索算法。ICA可归纳为国家初始化、殖民地同化、帝国竞争、国家汇聚四个流程。

1.1 国家初始化

定义初始国家为:country=[p1,p2,⋯,pN](1)country=[p_1,p_2,\cdots,p_N]\tag{1}country=[p1​,p2​,⋯,pN​](1)与遗传算法每一个向量代表一个染色体不同的是,数列中的每一维代表国家的一个特征。
国家的势力值由所求的函数值来表示,即:cost=f(country)=f([p1,p2,⋯,pN])(2)cost=f(country)=f([p_1,p_2,\cdots,p_N])\tag{2}cost=f(country)=f([p1​,p2​,⋯,pN​])(2)算法开始时,随机产生NpopN_{pop}Npop​个初始国家,并根据势力大小划分为两种类型:势力最大的前NimpN_{imp}Nimp​个国家为宗主国,其余的为殖民地国家,按照下列流程,根据宗主国的势力来划分殖民地的归属国。
1)根据各个帝国对应的函数值cnc_ncn​,计算帝国主义国家的归一化势力值CnC_nCn​:Cn=cn−max⁡i{ci}(3)C_n=c_n-\max_{i}\{c_i\}\tag{3}Cn​=cn​−imax​{ci​}(3)2)计算归一化势力的相对值PnP_nPn​,以此得出每个帝国占有殖民地的初始数量NCnNC_nNCn​:Pn=∣Cn∑i=1NimpCi∣(4)P_n=\left|\frac{C_n}{\displaystyle\sum_{i=1}^{N_{imp}}C_i}\right|\tag{4}Pn​=∣∣∣∣∣∣∣∣∣∣∣​i=1∑Nimp​​Ci​Cn​​∣∣∣∣∣∣∣∣∣∣∣​(4)NCn=round{Pn⋅Ncol}(5)NC_n=round\{P_n\cdot N_{col}\}\tag{5}NCn​=round{Pn​⋅Ncol​}(5)其中,NcolN_{col}Ncol​表示殖民地国家的数目;round{}round\{ \}round{}为四舍五入取整函数。
3)将所有殖民地国家随机分配到各宗主国,组成初始的NimpN_{imp}Nimp​个帝国。

1.2 殖民地同化

宗主国为了便于管辖其拥有的殖民地国家,需要在政治、经济、文化等各方面进行殖民同化,算法通过殖民地向宗主国移动来表示。x∼U(0,β×d)(6)x\sim U(0,\beta\times d)\tag{6}x∼U(0,β×d)(6)θ∼U(−γ,γ)(7)\theta\sim U(-\gamma,\gamma)\tag{7}θ∼U(−γ,γ)(7)其中,xxx表示移动距离;ddd表示殖民地和宗主国间的距离;β\betaβ为移动参数,取值大于1使殖民地国家能从前后方向朝宗主国靠近;为了扩大搜索范围,加入一个随机的角度偏移参数θ\thetaθ,其中γ\gammaγ值一般为π/4\pi/4π/4。
在同化过程中,如果移动后某个殖民地势力大于其宗主国,则殖民地和宗主国互换位置,帝国中的其他殖民地向新宗主国的位置移动。这个过程确保了宗主国的位置在寻优过程中始终保持相对最优。

1.3 帝国竞争

所有宗主国都想要占领其他宗主国的殖民地以增强帝国的势力,这种竞争机制使强大的帝国更加强大,弱小的帝国将逐渐衰落,直至消亡。原始ICA选取最弱帝国中的最弱殖民地作为帝国竞争的对象,所有帝国都有机会占有这个殖民地国家,且帝国势力越大,占有的概率越大。
帝国势力值TCnTC_nTCn​的计算方法如下:TCn=Cost(imperialistn)+ξ⋅mean{Cost(colonies)}(8)TC_n=Cost(imperialist_n)+\xi\cdot mean\left\{Cost(colonies)\right\}\tag{8}TCn​=Cost(imperialistn​)+ξ⋅mean{Cost(colonies)}(8)其中,Cost(imperialistn)Cost(imperialist_n)Cost(imperialistn​)为宗主国的归一化势力值;Cost(colonies)Cost(colonies)Cost(colonies)为帝国所辖殖民地的归一化势力值;mean{}mean\{\}mean{}为均值函数;ξ\xiξ表示殖民地占帝国势力的权重值。可以看出,帝国总势力值为宗主国及其所辖殖民地的势力值之和。

1.4 国家汇聚

竞争过程中,势力较弱的帝国因失去殖民地而越发弱小,直至所有殖民地被其他帝国所占有,则该帝国灭亡。
经过多次迭代,帝国相继灭亡,在理想状态下,最后仅留存唯一一个统辖所有殖民地的国家。此时,所有国家都汇聚于一点,宗主国和殖民地的势力值完全相同,算法结束。

2、ICA算法流程图

ICA算法流程图如图1所示。

图1 ICA算法流程图

二、仿真实验与分析

以常用23个测试函数中的F1、F2(单峰函数/10维)、F9、F10(多峰函数/10维)、F14、F15(固定维度多峰函数/2维、4维)为例,实验设置种群规模为50,最大迭代次数为1000,结果显示如下:
实验结果表明:ICA算法在提高求解精度和求解效率上具有一定优势。

代码下载链接:https://download.csdn.net/download/weixin_43821559/85231570

三、参考文献

[1] E. Atashpaz-Gargari, C. Lucas. Imperialist competitive algorithm: An algorithm for optimization inspired by imperialistic competition[C] // 2007 IEEE Congress on Evolutionary Computation, 2007: 4661-4667.
[2] 王贵林, 李斌. 受春秋战国史实启发的帝国竞争改进算法[J]. 计算机应用, 2021, 41(2): 470-478.

基于帝国竞争算法的函数寻优算法相关推荐

  1. 《MATLAB智能算法30个案例》:第2章 基于遗传算法和非线性规划的函数寻优算法

    <MATLAB智能算法30个案例>:第2章 基于遗传算法和非线性规划的函数寻优算法 1. 前言 2. MATLAB 仿真示例一 3. MATLAB 仿真示例二 4. MATLAB 仿真示例 ...

  2. 基于蚁群算法的函数寻优算法

    文章目录 一.理论基础 二.案例背景 1.问题描述 2.解题思路及步骤 三.MATLAB程序实现 1.清空环境变量 2.初始化参数 3.构建解空间和目标函数 4.迭代寻优 5.结果显示 6.绘图 四. ...

  3. 基于入侵杂草算法的函数寻优算法

    文章目录 一.理论基础 1.算法简介 2.杂草特性 二.案例背景 1.问题描述 2.解题思路及步骤 (1) 初始化种群 (2) 繁殖 (3) 空间分布 (4) 竞争性排斥规则 3.算法流程 三.MAT ...

  4. 基于沙猫群优化算法的函数寻优算法

    文章目录 一.理论基础 1.沙猫群优化算法 (1)初始化种群 (2)搜索猎物(探索) (3)攻击猎物(开发) (4)探索和开发 2.SCSO算法伪代码 二.仿真实验与结果分析 三.参考文献 一.理论基 ...

  5. 基于改进正弦余弦算法的函数寻优算法

    文章目录 一.理论基础 1.基本正弦余弦算法 2.改进正弦余弦算法 (1)基于双曲正弦调节因子和动态余弦波权重的位置更新 (2)基于拉普拉斯分布和高斯分布的动态混合变异 二.算法流程图 三.仿真实验与 ...

  6. 基于蜉蝣优化算法的函数寻优算法

    文章目录 一.理论基础 1.蜉蝣优化算法 (1)雄性蜉蝣的更新 (2)雌性蜉蝣的更新 (3)蜉蝣的交配过程 2.MA算法伪代码 二.仿真实验与结果分析 1.函数测试与数值分析 2.WSN三维覆盖优化 ...

  7. 基于金豺优化算法的函数寻优算法

    文章目录 一.理论基础 1.金豺优化算法 (1)搜索空间公式 (2)探索阶段或搜索猎物 (3)开发阶段或围捕和突袭猎物 (4)从探索转向开发 2.GJO伪代码 二.仿真实验与结果分析 三.参考文献 一 ...

  8. 基于果蝇优化算法的函数寻优算法

    文章目录 一.理论基础 二.算法步骤 1.启发 2.方向和距离 3.气味浓度判断值 4.适应度评估 5.寻找最优个体 6.飞行 7.迭代优化 三.案例背景 问题描述 四.MATLAB程序实现 1.清空 ...

  9. 基于蜂鸟优化算法的函数寻优算法

    文章目录 一.理论基础 1.自搜索阶段 2.引导搜索阶段 3.HOA伪代码 二.仿真实验与分析 三.参考文献 一.理论基础 蜂鸟优化算法(Hummingbirds optimization algor ...

最新文章

  1. ConstraintLayout 全解析
  2. [Spark][Python]PageRank 程序
  3. 【ArcGIS风暴】数字化实验:数据采集与编辑完整操作流程
  4. 35款安卓App被通报窃取个人隐私!快看看你的手机里有没有
  5. Jmeter进阶之性能测试响应结果保存到本地
  6. C++下面 计算时间
  7. CPU 漏洞补丁对内核性能影响:4.15 比 4.11 快 7-9%
  8. 【转载】关于大型asp.net应用系统的架构-架构的选择
  9. Oracle游标 CURSOR实例详解
  10. Ubuntu 搭建SVN服务器(SVN Server)
  11. ECharts饼状图legend显示Value所占百分比
  12. 巫宁坤 一滴泪 pdf mobi kindle
  13. 【ITPM】TW1:ISchool 项目前期分析说明书
  14. ubuntu18.04安装与更新NVIDIA驱动
  15. 霹雳吧啦wz学习笔记1_卷积神经网络
  16. MAC版snailSVN使用
  17. C语言中的char用法
  18. 学习LDPC码的一些入门笔记
  19. TiDB 在摩拜单车的深度实践及应用 1
  20. SharePoint Portal Server 2007 文档管理和用户管理的总结

热门文章

  1. uniapp 苹果支付注意事项(前端)
  2. 认识图,用矩阵表示图
  3. 祁隆爱徒秀秀喜欢的视频,有传闻被和合国际收购的《借我星光》
  4. c++:定义函数Product计算两个浮点数数的乘积(定义函数)
  5. 用Python爬取2020链家杭州二手房数据
  6. 常用Mysql存储引擎--InnoDB和MyISAM简单总结
  7. 关联规则----Apriori算法以及代码实现
  8. 服务器自定义防火墙,windows服务器防火墙设置自定义规则
  9. html怎么解决gif图放大失真问题
  10. 软考网络工程师上午考试知识点总结整理