文摘

贴现{0 - 1}背包问题可能是一种背包问题收集结构和退税的事情之间的联系。moth-flame优化算法表现出了良好的可搜索性加上一个有效的解决方案表示为折现{0 - 1}背包问题而设计的。一个新的编码方案使用短长度的二进制向量来减少搜索域和加快计算时间。贪婪的修复过程是用来帮助算法快速收敛和减少之间的差距最好的解决方案和最优的解决方案。30的经验结果贴现{0 - 1}背包问题实例被用来评估算法。结果表明,该算法优于两个二进制PSO算法和遗传算法在解决30 DKP01实例。的Wilcoxon rank-sum测试是用来支持拟议的声明。

1。介绍

背包问题是组合优化中的一个著名问题。有许多变体的背包问题,如0 - 1背包问题,多维背包问题,创造机遇问题,广义分配问题,装箱问题,贴现{0 - 1}背包问题(DKP01)。在背包变体中,折扣{0 - 1}背包问题是新的。首先引入了DKP01 Guldan (1]。这个问题有一个重要的角色在现代商业现实世界。它可能是部分众多风险决策等关键问题,任务的决心,和预算控制。一个正确的计算基于DKP01编程是精力充沛,首先,提出了(1]。一种方法,结合动态规划和DKP01解开它的中心被认为是在2]。两个计算基于近似方法DKP01命名FirEGA和SecEGA [3]。

DKP01可以提出如下: 在哪里 , , 代表该项目是否 , 放入一个背包; 显示项目 没有背包,而 显示项目j在背包。值得注意的是,一个二进制向量 DKP01是一个潜在的解决方案。只有在X满足两个(2)和(3DKP01),它是一个可行的解决方案。 组的数量,每组有三个项目,每个项目都有其利润和重量。背包的物品收集的目标是利润最大化,而体重产能不过剩C。每组不包含一个以上的项目。

最近,他们此外DKP01逐点计算的考虑,提出生手确定性计算和估计计算。现代正确计算和两个想急切地修复管理员提出了计算照亮DKP01 [4]。计算基于PSO命名GBPSO利用离散分子群优化(5]。一种进化算法结合环理论解决DKP01 [6),二进制蛾搜索算法(7),和一个teaching-learning-based优化算法(8]。

Moth-flame优化是首次提出在9),成功地用于解决许多优化问题,如研究模拟退火算法moth-flame优化方法(10),一个有效的任务调度方法使用moth-flame cyber-physical系统优化算法应用在雾计算(11),混合哈里斯hawks-moth-flame优化算法包括分数阶混沌映射和进化种群动态12),一个微分moth-flame移动水槽轨迹优化算法(13],LVCI方法优化配置的分布式代和电容器银行基于moth-flame分布网格优化算法(14],真正具有挑战性的工程约束优化问题[15)、参数提取的三个二极管模型multicrystalline太阳能电池(16),阿尔茨海默病诊断(17),利润最大化风电场的集成(18),和滚动预测机制MFO内蒙古的电力消耗19]。

本研究提出了一种新的moth-flame优化(MFO)和一个新的DKP01编码方案。一个成功的0 - 1与2∗维向量结合MFO长度是用于一个解决方案。这有利的解决方案是首先使用Truong [20.]。经验结果30日打折{0 - 1}背包问题(DKP01)实例被用来评估算法。结果表明,该算法优于两个二进制PSO算法和遗传算法在解决30 DKP01实例:(我)Moth-flame优化算法表现出了良好的可搜索性加上一个有效的解决方案演示设计折扣{0 - 1}背包问题。(2)一个新的编码方案使用短长度的二进制向量来减少搜索域和加快计算时间。(3)贪婪的修复过程是用来帮助算法快速收敛和减少之间的差距最好的解决方案和最优的解决方案。

本文的其余部分被组织依次为:部分2提出了相关的工作。部分3提出moth-flame DKP01优化算法。并给出了该算法的仿真结果4。我们本文的结论和建议未来在部分工作5

2.1。粒子群优化

