导航:首页 > 源码编译 > 鲸鱼算法如何确定最佳值

鲸鱼算法如何确定最佳值

发布时间:2022-09-10 06:03:10

❶ 怎么知道鲸鱼算法是否适用该问题

运行程序观察其结果可知是否适用。
鲸鱼优化算法是2016年由澳大利亚格里菲斯大学的Mirjalili 等提出的一种新的群体智能优化算法,其优点在于操作简单,调整的参数少以及跳出局部最优的能力强。
鲸鱼算法设计的既精妙又富有特色,它源于对自然界中座头鲸群体狩猎行为的模拟, 通过鲸鱼群体搜索、包围、追捕和攻击猎物等过程实现优时化搜索的目的。在原始的WOA中,提供了包围猎物,螺旋气泡、寻找猎物的数学模型。

❷ 测量一条鲸鱼的体重通常用什么作为单位比较合适

鲸鱼体重较大,用常用的千克,克作单位数值大,难以记录和换算,建议用吨作单位(1t/ton=1000kg)。

❸ 鲸鱼优化算法为什么每次都不一样

排查一下数据是否有失误。
正常情况下 数据一样的,算法的结果也是一样的。鲸鱼算法提出时间并不长,也是一个新兴的优化算法,只能多琢磨琢磨。

❹ 梅尔维尔鲸和龙王鲸和虎鲸

虎鲸就不用比了。海豚科的,体型重量咬合力都差的很远。梅和龙都差不多体长,梅更重,龙更修长,应该速度更快,梅的牙齿更长,伤害大,龙的咬合力应该比较大,龙是梅的祖先,两个差了几千万年,真要比也只能说半斤八两吧

❺ 优化算法笔记(十三)鲸鱼算法

(以下描述,均不是学术用语,仅供大家快乐的阅读)
鲸鱼算法(Whale Optimization Algorithm)是根据鲸鱼围捕猎物的行为而提出的算法。鲸鱼是一种群居的哺乳动物,在捕猎时它们也会相互合作对猎物进行驱赶和围捕。鲸鱼算法提出时间并不长,也是一个新兴的优化算法,研究应用案例不多。
鲸鱼算法中,每个鲸鱼的位置代表了一个可行解。在鲸鱼群捕猎过程中,每只鲸鱼有两种行为,一种是包围猎物,所有的鲸鱼都向着其他鲸鱼前进;另一种是汽包网,鲸鱼环形游动喷出气泡来驱赶猎物。在每一代的游动中,鲸鱼们会随机选择这两种行为来进行捕猎。在鲸鱼进行包围猎物的行为中,鲸鱼将会随机选择是向着最优位置的鲸鱼游去还是随机选择一只鲸鱼作为自己的目标,并向其靠近。

鲸鱼算法,显而易见,主角就是鲸鱼了。

在D维解空间内每个鲸鱼的位置为


每只鲸鱼随机选择进行包围猎物或者是使用汽泡网驱赶猎物,每只鲸鱼选择这两种行为的该率是等的,即P(包围)=P(汽泡网)=0.5。

鲸鱼在包围猎物时会选择向着最优位置的鲸鱼游动或者向着一只随机鲸鱼游动。

该鲸鱼的位置更新公式入下:


其中 为当前最优的鲸鱼的位置,A的每一维为均匀分布在(-a,a)内的随机数,a的初始值为2,随着迭代次数线性递减至0;C为均匀分布在(0,2)内的随机数。||表示数的绝对值,即 每一维的值都是非负数。

该鲸鱼的位置更新公式入下:


其中 为当前群体中随机选择的鲸鱼的位置。
那么鲸鱼在什么时候选择向最优个体游动,什么时候选择随机个体为目标呢?
这个将由A的值决定
当 时,鲸鱼选择向着最优个体游动。注意A是一个D维的向量,所以是A的模小于1时,鲸鱼向着最优个体游动。
当 时,鲸鱼选择向着随机个体游动。
可以看出在包围猎物的过程中,鲸鱼算法的搜索模式为在距最优个体较近的周围搜索或者在距随机个体较远的附近搜索。
2.2气泡网
鲸鱼在捕猎时会喷出汽包形成气泡网来驱赶猎物。


