基于帝国竞争算法的函数寻优算法
文章目录
- 一、理论基础
- 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−maxi{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∑NimpCiCn∣∣∣∣∣∣∣∣∣∣∣(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.
基于帝国竞争算法的函数寻优算法相关推荐
- 《MATLAB智能算法30个案例》:第2章 基于遗传算法和非线性规划的函数寻优算法
<MATLAB智能算法30个案例>:第2章 基于遗传算法和非线性规划的函数寻优算法 1. 前言 2. MATLAB 仿真示例一 3. MATLAB 仿真示例二 4. MATLAB 仿真示例 ...
- 基于蚁群算法的函数寻优算法
文章目录 一.理论基础 二.案例背景 1.问题描述 2.解题思路及步骤 三.MATLAB程序实现 1.清空环境变量 2.初始化参数 3.构建解空间和目标函数 4.迭代寻优 5.结果显示 6.绘图 四. ...
- 基于入侵杂草算法的函数寻优算法
文章目录 一.理论基础 1.算法简介 2.杂草特性 二.案例背景 1.问题描述 2.解题思路及步骤 (1) 初始化种群 (2) 繁殖 (3) 空间分布 (4) 竞争性排斥规则 3.算法流程 三.MAT ...
- 基于沙猫群优化算法的函数寻优算法
文章目录 一.理论基础 1.沙猫群优化算法 (1)初始化种群 (2)搜索猎物(探索) (3)攻击猎物(开发) (4)探索和开发 2.SCSO算法伪代码 二.仿真实验与结果分析 三.参考文献 一.理论基 ...
- 基于改进正弦余弦算法的函数寻优算法
文章目录 一.理论基础 1.基本正弦余弦算法 2.改进正弦余弦算法 (1)基于双曲正弦调节因子和动态余弦波权重的位置更新 (2)基于拉普拉斯分布和高斯分布的动态混合变异 二.算法流程图 三.仿真实验与 ...
- 基于蜉蝣优化算法的函数寻优算法
文章目录 一.理论基础 1.蜉蝣优化算法 (1)雄性蜉蝣的更新 (2)雌性蜉蝣的更新 (3)蜉蝣的交配过程 2.MA算法伪代码 二.仿真实验与结果分析 1.函数测试与数值分析 2.WSN三维覆盖优化 ...
- 基于金豺优化算法的函数寻优算法
文章目录 一.理论基础 1.金豺优化算法 (1)搜索空间公式 (2)探索阶段或搜索猎物 (3)开发阶段或围捕和突袭猎物 (4)从探索转向开发 2.GJO伪代码 二.仿真实验与结果分析 三.参考文献 一 ...
- 基于果蝇优化算法的函数寻优算法
文章目录 一.理论基础 二.算法步骤 1.启发 2.方向和距离 3.气味浓度判断值 4.适应度评估 5.寻找最优个体 6.飞行 7.迭代优化 三.案例背景 问题描述 四.MATLAB程序实现 1.清空 ...
- 基于蜂鸟优化算法的函数寻优算法
文章目录 一.理论基础 1.自搜索阶段 2.引导搜索阶段 3.HOA伪代码 二.仿真实验与分析 三.参考文献 一.理论基础 蜂鸟优化算法(Hummingbirds optimization algor ...
最新文章
- ConstraintLayout 全解析
- [Spark][Python]PageRank 程序
- 【ArcGIS风暴】数字化实验:数据采集与编辑完整操作流程
- 35款安卓App被通报窃取个人隐私!快看看你的手机里有没有
- Jmeter进阶之性能测试响应结果保存到本地
- C++下面 计算时间
- CPU 漏洞补丁对内核性能影响:4.15 比 4.11 快 7-9%
- 【转载】关于大型asp.net应用系统的架构-架构的选择
- Oracle游标 CURSOR实例详解
- Ubuntu 搭建SVN服务器(SVN Server)
- ECharts饼状图legend显示Value所占百分比
- 巫宁坤 一滴泪 pdf mobi kindle
- 【ITPM】TW1:ISchool 项目前期分析说明书
- ubuntu18.04安装与更新NVIDIA驱动
- 霹雳吧啦wz学习笔记1_卷积神经网络
- MAC版snailSVN使用
- C语言中的char用法
- 学习LDPC码的一些入门笔记
- TiDB 在摩拜单车的深度实践及应用 1
- SharePoint Portal Server 2007 文档管理和用户管理的总结