【智能算法】混沌博弈算法(CGO)原理及实现

目录


1.背景

2021年,S Talatahari等人受到混沌理论启发,提出了爱情进化算法(Chaos Game Optimization, CGO)。

2.算法原理

2.1算法思想

CGO算法借鉴了混沌理论和混沌游戏的概念,在优化搜索中模拟了混沌过程。混沌理论强调动力系统对初始条件的极度敏感性,以及系统行为中存在的自相似和自组织特征。混沌游戏则是利用随机选择的初始点和多边形形状来创建分形的方法。

2.2算法过程

创建临时三角形的主要目的是在搜索空间中创建新的符合条件的种子,基于混沌博弈方法需要限制种子在搜索空间中的运动,为此利用一些随机生成的阶乘来控制:
S e e d i 1 = X i + α i × ( β i × G B − γ i × M G i ) , i = 1 , 2 , ... , n (1) Seed_i^1=X_i+\alpha_i\times\left(\beta_i\times GB-\gamma_i\times MG_i\right),\quad i=1,2,\ldots,n\tag{1} Seedi1=Xi+αi×(βi×GB−γi×MGi),i=1,2,...,n(1)

GB是最优适应度,MGi是一些选定的符合条件的种子的平均值。

第二个种子(GB)使用一个骰子,有三个蓝色面和三个红色面。根据掷骰子结果,GB将向Xi(蓝色面)或MGi(红色面)移动。移动过程类似于第一个种子,但使用了随机生成的阶乘来限制移动到Xi和MGi之间连接线上的点:
S e e d i 2 = G B + α i × ( β i × X i − γ i × M G i ) , i = 1 , 2 , ... , n (2) Seed_{i}^{2}=GB+\alpha_{i}\times(\beta_{i}\times X_{i}-\gamma_{i}\times MG_{i}),\quad i=1,2,\ldots,n\tag{2} Seedi2=GB+αi×(βi×Xi−γi×MGi),i=1,2,...,n(2)

MGi作为第三颗种子,一个骰子有蓝色和绿色的面,它被滚动,根据出现的颜色(蓝色或绿色),种子移动到Xi(蓝色面)或GB(绿面):
S e e d i 3 = M G i + α i × ( β i × X i − γ i × G B ) , i = 1 , 2 , ... , n (3) Seed_{i}^{3}=MG_{i}+\alpha_{i}\times(\beta_{i}\times X_{i}-\gamma_{i}\times GB),\quad i=1,2,\ldots,n\tag{3} Seedi3=MGi+αi×(βi×Xi−γi×GB),i=1,2,...,n(3)

为了实现在搜索空间中符合条件的种子的位置更新中的突变阶段,还利用另一过程生成第四种子:
S e e d i 4 = X i ( x i k = x i k + R ) , k = [ 1 , 2 , ... , d ] (4) Seed_i^4=X_i\big(x_i^k=x_i^k+R\big),\quad k=[1,2,\ldots,d]\tag{4} Seedi4=Xi(xik=xik+R),k=[1,2,...,d](4)

为了平衡CGO探索与开发,设置调整因子:
α i = { R a n d 2 × R a n d ( δ × R a n d ) + 1 ( ε × R a n d ) + ( ∼ ε ) (5) \alpha_i=\left\{\begin{matrix}Rand\\2\times Rand\\(\delta\times Rand)+1\\(\varepsilon\times Rand)+(\sim\varepsilon)\end{matrix}\right.\tag{5} αi=⎩ ⎨ ⎧Rand2×Rand(δ×Rand)+1(ε×Rand)+(∼ε)(5)

伪代码

3.结果展示

使用测试框架,测试CGO性能 一键run.m

CEC2017-F7


4.参考文献

[1] Talatahari S, Azizi M. Chaos game optimization: a novel metaheuristic algorithm[J]. Artificial Intelligence Review, 2021, 54(2): 917-1004.

相关推荐
Kent_J_Truman9 分钟前
【平方差 / C】
算法
一直学习永不止步10 分钟前
LeetCode题练习与总结:H 指数--274
java·数据结构·算法·leetcode·数组·排序·计数排序
Amor风信子36 分钟前
华为OD机试真题---跳房子II
java·数据结构·算法
戊子仲秋1 小时前
【LeetCode】每日一题 2024_10_2 准时到达的列车最小时速(二分答案)
算法·leetcode·职场和发展
邓校长的编程课堂1 小时前
助力信息学奥赛-VisuAlgo:提升编程与算法学习的可视化工具
学习·算法
sp_fyf_20241 小时前
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-03
人工智能·算法·机器学习·计算机视觉·语言模型·自然语言处理
Eric.Lee20212 小时前
数据集-目标检测系列- 螃蟹 检测数据集 crab >> DataBall
python·深度学习·算法·目标检测·计算机视觉·数据集·螃蟹检测
林辞忧2 小时前
算法修炼之路之滑动窗口
算法
￴ㅤ￴￴ㅤ9527超级帅2 小时前
LeetCode hot100---二叉树专题(C++语言)
c++·算法·leetcode
liuyang-neu2 小时前
力扣 简单 110.平衡二叉树
java·算法·leetcode·深度优先