其中b为常数(没找到定义,默认取1),l为均匀分布在[-1,1]内的随机数。
每次行动之前,每只鲸鱼都会抛个硬币,来决定是选择包围猎物还是使用气泡网来驱赶猎物。
从上面的描述可以看出,鲸鱼算法的流程也十分的简单。

适应度函数

实验一 :标准鲸鱼算法

从图上可以看出算法的收敛性还是很强的,在第35代左右就已经完全收敛。再看最后的结果,已经是非常好的结果了,同样也说明的算法的局部搜索能力很强。这样印证了上一节我的说法,算法收敛速度快,缺少跳出局部最优的能力。
从算法的流程我们可以看出,算法的收敛性大概是由参数a来决定的,由于a从2递减为0,使算法的搜索范围越来越小,从而加速算法的收敛。这应该是一个优化后的参数,现在我们固定住a,来弱化算法,减弱其收敛性,看看全局搜索和跳出局部最优能力是否有所加强。

实验二 :固定参数a

从图像可以看出,算法几乎没有收敛的了,算法的收敛速度依旧很快。
看看实验结果。

结果比标准鲸鱼算法差,能说明参数a影响了算法的搜索精度,参数a对算法收敛性的影响在于a对向量A的影响。固定a=1.5时使A的模较之前相比有更大的概率大于1,此时鲸鱼们在包围猎物的行为中选择游向最优个体的概率更小,从而使算法的收敛速度更慢,同时算法的全局搜索能力有一定的提升。

鲸鱼算法作为一个新兴算法,我对它的研究也不是太多。纵观算法的流程,可以看出标准的鲸鱼算法和萤火虫算法有相似之处,它们都是在算法前期进行全局搜索,而在算法的后期进行局部搜索,也都没有跳出局部最优的操作。在面对简单问题上表现出的优秀性能到了复杂问题上可能会有所下降,但是由于算法流程、结构相对简单,算法的改进点感觉也不是太多。

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

参考文献
Mirjalili S, Lewis A. The Whale Optimization Algorithm[J]. Advances in Engineering Software, 2016, 95:51-67. 提取码:b13x
目录
上一篇优化算法笔记(十二)烟花算法
下一篇 优化算法笔记(十四)水波算法

优化算法matlab实现(十三)鲸鱼算法matlab实现

❻ 鲸鱼用犀牛怎么建模

鲸鱼用犀牛建模技巧:

犀牛软件点物体的绘制点在 Rhino 中表现为一个小方格,大小不变,点不属于任何其他物体的一部分。鼠标取值1:鼠标直接在屏幕上取值,得到的点将在工作平面上。按住 CTRL 可以进行两次取值,第一次取值 XY 坐标,第二次取值 Z 坐标。

键盘取值:格式为:x,y,zCTRL 键有许多的用法,很多命令配合 CTRL 都可以在垂直于工作平面上的坐标取值。最近点:其实质是 0 距离点,即在所选物体上创建一个据鼠标点击位置最近的点。

犀牛建模Rhino倒角破面

在运用Rhino时,倒圆角和破面的问题是随时都能遇上的一件事。在启动Rhino软件将要绘制一个模型时,应该把网格的渲染品质设置为“平滑、较慢”,当然也可以自定义设置,目的就是让曲面更加顺滑,这样可以避免绘制一些细节时发现破面。

破面并不完全是因为“渲染网格品质”,这只是一种简单的解决方式,破面多半是因为倒圆角不佳,导致曲面挤压所生成的一种破裂,或者炸面。

加密鲸鱼是什么意思

加密鲸鱼是指拥有大量加密货币的用户。

加密货币是一种使用密码学原理来确保交易安全及控制交易单位创造的交易媒介。 加密货币是数字货币(或称虚拟货币)的一种 。

比特币在2009年成为第一个去中心化的加密货币,这之后加密货币一词多指此类设计。 自此之后数种类似的加密货币被创造,它们通常被称作altcoins。

加密货币基于去中心化的共识机制 ,与依赖中心化监管体系的银行金融系统相对。


比特币以外的加密货币:

比特币以外的密码货币,又称为山寨币、竞争币,部分是参考比特币思想、原理、源代码产生的,与比特币相似的虚拟货币,目前有800种以上的密码货币在流通。

2017年2月到4月期间,山寨币总和占密码货币市场总值比例,由15%提高到接近40%。

