优化算法学习|帝国竞争算法原理及代码实现

优化算法学习|帝国竞争算法原理及代码实现

首页模拟经营代号帝国更新时间:2024-05-29

哈喽,小伙伴们好~ 三天假期转瞬即逝,又要开始努力搬砖啦~

又到了算法学习的时间,之前讲的几个算法都是模仿生物群体行为而提出的优化算法,那么今天就给大家介绍一个受人类社会行为启发提出的算法——帝国竞争算法。快来一起学习吧~

1 算法背景

帝国竞争算法(Imperialist Competitive Algorithm,ICA)是由 Atashpaz-Gargari和 Lucas 于 2007 年提出的一种基于人类社会中国家演变过程的群智能优化算法,该算法模拟了社会进程中殖民国家对殖民地的侵略以及殖民国家之间的竞争。

帝国竞争算法是一种基于人类社会中国家的演变过程的群智能算法,该算法模拟了社会进程中殖民国家对殖民地的侵略以及殖民国家之间的竞争。帝国竞争算法利用同化过程加大局部较优区域的搜索,利用帝国竞争过程扩大全局搜索范围。因此该算法具有原理容易理解,求解算法快,求解精度比较高、编程易实现等良好的性能,帝国竞争算法被广泛应用于分类问题、聚类问题、调度问题、服务组合优化问题等。

2 算法原理

帝国竞争算法的核心是同化和竞争。同化过程使殖民地向一个子种群中最好的殖民国家移动,增加了算法的局部搜索能力。帝国竞争过程是帝国集团与其他帝国集团之间的信息交流,扩大全局搜索范围。

01 初始化帝国

对于一个 N 维的优化问题,国家可表示为:

其中分量xi 表示一个国家的语言、经济或政治等因素,也就是我们要解决的实际问题中的优化变量。

每个国家的势力大小均不相同,势力大小通过cost函数,也就是目标函数值来确定:

国家的势力和代价函数值成反比,即代价函数值越小,国家势力越大

注:对于最小化问题,求一个函数的全局最优,cost函数值越小越好。最大化问题反之。

根据国家自身势力的优劣,将势力最强的 Nimp 个国家选为殖民国家,剩下的 Ncol 个国家被视作隶属于该殖民国家的殖民地。初始国家的数量是殖民地数量与殖民国家数量之和。

根据每个殖民国家自身势力的大小,为其随机分配相应数量的殖民地,以此构建初始化帝国集团。一个帝国集团是由一个殖民国家和多个殖民地组成,通常帝国集团的势力越大,所拥有的殖民地数量越多。

如图1所示,势力越大的殖民国家占有的殖民地越多。相反,势力越小的殖民国家获得的殖民地数量越少。

图1 初始化帝国:帝国拥有的殖民地越多,所代表的五角星越大

02 同化与更新机制

同化过程在现实生活中主要体现为殖民国家将自己的政治、文化、经济等因素推广到殖民地,使整个帝国集团的势力提高。在 ICA 算法中同化过程可以描述为帝国集团内部的殖民地沿着直线方向向所属殖民国家进行的随机移动,移动过程如图 2 所示。移动距离为:

其中 β 是大于 1 的实数,设置 β >1是为了使殖民地向殖民国家从两个方向进行移动,d 为殖民地和殖民国家之间的距离。

对于一个帝国来说,可能由于某种原因发生革命,对国家的某些属性特征发生改变,这也就造成殖民地向所属殖民国家移动过程中会有偏移情况发生,也就是说,殖民地并不总是沿着直线所示的方向移动。此时,引入随机角度θ ,其值服从:

大多数情况下,β 的取值为 2,γ 的值被建议选为π/4,以此增大搜索空间。

帝国集团中可能存在某个殖民地势力和殖民国家势力本身差距很小的情况,在同化过程中,就会出现殖民国家的势力小于某个所支配的殖民地势力。此时,该殖民地将取代殖民国家的位置成为新的殖民国家,而殖民国家沦落为该帝国集团的殖民地。

帝国集团更新后要重新计算该帝国集团的总成本值,包括殖民国家的成本值和一部分所拥有的殖民地的成本值,即使殖民地的成本值所占的比例微乎其微。

03 帝国竞争

竞争机制中每一个帝国集团都尝试着去控制弱势帝国集团的弱势殖民地,使得强者变得更强,弱者变得更弱,直至只剩余一个帝国集团。

该过程中弱势的殖民地通过移动到其他帝国集团,改变原来的寻优轨迹,增加了种群间的信息交流,扩大了搜索范围。

根据各帝国的总代价,选择最弱的帝国中最弱的殖民地作为帝国竞争的对象,势力越大的帝国越有可能占有该殖民地。每个帝国占有最弱殖民地的概率按照如下公式计算:

N.T.C.n为第 n 个帝国集团的相对成本值,定义如下:

用向量P表示所有帝国占有可能性的概率:

构建一个和P同维的向量R:

向量D为向量P与R相减:

比较向量 D 中的所有元素,最大值表示的帝国集团占领上述最弱帝国集团的最弱殖民地。方法看起来与轮盘赌类似,但是由于该方法仅仅计算可能性的值,要比轮盘赌计算速度更快一些。

图3 帝国竞争

04 帝国灭亡

帝国之间的竞争,使势力大的帝国通过占有其他帝国的殖民地变得越来越强大,而势力弱的帝国殖民地个数不断减少,当一个帝国丢失所有的殖民地时,帝国覆灭。随着帝国的灭亡,最终剩下一个帝国,此时殖民地与殖民国家处于相同的地位,具有相同的成本值,算法终止。实际的优化问题中,设置迭代次数也可作为算法结束的条件。

3 算法流程

伪代码

4 总结

标准帝国竞争算法虽然具有原理容易理解,求解算法快,精度高、编程易实现等优点,但随着迭代的进行,同化和竞争的操作频率降低,导致算法存在诸如在求解高维问题时,算法后期种群的多样性下降较快,算法往往容易早熟收敛,易陷入局部最优等缺陷与不足。

5 参考文献

[1] Atashpaz-Gargari E , Lucas C . Imperialist competitive algorithm: An algorithm for optimization inspired by imperialistic competition[C]// IEEE Congress on Evolutionary Computation. IEEE, 2008.

[2] 郭婉青, 叶东毅. 帝国竞争算法的进化优化[J]. 计算机科学与探索, 2014, 8(004):473-482.

[3]Talatahari S , Azar B F , Sheikholeslami R , et al. Imperialist competitive algorithm combined with chaos for global optimization[J]. Communications in Nonlinear Science & Numerical Simulation, 2012, 17(3):1312-1319.

- THE END -

好啦,今天的讲解到这里就结束啦。帝国竞争算法的源码可以关注公众号“土博在路上”联系我获取。感兴趣的小伙伴们快来关注我吧,获取更多精彩内容~

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved