导航:首页 > 源码编译 > 优化算法测试函数

优化算法测试函数

发布时间:2024-03-07 11:58:19

❶ 优化算法笔记(三十)海洋捕食者算法

(以下描述,均不是学术用语,仅供大家快乐的阅读)
海洋捕食者算法(Marine Predators Algorithm)见名知意,就是根据海洋中掠食者捕获猎物的行为提出的优化算法。该算法发表于2020年,也算法是一个新算法了。
该算法根据迭代次数分均三个阶段,每个阶段使用不同的随机策略计算步长并移动猎物位置。如果猎物的位置好于捕食者的位置,那么捕食者就移动到该猎物的位置。
海洋捕食者算法就像一个缝合怪,缝合了布朗运动,levy飞行等随机生成策略,在不同的阶段使用不同的策略。虽然是缝合怪,但是也有着不错的寻优能力,我们也可以学习学习其策略。

(因为是缝合怪,甚至找不到对标的动物,可能作者也没找到,这次就算是鲨鱼吧。)

海洋捕食者算法中有两个概念,捕食者和猎物,在每个阶段,只有猎物会进行随机移动,而捕食者则是在猎物完成移动后,移动到优于自己的猎物处。
在蚁狮算法中也是这样的模型,不过这里更简单,我们可以将海洋捕食者算法中的捕食者对标粒子群算法中的粒子。捕食者的位置就是粒子的历史最优位置,猎物的位置就是粒子的当前位置。猎物(粒子)不断的移动改变位置,如果找到优于捕食者(粒子的历史最优)的位置,那么捕食者移动到该猎物处(粒子更新历史最优位置)。
初始时海洋捕食者数量为N。捕食者的位置表示为 ,猎物的位置为 ,最大迭代次数为 。

迭代次数在 内。
根据如下公式计算猎物的新位置:

公式(1)用于计算步长,其中Rb为标准正态分布随机数,公式(2)用于计算新位置,其中R为[0,1]内均匀随机数,公式(3)是我将公式(1)代入公式(2)的到的,由于后面太多随机数相乘,其结果可以近似为0,即该阶段在当前猎物周围小范围搜索。

迭代次数在 内。
该阶段,种群被均分为二组,第一组的猎物的位置更新公式如下:

迭代次数在 内。
该阶段猎物的位置更新公式如下:

捕食者对比自己的猎物,如果猎物的位置更好,则更新自己的位置到猎物的位置。

根据鱼类的聚集效应(Fish Aggregating Devices (FADs) effects),再次更新猎物的位置,其具体更新公式如下:

其中FADs取值为0.2,R,r为[0,1]内均匀分布的随机数,U为{0,1}内随机数,r1,r2为群体中的随机个体编号。
从公式中可以看出,该步骤第一个公式对猎物位置的部分维度进行了“重置“,不过这样有较大可能会超出边界,第二个公式类似于差分进化的变异公式,让猎物随机移动。

适应度函数 。
实验一

从图中可以看出海洋捕食者算法的初期收敛速度并不是很快,而后期则是会迅速收敛,。通过前面对公式的分析,该算法在局部搜索方面有着较强的性能,从图中也可以得到相似的结论。

从结果来看,算法效果还是很不错的,虽然是个缝合怪,但该有的步骤和性能都不差。

实验二 :分别对阶段1、2、3,进行测试,即整个算法中只有阶段1、阶段2或者阶段3中的一个。
阶段1图像如下:

阶段二图像如下:

阶段三图像如下:

图像看上去好了不少,在最后群体能够收敛到一起,集中在正解附近,结果应该不差

结果相对于原算法好了一丢丢。不过这个测试函数十分的简单,这个修改只能说是在该函数上较好,总体的性能还需要更全面的测试函数来测试。总的来说海洋捕食者算法的性能不错,但能够改进的地方也不少。