由于比特币本身并没有权威的发行机构和国家政权来维持其权威性、唯一性,比特币与其模仿者之间只能平等地相处,虽然其是最早的虚拟货币,也是最知名、人们最熟悉的。

也具有最大的用户网络社区,具有很强的网络效应,大部分时间也是市值最高的密码货币,但是并不具有绝对排它的地位。

❽ 优化算法笔记(十二)烟花算法

(以下描述,均不是学术用语,仅供大家快乐的阅读)
烟花算法(Firework Algorithm,FWA)是一种受烟花爆炸产生火星,并继续分裂爆炸这一过程启发而得出的算法。算法的思想简单,但具体实现复杂。算法提出时间并不长,但是已经有了不少的改进研究和较为全面的应用。
烟花算法中,每一个烟花的位置都代表了一个可行解。烟花的爆炸产生的火星有两种,正常的火星与特别的火星。每个火星都会爆炸产生数个正常火星,某些火星有一定的概率产生一个特别的火星。正常的火星根据当前火星的振幅随机均匀分布在该火星的周围,而特别的火星将在当前火星附近以正态分布方式产生。每次迭代产生的火星数量多于每一代应有的火星数,算法将参照火星位置的优劣,随机留下指定数量的火星,已保持火星数目的稳定。

烟花算法的主角毫无疑问就是烟花了。

式(1)为适应度值越小越优的情况,而式(2)则是适应度值越大越优的情况。 为一个极小的值,以保证分母不为0。
每个火星产生的正常火星数量也由其适应度值来决定。



其中 表示第i个火星将要产生的正常火星数, 是产生正常火星的总数为一个常数,从式(3),(4)可以看出适应度值越好的火星能够产生更多的正常火星,反之,火星适应度越差,能够产生的火星数越少。
由于式(3),(4)计算出的值为小数,烟花算法中使用式(5)将其转化为整数。

从式(3)和式(4)中可以看出,在每一代中将会产生出 个正常火星。产生的正常火星的位置与当前火星的振幅有关,可以从式(1),(2)看出,适应度越优的火星的振幅越小,那么它产生的正常火星将在它自己周围,而适应度越差的火星的振幅越大,它产生的正常火星将会出现在离自己较远的位置。
当前火星每次爆炸会从D维搜索空间内随机选择z维进行更新从而产生新的火星。正常火星的位置由如下公式产生。

其中z为取值1-D的均匀随机正整数,rand(-1,1)表示-1到1内的均匀随机数。从式(6)中可以看出,正常火星的位置与其振幅有直接关系,振幅越大产生的新火星距当前火星的距离约远。

每次迭代过程中,会产生m个特别的火星,即在这N个火星中随机选择m个火星,每个火星产生一个特别的火星。特别的火星的由下面的公式产生:

由上面的过程可知,在每一代中,有N个火星,将会产生出 个正常火星以及m个特别的火星。但是每一代中只能从这 个火星中选择N个火星保留至下一代。
每次会先从 个火星中选择最优的火星保留至下一代,然后再从中选择N-1个火星。选择某个火星的概率如下:


其中R(X)表示该火星距其他所有火星的距离之和,即距其它火星越远的火星,被选择保留至下一代的概率较大。

个火星,而且


,所有烟花算法每次迭代的计算复杂度要大于其他算法,这简直就是一个作弊行为。别的算法每次只搜索了N个位置,而烟花算法却搜索了 个位置。与其他优化算法对比时,其他算法的种群数量应该取 ,否则这将是一场不公正的对决。

适应度函数还是这个简单的小白鼠
实验一 :标准烟花算法

以上数据来自原论文,现在看一看实验的图像以及实验结果。

从图像可以看出每次只选择保留了5个火星,它们的收敛速度很慢,实验结束时距离目标点还有一段距离。
看看实验结果

从实验结果可以看出,算法的性能很不稳定,而造成这一点的原因很可能是其收敛速度较慢,算法仍在收敛过程中,所以结果看上去很差。将最大迭代次数修改为100代,重新试验,其结果如下:

