【智能算法】混沌博弈算法(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.

相关推荐
Wendy14417 小时前
【线性回归(最小二乘法MSE)】——机器学习
算法·机器学习·线性回归
拾光拾趣录7 小时前
括号生成算法
前端·算法
渣呵8 小时前
求不重叠区间总和最大值
算法
拾光拾趣录8 小时前
链表合并:双指针与递归
前端·javascript·算法
好易学·数据结构9 小时前
可视化图解算法56:岛屿数量
数据结构·算法·leetcode·力扣·回溯·牛客网
香蕉可乐荷包蛋10 小时前
AI算法之图像识别与分类
人工智能·学习·算法
chuxinweihui10 小时前
stack,queue,priority_queue的模拟实现及常用接口
算法
tomato0910 小时前
河南萌新联赛2025第(一)场:河南工业大学(补题)
c++·算法
墨染点香10 小时前
LeetCode Hot100【5. 最长回文子串】
算法·leetcode·职场和发展
甄卷12 小时前
李沐动手学深度学习Pytorch-v2笔记【08线性回归+基础优化算法】2
pytorch·深度学习·算法