算法进行其搜索利用粒子群;一群粒子最初是任意的21,22]。标准的原子群优化器保持一群原子与行动的潜在课程手头的问题。假设空间D维空间的位置th粒子群可以被利用的D维向量, = 粒子的速度 所描述的是一个D维向量 = 最后的最佳位置th粒子被命名为 = 在物质,每个原子更新的标题一致对其飞行遇到以及声称,最好的原子群内。基本的粒子群算法计算可以描绘成 在哪里 d尺寸粒子的速度在循环k; d尺寸粒子的位置在循环k; dth维度个人最好的位置(p最好的粒子)在循环k; d全球最好的粒子(th尺寸位置 )在循环k; 惯性权重; 认知重量和吗 是一个社会重量;和 是两个随机值均匀分布在[0,1][23]。

2.2。Moth-Flame优化算法

Mirjalili [9]2015年提出MFO自然优化算法,模拟个体行为的一群飞蛾(搜索代理),有独特的导航方法。MFO算法的候选解决方案被认为是搜索代理。为了个体如何在一个螺旋模型,——- - - - - -d矩阵即使用,搜索代理和代表的数量d的维度。假设为每个实体,是一个数组用于存储目标函数的值作为m-by-one矩阵,即OM。

火焰,这是定义在一个m-by-d矩阵 ,该算法的一个重要组成部分。假设有一个商店 在一个数组的健身价值。当使用MFO算法, 可以被认为是吗 在搜索空间的最佳位置。数学模型这一行动,每个搜索代理的位置修改如下: 在哪里 搜索代理和 最佳位置发现到目前为止,和年代指出了对数螺线函数更新如下: 在哪里 是一个随机数(−1,- 1), 是一个常数,它定义了对数螺线的形状,然后呢 的因素是距离 搜索代理 火焰,计算如下: 只需要使用一个吗 该算法改变其位置,一种自适应机制的数量 建议如下: 在哪里t是当前迭代数,N火焰的最大数量,T最大迭代数。

3所示。拟议的DKP01 MFO

3.1。解决方案演示

目前,有两种方法提供一个解决方案:一个使用一个二进制向量的长度等于维∗问题3n(3,7,24,25],另一种使用整数向量的长度等于组的数量n(8]。

解决方案(20.]本文提出使用一种新的2∗长度的二进制编码方案n。这种编码方案的好处是较短的长度,自动满足约束2。在表1,一个新的二进制编码方案介绍。相比以前的解决方案演示表所示2,它有两个缺点:提出一个解决方案,它使用一个长向量有四种违反在每个计划的解决方案。

3.2。修复功能

约束2是自动满足当前编码方案。修复的基础上新概念(3)提出了管理限制3和增加解决方案的一致性。

这种修复技术的好处是,它罢工之间的平衡CPU时间消费和避免当地的最适条件。profit-to-weight比率是 / ( = 1,2,… )所以它们不会增长。这意味着

这个修复算子由两个阶段组成。第一阶段(称为修复阶段)检查每个变量在一个递增的顺序 从背包和降低项目是否违反了可行性。第一阶段(称为优化阶段)检查每个变量在一个递增的顺序 并将一个条目添加到背包只要不是违反了可行性。修复阶段的目标是获得一个可行的解决方案不可行解,同时优化阶段寻求改善健身的一个可行的解决方案。这个可以找到修复算子的细节在20.]。

整个MFO算法的伪代码DKP01给出算法1

输入:初始参数
输出:最优解
(1) 初始化搜索代理
(2) t= 1;
(3) t T
(4) 火焰没有更新。由方程(9)
(5) 生成的二进制X矩阵方程(11);
(6) 应用修复算子X并分配其健身OM;
(7) 如果t==1然后
(8) F=排序( );
(9) =类( );
(10) 其他的
(11) F=排序( );
(12) =类( );
(13) =1:m
(14) j=1:d
(15) 计算D由方程(8);
(16) 更新(,j由方程()6)和(7);
(17) t=t+ 1。
3.3。二进制Moth-Flame优化算法

MFO算法是专为真正的域。为了解决DKP01, MFO重新设计一个搜索用于二进制域。方程(11)- (13)用于真正的向量转换为二进制向量: 特遣部队()的转换函数的概率如下表达式:

在本节中,我们提出了两个二进制算法基于MFO MFO1和MFO2命名。MFO1和MFO2使用传递函数 (方程(12)), (方程(13分别)。他们使用公式(11)计算二进制向量X

4所示。仿真结果

本文的经验结果MFO1和MFO2算法进行比较找出最好的解决DKP01其中。该算法用于比较三种算法的结果从[6)命名为SecEGA和两个PSO算法从Truong [20.]。PSO1 BSPO7 PSO2算法和BPSO8取自Truong [20.),分别。30 DKP01 test实例包括10弱相关实例(表示WDKP1-WDKP10), 10逆实例(表示IDKP1-IDKP10)有着密切的联系,和10强相关实例(表示SDKP1-SDKP10) (3]。

所有实验提出的算法在笔记本电脑上运行华硕英特尔(R)核心(TM) i5 - 8250 u cpu - 1.6 GHz和8 GB DDR4记忆。操作系统是微软视窗10。R2016a MATLAB编程语言,版本。

在MFO,飞蛾的数量设置为50,和搜索域是间隔1,10]。SecEGA[所示的参数6]。SecEGA的人口大小设置为50,和迭代设置等于DKP01的维数。对于一个公平的比较,两种PSO算法的参数设置为粒子的数量等于50, 设置为2, 从0.9到0.4是线性下降,设置最大迭代次数等于DKP01的维度,和停止标准是满足最大迭代次数。对所有算法,最大迭代设置等于 计算出的差距

在本节中,短条件最好的,一般来说,最糟糕的情况下,和StdDev是最好的,一般来说,最坏的情况下,和标准偏差分别为30独立运行。

3- - - - - -5总结PSO1之间的比较,PSO2、MFO2 SecEGA,和MFO1基于6个不同的性能标准独立包括最佳运行,30日平均水平,最坏的情况下,StdDev,差距,平均等级。PSO2, MFO1比PSO1 MFO2, SecEGA最好,平均SDKP实例和最差,UDKP, WDKP除了IDKP的实例。该算法平均MFO1存档最好的排名结果。

结果表明,MFO1 5算法中是最好的。表630日总结的平均排名5算法实例。结果表明,MFO1取得最好的平均排名所有三个测试实例平均意味着等级。图1展示了四个算法的箱线图IDKP实例:IDKP2, IDKP4 IDKP6, IDKP8。图2展示了四个算法的箱线图WDKP实例:WDKP2, WDKP4 WDKP6, WDKP8。图3展示了四个算法的箱线图SDKP实例:SDKP2, SDKP4 SDKP6, SDKP8。这些箱线图数据显示,MFO1获得最好的结果。

4演示了四个算法的收敛曲线IDKP实例:IDKP2, IDKP4 IDKP6, IDKP8。图5演示了四个算法的收敛曲线WDKP实例:WDKP2, WDKP4 WDKP6, WDKP8。图6演示了四个算法的收敛曲线SDKP实例:SDKP2, SDKP4 SDKP6, SDKP8。这些收敛曲线表明,MFO1比PSO1群算法有更快的收敛,PSO2, MFO2。

因此,MFO1的性能优于其他算法DKP01问题。从上面的比较,MFO1显示更好的结果比PSO1 PSO2 MFO2, SecEGA。证据支持,解决DKP01 MFO1是一个潜在的方法。

4.1。Wilcoxon秩和检验

可观测的措施,我准备证明除了辣手摧花,结果不是机会的产物。使用非参数Wilcoxon统计测试和计算 值作为指标的意义。任何 结果的统计显著优势证据比较MFO1 MFO2时,PSO1, PSO2。毕竟,统计结果30表提供了实例7

5。结论

moth-flame优化算法表现出良好的可搜索性结合设计一个有效的解决方案演示贴现{0 - 1}背包问题。一个新的编码方案使用短长度的二进制向量来减少搜索域和加快计算时间。贪婪的修复过程是用来帮助算法快速收敛和减少之间的差距和th eoptimal解决方案最好的解决方案。30 DKP01实例的仿真结果表明,该算法比两个粒子群优化算法和遗传算法。在未来,一些moth-flame优化算法的变体被认为是贴现{0 - 1}背包问题的研究。

数据可用性

使用的数据来支持本研究的结果包括在文章或研究团体公开https://www.researchgate.net/publication/336126537_Four_kinds_of_D0-1KP_instances

的利益冲突

作者宣称没有利益冲突有关的出版。

确认

作者感谢范·朗大学支持这项工作。