结果好了一些但还是难以接受,为什么烟花算法的结果不理想呢?
原因可能是保留机制(2.3节)的问题,烟花算法中保留火星的概率是根据该火星与其他火星的距离和,距离群体越大的个体被保留下的概率越大。这样做有什么好处呢?好处是火星相对分散,这是一个对抗局部最优的策略,但是,距离群体较远的个体是一个较差的个体的概率非常大,坏处就是,集中于当前最优位置的火星被保留的概率较小,算法的局部搜索能力将较弱。
实验二 . 随机选择的方式保留火星
为了加快烟花算法的收敛速度,增强局部搜索能力,我移除了标准烟花算法的选择过程,使用随机选择的方式保留火星,当然,最优个体依然会被保留至下一代。其他参数保持不变。

可以看出这次的图像相比实验一收敛速度快了不少,在迭代结束时已经相对在一个较小的区域。这次的结果也明显优于实验一。将选择过程改为随机选择后,由于较优的火星产生的较多且分布在自己周围,因此选择到这些较优的火星的概率也相对较大,算法的收敛速度相对较快。与此同时,算法跳出局部最优的能力比修改前要弱。
对于较简单的问题来说当然是随机选择收敛较快结果较好,而复杂的问题则需要更强的跳出局部最优能力。问题的关键仍然是,我们无法在一开始就知道问题的复杂程度。
实验三 .增加火星的种群数量,减少每代产生的正常火星总数
为什么要减少产生的正常火星数,这样算法搜索的次数减少了,效果不会更差吗?其实与直觉相反,减少正常火星总数,增加火星总群数,实际上是让较优的火星产生的正常火星被保留下来的概率变大了,这样也可以解决实验一中的问题,加快算法的收敛速度。

从图像中可以看出,算法在50代之前已经收敛,但是之后只在小范围内进行搜索。实验图像与之前的描述相符,收敛速度加快但是跳出局部最优能力减弱。看看实验结果,实验结果好了不少且结果更加稳定。
其实实验二与实验三,使用了不同的策略,但都达到了同样的目的——保留更多的优质火星到下一代,它们促进了局部搜索但是挤占了较劣火星的位置,削弱了种群的多样性。
每代留下的火星多了,图像看上去是不是更像烟花?

烟花算法的探究远不止如此,几年前作为一个较新的算法来学习时却已经有了大量的论文和书籍,可见大家对烟花算法已经有了较为深入的研究,而我能做的只是应用算法解决问题以及稍作改进让算法与问题的适应性更高。
烟花算法产生正常火星的过程为算法提供了搜索能力,产生特殊火星的过程和选择过程为算法提供了跳出局部最优的能力。但是个人认为选择过程与其他过程的适应性不是很好。标准的选择过程会丢失掉许多较优的个体,使之前产生的正常火星得到的成果没有保留。
烟花算法其实还有比较多的改进点,对算法产生最大的参数应该就是正常火星的总数以及振幅了。简单粗暴的改进:在每一代可以对这两个参数进行变化或者随机化,让算法的搜索能力与跳出局部最优能力在整个流程中动态变化,以均衡两种能力。
以下指标纯属个人yy,仅供参考

参考文献
Tan Y , Zhu Y . Fireworks Algorithm for Optimization[C]// Advances in Swarm Intelligence, First International Conference, ICSI 2010, Beijing, China, June 12-15, 2010, Proceedings, Part I. Springer-Verlag, 2010. 提取码:yaj0
目录
上一篇 优化算法笔记(十一)群搜索算法
下一篇 优化算法笔记(十三)鲸鱼算法

优化算法matlab实现(十二)烟花算法matlab实现

阅读全文

与鲸鱼算法如何确定最佳值相关的资料

热点内容
卡尔曼滤波算法书籍 浏览:768
安卓手机怎么用爱思助手传文件进苹果手机上 浏览:843
安卓怎么下载60秒生存 浏览:802
外向式文件夹 浏览:235
dospdf 浏览:430
怎么修改腾讯云服务器ip 浏览:387
pdftoeps 浏览:492
为什么鸿蒙那么像安卓 浏览:735
安卓手机怎么拍自媒体视频 浏览:185
单片机各个中断的初始化 浏览:723
python怎么集合元素 浏览:480
python逐条解读 浏览:832
基于单片机的湿度控制 浏览:498
ios如何使用安卓的帐号 浏览:882
程序员公园采访 浏览:811
程序员实战教程要多长时间 浏览:974
企业数据加密技巧 浏览:134
租云服务器开发 浏览:813
程序员告白妈妈不同意 浏览:335
攻城掠地怎么查看服务器 浏览:600