基于新颖S型转换函数的二进制粒子群优化算法求解具有单连续变量的背包问题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2021⁃02⁃10
计算机应用,Journal of Computer Applications 2021,41(2):461-469ISSN 1001⁃9081
CODEN JYIIDU http ://
基于新颖S 型转换函数的二进制粒子群优化算法
求解具有单连续变量的背包问题
王泽昆,贺毅朝*,李焕哲,张发展
(河北地质大学信息工程学院,石家庄050031)(∗通信作者电子邮箱heyichao@ )
摘要:为了高效求解具有单连续变量的背包问题(KPC ),首先基于高斯误差函数提出了一个新颖S 型转换函
数,给出了利用该转换函数将一个实向量转换为0-1向量的新方法,由此提出了一个新的二进制粒子群优化(NBPSO )算法;然后,利用KPC 的第二数学模型,并且把NBPSO 与处理KPC 不可行解的有效算法相结合,提出了求解KPC 的一个新方法。

为了检验NBPSO 求解KPC 的性能,利用NBPSO 求解四类大规模KPC 实例,并把所得计算结果与基于其他S 、V 型转换函数的二进制粒子群优化算法(BPSO )、具有混合编码的单种群二进制差分演化算法(S -HBDE )、具有混合编码的双种群二进制差分演化算法(B -HBDE )和二进制粒子群优化算法(BPSO )等的计算结果相比较。

比较结果表
明NBPSO 不仅平均计算结果更优,而且稳定性更佳,说明NBPSO 的性能比其他算法有显著提升。

关键词:具有单连续变量的背包问题;组合优化问题;二进制粒子群优化算法;S 型转换函数中图分类号:TP18
文献标志码:A
Binary particle swarm optimization algorithm based on novel S-shape transfer
function for knapsack problem with a single continuous variable
WANG Zekun ,HE Yichao *,LI Huanzhe ,ZHANG Fazhan
(College of Information Technology ,Hebei GEO University ,Shijiazhuang Hebei 050031,China )
Abstract:In order to solve the Knapsack Problem with a single Continuous variable (KPC )efficiently ,a novel S -shape
transfer function based on Gauss error function was proposed ,and a new approach of transforming a real vector into a 0-1vector by using the proposed transfer function was given ,thereby a New Binary Particle Swarm Optimization algorithm (NBPSO )was proposed.Then ,based on the second mathematical model of KPC and the combination of NBPSO and the effective algorithm to deal with the infeasible solutions of KPC ,a new approach to solve KPC was proposed.For validating
the performance of NBPSO in solving KPS ,NBPSO was utilized to solve four kinds of large -scale KPC instances ,and the obtained calculation results were compared with those of Binary Particle Swarm Optimization algorithms (BPSOs )based on other S and V -shape transfer functions ,Single -population Binary Differential Evolution with Hybrid encoding (S -HBDE ),Bi -population Binary Differential Evolution with Hybrid encoding (B -HBDE )and Binary Particle Swarm Optimization algorithm (BPSO ).The comparison results show that NBPSO is superior to the comparison algorithms in average calculation result and
stability ,illustrating that NBPSO has the performance better than other algorithms.Key words:Knapsack Problem with a single Continuous variable (KPC);combinatorial optimization problem;Binary
Particle Swarm Optimization (BPSO)algorithm;S -shape transfer function
引言
粒子群优化(Particle Swarm Optimization ,PSO )[1]
是1995
年由Kennedy 和Eberhart 提出的一种著名演化算法,具有结构简单、易于实现和计算成本低等优点,受到众多学者的关注和研究,已经在神经网络[2]、约束优化[3]、调度问题[4]等众多问题中得到了成功应用。

为了利用PSO 求解二元优化问题,Kennedy 和Eberhart [5]随后提出了二进制粒子群优化(Binary Particle Swarm Optimization ,BPSO )算法。

在BPSO 中,利用
Sigmoid 转换函数将由实向量表示的粒子速度转换为由0-1向
量表示的粒子位置,从而基于粒子速度实现对粒子位置的更新,其中的Sigmoid 转换函数是BPSO 设计与实现的关键所在[6]。

具有单连续变量的背包问题(Knapsack Problem with a
single Continuous variable ,KPC )[7]
是1999年由Marchand 和Wolsey 提出的一个带有连续变量S 的组合优化问题。

目前,国内外学者对KPC 的求解算法进行了研究,例如Lin 等[8]首先将KPC 转化为一个伪背包问题和标准0-1背包问题的组合形
文章编号:1001-9081(2021)02-0461-09
DOI :10.11772/j.issn.1001-9081.2020050710
收稿日期:2020⁃05⁃20;修回日期:2020⁃07⁃16;录用日期:2020⁃07⁃28。

基金项目:河北省自然科学基金资助项目(F2016403055,F2020403013);河北省高等学校科学技术研究计划项目(ZD2016005)作者简介:王泽昆(1996—),男,河北石家庄人,硕士研究生,主要研究方向:演化算法;贺毅朝(1969—),男,河北晋州人,教授,硕士,CCF 高级会员,主要研究方向:演化算法、组合优化、强化学习;李焕哲(1975—),男,河北唐山人,副教授,博士,主要研究方向:演化算法、机器学习;张发展(1995—),男,山东潍坊人,硕士研究生,主要研究方向:演化算法、组合优化。

第41卷计算机应用
式,然后分别利用动态规划算法和分支定界法进行求解。

贺毅朝等[9]首先利用放缩法将KPC中的连续变量离散化,将它转化为带有实函数的变载重背包问题的一个特例,然后基于动态规划法提出了一个精确算法DP-KPC。

贺毅朝等[10]将
KPC分解为两个具有标准0-1背包问题形式的子问题进行求解,提出了一个时间复杂度为O(n2)的2-近似算法。