海洋捕食者算法是根据海洋中的捕食者搜捕猎物的行为而提出的优化算法。该算法分为三个阶段,第一阶段,进行全局搜索,第二阶段,融合全局搜索和局部搜索,第三阶段,进行局部搜索和levy飞行跳出局部最优。该算法就算一个缝合怪,可以从中看出不少算法的特点。
参考文献
Faramarzi A , Heidarinejad M , Mirjalili S , et al. Marine Predators Algorithm: A Nature-inspired Metaheuristic[J]. Expert Systems with Applications, 2020, 152:113377.
提取码:7wfn
以下指标纯属个人yy,仅供参考

目录
上一篇 优化算法笔记(二十九)秃鹰算法
下一篇 优化算法笔记(三十一)阿基米德算法

❷ 想知道优化算法是什么

优化算法是通过改善计算方式来最小化或最大化损失函数E(x)。模型内部有些参数是用来计算测试集中目标值Y的真实值和预测值的偏差程度的,基于这些参数就形成了损失函数E(x),比如说,权重(W)和偏差(b)就是这样的内部参数,一般用于计算输出值,在训练神经网络模型时起到主要作用。

优化算法分的分类

一阶优化算法是使用各参数的梯度值来最小化或最大化损失函数E(x),最常用的一阶优化算法是梯度下降。函数梯度导数dy/dx的多变量表达式,用来表示y相对于x的瞬时变化率。

二阶优化算法是使用了二阶导数也叫做Hessian方法来最小化或最大化损失函数,由于二阶导数的计算成本很高,所以这种方法并没有广泛使用。

❸ 优化算法笔记(十四)水波算法

(以下描述,均不是学术用语,仅供大家快乐的阅读)
水波算法(Water wave optimization)是根据水波理论提出的优化算法。什么是水波理论?简单来说就是水波的宽度越小,其频率越高,频率与水波宽度的平方根成反比(具体细节我也不懂,物理方面的)。水波算法也算是一种受物理现象(理论)启发而提出的算法,提出时间并不长,还有大量的研究和应用可以深入进行。
在水波算法中,水波有三种形式来对空间进行搜索。1.传播,2.折射,3.碎浪。传播即水波向周围扩散开来,折射是水波的高度趋近与0时改变了传播的方向(我是真的理解不能,光可以折射,水也能折射的咯?),碎浪即水波的高度较高时,水波破碎形成浪花。可以看出水波的传播是贯穿整个算法流程的,而折射只会发生在水波高度减少至0时,碎浪则发生在水波过高时。
(强行解释最为致命,作者开心就好)。

将每一个水波想象成一个独立的个体,那么每个水波将拥有3个属性:位置X,波长 以及波高h。
在每一次迭代过程中,每个水波都会通过传播的形式来对空间进行搜索同时水波的高度h会减少1。其位置更新公式如下:

其中 为该水波的波长, 为当前搜索空间的上下界。 的值会随着迭代的进行而改变:

其中 为波长的衰减系数, 为一个较小的数以保证分母不为0。
每次传播后,如果当前的水波优于传播前的水波,则传播到该位置,否则波浪的高度h会减少1,即:

上式中适应度函数值越大,表明位置越优。

在一个水波进行传播之后,该水波有可能进行折射。每次传播,水波的高度h会减少1,当h减少到0时,该水波将发生折射,同时其高度和波长也会改变,折射及高度波长改变公式如下:

折射后的位置正态分布在以当前水波和最优水波中点为均值,当前水波与最优水波距离为方差的位置。
在折射后水波的高度将会重新初始化为最大高度:

折射后, 会重新计算该水波的波长 :

在水波进行传播之后,到达了一个优于当前最优水波的位置,则该水波将会进行碎浪,并将当前最优水波传播到碎浪产生的位置。
碎浪位置的产生公式如下:

k为一个随机数,每次碎浪将会随机选择k个维度来进行改变。 为一个常数。如果碎浪得到的结果优于当前最优水波,则改变当前最优水波到碎浪的位置。

是不是感觉流程图有点复杂,其实算法没有那么复杂,整个过程一共只有三个操作,一个水波在一代中最多只会执行两种方式。每个水波可能的搜索方式有三种:1.传播,2.先传播后碎浪,3.先传播后折射。

适应度函数

