解决全局优化和离散问题的二进制多宇宙算法
Binary multi‑verse optimization algorithm for global optimization and discrete problems
1.摘要
多宇宙算法已经被证明在解决一些困难问题的时候也有很好的性能。原始版本的多宇宙算法能够解决连续变量的问题,本文将其扩展到离散问题上。转换的方法是设计了一个 V-shaped转换函数。最后与其他二进制优化算法,如二进制蝙蝠算法,二进制粒子群优化,二进制龙算法,和二进制灰狼优化器进行了比较。
2.介绍
MVO的灵感来自于物理学中的多重宇宙理论,它基于宇宙学中的三个概念:白洞、黑洞和虫洞。这三个概念的数学模型已经被开发出来进行探索、开发和局部搜索。
MVO的原论文为: Multi-verse optimizer: a nature-inspired algorithm for global optimization,发表于2016。
由于与连续变量的问题相比,二进制问题通常有更多的变量,因此这种行为允许MVO更好地处理由大量变量产生的局部解。
3.MVO
种群和个体:MVO生成的每个候选解决方案都称为宇宙,并表示一个真实元素的向量如下: [ x i 1 , x i 2 , … , x i d ] [x^1_i,x_i^2,…,x_i^d] [xi1,xi2,…,xid],其中 d d d是问题的维数, i i i是人口中个体的数量。一组个体形成一个种群 P P P,如下图所示:
其中n是种群个体数
黑白洞通道:两个宇宙(解)之间沟通方式。首先,根据宇宙的膨胀率(现在我们的宇宙在加速膨胀,适合度值)进行排序,然后通过轮盘赌轮选择机制选择一个白洞(解决方案 x k x_k xk)。表示黑洞的宇宙 x i x_i xi和所选宇宙 x k x_k xk之间的交换机制是在等式中给出的2。
其中, j j j表示宇宙中物体的数量。 N I ( U i ) NI(U_i) NI(Ui)是宇宙 i i i的归一化后的膨胀率, r 1 r_1 r1是0-1的一个随机数。归一化定义如下:
应该注意的是,MVO算法在轮盘赌中没有使用标准化。标准化需要能够在等式进行决策时使用膨胀率。由于r1是[0,1]区间内的随机数,因此膨胀率也应该在这个范围内被归一化。换句话说,膨胀率被转换为在MVO算法中进行决策的概率值。为此,当前迭代的膨胀率只被归一化为[0,1]的区间。
虫洞隧道:该算法假设在任何宇宙和迄今为止最好的宇宙之间都可以建立一个虫洞隧道。该概念由下式实现:
其中 X j X_j Xj是迄今为止形成的最佳宇宙的第 j j j元素, l b j lb_j lbj和 u b j ub_j ubj分别是第 j j j个元素的下界和上界。 r 2 、 r 3 r_2、r_3 r2、r3和 r 4 r_4 r4是为区间[0,1]上的随机数。
TDR(行距离率)和WEP(虫洞存在概率)是的自适应系数,代表优化过程从勘探过程到开发过程的过渡。迭代时,这两个参数会自动根据下式调整:
其中 l l l是当前迭代, L L L是最大迭代次数,最小和最大分别设置为0和2的最小值和最大可能值。 p p p是一种开发增强剂。
可以看出,WEP的值随着迭代的进展而增加,从而加强了开发过程。相比之下,TDR会降低,以便在迭代中执行更窄的局部搜索。
4.二进制MVO
上一节表明,MVO在优化过程中交换解的变量。这使得它适合于在解决二进制问题时交换二进制值。
在之前的研究中,研究人员使用V和S型函数将连续变量转换为二元变量。在这篇文献S-shaped versus v-shaped transfer functions for binary particle swarm optimization里,有讲到V-shaped转换函数会比S的更好。V型函数如下。
因此,本文为MVO配备了一个v形函数来改变宇宙的比特。
本图显示,传递函数将域的任何连续区间映射到[0,1]中的连续概率区间。
在BMVO中,TDR和WEP都是使用与连续MVO方程相同的方程来计算的。。然而,对于BMVO,引入了一个新的连续变量M(用来控制V函数),它基于TDR和最好的宇宙 X j Xj Xj,并如等式所示进行了计算。
其中 r a n d rand rand和 r 3 r3 r3是随机数, X j X_j Xj是迄今为止发现的最好的宇宙的第j个元素。
包含参数 M M M的 V V V函数定义如下:
将 V V V形值的结果与一个 r a n d rand rand的随机数进行了比较。基于这种比较,每个位选择要么保持原样,要么转换为相反的位,如下式所示。
BMVO算法框架
5.实验
本文将MVO与其他三种著名的元启发式算法进行了比较:BPSO[23,27],BBAT[34,38],BDA[31]和BGWO[13,14]。
为了进行公平的比较,所有的实验都执行30次独立运行,每次运行包括200次迭代和100个解决方案。请注意,文献中推荐的BBAT、[34]、BDA、[31]、BGWO、[14]和BPSO、[32]的通用参数设置如下表所示。
作为案例研究,我们在文献[11,37,50,51]中选择了13个基准函数,如下所列。
我们采用下式编码,例如,F1以−100,100作为上、下界,所以我们需要7位(1100100),对于每个连续数,我们需要2*71=15位。为F1创建一个5维的宇宙,我们首先初始化5个随机连续数,然后使用15位将每个数字转换为二进制表示。这就给出了一个有75位的宇宙。
值得注意的是,为了与其他算法(BBAT,BPSO、BDA和BGWO)相比,我们以同样的方式重新表述它们,如解决方案中使用的比特数和浮点数的表示以得到更准确的结果。
结果
为了评估所提出的BMVO技术,我们使用具有不同维数的(5,10,20)的基准函数来测试其在解决具有不同数量变量的问题时的效率。将所有结果与BBAT、BPSO、BDA和BGWO算法应用于相同函数的算法进行了比较。
结果显示,BMOV比其他算法性能普遍更优。
特征提取和背包问题
结果显示,在特征提取和背包问题上BMVO性能普遍更好。
返回受约束的多目标优化问题优秀论文及总结目录
解决全局优化和离散问题的二进制多宇宙算法相关推荐
- 【0-1背包】二进制灰狼算法解决0-1背包问题【Matlab】
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.0-1背包问题 1.问题描述 2.数学模型 二 .二进制灰狼算法 1.引言 2.算法改进 3.数学模型 4.算法流程 三 ...
- 【选址问题】二进制灰狼算法解决无容量选址问题【Matlab】
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.无容量设施选址问题 1.问题描述 2.数学模型 二.二进制灰狼算法 1.引言 2.算法改进 3.数学模型 4.算法流程 ...
- JavaScript实现floatAsBinaryString浮点转为二进制字符串算法(附完整源码)
JavaScript实现floatAsBinaryString浮点转为二进制字符串算法(附完整源码) floatAsBinaryString.js完整源代码 floatAsBinaryString.j ...
- python:实现二进制补码算法(附完整源码)
python:实现二进制补码算法 def twos_complement(number: int) -> str:"""Take in a negative int ...
- java十进制转二进制简单算法
Java十进制转二进制简单算法 一.编程思路 可以运用简单的数学的计算的方法.如下 这张图大家应该都不陌生,10(例子中的10)一直除以2,余数写在右面那一列,如果被整除右面写0,如果没有别整除,写他 ...
- 利用从左到右二进制幂算法计算二进制的幂(霍纳法则升级版,变治法)
文章目录 题目描述 一.二进制幂的计算 二.题解 1.源代码 2.源程序测试 写在最后 题目描述 7.a.应用从左到右二进制幂算法来计算 a 17 a^{17} a17 本题目来源:<算法设计与 ...
- 二进制转十进制,十进制转二进制的算法
二进制转十进制,十进制转二进制的算法 十进制转二进制: 用2辗转相除至结果为1 将余数和最后的1从下向上倒序写 就是结果 例如302 302/2 = 151 余0 151/2 = 75 余1 ...
- 科学家都解决不了的5个“简单”算法,你不来看看?
作者 | Avery Thompson 翻译 | 张奕林 审校 | 丁家琦 来源 | 数立方mathcubic.org 数学有时候会变得特别复杂,然而幸好不是所有的数学问题都晦涩难懂. Collatz ...
- c# 二进制或算法实现枚举的HasFlag函数
在权限的管理中,常常会出现一个权限包含的现象.例如,有三种基本权限:职员A.职员B.职员C.在此基础上,有经理权限,它包括A和B两种权限:还有老板权限,包含A/B/C三种权限. 在代码中,我们可以用枚 ...
最新文章
- 为什么 JavaScript 的私有属性使用 # 符号
- 产品问答| 如何选择行业?行业经验会变成阻碍吗?
- 列举在移动Web开发中经常会设置的特殊样式!
- 建立管理SQL Server登录帐户
- Error: No valid Oracle clients found. You need at least one 64-bit client properly configured.
- 《C和指针》——在一组字符串中查找
- 麻雀虽小五脏俱全的Vue拉勾项目,看看应该有帮助
- mysql procedure prepare_mysql prepare 存储过程使用
- avast捆绑_如何摆脱Avast的通知,声音和捆绑软件
- 哨兵1号(sentinel 1)数据各参数介绍
- Android渐变背景色
- java处理网络数据流
- C语言试题165之求三色旗问题
- windows和linux共用蓝牙鼠标,Linux 与 Windows 双系统共享蓝牙鼠标
- COLLADAMaxNew插件,opencollada导出DAE文件格式 for 3dmax2019
- 软考题目之头结点、头指针和首元节点
- 训练分类器OpenCV(3.4.1) Error: Assertion failed错误解决
- excel单元格斜杠拆分上下打字
- 【从零开始的MC服务器】第四步:服务器的权限组GroupManager
- 基于java的坦克大战游戏系统毕业设计-5.0(论文设计+源码+PPT答辩).rar
热门文章
- 抢滩未来 音视频引领新趋势
- 最实用的web前端开发知识框架图
- PyQt5 1.0 whl文件安装 Mac OS
- spring transactional
- influxdb delete 删除数据
- App适配iPhone 6/ Plus和iOS 8:10条小秘诀
- Graph Decipher: A transparent dual-attention graph neural network 图解密器:一种透明的双注意图神经网络,用于理解节点分类的消息传递机制
- Nik collection不兼容CC2018闪退解决方法Win/Mac版
- 斗地主游戏制作流程(1)
- 华为上半年营收增长30%!美国对华为禁令宣告彻底破产