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

相关推荐
Coovally AI模型快速验证26 分钟前
MMYOLO:打破单一模式限制,多模态目标检测的革命性突破!
人工智能·算法·yolo·目标检测·机器学习·计算机视觉·目标跟踪
可为测控1 小时前
图像处理基础(4):高斯滤波器详解
人工智能·算法·计算机视觉
Milk夜雨1 小时前
头歌实训作业 算法设计与分析-贪心算法(第3关:活动安排问题)
算法·贪心算法
BoBoo文睡不醒2 小时前
动态规划(DP)(细致讲解+例题分析)
算法·动态规划
apz_end2 小时前
埃氏算法C++实现: 快速输出质数( 素数 )
开发语言·c++·算法·埃氏算法
仟濹3 小时前
【贪心算法】洛谷P1106 - 删数问题
c语言·c++·算法·贪心算法
CM莫问4 小时前
python实战(十五)——中文手写体数字图像CNN分类
人工智能·python·深度学习·算法·cnn·图像分类·手写体识别
sz66cm4 小时前
LeetCode刷题 -- 45.跳跃游戏 II
算法·leetcode
Amor风信子4 小时前
华为OD机试真题---战场索敌
java·开发语言·算法·华为od·华为
old_power5 小时前
【PCL】Segmentation 模块—— 基于图割算法的点云分割(Min-Cut Based Segmentation)
c++·算法·计算机视觉·3d