IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 智能优化算法(源码)-沙丘猫群优化(SCSO) -> 正文阅读

[数据结构与算法]智能优化算法(源码)-沙丘猫群优化(SCSO)

在这里插入图片描述

获取更多资讯,赶快关注上面的公众号吧!

沙丘猫群优化算法(Sand Cat swarm optimization,SCSO)是土耳其学者Amir Seyyedabbasi于2022年最新提出的一种模拟沙丘猫生存行为的元启发式算法。扫码关注公众号,后台回复"沙丘猫"或"SCSO"获取源码和原文

灵感来源

沙丘猫是猫科动物中的一种,属于哺乳动物家族。它们生活在沙质和石质沙漠的恶劣环境中,如中亚撒哈拉沙漠、非洲撒哈拉沙漠和阿拉伯半岛。沙丘猫虽然和家猫在外形上差别不断,但在捕食和生存方面有着不同的生活行为。它们能够探测低于2kHz的低频,也具有难以置信的挖掘猎物的能力。作者提出的沙丘猫算法就是受这两种特性的启发,也包括两个阶段:搜索和攻击,此外,还提出一种用于平衡探索和利用的机制。

数学模型和优化算法

沙丘猫群优化模拟了沙丘猫的两个主要行为:搜寻猎物和攻击猎物。由于自然界中的沙丘猫是独立生活的,那么在提出的算法中,为了提出种群智能的概念,作者假设沙丘猫是群体性的。

初始化种群

对于 d d d维优化问题,沙丘猫就是一个 1 × d 1 \times d 1×d维的表达问题解的数组,如图2。


每个变量值 ( x 1 , x 2 , … , x d ) \left(x_{1}, x_{2}, \ldots, x_{d}\right) (x1?,x2?,,xd?)都是浮点型,且每个 x x x都必须处于上下边界之间( ? x i ∈ [ \forall x_{i} \in[ ?xi?[ lower, upper ] ] ])。