由于水波算法收敛较慢,所以最大迭代次数使用100。
实验一

从图像中可以看出,个体在向着中心不断的收敛,其收敛速度不算很快。其结果也相对稳定。
从图像可以推测出,水波算法的核心参数其实是水波的最大高度,水波的最大高度决定了算法的收敛速度和精度,就像人工蜂群算法中的蜜源最大开采次数一样。若一个个体连续多代没有找到优于当前的位置,它将改变自己的策略。
从算法的具体实现可以看出,传播是一个在自身周围的全局搜索的过程,折射则属于一个大概率局部搜索,小概率跳出局部最优的操作,而碎浪则是进一步的局部搜索。那么水波的最大高度越高,则水波算法的全局搜索能力越强,但收敛速度越慢,反正,算法的收敛速度越快。
实验二 :减少算法的水波最大高度至5

从图像可以看出算法的收敛速度明显比实验一要快,在第30代时已经快收敛于一个点了。从结果来看,实验二的结果也优于实验一,由于水波的最大高度较小,算法进行碎浪和折射的次数增加了,即算法的局部搜索能力增强了。
同样之前的算法中也提到过多次,收敛速度越快,群体越容易聚集到同一个区域,算法也越容易陷入局部最优,而适应度函数对优化算法来说是一个黑盒函数,无法得知其复杂程度。所以对于实验所使用的较为简单的测试函数,水波的最大高度越小,结果的精度越高,而面对未知的问题时,应该选取较大的水波高度以避免陷入局部最优。同样物极必反,水波的最大高度过大可能会使算法的局部搜索较弱,我们可以选取一个动态的水波最大高度。
实验三 :水波最大高度随迭代次数增加由12递减至2

看图像和结果感觉和实验一差别不大,唯一的区别就是最优值要好于实验一。在这个简单的测试函数中无法表现出其应有的特点,由于算法后期群体已经较为集中,也无法明显的看出算法的收敛速度是否随着迭代次数增加而加快。

水波算法也是一个新兴算法,算法的流程较为复杂且可修改参数较多。算法的流程和思想与蜂群算法有点类似,但水波算法更为复杂。水波算法的三个搜索策略,传播是一个全局搜索行为,也有一定的跳出局部最优能力;折射则是一个局部搜索过程,由于正态分布的原因,有较小的概率产生跳出局部最优的操作;碎浪则是一个更进一步的局部搜索,只在最优位置附近搜索。
其搜索策略使算法在整个流程中都拥有全局搜索和局部搜索能力,全局搜索与局部搜索之间的平衡由水波的最大高度决定,最大高度约大,全局搜索能力越强,收敛速度越慢,反之,局部搜索能力越强,收敛速度越快。

以下指标纯属个人yy,仅供参考

参考文献
Zheng, Yu-Jun. Water wave optimization: A new nature-inspired metaheuristic[J]. Computers & Operations Research, 2015, 55:1-11. 提取码:fo70
目录
上一篇 优化算法笔记(十三)鲸鱼算法
下一篇 优化算法笔记(十五)蝙蝠算法

优化算法matlab实现(十四)水波算法matlab实现

阅读全文

与优化算法测试函数相关的资料

热点内容
有pdf却打不开 浏览:460
七星彩软件app怎么下载 浏览:217
32单片机的重映射哪里改 浏览:816
为什么前端不用刷算法题 浏览:708
对称加密系统和公钥加密系统 浏览:428
历史地理pdf 浏览:606
物联网云服务器框架 浏览:648
sybaseisql命令 浏览:183
android权威编程指南pdf 浏览:663
哪些软件属于加密软件 浏览:646
文件夹75丝什么意思 浏览:470
最便宜sop8单片机 浏览:966
图解周易预测学pdf 浏览:420
c盘莫名奇妙多了几个文件夹 浏览:171
贵州花溪门票优惠app哪个好 浏览:803
如何说话不会让人有被命令的感觉 浏览:440
哪里可下载湘工惠app 浏览:265
福特python 浏览:312
pdf转换成word表格 浏览:353
无线远端服务器无响应是什么意思 浏览:672