BWO白鲸优化算法
白鲸算法
白鲸算法(BWO)是一种新的元启发式算法,是一种基于群体的算法,其灵感来自于白鲸的行为,包括游泳,猎物和鲸落。在BWO的数学模型中构建了勘探,开发和鲸落阶段,并在开发阶段利用Levy飞行函数来提高BWO的收敛能力。
勘探阶段
由于BWO基于种群的机制,将白鲸作为搜索代理,每条白鲸都是一个候选解,在优化过程中不断个更新。搜索代理位置的矩阵建模为:
n代表白鲸种群大小,d是变量的维度。对于所有的白鲸,它们的适应度如下:
BWO算法可以根据平衡因子Bf从勘探过渡到开采,其建模为:
T代表当前迭代次数,Tmax是最大迭代次数,而B0是每一代(0,1)的随机数。当Bf>0.5时,白鲸进入勘探阶段,否则白鲸进入开发阶段。随着迭代次数的增加,Bf的波动幅度逐渐显著,从(0,1)到(0,0.5)。
BWO的勘探阶段是从白鲸游泳行为获得的灵感。白鲸可以在不同的姿势下进行社会性行为,如两只白鲸以同步或镜像的方式紧密地游在一起。因此,搜索代理的位置由白鲸的配对游动决定,白鲸的位置更新如下:
Xi,j(T+1)是第 i 个白鲸在第 j 维度的新位置,pj是d维度的一个随机数,Xi,PjT是第i个白鲸在 pj 维度上的位置,Xi,PjT 和 Xr,P1T是第i个和第r个白鲸的当前位置,r 是随机选择的一个白鲸,r1 和 r2 分别是(0,1)的两个随机数,sin(2πr2)和cos(2πr2)表示镜像白鲸的鳍朝向水面。
开发阶段
开发阶段是模范白鲸捕猎行为,白鲸可以根据附近白鲸的位置合作觅食和移动。因此,白鲸可以根据彼此共享的信息进行捕猎,Levy飞行函数可以提高BWO的收敛性,建模如下:
XbestT是白鲸当前最好最好的位置,C1 = 2r4(1 - T /Tmax)是随机跳跃强度,测试Levy飞行函数的强度,LF是Levy飞行函数,计算公式如下:
u和v是正态分布的随机数,beta是一个默认的常数1.5。
鲸落阶段
一鲸落,万物生。为了在每一代中模仿鲸落,随机在种群中选择一个个体进行鲸落行为。这个数学模型为:
Xstep是鲸落的步长,建模为:
C2是步长系数,与鲸落的概率和种群大小有关,C2=2Wf * n,ub 和 lb分别是上下边界变量。
Wf = 0.1 - 0.05T / Tmax当鲸落的概率从最初迭代的0.1下降到最后迭代的0.05,说明在优化过程中,当白鲸离食物源越近,白鲸的危险就越小。
BWO流程
- 初始化:初始化种群大小和最大迭代书
- 更新勘探和开发阶段:当Bf > 0.5 时,白鲸进入勘探阶段,反之,白鲸进入开发阶段,然后计算白鲸的新的位置适应度值并且进行排序找到优化结果。
- 更新鲸落阶段:根据Wf的值来选择个体
- 终止条件:达到最大迭代数
BWO和WOA的区别
- WOA的捕猎行为是模仿座头鲸螺旋运动,而BWO是模仿白鲸,没有螺旋运动的情况下,根据自己的位置,食物解和其他白鲸更新位置。
- WOA没有鲸落阶段,BWO有鲸落阶段避免局部最优。
- WOA没有Levy飞行函数机制,而在BWO中引入了Levy飞行函数。
BWO的伪代码如下,完整代码可联系我(免费):
BWO白鲸优化算法的更多相关文章
- [Algorithm] 群体智能优化算法之粒子群优化算法
同进化算法(见博客<[Evolutionary Algorithm] 进化算法简介>,进化算法是受生物进化机制启发而产生的一系列算法)和人工神经网络算法(Neural Networks,简 ...
- 基于网格的分割线优化算法(Level Set)
本文介绍一种网格分割线的优化算法,该方法能够找到网格上更精确.更光滑的分割位置,并且分割线能够自由地合并和分裂,下面介绍算法的具体原理和过程. 曲面上的曲线可以由水平集(level set)形式表示, ...
- paper 8:支持向量机系列五:Numerical Optimization —— 简要介绍求解求解 SVM 的数值优化算法。
作为支持向量机系列的基本篇的最后一篇文章,我在这里打算简单地介绍一下用于优化 dual 问题的 Sequential Minimal Optimization (SMO) 方法.确确实实只是简单介绍一 ...
- MOPSO 多目标例子群优化算法
近年来,基于启发式的多目标优化技术得到了很大的发展,研究表明该技术比经典方法更实用和高效.有代表性的多目标优化算法主要有NSGA.NSGA-II.SPEA.SPEA2.PAES和PESA等.粒子群优化 ...
- SMO优化算法(Sequential minimal optimization)
原文:http://www.cnblogs.com/jerrylead/archive/2011/03/18/1988419.html SMO算法由Microsoft Research的John C. ...
- 优化算法-BFGS
优化算法-BFGS BGFS是一种准牛顿算法, 所谓的"准"是指牛顿算法会使用Hessian矩阵来进行优化, 但是直接计算Hessian矩阵比较麻烦, 所以很多算法会使用近似的He ...
- NYOJ-63 小猴子下落(二叉树及优化算法详解)
小猴子下落 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 有一颗二叉树,最大深度为D,且所有叶子的深度都相同.所有结点从左到右从上到下的编号为1,2,3,··· ...
- DeepLearning.ai学习笔记(二)改善深层神经网络:超参数调试、正则化以及优化--Week2优化算法
1. Mini-batch梯度下降法 介绍 假设我们的数据量非常多,达到了500万以上,那么此时如果按照传统的梯度下降算法,那么训练模型所花费的时间将非常巨大,所以我们对数据做如下处理: 如图所示,我 ...
- 常见优化算法统一框架下的实现:最速下降法,partan加速的最速下降法,共轭梯度法,牛顿法,拟牛顿法,黄金分割法,二次插值法
常见优化算法实现 这里实现的主要算法有: 一维搜索方法: 黄金分割法 二次差值法 多维搜索算法 最速下降法 partan加速的最速下降法 共轭梯度法 牛顿法 拟牛顿法 使用函数表示一个用于优化的目标, ...
- deeplearning.ai 改善深层神经网络 week2 优化算法 听课笔记
这一周的主题是优化算法. 1. Mini-batch: 上一门课讨论的向量化的目的是去掉for循环加速优化计算,X = [x(1) x(2) x(3) ... x(m)],X的每一个列向量x(i)是 ...
随机推荐
- 多层PCB线路板制作流程
PCB制作第一步是整理并检查pcb多层线路板布局(Layout).电路板制作工厂收到PCB设计公司的CAD文件,由于每个CAD软件都有自己独特的文件格式,所以深圳PCB板厂会转化为一个统一的格式Ger ...
- Laravel入坑指南(8)——控制台程序
我们知道,php代码不仅可以用web的形式对外提供服务,同时也可以在命令行下执行. 对于原生的php来说,假设我们有一个php文件,名为Command.php,如果想要在控制台下执行这个文件,那么我们 ...
- MySQL日志:slow query log
ySQL的慢查询日志可以用来找出执行时间过长的查询语句,并进行针对性的优化. 一.slow log相关参数 以下参数都是动态参数,可以在实例运行时修改. slow_query_log=1 #是否启 ...
- CSS实现导航栏
1.知识点 列表 浮动 伪类 背景 文本格式化 盒子模型 2.效果 3.代码 <!DOCTYPE html> <html lang="en"> <he ...
- 双哈希_Birthday_Cake
Birthday Cake 思路:找到每个串的公共前后缀,统计公共前后缀之间的字符串的hash值,并判断所给n个串中是否存在符合条件的串 eg:abbddab 对于该串,我们不难发现,公共前后缀是ab ...
- 万字Java进阶笔记总结
JavaApi 字符串 String 注意:Java中"=="操作符的作用: 基本数据类型:比较的是内容. 引用数据类型比较的是对象的内存地址. StringBuffer/Stri ...
- 谷歌浏览器vue.js devtools插件安装
github官网 https://github.com/vuejs/vue-devtools#vue-devtools 插件安装地址(需FQ) https://chrome.google.com/we ...
- 【webserver 前置知识 02】Linux网络编程入门其一
网络结构模式 C/S结构 服务器 - 客户机,即 Client - Server(C/S)结构.C/S 结构通常采取两层结构.服务器负责数据的管理,客户机负责完成与用户的交互任务.客户机是因特网上访问 ...
- 【Java复健指南11】OOP高级02-代码块、单例设计和final关键字
代码块 定义 代码化块又称为初始化块,属于类中的成员[即是类的一部分]. 类似于方法,将逻辑语句封装在方法体中,通过{}包围起来. 但和方法不同,没有方法名,没有返回,没有参数,只有方法体, 而且不用 ...
- centos docker服务问题
概述 docker的应用版本正式上线,结果一上线就出各种幺蛾子. 本文档主要介绍centos系统安装docker和启动的问题解决方法. 环境 docker registry:2 centos 6 &a ...