算法运行时首先根据问题的规模 ( N pop? × N d ) , ( \left(N_{\text {pop }} \times N_{d}\right),( (Npop??×Nd?),( pop = 1 , . . . , n =1,...,n =1,...,n)利用沙丘猫群创建一个候选矩阵,然后就目标函数对每个沙丘猫进行适应度评估,选择出其中最优的个体,其他的个体都朝向该个体移动。

搜索猎物(探索)

沙丘猫的猎物搜索机制依赖于低频噪声发射。每只沙丘猫的解表达为 X i = ( x i 1 , x i 2 , x i 3 , … , x i d ) X_{i}=\left(x_{i 1}, x_{i 2}, x_{i 3}, \ldots, x_{i d}\right) Xi?=(xi1?,xi2?,xi3?,,xid?)。SCSO算法得益于沙丘猫在低频探测方面的听觉能力,这样就声明了每只猫的敏感范围,前面提到,沙丘猫可以感知低于2kHz的低频,在数学模型中,根据算法的工作原理,这个值( r G → \overrightarrow{r_{G}} rG? ?)将随着迭代过程的进行从2线性地降低为0,以逐渐靠近猎物而不会丢失或跳过。因此为了搜索猎物,假设沙丘猫的敏感范围为2kHz到0(等式1), S M S_M SM?模拟了沙丘猫的听觉特性,其假设为2(当然对于不同问题可以适当调整以确定代理行为的速度)。值得一提的是,控制探索和利用之间转换的主要参数是 R R R,其是根据等式2获得的向量。
r G → = s M ? ( 2 × S M × ?iter? c ?iter? M a x + ?iter? max ? ) (1) \overrightarrow{r_{G}}=s_{M}-\left(\frac{2 \times S_{M} \times \text { iter }_{\mathrm{c}}}{\text { iter }_{\mathrm{Max}}+\text { iter }_{\max }}\right)\tag{1} rG? ?=sM??(?iter?Max?+?iter?max?2×SM?×?iter?c??)(1)

R ? = 2 × r G → × rand ? ( 0 , 1 ) ? r G → (2) \vec{R}=2 \times \overrightarrow{r_{G}} \times \operatorname{rand}(0,1)-\overrightarrow{r_{G}}\tag{2} R =2×rG? ?×rand(0,1)?rG? ?(2)
搜索空间在定义的边界之间随机初始化。在搜索步骤中,每个当前搜索代理的位置更新都是基于一个随机位置。这样,搜索代理就能够在搜索空间中探索新的空间。为避免陷入局部最优,每只沙丘猫的灵敏度范围是不同的,如等式3。因此, r G → \overrightarrow{r_{G}} rG? ?表示常规的灵敏度范围(从2线性下降到0),而 r ? \vec{r} r 是每只猫的灵敏度范围。此外, r ? \vec{r} r 用于探索或利用阶段的操作,而 r G → \overrightarrow{r_{G}} rG? ?用于导引参数 R R R以实现在这些阶段间转移控制。

r ? = r G → × rand ? ( 0 , 1 ) (3) \vec{r}=\overrightarrow{r_{G}} \times \operatorname{rand}(0,1)\tag{3} r =rG? ?×rand(0,1)(3)

其中 ?iter? c \text { iter }_{\mathrm{c}} ?iter?c?为当前迭代, ?iter? M a x \text { iter }_{\mathrm{Max}} ?iter?Max?为最大迭代次数。

每只沙丘猫会根据最优解( Pos ? b c → \overrightarrow{\operatorname{Pos}_{b c}} Posbc? ?)、自己当前位置( Pos ? c → \overrightarrow{\operatorname{Pos}_{c}} Posc? ?)和其灵敏度范围( r → \overrightarrow{r} r )更新自己的位置。因此沙丘猫能找到其他最好的猎物位置(等式4),该等式使得算法可以找到新的局部最优,因此新的位置位于当前位置和猎物位置之间,同时随机性保证了算法的运行成本低和复杂度低。

Pos ? → ( t + 1 ) = r ? ? ( Pos ? b c → ( t ) ? rand ? ( 0 , 1 ) ? Pos ? c → ( t ) ) (4) \overrightarrow{\operatorname{Pos}}(t+1)=\vec{r} \cdot\left(\overrightarrow{\operatorname{Pos}_{b c}}(t)-\operatorname{rand}(0,1) \cdot \overrightarrow{\operatorname{Pos}_{c}}(\mathrm{t})\right)\tag{4} Pos (t+1)=r ?(Posbc? ?(t)?rand(0,1)?Posc? ?(t))(4)

攻击猎物(利用)

为了表达SCSO的攻击阶段,最优位置 Pos ? b → \overrightarrow{\operatorname{Pos}_{b}} Posb? ?与当前位置( Pos ? c → \overrightarrow{\operatorname{Pos}_{c}} Posc? ?)的距离根据等式5计算得到。同时假设沙丘猫的灵敏度范围是一个圆,这样移动的方向就可以通过圆上的一个随机角度( θ \theta θ)确定。由于所选的随机角度在0到360之间,其值将在?1到1之间。这样,群体中的每个成员都能够在搜索空间中沿着不同的圆周方向移动。SCSO利用轮盘选择算法为每只沙丘猫选择一个随机角度。用这种方法,沙丘猫可以接近狩猎位置,为避免陷入局部最优,采用了随机角度。SCSO两次连续迭代的位置更新过程如图3所示。

Pos ? r n d → = ∣ rand ? ( 0 , 1 ) ? Pos ? b → ( t ) ? Pos ? c → ( t ) ∣ Pos ? → ( t + 1 ) = Pos ? b → ( t ) ? r ? ? Pos ? r n d → ? cos ? ( θ ) (5) \begin{aligned} &\overrightarrow{\operatorname{Pos}_{\mathrm{rnd}}}=\left|\operatorname{rand}(0,1) \cdot \overrightarrow{\operatorname{Pos}_{b}}(t)-\overrightarrow{\operatorname{Pos}_{c}}(\mathrm{t})\right| \\ &\overrightarrow{\operatorname{Pos}}(t+1)=\overrightarrow{\operatorname{Pos}_{b}}(t)-\vec{r} \cdot \overrightarrow{\operatorname{Pos}_{\mathrm{rnd}}} \cdot \cos (\theta) \end{aligned}\tag{5} ?Posrnd? ?=?rand(0,1)?Posb? ?(t)?Posc? ?(t)?Pos (t+1)=Posb? ?(t)?r ?Posrnd? ??cos(θ)?(5)

探索和利用

探索和利用是通过自适应的 r G r_G rG? R R R保证的,这些参数允许SCSO在两个阶段之间无缝切换。由于参数 R R R取决于 r G r_G rG?,其波动范围也会变小。 R R R是区间 [ ? 2 r G , 2 r G ] [-2r_G,2r_G] [?2rG?,2rG?]的随机值,而 r G r_G rG?线性从2下降到0。当R的随机值为[-1,1]时,沙丘猫的下一个位置可以是当前位置与狩猎位置之间的任意位置。SCSO算法在 R R R小于或等于1时强制搜索代理进行利用,否则强制搜索代理进行探索和寻找猎物,如等式6。

X ? ( t + 1 ) = { Pos ? b → ( t ) ? Pos ? rnd? → ? cos ? ( θ ) ? r ? ∣ R ∣ ≤ 1 ; ?exploitation? r ? ? ( Pos ? b c → ( t ) ? rand ? ( 0 , 1 ) ? Pos ? c → ( t ) ) ∣ R ∣ > 1 ; ?exploration? (6) \vec{X}(t+1)=\left\{\begin{array}{cl} \overrightarrow{\operatorname{Pos}_{b}}(t)-\overrightarrow{\operatorname{Pos}_{\text {rnd }}} \cdot \cos (\theta) \cdot \vec{r} & |R| \leq 1 ; \text { exploitation } \\ \vec{r} \cdot\left(\overrightarrow{\operatorname{Pos}_{b c}}(t)-\operatorname{rand}(0,1) \cdot \overrightarrow{\operatorname{Pos}_{c}}(\mathrm{t})\right) & |R|>1 ; \text { exploration } \end{array}\right.\tag{6} X (t+1)=????Posb? ?(t)?Posrnd?? ??cos(θ)?r r ?(Posbc? ?(t)?rand(0,1)?Posc? ?(t))?R1;?exploitation?R>1;?exploration??(6)

SCSO算法

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-06-01 15:26:10  更:2022-06-01 15:27:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 0:22:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码