最近,He 等[11]提出了基于演化算法求解KPC的新思路,首先基于降维法建立了KPC的一个适于串行计算的数学模型和一个适用于并行求解的数学模型,然后基于混合编码二进制差分演化(Binary Differential Evolution with Hybrid encoding,HBDE)算法[12]给出了求解KPC的两个高效离散演化算法:具有混合编码的单种群二进制差分演化(Single-population Binary Differential Evolution with Hybrid encoding,S-HBDE)算法和具有混合编码的双种群二进制差分演化(Bi-population Binary Differential Evolution with Hybrid encoding,B-HBDE)算法。

显然,求解KPC的已有算法分为两类:精确算法和非精确算法。

精确算法[8-9]具有伪多项式时间复杂度,不适用于求解大规模KPC实例;而非精确算法[10-11]特别是演化算法不仅求解KPC 的速度快,而且计算结果完全能够满足实际应用要求。

因此探讨利用演化算法求解KPC的高效方法是一个值得研究与探讨的问题。

本文在已有转换函数的基础上,通过进一步的变形,提出了一个新颖S型转换函数,并基于这一转换函数给出了一个新颖的二进制粒子群优化(New Binary Particle Swarm Optimization,NBPSO)算法。

为了验证NBPSO算法的性能,通过与基于已有4个S型转换函数和4个V型转换函数的各种二进制PSO(分别记为S1-BPSO、S2-BPSO、S3-BPSO、S4-BPSO、V1-BPSO、V2-BPSO、V3-BPSO和V4-BPSO)、具有双重结构编码的二进制粒子群优化(Binary Particle Swarm Optimization with Double Structure coding,DS-BPSO)算法[13]以及文献[11]中的算法S-HBDE、B-HBDE和BPSO求解4类KPC 实例[11]的计算结果进行比较,结果显示NBPSO在求解KPC时明显优于对比算法。

1KPC定义与数学模型
KPC的定义为:给定n个物品的集合N={1,2,…,n}和一个基本载重为C的背包,其中物品j∈N具有价值p j和重量
w
j
,背包的可变载重S∈[l,u],p j、w j和C为正有理数,S、l和u 为有理数,且l<0<u;给定一个系数c>0作为惩罚系数。

如果可变载重S>0,即背包容量加S,则总价值将减去cS;反之,如果可变载重S<0,即背包容量减|S|,则总价值加|cS|。

KPC目标是确定S的取值,使得装入物品的重量之和在不超过背包载重C+S的前提下的价值之和减去cS最大。

根据上述定义,KPC的基本数学模型KPCM1[11]描述如下:
max f(Y,S)=∑j=1n y j p j-cS(1)s.t.∑j=1n y j w j≤C+S(2)y j∈{0,1},j=1,2,…,n,S∈[l,u](3)其中:Y=[y1,y2,…,y n]∈{0,1}n,y j=1(j=1,2,…,n)表示
物品j被装入了背包中。

为了便于利用二进制演化算法求解KPC,文献[11]基于降维法建立了KPC的一个新数学模型KPCM2,该模型通过消去连续变量S使解空间的维数由n+1降低为n。

数学模型KPCM2的描述如下:
max f(x)=∑j=1n y j p j+min{}
c(-l),c()
C-∑i=1n y j w j(4)s.t.∑j=1n y j w j≤C+u(5)y j∈{0,1},j=1,2,…,n(6)显然模型KPCM2中不涉及可变载重S。

因此,本文利用演化算法基于模型KPCM2求解KPC时,可适当降低求解的难度。

2BPSO与NBPSO
2.1BPSO
PSO算法是模拟鸟群飞行觅食的行为,通过个体之间的协作来寻找最优解的进化计算技术。

该算法包含粒子的速度更新(式(7))和位置更新(式(8))两个重要操作:
v t ij=Wv t ij+c1r1j(l t ij-x t ij)+c2r2j(g t gj-x t ij)(7)x t+1ij=x t ij+v t+1ij(8)其中:V t i=(v t i1,v t i2,…,v t in)表示在第t次迭代中粒子i的飞行速度,v t ij∈[-v max,v max];X t i=(x t i1,x t i2,…,x t in)表示在第t次迭代中粒子i的当前位置,x t ij∈[-x max,x max];L t i=(l t i1,l t i2,…,l t in)表示在第t次迭代中粒子i所经历的最好位置;G t g=(g t g1,g t g2,…,g t gn)表示在第t次迭代中所有粒子所经历过的最好位置,称为全局最好位置;W为惯性权重,c1和c2为加速系数,r1和r2都是0到1之间均匀分布的随机数。

在BPSO中,Kennedy和Eberhart[5]首先引入了Sigmoid函数(即式(9)),然后再利用式(10)替换PSO中的粒子位置更新操作(即式(8)),使得x t ij的值只取0或1。

Sig(x)=1
1+exp(-x)(9)x t+1ij={0,r3≥Sig(v t+1ij)
1,其他(10)其中,r3为0~1的随机数。

在式(10)中,利用Sigmoid函数将粒子速度转换为概率值,根据转换后的概率值和r3之间的关系来更新粒子的位置。

2.2NBPSO
2.2.1一个新的S型转换函数
近年来,转换函数成为二进制演化算法研究的一个热点,各种的新的转换函数应运而生。

值得一提的是,Mirjalili等[6]在已有两个转换函数的基础上,提出了6个新的转换函数,大大丰富了二进制演化算法的设计方法。

目前,已有的转换函数分为两种:S型转换函数和V型转换函数[6,14],下面给出了8个常用的S型和V型转换函数(分别记为S1、S2、S3、S4、V1、V2、V3和V4)。

S1:S(x)=11+e-2x(11)S2:S(x)=11+e-x(12)S3:S(x)=11+e(-x/2)(13)S4:S(x)=11+
e(-x/3)(14)V1:V(x)=||
||
|
|
||erf)=|||
(π/2)x e-t2d t(15)V2:V(x)=|
|tanh(x)(16)V3:V(x)=|
|(x)/1+x2(17)
462
第2期王泽昆等:基于新颖S 型转换函数的二进制粒子群优化算法求解具有单连续变量的背包问题
V4:V (x )=|
|
|
|||2πarctan ()
π2x (18)
虽然S 型和V 型转换函数的函数值均在[0,1]中,且表示
一个概率值,但是S 型和V 型转换函数明显具有不同的特点。

