2023年8月1日发(作者:)

第l6卷第4期 2010年8月 上海大学学报(自然科学版) JOURNAL OF SHANGHAI UNIVERSITY(NATURAL SCIENCE) VoJ.16 NO.4 Aug.2010 doi:10.3969/j.issn.1007—2861.2010.04.012 可分离的二次背包问题的一种直接算法 任 燕, 陈 伟 (上海大学理学院,上海200444) 摘要:二次背包问题是一个NP—hard问题.给出一般的可分离二次背包问题的一种快速求解的直接算法,分析可分 离连续二次背包问题的结构特性,并研究此问题最优解与拉格朗日系数A的关系.在此基础上,提出通过调节A来 找到可分离二次背包问题的局部最优解的算法,此算法的计算复杂度为O(n). 关键词:二次背包问题;Karush—Kuhn—Tucker(KKT)条件;可分离;拉格朗日系数 中图分类号:O 21 1.4 文献标志码:A 文章编号:1007・2861(2010)04-0387-07 Algorithm for Direct Solution of Separable Quadratic Knapsack Problem REN Yan, CHEN Wei (College of Sciences,Shanghai University,Shanghai 200444,China) Abstract:Quadratic knapsack problem is NP-hard.This paper presents an algorithm to directly obtain a local optimal solution of a separable quadratic knapsack problem.By analyzing the structural characteristics of the problem,we study the relations between Lagrangian A and the optimal solution.An algorithm is presented in which the Lagrangian A is adjusted to give a local optimal solution. Computational complexity is O(n). Key words:quadratic knapsack problem;Karush—Kuhn-Tucker(KKT)condition;separable; Lagrangian 二次背包问题在现实生活中被广泛应用于金 融…、资本预算 、生产计划和工作调度 等方 面,并且二次背包问题在组合优化领域有着重要的 地位,无论是从实际应用和理论研究方面都引起了 广泛的关注 .二次背包问题的各种特殊化情形在 诸多文献中都有研究,如决策变量为二元0—1二次 虽然二次背包问题是NP.hard问题,但是由于 其被广泛应用,因此,很多人致力于解决此类问题, 并提出了有效的解法.文献[7]讨论了集中连续凸 规划问题的求解方法.文献[8]通过Karush—Kuhn— Tucker(KKT)条件求解一系列连续的二次背包松弛 问题,提出了一种求解可分离凸二次背包问题的算 背包问题 J、结构系数为正整数的超模二次背包问 题 j、二次成本系数矩阵为对角阵的可分离二次背 法.文献[10]对可分离连续凸二次背包问题提出了 直接算法.Jore等¨ 针对凹可分离的二次背包问题 提出了算法.但对一般的非凸非凹的二次背包问题, 目前还未见到相关的直接算法. 包问题 、放弃决策变量整数要求的连续二次背包 松弛问题 等. 收稿日期:2009-05一l3 通信作者:陈伟(1965~),女,副教授,研究方向为整数规划.E—mail:chenwei@staff.shu.edu.cn 388 上海大学学报(自然科学版) 第l6卷 当二次背包问题规模比较大时,经典的求解方 法会有一定的困难,但对于可分离的二次背包问题, 问题(P)的目标函数配方后,可化为-厂( )= 本研究利用其结构特性和KKT条件提出一种快速 耋 ( 一n ) 一c ],其中n =一 di.因为c 求解的直接算法,考虑的问题模型(P。)如下: minf(x)=∑qi=1 i( )=∑Ci=1 i +di , s.t.∑∞ ≤ , Z≤ ≤M, ≥0,C ≠0,i=1,2,…,n, 且∑O)if ≤ ≤∑09iu .当不限制c 1>0,i=1,2, …,n时,问题(P )为非凸的二次背包问题. 本工作将讨论如何得到问题(P。)的一个局部 极小解,基本思想是先不考虑线性约束,找到问题 (P。)的一个理想解.如果理想解满足线性约束,那 么理想解就是最优解;如果理想解不满足线性约束, 则由本工作给出的定理和命题,可以限定拉格朗日 系数A的取值范围,从而可逐步确定某些变量的最 优取值. 1 模型求解 可分离的二次背包问题(P )通常具有以下 形式: minf(x)=∑qi( )=∑Ci +di =l i=1 s.t.∑ ≤ , l≤ ≤u,∞ ≥0,C ≠0,i=1,2,…,n. 设∑wil ≤ ≤∑OJi“ ,则问题( )一定有可 行解. 令 ,_ ,则上述问题转化为 min )=耋q ( :)=耋毒2( ) +毒 :, ≤ , f ≤ ≤M ,C ≠0,i=1,2,…,n. 为了方便起见,将问题设为(P),有 minf(x)=∑qi=l i( ):∑Ci=1 i +di , s.t.∑ ≤ ,i=l  1≤ ≤M,c ≠0,i=1,2,…,n. 为已知数,所以问题(P)可转化为下列问题(P )来 求解: minf(x)=∑qi( )=∑Ci( 一口。)。, I=l i=】 s.t.∑ ≤ , =l Z≤ ≤M,c ≠0,i=1,2,…,n. 在此问题中,我们将指标集,={1,2,…,n}分为两个 指标集,其中, ={i∈IIc >0},,2={i∈IIc <0}. 问题(P )的KKT条件如下: ∑ ≤ ;i=l  (1) f ≤ ≤M ,i=1,2,…,n; (2) 2c ( 一n )+A一1.1 + =0,i=1,2,…, ;(3) d n A(∑ — )=0; (4) ‘ l (Z 一 )=0,i=1,2,…,n; (5) ( 一M )=0,i=1,2,…,n; (6) ≥0,i=1,2,…,n; (7) ≥0,i=1,2,…,n; (8) A≥0. (9) 如果不考虑线性约束∑ ≤ ,NN,N(P )的理想 解为 l , 口 ≤Z ,i E,1, n ,l <0 < ,i∈,I, , n ≥ ,i∈,l, ≥ , ∈,2, ,, 。 < 0£<— ~,,z∈  ∈1—2.・  定理1若理想解 满足线性约束(1),则 一定为问题(P )的最优解. 证明只需证明存在非负的拉格朗日系数,使 得KKT条件(3)~(9)成立. 若存在 =。 使得式(5)~(8)成立,只需令 =0, =0.若使式(3)成立,则A=0.从而式(4) 和(9)成立. 对于其他 =f 的分量,式(6)要成立,则 = 第4期 任燕,等:可分离的二次背包问题的一种直接算法 389 0.又因为A=0,式(3)即为2c (X 一。 )一 =0.注 意到,若c >0,只有当。 ≤1 时,才有互=1 ,所以 =2c (曩一a )≥2c (1 —a )≥0;若c <0,只有当 Ⅱ ≥ 时,才有互:f ,仍有 =2c ( 一。 )≥ 2c 1 一I丁i+ui)=c (f —u )≥0,所以式(7)成立. 对于其他互=“ 的分量,若式(5)成立,则 = 0.又因为A=0,代入式(3)有2c ( —a )+ =0. 若C >0,只有当a ≥u 时,才有 =u ,此时∞ = 一2c (互一a ):一2c (U —a )≥0;若c <0,只有当 < 妄 时,有 :M ,此时 :一2c;(互一。 )≥ 一2ci( 一1丁i 4-lgi)=一c。(u 一 ≥0,所以式(8)成 立.从而 是问题(P。)的最优解. 若对1≤ ≤n,互≠a。,则理想解为 1 ,i∈{a ≤li,i∈,1}U ≥ , ∈ ), , i∈{a ≥ ,i∈,l}U < , ∈ ). 当c >0,a ≤f 时,有互=l ,而q:( )=2c ( 一 口 ):2c;(f 一。 )>10;当c <0, ≥ 时,有 = 而 瓦)=2 互 )≥2c )= c (f —u )>0;当c >0,a ≥u 时,有 =11, ,而 q:(瓦):2ci( 一。 )≤0;当 <0,血 < 时,有 =“ ,而g ( )=2c (M 一a )<0,只需取0≤ ≤ min{一q:( )I曩=U ,i=1,2,…, }.当 =1 时, 因q:( )/>0,则可令 =q:( )+A,式(3)成立, 且 I>0;当曩=“ 时,因q:( )≤0,则可令 = 一g ( )一A,使得式(3)~(8)成立.综上所述, 可以满足KKT条件(3)~(9).证毕. 由理想解的取值可知,当i∈, ,a ≤1 或i∈12, 口 ≥ 时,理想解 : .上述变量取到盒约束的 下限且使得9 ( )最小,这些变量的取值已经相对 固定,无改进的必要.所以,下面我们不再考虑这些 变量,但为叙述简便,在讨论下述问题(P。)时,仍将 变量个数设为n. arinf(x)=∑qi( )=∑c ( 一ai)。, s.t.∑ ≤ , Z≤ ≤U,C ≠0,i∈, u , 其中, ={i I c >0,8 >f ,1≤i≤n{,, :{i I c。<0, ,l≤ ≤凡_},且, U12={l,2,…,n}. 问题(P )的理想解为 一 fa ,f <a <“ ,i∈,:, 【 ,i∈{口 ≥“ ,i∈,:}u, . 由定理1知,若 满足线性约束条件,则 为 最优解.以下考虑当理想解不满足线性约束时,如何 改进 ,从而得到最优解. 当∑i> 时,理想解 不满足线性约束,如 果让每个变量都变小或保持当前的取值 ,那么 ∑ 将变小,直到满足线性约束.令 为通过上述 方法找到的问题(P )的局部最优解,则一定有f ≤ ≤墨.令 = 一∑弓十互,若取 =y ,则有 J 1 Xi+∑弓=y +∑亏=y一∑ +互+∑弓= .该式表示当其他分量不改变时,对第i个变量,只 需从互减小到y ,就可以满足线性约束条件(1). 但如果同时减少m个变量,则显然每个变量不必减 小到 ,就可使∑ ≤y成立,所以 是第i个变 量取值的下限,从而有 ≥ .但由于盒约束z ≤ ≤“ ,有 I>1 .所以变量 的最优值的取值范围 为[ ,互],其中 =max{ ,f }. 定理2对于问题(P ),设 是(P。)的最优 解,贝0当C >0时,若 ∈[ , ],有q ( )≤ q ( )≤ ( );当C <0时,若 E[y , ],则 390 上海大学学报(自然科学版) 第16卷 有q;(y )l>q ( )l>q ( ),且q ( )<0. 证明当c。>0时,q:( )=2c ( 一口 )为单调 一0 )≤ q ( )为单调递减函数,则有9 ( 。 )≥q ( )= q (M ),故当Z < ≤“ 时, =0.因为 为最优 递增函数,则有2c (y 一n )≤2c ( 解,所以 ≥0.由KKT条件(3)知,g ( )+A+ 2c (互一0 ).而 q:(互)=2c (互~n )= r0, Z <0 < ,i∈,1, 【2c ( 一r上 )≤0, n ≥M ,i∈,1, 即当i∈, , ∈[ ,曩],有q ( )≤g ( )≤ q:( )≤0. 当c <0时,q:( )=2c ( 一n )为单调递减函 数,即当i∈I2, ∈[7 , ]时,有q:( i)≥ q:( )≥q:(互),且q ( )=2c (II, 一0 )< 2ci ) 一li)<0. 定理3对问题(P ),设 是(P。)的理想解, 是问题(P )的最优解,A, (1≤i≤n)为相对于 的拉格朗日系数.若存在i∈, ,使得第i个变量的 最优解满足f < <“ ,当 ≠ 时,如果有q ( )≤ q ( ),则取 = ,可满足拉格朗日系数 ≥0. 证明因为 是问题(P )的最优解,且存在i∈ ,,满足2 <Xi <M ,则为满足KKT条件,令 =∞ =0, 且有g ( )+A:0.又因为 ≤ ≤xi,从而由定理 2知,A=一q ( )≥0,且A<一q:(2 ). 对于 ≠ ,有弓≠ ,从而 =0.为满足KKT条 件(3),应有 ( )+A+ =0.若取 =弓,则由 q (弓)≤q:( )得, :一(q ( )+A)= 一(q ( )一q:( ))≥0.证毕. 定理4对问题(P ),设 是(P )的理想解, 是问题(P。)的最优解,A,∞ (1≤i≤n)为相对于 的拉格朗日系数.若存在i∈12,使得第i个变量的 最优解 满足z < ≤u ,则拉格朗日系数A满足 A≤一q (互)=一2c (“ 一口 ).若存在 (弓)≤ q (互),令 = ,可满足拉格朗日系数 ≥0. 证明对问题(P ),当C <0时,有 =u。.而 =0.从而可得A≤一q:( )≤一q:(五). 由理想解的取值知 ≠z ,所以 ,=0.为满足 KKT条件(3),应有q;( )+A+(cJ =0.若取 , = 弓,则由q ( )≤q:(互),可得 =一(q ( )+ A)≥一(q;( )一q;( )>10.证毕. 由定理3知,当i∈, , 的最优值的取值范围 为[ ,曩],有q:(y )≤q (Xi )≤q:( ).如果 ≠z 或 =f , ≠f ,则一定有A≤一q:(y ).当 i∈,2, 的最优解的取值范围为[y ,xi],由定理4 知,A≤一q ( ).所以这两个定理给出了A的取值 范围. 定理5若存在i∈, ,有一q ( )<A,其中A 为最优解对应的拉格朗日系数,为满足KKT条件, 则第i个变量的最优解为 = :z . 证明若 ≠y ,则有 >Z ,从而有 =0. 若 =M ,由KKT条件(3)知,q ( )十A+ =0. 可得 =一q:( )一A<一q (y )一A<0,与KKT 条件矛盾.若Z < 。 < ,则有 =∞ =0,则由KKT 条件(3)知,q:( )+A=0.可得A=一q:( )< 一g ( ),这与题意矛盾. 若 = ≠f ,则有 =(cJ。=0,则由KKT条件 (3)知,q ( )+A:0,可得A=一g:( )< 一q:(y ),与KKT条件矛盾.若 =y :f ,则有 ∞ =0,则由KKT条件(3)知,q ( )+A+ =0.可 得z, =q ( )+A=q:( )+A>0. 综上所述,只有当 = =f 时,才能满足 KKT条件.证毕. 定理6若存在i∈12,有一q:( )<A,其中A 为最优解对应的拉格朗日系数,为满足KKT条件, 则第i个变量的最优解为 i = i=fi. 证明仿照定理5. 定理7 若存在 i=z ,且q:(7 )≥0,则取 第4期 任燕,等:可分离的二次背包问题的一种直接算法 391 = ,可满足 I>0. 证明若取 :f ,可令∞ =0,对于任意非负 的拉格朗日系数A≥0.为满足KKT条件(3), q ( )+A一 =0,所以有 =q ( )+A>10. 定理8 假定 =( , ,…, )是问题 (P,)的最优解,若存在i≠ ,1≤i, ≤凡,满足f < <u ,Z < f < ,,则有 c ( 一 )= ( 一aj). 证明 由于 是问题(P.)的最优解,且满足 KKT条件,从而得 =09 = ,:OJj=0.由2c ( 一 0 )+A=0,2ci(Xj 一 )+A=0,所以有 c ( 一0 )= ( 一aj). 证毕. 本研究将最优解 ,i∈,满足f < <u 的指 标集合记为, ,并记 = 一∑ .由定理6知, 对任意的i, ∈, ,有c ( 一口 ):cj(Xj 一aj).可得 c=J(、x 一aj)+0 .若∑ =y 成立,则问题 (P )的线性约束被满足,即 i el' \Ci J 一 )+。 卜 , 可得 2求解二次背包问题的算法 2.1算法思想 算法的基本思想是通过调节A的取值范围,在 寻求 的同时,逐步确定各个变量的最优取值.由定 理3,当i∈, 时,可以通过一q:( )来限定A的上 限.由定理4知,当i∈12时,可以通过一q ( )来限 定A的上限.找到一q ( ),i∈,。和一q ( ),i∈12 中最小的一个值,记为A㈩,并将满足A 的指标记 人集合,J。.先限定0≤A≤A(11,若存在g ( )≤ 一A…,则令xj = ,将指标 记人集合 ,然后利 用定理8和线性约束条件求得,_ 中变量的值.若 求出的解对应的拉格朗日系数小于等于A…,则最 优解即为所求的值.若求得解对应的拉格朗日系数 大于给定的A…,则由定理5和定理6知,对 中的 指标对应的变量的最优解应取其下界,将此变量删 除,重新计算 ,i∈,,然后重复上述过程,直至找到 最优解. 应该注意的是,当求得解对应的拉格朗日系数大 于Afl1时,且 。中的元素不止一个时,应当取 =f等  , 其中 为满足q ( )=max{g (yf)}的指标,将k从 ,,中删除.下面就问题(P )给出具体的算法. 步0:令J『={1,2,…, },计算 l , ≤l ,C >0, 0 ,l <r上 < ,c >0, u , 0 ≥u ,C >0, ,c <0, 。 ≥ ,c <0. 步1:若∑互≤’,,则 为最优解,停止.否则 进入步2. 步2:对于1≤i≤凡,若存在互=f ,令 =Z , ,=八{i}, = —f . 步3:L= ,U=(2j. 步4:若,一L= ,则对i∈,, =f 为最优解, 停止.若,一,J≠ ,令,=,一,J,进入步5. 步5:对于i E,,计算 = 一∑互+互,若对 E l 任意的i∈,,有 = ,则最优解为 fff, i∈L, =? 【 , i∈,, 停止.否则进入步6. 步6:对于i∈,,令y =max{ ,f },记W= tjl <0, = ,q ( )>10, ∈It,若W=(2j,贝4进 入步7;若 ≠ ,则令 =f ,L=L U{k}, = 一 ,返回步4(其中 为满足q (瓦)=m a x{q ( ) 的指标). 步7:对于i∈,,当c >0时,令A =一q (y ), 当c <0时,令A =一q:( ).取A 中最小值记为 A(1),并记Ll={iI A =A(1)}. 步8:对于每一个 ∈,,若g ( )≤一A【I),则 392 上海大学学报(自然科学版) 第16卷 令 =瓦,U=UU . 步9:若y一∑弓<0,则令 =lk(其中 为 满足g ( ) { ( )}的指标),L=,J u{ }, {【 i, i∈U, , ∈,一 由算法可知,本研究是通过调节拉格朗日系数 A的范围来找到问题(P.)的最优解.由步7,8,9,11 y=y—f ,返回步4;若 一∑ ≥0,且,一 = , 则最优解为 r Z , ∈L, =J 【互, i∈U, 停止.若,一 ≠ ,且 一∑写≥0,则进入步10. 步10:对于任意的 ∈,一 ,有 一∑互一∑口 ■囊_’ 并计算A =一2c ( 一n ),i∈,一 . 步11:若A >A㈩,则X,k =Z (其中 为满足 g ( )=m axt q ( )}的指标),L=L U{ }, .一 ,返回步4;若A ≤A ,则最优解为 rf , i∈L, {I 互, i∈U, 【 , i∈,一 , 停止. 步0和步1是初始化过程,求得理想解并判断 这个理想解是否是原问题的最优解;步2将问题 (P )转化为问题(P );步3和步4是判断算法是否 向下继续的条件;步5和步7先确定拉格朗日系数 的一个上限;步6依据定理7确定某些分量的最优 取值,并记人集合,J,返回到步4;步8是在步7已确 定拉格朗日系数A的一个取值范围的基础上,由 KKT条件确定某些分量的值,并将其记人集合 ;步 9是判断步7确定的拉格朗日系数A的取值范围是 否合适;步l0是运用定理8来计算未确定值的分量 的值,并计算相应的拉格朗日系数A ;步11表明,如 果计算的A 大于步6所确定的拉格朗日系数A的 上限,则 =f (其中 为满足q ( )= m axt g ( )}的指标),L= u{ }, —f ,返回 .步4;若A 在限定的范围内,则最优解为 知,最多只需对拉格朗日系数A的范围进行n次调 节,其中n为原问题中变量的个数.对于每个变量, 只需要计算 ,q:( )和q:( ).那么,此算法的 计算复杂度为0(n),其中n为变量的个数,这比经 典算法或其他方法有效.本工作主要讨论对连续的 可分离的二次背包问题的求解算法.对于可分离的 二次整数背包问题,可以通过将二次整数规划问题 松弛化,转化为本工作中讨论的问题,找到连续问题 的最优解;然后利用其他方法(例如分支定界算法) 进一步求解整数问题. 例1 arin )=( 】一2) +2(x2—1) +( 3—3) 一 2( 4+1) 一3( 5+1) , S.t. 1+ 2+…+ 5≤8, 0≤ 1≤3,0≤ 2≤3,0≤ 3≤4, 0≤ 4≤2,0≤ ≤2, 计算结果如表1所示.表中, 为循环次数, 为理 想解, 为算法中步6确定的集合,A…为算法中步 7确定的A的上限,A 为算法中步lO确定的拉格朗 日系数, 为问题的最优解. 表1例1的计算结果 Table 1 Result of the ex ̄ple 1 A(1) A A ≤A(1) 1(2,1,3,2,2) 4 1.6 是 (1.2,0.6,2.2,2,2) 经过KKT条件验证, =(1.2,0.6,2.2,2,2) 为例1的一个局部最优解,最优值为一43.4.由 Matlab软件求解得到的最优解为 =(0,0.666 7, 3.333 3,2.000 0,2.000 0),最优值为一40.7. 例2 rain )=3( 】一2) +3( 2—2)。+4(x3—3) 一 ( 4+1) 一2(x5+1) 一( 6+2) , s.t. l+ 2+…+ 6≤13, 0≤ l≤3,0≤ 2≤4,0≤ 3≤3, 0≤ 4≤2,0≤ 5≤3,0≤ 6≤4, 计算结果如表2所示. 第4期 任燕,等:可分离的二次背包问题的一种直接算法 393 表2例2的计算结果 例3 Table 2 Result of the example 2 min ) =x1—2) +2( 2—1) +( 3—3) + k W A(1)A A ≤A(1) ( 4—4) +3( 5—1) 一2(x6+1) 一( 7—1) 一 3 一( 9+2) 一2(xlo+1) , S.t. l+ 2+…+ lo≤15, 经过KKT条件验证, =(1.64,1.64,2.72,0, 0≤ l≤2,0≤ 2≤3,0≤X3≤4, 3,4)为例2的一个局部最优解,最优值为一67.9.由 0≤ 4≤3,0≤ 5≤2,0≤ 6≤3,0≤ 7≤4, Matlab软件求解得到的最优解为 =(1.5,1.5,3, 0≤ 8≤3,0≤ 9≤1,0≤ lo≤2, 0,3,4),最优值为一67.5. 计算结果如表3所示. 表3例3的计算结果 Table 3 Result of the example 3 经过KKT条件验证, =(1.65,0.83,2.65,3, knapsack problem with series parallel support[J]. 0.92,3,0,0,1,2)为例3的一个局部最优解,最优值 Operations Research Letters,2002,30(3):159—166. 为一58.7;由Matlab软件求解得到的最优解为 = [6] CAPRARA A,PISINGER D,TOTH P.Exact solution of (1.6,0.8,3.6,3,0,3,0,0,1,2),最优值为一55.4. the quadratic knapsack problem[J].Informs Journal on 由上述3个例题知,通过此算法得到的最优值 Computing,1999,1l:125—137. 好于采用Matlab软件运用分支定界算法得到的最 [7] BRETFHAUER K M,SHETFY B.The nonlinear knapsack problem—algorithms and applications[J].European 优值. Journal of Operation Research,2002,138(3):459472. [8] BRETFHAUER K M。SHETTY B,SYAM S.A branch and 参考文献: bound algorithm for integer quadratic knapsack problems [J].ORSA Journal on Computing,1995,7(1):109一 MARKOWITZE H M.Porfolio selection: effclent l18. diversification of investment[M].New York:Wiley, [9] PARDALS P M,KOVOOR N.An algorithm for a singly 1959:129—188. constained class of quadratic programs subject to upper [2] BERNHARD R H.Mathematical programming models for and lower bounds[J].Mathematical Programming, captila budgeting--a survey generalization and critique 1990,46:32l一328. [J].Journals of Financial Quarterly Analysis,1969,4: [10] 华中生,张斌.求解可分离连续凸二次背包问题的直 ll1.158. 接算法[J].系统工程与电子技术,2005,27(2):331— [3] MODER J J.PHILIPS C R.Project management with 334. CPM and PERT『M1.New York:Rheinhold,1964: [11] JORE J M.STEPHEN A V.On the solution of concave l19—135. knapsack problems[J].Mathematical Programming, [4] KELLEVER H,PFERSCHY U,PISINGER D.Knapsack 1991,49:397-411. problems[M].Berlin:Springer—Verlag,2004:34—88. (编辑:孟庆勋) [5] RADERJI D J,WOEIGINER G J.The quadratic 0—1 

2023年8月1日发(作者:)

第l6卷第4期 2010年8月 上海大学学报(自然科学版) JOURNAL OF SHANGHAI UNIVERSITY(NATURAL SCIENCE) VoJ.16 NO.4 Aug.2010 doi:10.3969/j.issn.1007—2861.2010.04.012 可分离的二次背包问题的一种直接算法 任 燕, 陈 伟 (上海大学理学院,上海200444) 摘要:二次背包问题是一个NP—hard问题.给出一般的可分离二次背包问题的一种快速求解的直接算法,分析可分 离连续二次背包问题的结构特性,并研究此问题最优解与拉格朗日系数A的关系.在此基础上,提出通过调节A来 找到可分离二次背包问题的局部最优解的算法,此算法的计算复杂度为O(n). 关键词:二次背包问题;Karush—Kuhn—Tucker(KKT)条件;可分离;拉格朗日系数 中图分类号:O 21 1.4 文献标志码:A 文章编号:1007・2861(2010)04-0387-07 Algorithm for Direct Solution of Separable Quadratic Knapsack Problem REN Yan, CHEN Wei (College of Sciences,Shanghai University,Shanghai 200444,China) Abstract:Quadratic knapsack problem is NP-hard.This paper presents an algorithm to directly obtain a local optimal solution of a separable quadratic knapsack problem.By analyzing the structural characteristics of the problem,we study the relations between Lagrangian A and the optimal solution.An algorithm is presented in which the Lagrangian A is adjusted to give a local optimal solution. Computational complexity is O(n). Key words:quadratic knapsack problem;Karush—Kuhn-Tucker(KKT)condition;separable; Lagrangian 二次背包问题在现实生活中被广泛应用于金 融…、资本预算 、生产计划和工作调度 等方 面,并且二次背包问题在组合优化领域有着重要的 地位,无论是从实际应用和理论研究方面都引起了 广泛的关注 .二次背包问题的各种特殊化情形在 诸多文献中都有研究,如决策变量为二元0—1二次 虽然二次背包问题是NP.hard问题,但是由于 其被广泛应用,因此,很多人致力于解决此类问题, 并提出了有效的解法.文献[7]讨论了集中连续凸 规划问题的求解方法.文献[8]通过Karush—Kuhn— Tucker(KKT)条件求解一系列连续的二次背包松弛 问题,提出了一种求解可分离凸二次背包问题的算 背包问题 J、结构系数为正整数的超模二次背包问 题 j、二次成本系数矩阵为对角阵的可分离二次背 法.文献[10]对可分离连续凸二次背包问题提出了 直接算法.Jore等¨ 针对凹可分离的二次背包问题 提出了算法.但对一般的非凸非凹的二次背包问题, 目前还未见到相关的直接算法. 包问题 、放弃决策变量整数要求的连续二次背包 松弛问题 等. 收稿日期:2009-05一l3 通信作者:陈伟(1965~),女,副教授,研究方向为整数规划.E—mail:chenwei@staff.shu.edu.cn 388 上海大学学报(自然科学版) 第l6卷 当二次背包问题规模比较大时,经典的求解方 法会有一定的困难,但对于可分离的二次背包问题, 问题(P)的目标函数配方后,可化为-厂( )= 本研究利用其结构特性和KKT条件提出一种快速 耋 ( 一n ) 一c ],其中n =一 di.因为c 求解的直接算法,考虑的问题模型(P。)如下: minf(x)=∑qi=1 i( )=∑Ci=1 i +di , s.t.∑∞ ≤ , Z≤ ≤M, ≥0,C ≠0,i=1,2,…,n, 且∑O)if ≤ ≤∑09iu .当不限制c 1>0,i=1,2, …,n时,问题(P )为非凸的二次背包问题. 本工作将讨论如何得到问题(P。)的一个局部 极小解,基本思想是先不考虑线性约束,找到问题 (P。)的一个理想解.如果理想解满足线性约束,那 么理想解就是最优解;如果理想解不满足线性约束, 则由本工作给出的定理和命题,可以限定拉格朗日 系数A的取值范围,从而可逐步确定某些变量的最 优取值. 1 模型求解 可分离的二次背包问题(P )通常具有以下 形式: minf(x)=∑qi( )=∑Ci +di =l i=1 s.t.∑ ≤ , l≤ ≤u,∞ ≥0,C ≠0,i=1,2,…,n. 设∑wil ≤ ≤∑OJi“ ,则问题( )一定有可 行解. 令 ,_ ,则上述问题转化为 min )=耋q ( :)=耋毒2( ) +毒 :, ≤ , f ≤ ≤M ,C ≠0,i=1,2,…,n. 为了方便起见,将问题设为(P),有 minf(x)=∑qi=l i( ):∑Ci=1 i +di , s.t.∑ ≤ ,i=l  1≤ ≤M,c ≠0,i=1,2,…,n. 为已知数,所以问题(P)可转化为下列问题(P )来 求解: minf(x)=∑qi( )=∑Ci( 一口。)。, I=l i=】 s.t.∑ ≤ , =l Z≤ ≤M,c ≠0,i=1,2,…,n. 在此问题中,我们将指标集,={1,2,…,n}分为两个 指标集,其中, ={i∈IIc >0},,2={i∈IIc <0}. 问题(P )的KKT条件如下: ∑ ≤ ;i=l  (1) f ≤ ≤M ,i=1,2,…,n; (2) 2c ( 一n )+A一1.1 + =0,i=1,2,…, ;(3) d n A(∑ — )=0; (4) ‘ l (Z 一 )=0,i=1,2,…,n; (5) ( 一M )=0,i=1,2,…,n; (6) ≥0,i=1,2,…,n; (7) ≥0,i=1,2,…,n; (8) A≥0. (9) 如果不考虑线性约束∑ ≤ ,NN,N(P )的理想 解为 l , 口 ≤Z ,i E,1, n ,l <0 < ,i∈,I, , n ≥ ,i∈,l, ≥ , ∈,2, ,, 。 < 0£<— ~,,z∈  ∈1—2.・  定理1若理想解 满足线性约束(1),则 一定为问题(P )的最优解. 证明只需证明存在非负的拉格朗日系数,使 得KKT条件(3)~(9)成立. 若存在 =。 使得式(5)~(8)成立,只需令 =0, =0.若使式(3)成立,则A=0.从而式(4) 和(9)成立. 对于其他 =f 的分量,式(6)要成立,则 = 第4期 任燕,等:可分离的二次背包问题的一种直接算法 389 0.又因为A=0,式(3)即为2c (X 一。 )一 =0.注 意到,若c >0,只有当。 ≤1 时,才有互=1 ,所以 =2c (曩一a )≥2c (1 —a )≥0;若c <0,只有当 Ⅱ ≥ 时,才有互:f ,仍有 =2c ( 一。 )≥ 2c 1 一I丁i+ui)=c (f —u )≥0,所以式(7)成立. 对于其他互=“ 的分量,若式(5)成立,则 = 0.又因为A=0,代入式(3)有2c ( —a )+ =0. 若C >0,只有当a ≥u 时,才有 =u ,此时∞ = 一2c (互一a ):一2c (U —a )≥0;若c <0,只有当 < 妄 时,有 :M ,此时 :一2c;(互一。 )≥ 一2ci( 一1丁i 4-lgi)=一c。(u 一 ≥0,所以式(8)成 立.从而 是问题(P。)的最优解. 若对1≤ ≤n,互≠a。,则理想解为 1 ,i∈{a ≤li,i∈,1}U ≥ , ∈ ), , i∈{a ≥ ,i∈,l}U < , ∈ ). 当c >0,a ≤f 时,有互=l ,而q:( )=2c ( 一 口 ):2c;(f 一。 )>10;当c <0, ≥ 时,有 = 而 瓦)=2 互 )≥2c )= c (f —u )>0;当c >0,a ≥u 时,有 =11, ,而 q:(瓦):2ci( 一。 )≤0;当 <0,血 < 时,有 =“ ,而g ( )=2c (M 一a )<0,只需取0≤ ≤ min{一q:( )I曩=U ,i=1,2,…, }.当 =1 时, 因q:( )/>0,则可令 =q:( )+A,式(3)成立, 且 I>0;当曩=“ 时,因q:( )≤0,则可令 = 一g ( )一A,使得式(3)~(8)成立.综上所述, 可以满足KKT条件(3)~(9).证毕. 由理想解的取值可知,当i∈, ,a ≤1 或i∈12, 口 ≥ 时,理想解 : .上述变量取到盒约束的 下限且使得9 ( )最小,这些变量的取值已经相对 固定,无改进的必要.所以,下面我们不再考虑这些 变量,但为叙述简便,在讨论下述问题(P。)时,仍将 变量个数设为n. arinf(x)=∑qi( )=∑c ( 一ai)。, s.t.∑ ≤ , Z≤ ≤U,C ≠0,i∈, u , 其中, ={i I c >0,8 >f ,1≤i≤n{,, :{i I c。<0, ,l≤ ≤凡_},且, U12={l,2,…,n}. 问题(P )的理想解为 一 fa ,f <a <“ ,i∈,:, 【 ,i∈{口 ≥“ ,i∈,:}u, . 由定理1知,若 满足线性约束条件,则 为 最优解.以下考虑当理想解不满足线性约束时,如何 改进 ,从而得到最优解. 当∑i> 时,理想解 不满足线性约束,如 果让每个变量都变小或保持当前的取值 ,那么 ∑ 将变小,直到满足线性约束.令 为通过上述 方法找到的问题(P )的局部最优解,则一定有f ≤ ≤墨.令 = 一∑弓十互,若取 =y ,则有 J 1 Xi+∑弓=y +∑亏=y一∑ +互+∑弓= .该式表示当其他分量不改变时,对第i个变量,只 需从互减小到y ,就可以满足线性约束条件(1). 但如果同时减少m个变量,则显然每个变量不必减 小到 ,就可使∑ ≤y成立,所以 是第i个变 量取值的下限,从而有 ≥ .但由于盒约束z ≤ ≤“ ,有 I>1 .所以变量 的最优值的取值范围 为[ ,互],其中 =max{ ,f }. 定理2对于问题(P ),设 是(P。)的最优 解,贝0当C >0时,若 ∈[ , ],有q ( )≤ q ( )≤ ( );当C <0时,若 E[y , ],则 390 上海大学学报(自然科学版) 第16卷 有q;(y )l>q ( )l>q ( ),且q ( )<0. 证明当c。>0时,q:( )=2c ( 一口 )为单调 一0 )≤ q ( )为单调递减函数,则有9 ( 。 )≥q ( )= q (M ),故当Z < ≤“ 时, =0.因为 为最优 递增函数,则有2c (y 一n )≤2c ( 解,所以 ≥0.由KKT条件(3)知,g ( )+A+ 2c (互一0 ).而 q:(互)=2c (互~n )= r0, Z <0 < ,i∈,1, 【2c ( 一r上 )≤0, n ≥M ,i∈,1, 即当i∈, , ∈[ ,曩],有q ( )≤g ( )≤ q:( )≤0. 当c <0时,q:( )=2c ( 一n )为单调递减函 数,即当i∈I2, ∈[7 , ]时,有q:( i)≥ q:( )≥q:(互),且q ( )=2c (II, 一0 )< 2ci ) 一li)<0. 定理3对问题(P ),设 是(P。)的理想解, 是问题(P )的最优解,A, (1≤i≤n)为相对于 的拉格朗日系数.若存在i∈, ,使得第i个变量的 最优解满足f < <“ ,当 ≠ 时,如果有q ( )≤ q ( ),则取 = ,可满足拉格朗日系数 ≥0. 证明因为 是问题(P )的最优解,且存在i∈ ,,满足2 <Xi <M ,则为满足KKT条件,令 =∞ =0, 且有g ( )+A:0.又因为 ≤ ≤xi,从而由定理 2知,A=一q ( )≥0,且A<一q:(2 ). 对于 ≠ ,有弓≠ ,从而 =0.为满足KKT条 件(3),应有 ( )+A+ =0.若取 =弓,则由 q (弓)≤q:( )得, :一(q ( )+A)= 一(q ( )一q:( ))≥0.证毕. 定理4对问题(P ),设 是(P )的理想解, 是问题(P。)的最优解,A,∞ (1≤i≤n)为相对于 的拉格朗日系数.若存在i∈12,使得第i个变量的 最优解 满足z < ≤u ,则拉格朗日系数A满足 A≤一q (互)=一2c (“ 一口 ).若存在 (弓)≤ q (互),令 = ,可满足拉格朗日系数 ≥0. 证明对问题(P ),当C <0时,有 =u。.而 =0.从而可得A≤一q:( )≤一q:(五). 由理想解的取值知 ≠z ,所以 ,=0.为满足 KKT条件(3),应有q;( )+A+(cJ =0.若取 , = 弓,则由q ( )≤q:(互),可得 =一(q ( )+ A)≥一(q;( )一q;( )>10.证毕. 由定理3知,当i∈, , 的最优值的取值范围 为[ ,曩],有q:(y )≤q (Xi )≤q:( ).如果 ≠z 或 =f , ≠f ,则一定有A≤一q:(y ).当 i∈,2, 的最优解的取值范围为[y ,xi],由定理4 知,A≤一q ( ).所以这两个定理给出了A的取值 范围. 定理5若存在i∈, ,有一q ( )<A,其中A 为最优解对应的拉格朗日系数,为满足KKT条件, 则第i个变量的最优解为 = :z . 证明若 ≠y ,则有 >Z ,从而有 =0. 若 =M ,由KKT条件(3)知,q ( )十A+ =0. 可得 =一q:( )一A<一q (y )一A<0,与KKT 条件矛盾.若Z < 。 < ,则有 =∞ =0,则由KKT 条件(3)知,q:( )+A=0.可得A=一q:( )< 一g ( ),这与题意矛盾. 若 = ≠f ,则有 =(cJ。=0,则由KKT条件 (3)知,q ( )+A:0,可得A=一g:( )< 一q:(y ),与KKT条件矛盾.若 =y :f ,则有 ∞ =0,则由KKT条件(3)知,q ( )+A+ =0.可 得z, =q ( )+A=q:( )+A>0. 综上所述,只有当 = =f 时,才能满足 KKT条件.证毕. 定理6若存在i∈12,有一q:( )<A,其中A 为最优解对应的拉格朗日系数,为满足KKT条件, 则第i个变量的最优解为 i = i=fi. 证明仿照定理5. 定理7 若存在 i=z ,且q:(7 )≥0,则取 第4期 任燕,等:可分离的二次背包问题的一种直接算法 391 = ,可满足 I>0. 证明若取 :f ,可令∞ =0,对于任意非负 的拉格朗日系数A≥0.为满足KKT条件(3), q ( )+A一 =0,所以有 =q ( )+A>10. 定理8 假定 =( , ,…, )是问题 (P,)的最优解,若存在i≠ ,1≤i, ≤凡,满足f < <u ,Z < f < ,,则有 c ( 一 )= ( 一aj). 证明 由于 是问题(P.)的最优解,且满足 KKT条件,从而得 =09 = ,:OJj=0.由2c ( 一 0 )+A=0,2ci(Xj 一 )+A=0,所以有 c ( 一0 )= ( 一aj). 证毕. 本研究将最优解 ,i∈,满足f < <u 的指 标集合记为, ,并记 = 一∑ .由定理6知, 对任意的i, ∈, ,有c ( 一口 ):cj(Xj 一aj).可得 c=J(、x 一aj)+0 .若∑ =y 成立,则问题 (P )的线性约束被满足,即 i el' \Ci J 一 )+。 卜 , 可得 2求解二次背包问题的算法 2.1算法思想 算法的基本思想是通过调节A的取值范围,在 寻求 的同时,逐步确定各个变量的最优取值.由定 理3,当i∈, 时,可以通过一q:( )来限定A的上 限.由定理4知,当i∈12时,可以通过一q ( )来限 定A的上限.找到一q ( ),i∈,。和一q ( ),i∈12 中最小的一个值,记为A㈩,并将满足A 的指标记 人集合,J。.先限定0≤A≤A(11,若存在g ( )≤ 一A…,则令xj = ,将指标 记人集合 ,然后利 用定理8和线性约束条件求得,_ 中变量的值.若 求出的解对应的拉格朗日系数小于等于A…,则最 优解即为所求的值.若求得解对应的拉格朗日系数 大于给定的A…,则由定理5和定理6知,对 中的 指标对应的变量的最优解应取其下界,将此变量删 除,重新计算 ,i∈,,然后重复上述过程,直至找到 最优解. 应该注意的是,当求得解对应的拉格朗日系数大 于Afl1时,且 。中的元素不止一个时,应当取 =f等  , 其中 为满足q ( )=max{g (yf)}的指标,将k从 ,,中删除.下面就问题(P )给出具体的算法. 步0:令J『={1,2,…, },计算 l , ≤l ,C >0, 0 ,l <r上 < ,c >0, u , 0 ≥u ,C >0, ,c <0, 。 ≥ ,c <0. 步1:若∑互≤’,,则 为最优解,停止.否则 进入步2. 步2:对于1≤i≤凡,若存在互=f ,令 =Z , ,=八{i}, = —f . 步3:L= ,U=(2j. 步4:若,一L= ,则对i∈,, =f 为最优解, 停止.若,一,J≠ ,令,=,一,J,进入步5. 步5:对于i E,,计算 = 一∑互+互,若对 E l 任意的i∈,,有 = ,则最优解为 fff, i∈L, =? 【 , i∈,, 停止.否则进入步6. 步6:对于i∈,,令y =max{ ,f },记W= tjl <0, = ,q ( )>10, ∈It,若W=(2j,贝4进 入步7;若 ≠ ,则令 =f ,L=L U{k}, = 一 ,返回步4(其中 为满足q (瓦)=m a x{q ( ) 的指标). 步7:对于i∈,,当c >0时,令A =一q (y ), 当c <0时,令A =一q:( ).取A 中最小值记为 A(1),并记Ll={iI A =A(1)}. 步8:对于每一个 ∈,,若g ( )≤一A【I),则 392 上海大学学报(自然科学版) 第16卷 令 =瓦,U=UU . 步9:若y一∑弓<0,则令 =lk(其中 为 满足g ( ) { ( )}的指标),L=,J u{ }, {【 i, i∈U, , ∈,一 由算法可知,本研究是通过调节拉格朗日系数 A的范围来找到问题(P.)的最优解.由步7,8,9,11 y=y—f ,返回步4;若 一∑ ≥0,且,一 = , 则最优解为 r Z , ∈L, =J 【互, i∈U, 停止.若,一 ≠ ,且 一∑写≥0,则进入步10. 步10:对于任意的 ∈,一 ,有 一∑互一∑口 ■囊_’ 并计算A =一2c ( 一n ),i∈,一 . 步11:若A >A㈩,则X,k =Z (其中 为满足 g ( )=m axt q ( )}的指标),L=L U{ }, .一 ,返回步4;若A ≤A ,则最优解为 rf , i∈L, {I 互, i∈U, 【 , i∈,一 , 停止. 步0和步1是初始化过程,求得理想解并判断 这个理想解是否是原问题的最优解;步2将问题 (P )转化为问题(P );步3和步4是判断算法是否 向下继续的条件;步5和步7先确定拉格朗日系数 的一个上限;步6依据定理7确定某些分量的最优 取值,并记人集合,J,返回到步4;步8是在步7已确 定拉格朗日系数A的一个取值范围的基础上,由 KKT条件确定某些分量的值,并将其记人集合 ;步 9是判断步7确定的拉格朗日系数A的取值范围是 否合适;步l0是运用定理8来计算未确定值的分量 的值,并计算相应的拉格朗日系数A ;步11表明,如 果计算的A 大于步6所确定的拉格朗日系数A的 上限,则 =f (其中 为满足q ( )= m axt g ( )}的指标),L= u{ }, —f ,返回 .步4;若A 在限定的范围内,则最优解为 知,最多只需对拉格朗日系数A的范围进行n次调 节,其中n为原问题中变量的个数.对于每个变量, 只需要计算 ,q:( )和q:( ).那么,此算法的 计算复杂度为0(n),其中n为变量的个数,这比经 典算法或其他方法有效.本工作主要讨论对连续的 可分离的二次背包问题的求解算法.对于可分离的 二次整数背包问题,可以通过将二次整数规划问题 松弛化,转化为本工作中讨论的问题,找到连续问题 的最优解;然后利用其他方法(例如分支定界算法) 进一步求解整数问题. 例1 arin )=( 】一2) +2(x2—1) +( 3—3) 一 2( 4+1) 一3( 5+1) , S.t. 1+ 2+…+ 5≤8, 0≤ 1≤3,0≤ 2≤3,0≤ 3≤4, 0≤ 4≤2,0≤ ≤2, 计算结果如表1所示.表中, 为循环次数, 为理 想解, 为算法中步6确定的集合,A…为算法中步 7确定的A的上限,A 为算法中步lO确定的拉格朗 日系数, 为问题的最优解. 表1例1的计算结果 Table 1 Result of the ex ̄ple 1 A(1) A A ≤A(1) 1(2,1,3,2,2) 4 1.6 是 (1.2,0.6,2.2,2,2) 经过KKT条件验证, =(1.2,0.6,2.2,2,2) 为例1的一个局部最优解,最优值为一43.4.由 Matlab软件求解得到的最优解为 =(0,0.666 7, 3.333 3,2.000 0,2.000 0),最优值为一40.7. 例2 rain )=3( 】一2) +3( 2—2)。+4(x3—3) 一 ( 4+1) 一2(x5+1) 一( 6+2) , s.t. l+ 2+…+ 6≤13, 0≤ l≤3,0≤ 2≤4,0≤ 3≤3, 0≤ 4≤2,0≤ 5≤3,0≤ 6≤4, 计算结果如表2所示. 第4期 任燕,等:可分离的二次背包问题的一种直接算法 393 表2例2的计算结果 例3 Table 2 Result of the example 2 min ) =x1—2) +2( 2—1) +( 3—3) + k W A(1)A A ≤A(1) ( 4—4) +3( 5—1) 一2(x6+1) 一( 7—1) 一 3 一( 9+2) 一2(xlo+1) , S.t. l+ 2+…+ lo≤15, 经过KKT条件验证, =(1.64,1.64,2.72,0, 0≤ l≤2,0≤ 2≤3,0≤X3≤4, 3,4)为例2的一个局部最优解,最优值为一67.9.由 0≤ 4≤3,0≤ 5≤2,0≤ 6≤3,0≤ 7≤4, Matlab软件求解得到的最优解为 =(1.5,1.5,3, 0≤ 8≤3,0≤ 9≤1,0≤ lo≤2, 0,3,4),最优值为一67.5. 计算结果如表3所示. 表3例3的计算结果 Table 3 Result of the example 3 经过KKT条件验证, =(1.65,0.83,2.65,3, knapsack problem with series parallel support[J]. 0.92,3,0,0,1,2)为例3的一个局部最优解,最优值 Operations Research Letters,2002,30(3):159—166. 为一58.7;由Matlab软件求解得到的最优解为 = [6] CAPRARA A,PISINGER D,TOTH P.Exact solution of (1.6,0.8,3.6,3,0,3,0,0,1,2),最优值为一55.4. the quadratic knapsack problem[J].Informs Journal on 由上述3个例题知,通过此算法得到的最优值 Computing,1999,1l:125—137. 好于采用Matlab软件运用分支定界算法得到的最 [7] BRETFHAUER K M,SHETFY B.The nonlinear knapsack problem—algorithms and applications[J].European 优值. Journal of Operation Research,2002,138(3):459472. [8] BRETFHAUER K M。SHETTY B,SYAM S.A branch and 参考文献: bound algorithm for integer quadratic knapsack problems [J].ORSA Journal on Computing,1995,7(1):109一 MARKOWITZE H M.Porfolio selection: effclent l18. diversification of investment[M].New York:Wiley, [9] PARDALS P M,KOVOOR N.An algorithm for a singly 1959:129—188. constained class of quadratic programs subject to upper [2] BERNHARD R H.Mathematical programming models for and lower bounds[J].Mathematical Programming, captila budgeting--a survey generalization and critique 1990,46:32l一328. [J].Journals of Financial Quarterly Analysis,1969,4: [10] 华中生,张斌.求解可分离连续凸二次背包问题的直 ll1.158. 接算法[J].系统工程与电子技术,2005,27(2):331— [3] MODER J J.PHILIPS C R.Project management with 334. CPM and PERT『M1.New York:Rheinhold,1964: [11] JORE J M.STEPHEN A V.On the solution of concave l19—135. knapsack problems[J].Mathematical Programming, [4] KELLEVER H,PFERSCHY U,PISINGER D.Knapsack 1991,49:397-411. problems[M].Berlin:Springer—Verlag,2004:34—88. (编辑:孟庆勋) [5] RADERJI D J,WOEIGINER G J.The quadratic 0—1