多目标优化算法:基于非支配排序的瞪羚优化算法(Non-Dominated Sorting Gazelle Optimization Algorithm,NSGOA)
瞪羚优化算法(Gazelle Optimization Algorithm,GOA)由Agushaka等人于2022年提出,该算法模拟了瞪羚逃避捕食者的行为,思路新颖,性能高效。
瞪羚的身高60-110厘米,体重13-29千克。该属物种有像小鹿一样的浅棕色皮毛,身体的下部一般是白色的。然而,有些个体在背部和腹部的相邻部分有一个长长的黑色标记。雄性瞪羚有长而弯曲的角。瞪羚体质强壮,是非常敏捷的动物;脚上有4趾,但侧趾比鹿类更加退化,有适合长跑的腿,适于奔跑。可以以每小时50公里的速度持续奔跑。
瞪羚一般生活在沙漠和半沙漠、干旱的草原、树木繁茂的稀树草原、灌木丛生的草原、丘陵和浅林中。瞪羚是高度社会化的动物,所有的瞪羚都是群居的。一些群有多达700名成员,尽管一些瞪羚群很小并且按性别隔离。例如,雌性和年轻的幼羚生活在一起,还生活在10-30只雌性的群中。雄性单独生活或自己组群与其他雄性一起生活。雄性族群被称为单身汉族群。在迁徙过程中,雌雄混群,在交配季节,畜群的隔离更为突出,但只要有繁殖机会,它们就会被领地雄性分开。
瞪羚优化算法包含全局搜索,局部搜索和瞪羚逃生三个阶段:
一、种群随机初始化
Elite =[x1,1′x1,2′⋯x1,d−1′x1,d′x2,1′x2,2′⋯x2,d−1′x2,d′⋮⋮xi,j′⋮⋮xn,1′xn,2′⋯xn,d−1′xn,d′]\text { Elite }=\left[\begin{array}{lllll} x_{1,1}^{\prime} & x_{1,2}^{\prime} & \cdots & x_{1, d-1}^{\prime} & x_{1, d}^{\prime} \\ x_{2,1}^{\prime} & x_{2,2}^{\prime} & \cdots & x_{2, d-1}^{\prime} & x_{2, d}^{\prime} \\ \vdots & \vdots & x_{i, j}^{\prime} & \vdots & \vdots \\ x_{n, 1}^{\prime} & x_{n, 2}^{\prime} & \cdots & x_{n, d-1}^{\prime} & x_{n, d}^{\prime} \end{array}\right] Elite =⎣⎡x1,1′x2,1′⋮xn,1′x1,2′x2,2′⋮xn,2′⋯⋯xi,j′⋯x1,d−1′x2,d−1′⋮xn,d−1′x1,d′x2,d′⋮xn,d′⎦⎤
其中,xi,j=rand×(UBj−LBj)+LBjx_{i, j}=\operatorname{rand} \times\left(\mathrm{UB}_{j}-\mathrm{LB}_{j}\right)+\mathrm{LB}_{j}xi,j=rand×(UBj−LBj)+LBj
瞪羚优化算法中涉及布朗运动及莱维飞行:
1.1布朗运动
布朗运动是悬浮微粒被分子撞击后做无规则运动。布朗运动是将看起来连成一片的液体,在高倍显微镜下看其实是由许许多多分子组成的。液体分子不停地做无规则的运动,不断地随机撞击悬浮微粒。当悬浮的微粒足够小的时候,由于受到的来自各个方向的液体分子的撞击作用是不平衡的。在某一瞬间,微粒在另一个方向受到的撞击作用超强的时候,致使微粒又向其它方向运动,这样就引起了微粒的无规则的运动,即布朗运动。布朗运动满足正态(高斯)概率分布函数:
fB(x;μ,σ)=12πσ2exp(−(x−μ)22σ2)=12πexp(−x22)f_{B}(x ; \mu, \sigma)=\frac{1}{\sqrt{2 \pi \sigma^{2}}} \exp \left(-\frac{(x-\mu)^{2}}{2 \sigma^{2}}\right)=\frac{1}{\sqrt{2 \pi}} \exp \left(-\frac{x^{2}}{2}\right)fB(x;μ,σ)=2πσ21exp(−2σ2(x−μ)2)=2π1exp(−2x2)
1.2莱维飞行
莱维飞行以法国数学家保罗·莱维命名,指的是步长的概率分布为重尾分布的随机行走,也就是说在随机行走的过程中有相对较高的概率出现大跨步。与步长分布没有重尾的随机行走相比,莱维飞行的运动轨迹就像时不时可以飞行一样,故名。当随机行走的空间维数高于一维时,莱维飞行通常还要求步长分布是各向同性的。
L(xj)≈∣xj∣1−αL\left(x_{j}\right) \approx\left|x_{j}\right|^{1-\alpha}L(xj)≈∣xj∣1−α
fL(x;α,γ)=1π∫0∞exp(−γqα)cos(qx)δqf_{L}(x ; \alpha, \gamma)=\frac{1}{\pi} \int_{0}^{\infty} \exp \left(-\gamma q^{\alpha}\right) \cos (\mathrm{qx}) \delta qfL(x;α,γ)=π1∫0∞exp(−γqα)cos(qx)δq
Levy(α)=0.05×x∣y∣1α\operatorname{Levy}(\alpha)=0.05 \times \frac{x}{|y|^{\frac{1}{\alpha}}}Levy(α)=0.05×∣y∣α1x
其中,σx=[Γ(1+α)sin(πα2)Γ((1+α)2)α2(α−1)2]1/α,σy=1,α=1.5,x=Normal(0,σx2),y=Normal(0,σy2)\sigma_{x}=\left[\frac{\Gamma(1+\alpha) \sin \left(\frac{\pi \alpha}{2}\right)}{\Gamma\left(\frac{(1+\alpha)}{2}\right) \alpha 2^{\frac{(\alpha-1)}{2}}}\right]^{1 / \alpha},\sigma_{y}=1, \alpha=1.5,x=\operatorname{Normal}\left(0, \sigma_{x}^{2}\right) , y=\operatorname{Normal}\left(0, \sigma_{y}^{2}\right)σx=[Γ(2(1+α))α22(α−1)Γ(1+α)sin(2πα)]1/α,σy=1,α=1.5,x=Normal(0,σx2),y=Normal(0,σy2)
二、全局搜索
该阶段模拟瞪羚在没有捕食者或者捕食者跟踪情形下的自由放牧,瞪羚采取布朗运动,其位置更新如下:
gazelle i+1=gazelle i+S.R∗.RB∗(Elite i−RB∗gazelle i)\text { gazelle }_{i+1}=\text { gazelle }_{i}+S . R * . R_{B} *\left(\text { Elite }_{i}-R_{B} * \text { gazelle } _{i})\right. gazelle i+1= gazelle i+S.R∗.RB∗( Elite i−RB∗ gazelle i)
其中,S表示瞪羚的移动速度,RBR_{B}RB表示基于布朗运动的随机向量,R是在取值为0~1之间的随数。
三、局部搜索
该阶段模拟瞪羚发现捕食者后的逃跑行为,分为两个阶段,并且每个阶段都依据迭代次数的奇偶性而采取两种相反运动。第一阶段:瞪羚在发现捕食者前期采取莱维飞行;第二阶段:瞪羚在发现捕食者后期采取布朗运动。
3.1第一阶段
瞪羚在发现捕食者的前期采取莱维飞行:
gazelle i+1=gazelle i+S⋅μ⋅R∗⋅RL∗. (Elite i−RL∗gazelle i)\text { gazelle }_{i+1}=\text { gazelle }_{i}+S \cdot \mu \cdot R * \cdot R_{L} * \text {. }\left(\text { Elite }_{i}-R_{L} * \text { gazelle }_{i}\right) gazelle i+1= gazelle i+S⋅μ⋅R∗⋅RL∗. ( Elite i−RL∗ gazelle i)
其中,μ\muμ为-1或1,表示两种运动方向;RLR_{L}RL表示基于 Lévy 分布的随机数向量。
3.2第二阶段
瞪羚在发现捕食者的后期采取布朗运动:
gazelle i+1=gazelle i+S⋅μ⋅CF∗.RB∗(Elite i−RL∗⋅gazelle i)\text { gazelle }_{i+1}=\text { gazelle }_{i}+S \cdot \mu \cdot CF * . R_{B} *\left(\text { Elite }_{i}-R_{L} * \cdot \text { gazelle }_{i}\right) gazelle i+1= gazelle i+S⋅μ⋅CF∗.RB∗( Elite i−RL∗⋅ gazelle i)
其中,CF=(1−iterMaxiter )(2iter Maxiter )C F=\left(1-\frac{i t e r}{\text { Maxiter }}\right)^{\left(2 \frac{\text { iter }}{\text { Maxiter }}\right)}CF=(1− Maxiter iter)(2 Maxiter iter )表示捕食者的累积效应。
四、瞪羚逃生
瞪羚面对捕食者时的存活率为0.66,这意味着捕食者有34%的机会狩猎成功,用PSRs表示捕食者的狩猎成功率,并以此对瞪羚逃生过程建立数学模型:
gazelle i+1={gazelle i+CF[LB+R∗.(UB−LB)]∗.Uif r≤PSRsgazelle i+[PSRs(1−r)+r](gazell r1−gazelle r2)else \text { gazelle }_{i+1}=\left\{\begin{array}{ll} \text { gazelle }_{i}+C F[L B+R * .(U B-L B)] * . U & \text { if } r \leq P S R s \\ \text { gazelle }_{i}+[P S R s(1-r)+r]\left(\text { gazell }_{r_{1}}-\text { gazelle }_{r_{2}}\right) & \text { else } \end{array}\right. gazelle i+1={ gazelle i+CF[LB+R∗.(UB−LB)]∗.U gazelle i+[PSRs(1−r)+r]( gazell r1− gazelle r2) if r≤PSRs else
其中,r为0~1之间的随机数。
五、GOA算法描述
五、GOA算法流程
六、基于非支配排序的瞪羚优化算法
基于非支配排序的瞪羚优化算法(Non-Dominated Sorting Gazelle Optimization Algorithm,NSGOA)由瞪羚优化算法与非支配排序策略结合而成。将NSGOA用于求解46个多目标测试函数(ZDT1、ZDT2、ZDT3、ZDT4、ZDT6、DTLZ1-DTLZ7、WFG1-WFG10、UF1-UF10、CF1-CF10、Kursawe、Poloni、Viennet2、Viennet3)以及个工程应用(盘式制动器设计),并采用IGD、GD、HV、SP进行评价。
部分结果如下:
ZDT1
ZDT2
ZDT3
ZDT4
ZDT6
盘式制动器设计:
七、完整代码
代码链接:https://pan.baidu.com/s/1D_KzId8FQHRr02aQQ8hRNg
提取码:9xm5
参考文献:Agushaka, J.O., Ezugwu, A.E. & Abualigah, L. Gazelle optimization algorithm: a novel nature-inspired metaheuristic optimizer. Neural Comput & Applic (2022). https://doi.org/10.1007/s00521-022-07854-6
多目标优化算法:基于非支配排序的瞪羚优化算法(Non-Dominated Sorting Gazelle Optimization Algorithm,NSGOA)相关推荐
- 多目标优化算法:基于非支配排序的蜣螂优化算法(Non-Dominated Sorting Dung beetle optimizer,NSDBO)
蜣螂优化算法(Dung beetle optimizer,DBO)由Jiankai Xue和Bo Shen于2022年提出,该算法主要受蜣螂的滚球.跳舞.觅食.偷窃和繁殖行为的启发所得. 一.蜣螂优化 ...
- 多目标优化算法:非支配排序的鲸鱼优化算法(Non-Dominated Sorting Whale Optimization Algorithm,NSWOA)提供Matlab代码
一.非支配排序的鲸鱼优化算法 非支配排序的鲸鱼优化算法(Non-Dominated Sorting Whale Optimization Algorithm,NSWOA)由Pradeep Jangir ...
- 多目标优化算法:基于非支配排序的人工兔优化算法(Non-Dominated Sorting Artificial Rabbits Optimization ,NSARO)
一.人工兔优化算法算法简介 人工兔优化算法(Artificial Rabbits Optimization ,ARO)由Liying Wang等人于2022年提出,该算法模拟了兔子的生存策略,包括绕道 ...
- 【多目标优化】2. 非支配排序遗传算法 —(NSGA、NSGA-II)
[多目标优化]1. 多目标优化的相关基本概念 [多目标优化]2. 非支配排序遗传算法 -(NSGA.NSGA-II) [多目标优化]3. 基于分解的多目标进化算法 -(MOEAD) 1. 非支配排序遗 ...
- 多目标优化算法:基于非支配排序的麻雀搜索算法(Non-Dominated Sorting Sparrow Search Algorithm,NSSSA)
一.麻雀搜索算法 麻雀搜索算法(SSA)的原理参考博客:麻雀搜索算法SSA 二.非支配排序麻雀搜索算法NSSSA 将非支配排序麻雀搜索算法(Non-Dominated Sorting Sparrow ...
- 【分布式能源的选址与定容】基于非支配排序多目标粒子群优化算法求解分布式能源的选址与定容附Matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.
- 【分布式能源的选址与定容】基于非支配排序多目标遗传优化算法求解分布式能源的选址与定容(Matlab代码实现)
- 【优化调度】非支配排序遗传算法求解车辆充电调度优化问题【含Matlab源码 2000期】
⛄一.遗传算法简介 由于国内外人民的生活方式和电动汽车主要购买人群的不同,国内外关于车辆充电调度问题研究的侧重点也不尽相同. 我国地大物博,人口众多,交通复杂.主要从以下方面研究: 1.通过经济手段或 ...
- nsga2多目标优化之核心知识点(快速非支配排序、拥挤距离、精英选择策略)详解(python实现)
文章目录 一.多目标优化算法简介 1.基本知识 二.NSGA2算法 1.基本原理 2.快速非支配排序 2.1快速非支配排序 python实现 3.拥挤距离 3.1 拥挤距离python 实现 4.精英 ...
最新文章
- 目前研制量子计算机,18个量子比特纠缠究竟是什么水平? 量子计算机离我们还有多远?...
- 【干货】2020史上最全自动驾驶资源大合集!
- laravel auth login 重定向自定义_Laravel学习之路(一):最简单的API 认证(Passport)实践...
- SpringMVC:学习笔记(5)——数据绑定及表单标签
- lisp不是函授型语言_【神奇的函数式编程语言的独特功能】Lisp 的运行期修改、编译代码,并替换当前运行版本的试验...
- Oracle中的Round和Trunc
- C++函数的用法:erase函数
- 进程与线程的一个简单解释(转)
- ubuntu安装cairo
- linux 下解决arp病毒攻击时上网问题的最简单的治标办法
- float在内存中是如何保存的
- CSDN有奖任务答案
- 抖音广告怎么投放【抖音广告投放教程】
- centos7 安装拼音输入法
- 最新流行的网页网络游戏(九龙朝、傲剑、战千雄、诛神、传承)
- Masking操作,即只关注图像的一部分
- JS 中的 False 与空值
- 视觉伺服控制工具Visual Servoing Platform---VISP(6)----基于4个平面点的姿态估计
- MathType 6.9 安装提示关闭软件再试一次
- 【开源电机驱动】H 桥驱动-软件篇