为了兼具S 型和V 型转换函数的特性,本文基于V 型转换函数中的函数V1提出一个新的S 型转换函数NS 如下:
NS (x )=||
||||||12éëê
ùûúerf
)
x +1(19)实际计算表明(请参考表1~4):基于S2、S3、S4、V1、V3等
转换函数的BPSO 求解KPC 的效果较差,为此下面不再考虑这些转换函数。

为了直观地观察NS 、S1、V2和V4等转换函数的变化情况,在图1中给出了这四个转换函数的图像。

2.2.2NBPSO
Lee 等[15]对BPSO 进行了改进,在保持PSO 的速度更新公式和位置更新公式的基础上,利用位置值的概率对粒子的位置进行第二次更新操作。

基于这一方法,并结合所给出的新S 型转换函数NS ,本文提出了一个新的二进制粒子群优化算法NBPSO 。

在NBPSO 的进化过程中,首先利用式(7)更新粒子的速度,接着利用式(8)对粒子位置进行第一次更新。

然后,利用第一次位置更新后的位置值根据式(20)来计算粒子位置向量变化的概率值。

NS (x t ij )=|
|||||||12éëê
ùû
úerf
)
t ij +1(20)最后,根据求得的粒子位置向量变化的概率值,利用式
(21)对粒子进行第二次位置更新。

x t
ij ={
0,r 3≥NS (x t ij )1,其他
(21)
根据以上描述,容易给出NBPSO 的实现步骤如下:
步骤1初始化参数。

设置最大迭代次数MIter ,种群规
模N ,惯性参数W ,加速系数c 1、c 2和v max ;令t ←0。

步骤2随机初始化种群。

使粒子位置的每一分量随机
取0或1,粒子速度的每一分量在[-v max ,
v max ]内随机取值。

计算种群中所有个体的适应度。

步骤3分别利用式(7)和式(8)更新每个粒子的速度和位置。

步骤4利用式(20)计算每个粒子的位置向量的概率,利用式(21)二次更新粒子的位置向量。

步骤5计算更新后每个粒子的适应度。

步骤6判断是否满足终止条件。

若不满足,则t ←t +1,转步骤3;若满足,则输出全局最好位置对应的解以及它的目标函数值。

设O (f )表示计算个体适应的时间复杂度。

其中步骤2的时间复杂度为O (N *n )+N *O (f ),步骤3~5的时间复杂度为
MIter *(N *(O (n )+O (f )+O (n ))+N *O (n ))。

当N 、MIter 和
O (f )是关于n 的多项式时,NBPSO 是一个具有多项式时间复杂度的随机近似算法。

3利用NBPSO 求解KPC
在利用演化算法求解KPC 时,不可避免地将会产生不可
行解。

为了解决这一问题,贺毅朝等[11]给出了一种时间复杂度为O (n 2)的修复与优化算法M2-GROA 来处理KPC 的不可行解。

由于M2-GROA 在文献[11]中的成功应用,因此本文利用M2-GROA 处理NBPSO 在求解KPC 时所产生的不可行解。

设Y b ∈[0,1]n 表示求得KPC 实例的当前最优解,f (Y b )表示Y b 所对应的适应度值。

基于NBPSO 求解KPC 的算法的
步骤如下::
步骤1将n 个物品项利用Quicksort [16]按照物品的价值密度比降序排序,并将排序后的物品项的下标依次存入一维
数组H [1,
2,…,n ]中。

步骤2初始化参数。

设置最大迭代次数MIter ,种群规
模N ,惯性参数W ,加速系数c 1、c 2和v max ;令t ←0。

步骤3随机初始化种群。

使粒子位置的每一分量随机
取0或1,粒子速度的每一分量在[-v max ,
v max ]内随机取值。

步骤4利用M2-GROA 处理初始化时产生的不可行解,
并计算粒子的适应度值。

步骤5对于所有粒子,分别利用式(7)和式(8)更新它的速度和位置。

步骤6利用式(20)计算改变粒子位置向量的概率。

步骤7利用式(21)中二次更新粒子的位置向量。

步骤8利用M2-GROA 处理粒子更新后所产生的不可行解,并计算它的适应度值。

步骤9判断是否满足终止条件。

若不满足,则t ←t +1,转步骤5;若满足,则输出(Y b ,f (Y b ))。

在上述步骤中,步骤1利用快速排序QuickSort [16]实现,时间复杂度为O (n log n );步骤3的时间复杂度为O (N *n );步骤4的时间复杂度为O (N *n 2);步骤4~9的时间复杂度为O (MIter *N *n 2);因此NBPSO 求解KPC 的时间复杂度为O (n log n )+
O (N *n )+O (N *n 2)+O (MIter *N *n 2),其中MIter 和N 是关于n
的多项式,故为多项式时间复杂度。

4计算结果与分析
所有计算均在配置为Inter Core i7-3770CPU @3.40GHz
和8GB RAM 的微型计算机上进行;用C 语言进行编程,编译环境为Code :Blocks ;使用Python 在编译环境JetBrains PyCharm 下绘制折线图。

4.1四类KPC 实例
四类KPC 实例[11]分别为:ukpc 类,编号为ukpc100~ukpc1000;ikpc 类,编号为ikpc100~ikpc1000;wkpc 类,编号为wkpc100~wkpc1000;skpc 类,编号为skpc100~skpc1000。

所有KPC 实例的数据都来自https :///project/KPC -problem -and -Its -algorithms 。

4.2计算结果比较与分析
由于基于S2、S3、S4、V1、V3五个转换函数的二进制PSO 和DS -BPSO [13]求解KPC 的效果极差(请参考表1~4),因此,只对算法NBPSO 、S1-BPSO 、V2-BPSO 、V4-BPSO 、S -HBDE 、B -HBDE 和BPSO 进行实验比较分析。

在NBPSO 、S1-BPSO 、V2-BPSO 和V4-BPSO 中,
各算法的
图1
S1、V2、NS 和V4转换函数
Fig.1
Transfer functions S1,V2,NS and V4
463
第41卷计算机应用
种群规模均为N=20,最大迭代次数均为MIter=6*n,n为KPC实例中物品的个数;此外,惯性参数W=1.5,加速系数c1=c2=1.8,粒子速度向量中各维分量的取值范围为[-2,2]。

S-HBDE、B-HBDE和BPSO的种群规模均为N=20,
三算法其他参数与文献[11]中相同。

记OPT是利用文献[9]中方法求得KPC实例的最优值;Best为算法独立计算实例50次所得计算结果中的最好值;Mean和StD分别为50次所得计算结果的平均值和标准差;AR=|OPT-Mean|表示各算法求解KPC实例的计算结果的平均值与最优值之间的绝对误差。

在表5~8中给出了各算法求解四类KPC实例的计算结果,并根据表5~8中的计算结果比较NBPSO、S1-BPSO、V2-BPSO、V4-BPSO、S-HBDE、B-HBDE 和BPSO等七个算法计算结果的优劣。

记Bnum表示NBPSO、S1-BPSO、V2-BPSO、V4-BPSO、S-HBDE、B-HBDE和BPSO的Best值达到OPT值的实例个数,Mnum表示NBPSO、S1-BPSO、V2-BPSO、V4-BPSO、S-HBDE、B-HBDE和BPSO的Mean值达到OPT值的实例个数,在表9对各算法的这两个指标进行了比较。

表3S2-BPSO、S3-BPSO、S4-BPSO、V1-BPSO、V3-BPSO和DS-BPSO求解wkpc类实例的计算结果Tab.3S2-BPSO,S3-BPSO,S4-BPSO,V1-BPSO,V3-BPSO and DS-BPSO calculation results of wkpc class instances
算法S2-BPSO S3-BPSO S4-BPSO V1-BPSO V3-BPSO DS-BPSO 结果
Best
Mean
Best
Mean
Best
Mean
Best
Mean
Best
Mean
Best
Mean
wkpc100
27633.50
27613.09
27374.47
27227.10
27261.74
27094.74
27390.39
26548.66
27645.54
27645.54
27645.54
27593.35
wkpc200
53256.77
52979.96
52032.74
51623.58
51778.45
51081.93
51812.89
49879.94
53590.29
53590.29
53590.07
53281.44
wkpc300
81560.71
80929.44
79465.08
78598.47
78281.98
77696.80
79365.14
76338.88
81905.59
81890.13
81757.95
81091.97
wkpc400
110510.24
109501.82
108047.80
106406.56
105910.16
105328.88
108996.48
103721.35
111345.34
111340.30
111301.62
110341.02
wkpc500
135026.14
134950.61
131856.58
131533.53
130833.62
130399.94
135032.66
128055.18
135026.88
135014.07
133501.78
132174.02
wkpc600
174976.38
173352.64
171947.22
169304.93
168888.44
167805.14
167847.40
166536.64
176150.08
176146.65
175271.94
173926.92
wkpc700
203557.96
203314.50
199672.39
197636.27
197009.78
196233.13
203897.93
195139.94
203897.93
203897.83
203897.93
203896.25
wkpc800
212567.47
212388.20
207493.71
206712.08
204983.20
204295.77
212993.43
201154.61
212984.88
212975.12
212995.47
212995.36
wkpc900
271011.95
270793.01
266285.50
263339.92
262010.70
261199.38
271860.30
259767.16
271853.15
271836.50
271858.50
271858.50
wkpc1000
275427.58
266407.86
268018.82
260181.57
260368.07
257639.76
259037.02
252451.10
278292.43
278281.32
274780.90
271091.92表1S2-BPSO、S3-BPSO、S4-BPSO、V1-BPSO、V3-BPSO和DS-BPSO求解ukpc类实例的计算结果
Tab.1S2-BPSO,S3-BPSO,S4-BPSO,V1-BPSO,V3-BPSO and DS-BPSO calculation results of ukpc class instances
算法S2-BPSO S3-BPSO S4-BPSO V1-BPSO V3-BPSO DS-BPSO 结果
Best
Mean
Best
Mean
Best
Mean
Best
Mean
Best
Mean
Best
Mean
ukpc100
39048.80
39028.89
38337.35
37613.13
37721.43
36570.97
37238.40
33143.29
39048.80
39048.80
39037.65
38907.69
ukpc200
80051.02
79568.49
76124.04
74485.70
73555.82
71996.08
77998.92
67427.57
80494.30
80492.26
80494.30
79974.47
ukpc300
117379.04
115815.13
111326.14
107088.77
105337.98
103060.15
109178.98
94925.21
118574.96
118574.47
118318.61
116124.82
ukpc400
95519.51
95513.60
95519.51
95517.85
95519.46
95518.53
95512.71
95244.40
95519.51
95519.31
95519.51
95519.50
ukpc500
186046.92
183120.89
176742.12
169654.38
166716.84
163739.09
186412.40
156947.43
189079.18
189077.58
170201.40
165991.25
ukpc600
160094.46
159781.87
160094.72
160058.52
160094.72
160080.47
160067.94
158342.96
160094.72
160092.71
160094.72
160094.71
ukpc700
305388.09
291053.08
286703.30
264204.50
263551.04
251410.72
258095.45
227543.69
311339.93
311330.89
309382.92
300074.44
ukpc800
318634.76
305052.02
295185.80
271125.64
270735.38
260319.43
303145.84
250187.66
325528.60
325523.56
302962.72
302932.91
ukpc900
379524.85
354780.58
355688.15
315532.93
323731.20
301927.51
314566.90
272379.71
388153.70
388151.64
382143.80
365919.80
ukpc1000
397465.72
395839.84
376935.96
355420.53
352164.91
344242.44
403401.30
333093.64
403401.30
403398.33
403401.30
403401.30
表2S2-BPSO、S3-BPSO、S4-BPSO、V1-BPSO、V3-BPSO和DS-BPSO求解ikpc类实例的计算结果
Tab.2S2-BPSO,S3-BPSO,S4-BPSO,V1-BPSO,V3-BPSO and DS-BPSO calculation results of ikpc class instances
算法S2-BPSO S3-BPSO S4-BPSO V1-BPSO V3-BPSO DS-BPSO 结果
Best
Mean
Best
Mean
Best
Mean
Best
Mean
Best
Mean
Best
Mean
ikpc100
25652.04
25650.04
25652.04
25633.41
25648.92
25555.54
25652.04
25147.06
25652.04
25650.01
25651.96
25640.87
ikpc200
55631.38
55625.32
55531.20
55459.08
55430.94
55293.45
55631.38
54580.35
55631.38
55629.30
55631.38
55544.13
ikpc300
81573.48
81561.41
81172.55
81032.72
80921.73
80731.88
81573.48
79601.26
81573.48
81571.08
81473.38
81352.48
ikpc400
110247.86
110219.20
109447.06
109186.80
109041.29
108630.62
110248.04
106915.81
110247.86
110236.41
110147.94
109841.70
ikpc500
134053.13
134024.99
133071.59
132730.42
132450.81
132079.37
134053.13
129973.04
134053.13
134050.97
133548.58
133103.82
ikpc600
149641.02
149552.39
148039.19
147494.37
147263.69
146624.79
149641.10
144114.17
149641.02
149631.39
149641.10
149583.83
ikpc700
184185.93
180082.71
179323.66
175840.54
175342.62
174156.34
174412.88
172525.45
186713.21
186712.10
183177.93
180595.87
ikpc800
220717.26
220423.62
218216.40
217685.51
217515.42
216709.37
222120.57
221321.51
221966.96
221834.10
222120.57
222120.57
ikpc900
230504.70
230383.78
227501.65
226965.04
226399.95
225641.88
230704.90
221862.82
230704.85
230684.83
230704.90
230704.87
ikpc1000
265567.78
265345.86
261961.38
261361.92
260762.50
259822.58
265768.46
256022.11
265768.30
265690.24
265768.46
265768.46
464
第2期王泽昆等:基于新颖S 型转换函数的二进制粒子群优化算法求解具有单连续变量的背包问题
表6
S -HBDE 、B -HBDE 、NBPSO 、S1-BPSO 、V2-BPSO 、V4-BPSO 和BPSO 求解ikpc 类实例的计算结果
Tab.6
S -HBDE ,B -HBDE ,NBPSO ,S1-BPSO ,V2-BPSO ,V4-BPSO and BPSO calculation results in solving ikpc class instances DP -KPC S -HBDE
OPT Best Mean StD AR
25652.0425652.0425652.040.000.00
55631.3855631.3855631.380.000.00
81573.4881573.4881573.450.130.03
110248.04110248.04110239.8121.728.23
134053.13134053.13134050.7814.182.35
149641.10149641.10149639.159.581.95
186713.21186704.60186598.9250.92
114.29222120.57222120.57222100.7744.4319.80
230704.90230702.65230607.4735.8497.43
265768.46265768.46
265689.17
40.6979.29
算法结果ikpc100
ikpc200
ikpc300
ikpc400
ikpc500
ikpc600
ikpc700
ikpc800
ikpc900
ikpc1000
表4
S2-BPSO 、S3-BPSO 、S4-BPSO 、V1-BPSO 、V3-BPSO 和DS -BPSO 求解skpc 类实例的计算结果Tab.4
S2-BPSO ,S3-BPSO ,S4-BPSO ,V1-BPSO ,V3-BPSO and DS -BPSO calculation results of skpc class instances
算法S2-BPSO S3-BPSO S4-BPSO V1-BPSO V3-BPSO DS -BPSO
结果Best Mean Best Mean Best Mean Best Mean Best Mean Best
Mean skpc100
31496.9831496.9831496.9831474.2831475.6031390.4531496.9831100.6531496.9831496.9831496.9831494.02skpc200
61508.2161466.9561231.3660898.5460896.1160514.6860621.2459437.4561521.8661521.8661521.8661440.45skpc300
95438.7595438.0495038.1994790.9694837.8694485.0395438.7893607.6395438.7995438.5595138.4795095.69skpc400
130815.05130744.12130221.50129791.27129704.00129306.05130815.50128362.24130815.50130814.65130615.45130524.68skpc500
170887.58170044.22169478.34167827.89167795.54166723.76166057.48163709.41171110.64171110.57170912.38170516.16skpc600
181179.64181068.92180264.04179201.63179344.99178583.29181381.21177307.80181381.21181378.79181379.55181147.68skpc700
214555.54212845.21212568.62209357.99208973.22207557.71207153.48203731.33214926.10214925.22214625.20213981.76skpc800
274154.87269636.19271948.32267647.66269384.78265707.11265888.33260284.92274750.88274750.22273959.21272714.39skpc900282145.97281781.53280644.80278609.46278404.80277481.77282503.81275487.31282501.92282501.84282503.84282503.84skpc1000
315806.50
315280.78313922.90
311614.22311625.64310437.79316111.04308761.53316111.04316110.02316110.96316110.96表5
S -HBDE 、B -HBDE 、NBPSO 、S1-BPSO 、V2-BPSO 、V4-BPSO 和BPSO 求解ukpc 类实例的计算结果
Tab.5
S -HBDE ,B -HBDE ,NBPSO ,S1-BPSO ,V2-BPSO ,V4-BPSO and BPSO calculation results of ukpc class instances
算法DP -KPC S -HBDE
B -HBDE
NBPSO
S1-BPSO
V2-BPSO
V4-BPSO
BPSO
结果OPT Best Mean StD AR Best
Mean StD AR Best
Mean StD AR Best
Mean StD AR Best
Mean StD AR Best
Mean StD AR Best
Mean StD AR
ukpc10039052.3939052.3939048.654.313.7439052.3939049.743.682.6539037.6539037.650.00
14.74
39030.2339030.230.00
22.1639048.8039048.800.003.59
39048.8039038.6240.0013.77
39051.1939047.263.605.13ukpc200
80494.3080494.3080494.300.000.0080494.3080493.751.870.5580494.3080494.300.000.0080494.3080494.300.000.0080492.4080492.400.001.90
80494.3080489.1616.845.1480494.3080481.808.73
12.50
ukpc300
118625.60118597.77118592.4012.4033.20118625.60118596.227.82
29.38118597.77118597.172.93
28.43118597.77118595.480.37
30.12118578.52118572.735.67
52.87118597.77118585.8918.3639.71118588.30118528.4538.9697.15
ukpc400
95519.5195519.5195519.510.000.0095519.5195519.510.000.0095519.5195519.510.000.0095519.5195519.510.000.0095519.5195519.500.020.0195519.5195519.450.100.0695519.5195519.515.850.00
ukpc500
189079.18189079.18189073.0918.176.09
189079.18189066.2844.2712.90189079.18189079.180.000.00189078.68189078.680.000.50189079.18189079.180.000.00189079.18189078.014.841.17
188766.04188323.68187.41755.50
ukpc600
160094.72160094.72160094.720.000.00160094.72160094.720.000.00160094.72160094.720.000.00160094.72160094.700.150.02160094.72160094.720.000.00160094.72160094.001.570.72160094.72160094.720.000.00
ukpc700
311350.87311350.87311329.4552.9621.42311350.87311319.0442.0731.83
311331.02311331.020.00
19.85311257.94311231.873.72
119.00311339.93311339.930.0010.94311339.93311335.4431.4515.43
310610.57309549.43359.66
1801.44ukpc800
325528.60325524.54325498.7759.8929.83325521.44325491.3051.2237.30
325514.72325514.720.00
13.88325449.78325439.238.61
89.37325528.60325528.600.000.00
325528.60325526.3415.842.26
323813.72322751.17478.07
2777.43ukpc900
388174.95388174.95388143.2359.3931.72388169.85388089.0482.4385.91388146.95388146.950.00
28.00388040.40388035.6733.14
139.28388156.15388156.150.00
18.80388140.00388055.3045.52
119.65385724.35385413.24153.91
2761.71
ukpc1000
403401.30403401.30
403389.06
54.1912.24403401.30
403383.5152.2317.79403401.30
403401.300.000.00403401.30
403401.300.000.00403401.30
403401.051.750.25403401.30
403401.041.250.26
402219.59
401330.45382.32
2070.85
465
第41卷计算机应用
B-HBDE NBPSO S1-BPSO V2-BPSO V4-BPSO BPSO Best
Mean
StD
AR
Best
Mean
StD
AR
Best
Mean
StD
AR
Best
Mean
StD
AR
Best
Mean
StD
AR
Best
Mean
StD
AR
25652.04
25652.04
0.00
0.00
25652.04
25651.99
0.04
0.05
25652.04
25652.04
0.00
0.00
25652.04
25650.04
14.03
2.00
25651.96
25651.24
0.73
0.80
25652.04
25651.68
0.19
0.36
55631.38
55631.36
0.04
0.02
55631.38
55631.38
0.01
0.00
55631.38
55631.38
0.02
0.00
55631.38
55629.35
14.20
2.03
55631.38
55631.37
0.04
0.01
55631.38
55631.38
0.00
0.00
81573.48
81573.47
0.01
0.01
81573.48
81573.48
0.00
0.00
81573.48
81573.48
0.00
0.00
81573.48
81571.38
14.68
2.10
81573.48
81573.44
0.06
0.04
81573.48
81573.48
0.00
0.00
110248.04
110221.79
38.53
26.25
110247.86
110247.86
0.00
0.18
110248.04
110247.99
0.32
0.05
110248.04
110244.88
18.07
3.16
110247.95
110247.75
0.77
0.29
110248.04
110247.56
0.34
0.48
134053.13
134044.21
27.52
8.92
134053.13
134053.13
0.00
0.00
134053.13
134053.13
0.01
0.00
134053.13
134051.13
14.01
2.00
134053.13
134053.09
0.07
0.04
134053.13
134053.13
0.00
0.00
149641.10
149635.82
17.89
5.28
149641.10
149641.10
0.00
0.00
149641.10
149641.10
0.01
0.00
149641.10
149639.09
14.06
2.01
149641.02
149641.02
0.01
0.08
149641.10
149620.83
31.45
20.27
186610.24
186437.21
80.01
276.00
186713.07
186712.86
0.03
0.35
186693.89
186520.01
54.26
193.20
186712.58
186712.57
0.05
0.64
186713.21
186712.78
0.81
0.43
186072.56
185998.24
101.34
714.97
222120.57
222040.27
46.24
80.30
222120.57
222120.57
0.00
0.00
222120.57
222120.57
0.00
0.00
222120.57
222113.91
46.63
6.66
222120.57
222120.57
0.00
0.00
222120.57
222105.46
29.36
15.11
230604.80
230542.56
52.14
162.34
230704.90
230704.90
0.00
0.00
230704.90
230702.89
14.04
2.01
230704.90
230702.89
14.01
2.01
230704.90
230704.66
0.39
0.24
230349.45
230246.08
69.71
458.82
265668.36
265615.38
48.28
153.08
265768.46
265768.46
0.00
0.00
265768.46
265766.26
15.38
2.20
265768.46
265766.45
14.04
2.01
265768.46
265768.46
0.02
0.00
265722.30
265631.70
45.71
136.76
续表
算法结果ikpc100ikpc200ikpc300ikpc400ikpc500ikpc600ikpc700ikpc800ikpc900ikpc1000
表7S-HBDE、B-HBDE、NBPSO、S1-BPSO、V2-BPSO、V4-BPSO和BPSO求解wkpc类实例的计算结果Tab.7S-HBDE,B-HBDE,NBPSO,S1-BPSO,V2-BPSO,V4-BPSO and BPSO calculation results in solving wkpc class instances
算法DP-KPC S-HBDE
B-HBDE
NBPSO
S1-BPSO
V2-BPSO
V4-BPSO
BPSO 结果
OPT
Best
Mean
StD
AR
Best
Mean
StD
AR
Best
Mean
StD
AR
Best
Mean
StD
AR
Best
Mean
StD
AR
Best
Mean
StD
AR
Best
Mean
StD
AR
wkpc100
27645.54
27645.54
27642.59
2.40
2.95
27643.68
27641.64
10.02
3.90
27645.54
27645.52
0.12
0.02
27645.54
27645.51
0.16
0.03
27645.54
27645.54
0.00
0.00
27645.54
27644.27
5.02
1.27
27645.54
27640.91
2.57
4.63
wkpc200
53590.29
53590.29
53589.17
1.46
1.12
53590.07
53588.25
2.69
2.04
53590.07
53590.07
0.00
0.22
53590.07
53590.07
0.00
0.22
53590.29
53590.29
0.00
0.00
53586.00
53582.27
11.44
8.02
53586.00
53560.04
14.26
30.25
wkpc300
81911.91
81911.91
81907.73
5.13
4.18
81911.91
81907.54
5.44
4.37
81910.08
81910.08
0.00
1.83
81910.08
81910.08
0.00
1.83
81901.84
81901.84
0.00
10.07
81908.26
81893.52
11.97
18.39
81882.56
81812.00
32.21
99.91
wkpc400
111347.92
111345.06
111342.17
3.94
5.75
111345.06
111339.42
7.10
8.50
111343.44
111343.15
0.72
4.77
111339.10
111337.24
1.33
10.68
111345.34
111345.30
0.31
2.62
111343.00
111341.40
6.56
6.52
111264.98
111184.93
38.08
162.99
wkpc500
135034.66
135031.16
135006.63
21.23
28.03
135034.24
135029.55
9.82
5.11
135033.36
135033.36
0.00
1.30
135033.02
135033.02
0.00
1.64
135033.34
135032.52
2.33
2.14
135033.02
135033.02
0.00
1.64
135032.66
135018.87
8.52
15.79
wkpc600
176171.08
176170.20
176158.83
7.85
12.25
176161.34
176131.97
18.44
39.11
176170.08
176170.08
0.00
1.00
176149.56
176148.16
0.92
22.92
176162.42
176161.83
2.72
9.25
176152.56
176152.56
0.00
18.52
175761.18
175590.61
88.24
580.47
wkpc700
203897.99
203897.99
203896.46
4.30
1.53
203897.99
203892.50
10.88
5.49
203897.99
203897.99
0.00
0.00
203897.99
203897.99
0.01
0.00
203897.99
203897.93
0.39
0.06
203897.93
203897.93
0.00
0.06
203772.00
203697.42
37.11
200.57
wkpc800
212996.08
212994.72
212986.97
17.75
9.11
212994.72
212983.45
8.45
12.63
212996.08
212995.98
0.69
0.10
212995.47
212994.89
1.90
1.19
212992.06
212991.39
3.28
4.69
212985.06
212983.07
1.44
13.01
212894.89
212800.82
49.57
195.26
wkpc900
271861.55
271860.50
271853.52
11.24
8.03
271860.30
271850.46
9.77
11.09
271860.30
271860.30
0.00
1.25
271860.30
271860.26
0.25
1.29
271860.30
271859.72
2.41
1.83
271860.30
271860.11
0.22
1.44
271515.15
271397.83
66.17
463.72
wkpc1000
278301.95
278268.02
278188.82
45.37
113.13
278205.46
278086.08
65.71
215.87
278289.13
278286.10
4.04
15.85
278259.28
278047.15
64.56
254.80
278299.68
278298.89
5.56
3.06
278292.97
278285.79
20.24
16.16
276196.74
275704.15
235.42
2597.80
466
第2期王泽昆等:基于新颖S型转换函数的二进制粒子群优化算法求解具有单连续变量的背包问题
由表5~8和表9可以看出,对于40个KPC实例,从算法的Best和Mean来看,NBPSO、S1-BPSO和V2-BPSO均有一半以上实例的Best值达到OPT值,V4-BPSO相较于NBPSO、S1-BPSO 和V4-BPSO较差。

在40个实例中,NBPSO有22个实例的Mean值达到OPT值,达到OPT值的实例个数是最多的,其次是S1-BPSO,然后是V2-BPSO,V4-BPSO的最少。

因此,
NBPSO算法明显比S1-BPSO、V2-BPSO和V4-BPSO求解KPC 的效果更佳。

由表5~8和表9还可看出,NBPSO与S-HBDE、B-HBDE和BPSO相比较,S-HBDE的Bnum值最大,即在40个KPC实例中Best值达到OPT值的实例最多,求解精度最高,其次是B-HBDE,最后是NBPSO。

但从Mnum来看,NBPSO在保证所有KPC实例中一半以上实例的Best值达到OPT值的基础上,相较于B-HBDE将求得Mean值达到OPT值的实例个数提高了4.5倍;相较于BPSO将求得Mean值达到OPT值的实例个数提高了约2.7倍;相较于S-HBDE将求得Mean值达到OPT 值的实例个数提高了约2.1倍。

由于在评价演化算法时,指标Mean比指标Best更能说明问题演化算法的性能优劣,因此
NBPSO比S-HBDE、B-HBDE和BPSO求解KPC的性能更佳。

为了更直观地比较,在图2~5中绘制了S-HBDE、B-HBDE、NBPSO、S1-BPSO、V2-BPSO、V4-BPSO和BPSO算法的AR拟合曲线,根据AR拟合曲线对它们作进一步比较。

从图2可以看出,S1-BPSO在求解实例ukpc100、ukpc700~ukpc900的结果较差;V2-BPSO除了求解实例ukpc300的结果较差外,对其他实例的计算结果较好;V4-BPSO仅求解实例ukpc400~ukpc600和ukpc1000的结果较好,对其他实例的计算结果略差;NBPSO在求解实例ukpc200~ukpc600和ukpc1000的结果较好,大部分实例的计算结果比S-HBDE、B-HBDE和BPSO
要好。

图2求解实例ukpc100~ukpc1000的AR拟合曲线Fig.2AR fitting curves in solving instances ukpc100-ukpc1000
表8S-HBDE、B-HBDE、NBPSO、S1-BPSO、V2-BPSO、V4-BPSO和BPSO求解skpc类实例的计算结果Tab.8S-HBDE,B-HBDE,NBPSO,S1-BPSO,V2-BPSO,V4-BPSO and BPSO calculation results in solving skpc class instances
算法DP-KPC S-HBDE
B-HBDE
NBPSO
S1-BPSO
V2-BPSO
V4-BPSO
BPSO 结果
OPT
Best
Mean
StD
AR
Best
Mean
StD
AR
Best
Mean
StD
AR
Best
Mean
StD
AR
Best
Mean
StD
AR
Best
Mean
StD
AR
Best
Mean
StD
AR
skpc100
31496.98
31496.98
31496.98
0.00
0.00
31496.98
31496.98
0.00
0.00
31496.98
31496.98
0.00
0.00
31496.98
31496.98
0.00
0.00
31496.98
31496.98
0.00
0.00
31496.98
31496.98
0.00
0.00
31496.98
31496.98
0.00
0.00
skpc200
61521.86
61521.86
61521.86
0.00
0.00
61521.86
61521.54
1.08
0.32
61521.86
61521.86
0.00
0.00
61521.86
61521.86
0.00
0.00
61521.86
61521.86
0.00
0.00
61521.86
61521.17
2.75
0.69
61521.86
61521.78
0.56
0.08
skpc300
95438.79
95438.79
95438.78
0.01
0.01
95438.79
95438.73
0.08
0.06
95438.78
95438.78
0.00
0.01
95438.78
95438.78
0.00
0.01
95438.79
95438.79
0.00
0.00
95438.77
95438.67
0.09
0.12
95438.79
95438.76
0.02
0.03
skpc400
130815.65
130815.65
130815.64
0.01
0.01
130815.65
130815.63
0.04
0.02
130815.65
130815.65
0.00
0.00
130815.65
130815.65
0.00
0.00
130815.65
130815.62
0.05
0.03
130815.50
130815.23
0.67
0.42
130815.65
130815.52
0.15
0.13
skpc500
171113.64
171113.64
171113.63
0.05
0.01
171113.64
171113.57
0.10
0.07
171113.64
171113.64
0.00
0.00
171113.64
171113.64
0.00
0.00
171113.64
171113.61
0.27
0.03
171113.22
171111.05
10.51
2.59
171113.44
171078.98
42.65
34.66
skpc600
181381.21
181381.21
181381.20
0.01
0.01
181381.21
181381.20
0.01
0.01
181381.21
181381.21
0.00
0.00
181381.21
181381.21
0.00
0.00
181381.21
181381.21
0.02
0.00
181381.17
181381.00
0.86
0.21
181381.19
181378.95
13.98
2.26
skpc700
214926.22
214926.22
214926.21
0.02
0.01
214926.22
214926.19
0.04
0.03
214926.22
214926.22
0.00
0.00
214926.22
214926.22
0.00
0.00
214926.22
214926.17
0.17
0.05
214926.10
214925.74
0.79
0.48
214913.20
214839.08
28.80
87.14
skpc800
274760.24
274760.24
274757.54
13.95
2.70
274760.24
274732.10
41.11
28.14
274760.24
274760.24
0.00
0.00
274760.24
274760.24
0.00
0.00
274760.24
274760.24
0.00
0.00
274757.74
274752.03
7.86
8.21
274658.74
274542.79
48.52
217.45
skpc900
282503.87
282503.87
282503.85
0.08
0.02
282503.87
282503.62
0.30
0.25
282503.87
282503.87
0.00
0.00
282503.87
282503.87
0.00
0.00
282503.87
282503.87
0.02
0.00
282503.84
282503.64
0.78
0.23
282500.96
282352.35
55.79
151.52
skpc1000
316111.04
316111.04
316111.00
0.04
0.04
316111.04
316110.87
0.28
0.17
316111.04
316111.04
0.00
0.00
316111.04
316111.04
0.01
0.00
316111.04
316111.04
0.02
0.00
316110.80
316110.21
3.90
0.83
316085.32
315931.85
57.10
179.19表9各算法比较分析
Tab9Comparison and analysis of various algorithms
算法S-HBDE B-HBDE NBPSO S1-BPSO Bnum
30
27
25
24
Mnum
7
4
22
19
算法
V2-BPSO
V4-BPSO
BPSO
Bnum
27
16
15
Mnum
12
3
6
467。

相关文档
最新文档