<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article  PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article"><front><journal-meta><journal-id journal-id-type="publisher-id">AJOR</journal-id><journal-title-group><journal-title>American Journal of Operations Research</journal-title></journal-title-group><issn pub-type="epub">2160-8830</issn><publisher><publisher-name>Scientific Research Publishing</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.4236/ajor.2018.84015</article-id><article-id pub-id-type="publisher-id">AJOR-85777</article-id><article-categories><subj-group subj-group-type="heading"><subject>Articles</subject></subj-group><subj-group subj-group-type="Discipline-v2"><subject>Physics&amp;Mathematics</subject></subj-group></article-categories><title-group><article-title>
 
 
  A Class of Continuous Separable Nonlinear Multidimensional Knapsack Problems
 
</article-title></title-group><contrib-group><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Bin</surname><given-names>Zhang</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref><xref ref-type="corresp" rid="cor1"><sup>*</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Zhe</surname><given-names>Lin</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Yu</surname><given-names>Wang</given-names></name><xref ref-type="aff" rid="aff2"><sup>2</sup></xref></contrib></contrib-group><aff id="aff2"><addr-line>School of Economic and Business Administration, Chongqing University, Chongqing, China</addr-line></aff><aff id="aff1"><addr-line>Lingnan College, Sun Yat-sen University, Guangzhou, China</addr-line></aff><author-notes><corresp id="cor1">* E-mail:<email>zhangb38@mail.sysu.edu.cn(BZ)</email>;</corresp></author-notes><pub-date pub-type="epub"><day>28</day><month>06</month><year>2018</year></pub-date><volume>08</volume><issue>04</issue><fpage>266</fpage><lpage>280</lpage><history><date date-type="received"><day>11,</day>	<month>May</month>	<year>2018</year></date><date date-type="rev-recd"><day>29,</day>	<month>June</month>	<year>2018</year>	</date><date date-type="accepted"><day>2,</day>	<month>July</month>	<year>2018</year></date></history><permissions><copyright-statement>&#169; Copyright  2014 by authors and Scientific Research Publishing Inc. </copyright-statement><copyright-year>2014</copyright-year><license><license-p>This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/</license-p></license></permissions><abstract><p>
 
 
  The nonlinear multidimensional knapsack problem is defined as the minimization of a convex function with multiple linear constraints. The methods developed for nonlinear multidimensional programming problems are often applied to solve the nonlinear multidimensional knapsack problems, but they are inefficient or limited since most of them do not exploit the characteristics of the knapsack problems. In this paper, by establishing structural properties of the continuous separable nonlinear multidimensional knapsack problem, we develop a multi-tier binary solution method for solving the continuous nonlinear multidimensional knapsack problems with general structure. The computational complexity is polynomial in the number of variables. We presented two examples to illustrate the general application of our method and we used statistical results to show the effectiveness of our method.
 
</p></abstract><kwd-group><kwd>Nonlinear Programming</kwd><kwd> Convex Programming</kwd><kwd> Multidimensional Knapsack</kwd><kwd> Separable Knapsack</kwd><kwd> Lagrangian Relaxation</kwd></kwd-group></article-meta></front><body><sec id="s1"><title>1. Introduction</title><p>The nonlinear multidimensional knapsack problem is defined as minimizing a convex function with multiple linear constraints. The nonlinear knapsack problem is a class of nonlinear programming, and some methods designed for nonlinear programming can be applied for solving the nonlinear multidimensional knapsack problems. The general nonlinear programming problems have been intensively studied in the last decades, and some different methods have been developed, such as Newton method [<xref ref-type="bibr" rid="scirp.85777-ref1">1</xref>] [<xref ref-type="bibr" rid="scirp.85777-ref2">2</xref>] [<xref ref-type="bibr" rid="scirp.85777-ref3">3</xref>], branch and bound method [<xref ref-type="bibr" rid="scirp.85777-ref4">4</xref>] [<xref ref-type="bibr" rid="scirp.85777-ref5">5</xref>], interior point method [<xref ref-type="bibr" rid="scirp.85777-ref6">6</xref>] [<xref ref-type="bibr" rid="scirp.85777-ref7">7</xref>], sequential quadratic programming method [<xref ref-type="bibr" rid="scirp.85777-ref8">8</xref>] [<xref ref-type="bibr" rid="scirp.85777-ref9">9</xref>] and the filter method [<xref ref-type="bibr" rid="scirp.85777-ref10">10</xref>] [<xref ref-type="bibr" rid="scirp.85777-ref11">11</xref>]. These methods are designed for nonlinear programming problems, and some of them are inefficient or limited for solving the nonlinear knapsack problems since they do not consider the characteristics of the knapsack problems.</p><p>Generally, it is much faster and more reliable to solve knapsack problems with specialized methods than with standard methods [<xref ref-type="bibr" rid="scirp.85777-ref12">12</xref>]. Many researchers studied the solution methods for the nonlinear knapsack problems based on the specialized knapsack structures. Most of the research studied the problems with single constraint. Two basic specialized methods are mainly applied for solving the single-constraint nonlinear knapsack problem. One is the multiplier search method [<xref ref-type="bibr" rid="scirp.85777-ref13">13</xref>], and another is the pegging method [<xref ref-type="bibr" rid="scirp.85777-ref14">14</xref>] [<xref ref-type="bibr" rid="scirp.85777-ref15">15</xref>]. Recently, some new methods are proposed for efficiently solving the single-constraint nonlinear knapsack problem. Zhang and Hua developed a united method for solving a class of continuous separable nonlinear knapsack problems [<xref ref-type="bibr" rid="scirp.85777-ref16">16</xref>]. Kiwiel developed the breakpoint searching method for the continuous quadratic knapsack problem [<xref ref-type="bibr" rid="scirp.85777-ref17">17</xref>]. Sharkey et al. studied a general class of nonlinear non-separable continuous knapsack problem [<xref ref-type="bibr" rid="scirp.85777-ref18">18</xref>].</p><p>Most research of nonlinear knapsack problems studied the one-dimensional problems with continuous or integer variables, and the proposed methods cannot be directly extended for solving multi-dimensional problems. Some researchers attempted to solve multi-dimensional problems with integer-valued variables. Morin and Marsten firstly studied the nonlinear multidimensional knapsack problems and developed the imbedded state space approach [<xref ref-type="bibr" rid="scirp.85777-ref19">19</xref>]. Some researchers investigate the efficiency of other methods, such as smart greedy method [<xref ref-type="bibr" rid="scirp.85777-ref20">20</xref>], cut method [<xref ref-type="bibr" rid="scirp.85777-ref21">21</xref>] [<xref ref-type="bibr" rid="scirp.85777-ref22">22</xref>], branch and bound method [<xref ref-type="bibr" rid="scirp.85777-ref23">23</xref>] and branch and cut method [<xref ref-type="bibr" rid="scirp.85777-ref24">24</xref>]. Other research studied different applications of multidimensional knapsack, e.g., multi-product newsvendor problems with multiple constraints [<xref ref-type="bibr" rid="scirp.85777-ref10">10</xref>] [<xref ref-type="bibr" rid="scirp.85777-ref25">25</xref>] [<xref ref-type="bibr" rid="scirp.85777-ref26">26</xref>] [<xref ref-type="bibr" rid="scirp.85777-ref27">27</xref>]. The continuous separable nonlinear multidimensional knapsack problems with general structure have not been well studied due to its complexity, and the specialized methods are very limited.</p><p>This paper establishes some structural properties of the continuous separable nonlinear multidimensional knapsack problem, and develops a multi-tier binary solution method for solving a class of continuous nonlinear multidimensional knapsack problems with general structure. The computational complexity is polynomial in the number of variables. We presented two examples to illustrate the application of our method, and the statistical study with the randomly generated instances for different problem sizes are reported to show the effectiveness of our method.</p><p>The paper is organized as follows. In Section 2, the nonlinear multidimensional knapsack problem is described. Section 3 studies the structural properties of the problem, and develops the algorithm. Section 4 presents the illustrative examples and the statistical results. Finally, the concluding remarks are given in Section 5. All proofs are listed in Appendix.</p></sec><sec id="s2"><title>2. Problem Formulation</title><p>The continuous separable nonlinear multidimensional knapsack problem studied in this paper is as follows (denoted as problem P):</p><p>Min f ( x ) = ∑ i = 1 N f i ( x i ) , (1)</p><p>Subject to</p><p>∑ i = 1 N c i , j x i ≤ C j , j = 1 , ⋯ , M , (2)</p><p>l i ≤ x i ≤ u i , i = 1 , ⋯ , N . (3)</p><p>The notation used in this paper is listed in <xref ref-type="table" rid="table1">Table 1</xref>.</p><p>In problem P, all objective functions f i ( x i ) , i = 1 , ⋯ , n are convex and differentiable, the unit resource coefficient c i , j &gt; 0 for all i = 1 , ⋯ , N , j = 1 , ⋯ , M , the resource constraints C j &gt; 0 for all j = 1 , ⋯ , M , and the lower and upper bounds satisfy 0 ≤ l i &lt; u i for all i = 1 , ⋯ , N .</p><p>Since the objective functions and the feasible domain in problem P are all convex, the optimality condition for problem P can be characterized using KKT conditions. Let λ = ( λ 1 , ⋯ , λ M ) , λ j ≥ 0 , j = 1 , ⋯ , M , be the Lagrange multiplier vector for the constraints given in Equation (2), and w = ( w 1 , ⋯ , w N ) , w i ≥ 0 , i = 1 , ⋯ , N , v = ( v 1 , ⋯ , v N ) , v i ≥ 0 , i = 1 , ⋯ , N be the Lagrange multiplier vectors for the constraints in Equation (3). Thus, the Lagrange function for problem P can be written as:</p><p>L ( x , λ , w , ν ) = ∑ i = 1 N f i ( x i ) − ∑ j = 1 M λ j ( C j − ∑ i = 1 N c i , j x i ) − ∑ i = 1 N w i ( x i − l i ) + ∑ i = 1 N v i ( x i − u i ) . (4)</p><table-wrap id="table1" ><label><xref ref-type="table" rid="table1">Table 1</xref></label><caption><title> Notation</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Notations</th><th align="center" valign="middle" >Definitions</th></tr></thead><tr><td align="center" valign="middle" >N</td><td align="center" valign="middle" >total number of variables</td></tr><tr><td align="center" valign="middle" >M</td><td align="center" valign="middle" >total amount of resource</td></tr><tr><td align="center" valign="middle" >i</td><td align="center" valign="middle" >variable index</td></tr><tr><td align="center" valign="middle" >j</td><td align="center" valign="middle" >resource index</td></tr><tr><td align="center" valign="middle" >X</td><td align="center" valign="middle" >decision variable vector x = ( x 1 , ⋯ , x N )</td></tr><tr><td align="center" valign="middle" >f i ( x i )</td><td align="center" valign="middle" >the objective function related to variable x i</td></tr><tr><td align="center" valign="middle" >g i ( x i )</td><td align="center" valign="middle" >the derivative function of f i ( x i ) , g i ( x i ) = d f i ( x i ) / d x i</td></tr><tr><td align="center" valign="middle" >k i ( x i )</td><td align="center" valign="middle" >the derivative function of g i ( x i ) , k i ( x i ) = d g i ( x i ) / d x i</td></tr><tr><td align="center" valign="middle" >h i ( ⋅ )</td><td align="center" valign="middle" >the inverse function of g i ( x i ) , h i ( ⋅ ) = g i − 1 ( ⋅ )</td></tr><tr><td align="center" valign="middle" >c i , j</td><td align="center" valign="middle" >coefficient of variable i of resource j</td></tr><tr><td align="center" valign="middle" >C j</td><td align="center" valign="middle" >available amount of resource j</td></tr><tr><td align="center" valign="middle" >λ</td><td align="center" valign="middle" >the Lagrange multiplier vector for the resource constraints</td></tr><tr><td align="center" valign="middle" >w</td><td align="center" valign="middle" >the Lagrange multiplier vector for the variable constraints</td></tr><tr><td align="center" valign="middle" >v</td><td align="center" valign="middle" >the Lagrange multiplier vector for the variable constraints</td></tr><tr><td align="center" valign="middle" >f ( ⋅ )</td><td align="center" valign="middle" >The objective function vector</td></tr></tbody></table></table-wrap><p>Let g i ( x i ) = d f i ( x i ) / d x i , i = 1 , ⋯ , N . The KKT conditions for problem P can be summarized as the following proposition.</p><p>Proposition 1: The KKT conditions for problem P are:</p><p>g i ( x i ) + ∑ j = 1 M λ j c i , j − w i + v i = 0 ,   i = 1 , ⋯ , N , (5)</p><p>∑ i = 1 N w i ( x i − l i ) + ∑ i = 1 N v i ( x i − u i ) = 0 , (6)</p><p>λ j ( ∑ i = 1 N c i , j x i − C j ) = 0 , j = 1 , ⋯ , M . (7)</p><p>Since f i ( x i ) is convex in x i , g i ( x i ) is an increasing function of x i . Let x &#175; i be the point that satisfies g i ( x i ) = 0 if g i ( 0 ) ≤ 0 and lim x i → + ∞ g i ( x i ) ≥ 0 . If g i ( 0 ) &gt; 0 , we let x &#175; i = 0 . If lim x i → + ∞ g i ( x i ) &lt; 0 , we set x &#175; i = + ∞ . Then x &#175; i is the optimal solution to the objective function in Equation (1) without any constraint. We summarize it as</p><p>x &#175; i = arg min { f i ( x i ) , 0 ≤ x i ≤ + ∞ } = { 0 ,       if   g i ( 0 ) &gt; 0 , arg { x i | g i ( x i ) = 0 } , if   g i ( 0 ) ≤ 0 and lim x i → + ∞ g i ( x i ) ≥ 0 , + ∞ ,   if   lim x i → + ∞ g i ( x i ) &lt; 0. (8)</p></sec><sec id="s3"><title>3. Structural Properties and Solution Method</title><p>In this section, we first investigate the structural properties of the optimal solution to problem P. Then we develop a solution method based on the structural properties for solving problem P.</p><sec id="s3_1"><title>3.1. Structural Properties</title><p>We denote by problem PR the knapsack relaxation problem from problem P, in which the constraints in Equation (2) are relaxed. This implies that we do not consider Equation (2) in problem PR. By analyzing the solution to problem PR, we can find the way to construct the solution to problem P. We let x ^ i ( i = 1 , ⋯ , N ) be the optimal solution to problem PR, then x ^ i ( i = 1 , ⋯ , N ) has the following property.</p><p>Proposition 2: The optimal solution to problem PR is x ^ i = min { max { x &#175; i , l i } , u i } .</p><p>If ∑ i = 1 N c i , j x ^ i ≤ C j holds for some j = 1 , ⋯ , M , then the corresponding constraints in problem P are inactive, which can be removed from problem P. In the following, without loss of generality, we assume that ∑ i = 1 N c i , j x ^ i &gt; C j for all j = 1 , ⋯ , M . The KKT conditions in Equation (7) are met at either λ j = 0 , or ∑ i = 1 N c i , j x i = C j . The condition λ j = 0 implies that there is enough resource j at the optimal solution, and hence the j-th constraint is inactive. ∑ i = 1 N c i , j x i = C j</p><p>means that the j-th constraint is active, and knapsack space of the j-th constraint must be fully utilized at the optimal solution.</p><p>We denote by x * the optimal solution to problem P and λ * the corresponding Lagrange multiplier vector. Let x i ( λ ) be a solution of the KKT conditions in Equation (5) and Equation (6). We denote by h i ( ⋅ ) = g i − 1 ( ⋅ ) , then we have the following proposition.</p><p>Proposition 3. (a) x i ( λ ) = min { max { h i ( − ∑ j = 1 M λ j c i , j ) , l i } , u i } , i = 1 , ⋯ , N .</p><p>(b) If ( x ( λ ) , λ ) satisfies λ j = 0 or ∑ i = 1 N c i , j x i = C j , j = 1 , ⋯ , M , then we have x * = x ( λ ) .</p><p>For any given λ M ≥ 0 , we let x ( λ M ) and λ 1 , ⋯ , λ M − 1 be the optimal so-</p><p>lution of Equations (5) and (6) and λ j ( ∑ i = 1 N c i , j x i − C j ) = 0 , j = 1 , ⋯ , M − 1 . For</p><p>ease of exposition, we denote problem P as P ( f , M ) , where f = ( f i , ⋯ , f N ) is the objective function vector. Problem P ( f ^ ( λ M ) , M − 1 ) with f ^ i ( λ M ) = f i + λ M c i , M x i , i = 1 , ⋯ , N , is an M − 1 constraint problem with the objective function f ^ i ( λ M ) and the first M − 1 knapsack constraints of problem P.</p><p>By analyzing the structural properties of x ( λ M ) and P ( f ^ ( λ M ) , M − 1 ) , we can prove the following proposition.</p><p>Proposition 4. (a) If ( x ( λ M ) , λ M ) satisfies λ M = 0 or ∑ i = 1 N c i , M x i ( λ M ) = C M , then we have x * = x ( λ M ) .</p><p>(b) x ( λ M ) is the optimal solution to problem P ( f ^ ( λ M ) , M − 1 ) with f ^ i ( λ M ) = f i + λ M c i , M x i , i = 1 , ⋯ , N .</p><p>From Proposition 4(a), we know that the optimal solution to problem P ( f ^ ( λ M ) , M − 1 ) is obtained in two possible cases: 1) λ M = 0 , which means</p><p>that the constraint ∑ i = 1 N c i , M x i ( λ M ) ≤ C M is not binding and it can be removed</p><p>from problem P ( f , M ) . Therefore, x * can be obtained by solving problem P ( f , M − 1 ) , which has the same structure as problem P ( f , M ) ; 2)</p><p>∑ i = 1 N c i , M x i ( λ M ) = C M , which implies that ∑ i = 1 N c i , M x i ( λ M ) ≤ C M is an active constraint, and the optimal solution must be obtained at ∑ i = 1 N c i , M x i ( λ M ) = C M with λ M &gt; 0 .</p><p>Since problem P ( f , M ) can be solved by solving problem P ( f , M − 1 ) in the case of λ M = 0 . In the following, we study the case of λ M &gt; 0 . Proposition 4(b) indicates that problem P ( f ^ ( λ M ) , M − 1 ) determines the optimal values of x ( λ M ) and λ j , j = 1 , ⋯ , M − 1 . For any λ M &gt; 0 , the M − 1 resource constraints could be active or inactive, and the N decision variables could take bound values or non-bound values.</p><p>If λ j &gt; 0 , j = 1 , ⋯ , M − 1 , constraint j will be active, thus we denote by J ( λ M ) = { j | λ j &gt; 0 , j = 1 , ⋯ , M } the active constraint set for the given λ M . Note that J ( λ M ) includes at least one active constraint for the case of λ M &gt; 0 .</p><p>From Equation (5), we know x i ( λ M ) &gt; l i if − g i ( l i ) − ∑ j = 1 M λ j c i , j &gt; 0 , i = 1 , ⋯ , N , and x i ( λ M ) &lt; u i if − g i ( u i ) − ∑ j = 1 M λ j c i , j &gt; 0 , i = 1 , ⋯ , N . For the given λ M , we define the non-bound variable set I ( λ M ) , and lower and upper bound variable sets I L ( λ M ) and I U ( λ M ) as</p><p>I ( λ M ) = { i | g i ( l i ) &lt; − ∑ j = 1 M λ j c i , j &lt; g i ( u i ) , i = 1 , ⋯ , N } , (9)</p><p>I L ( λ M ) = { i | − ∑ j = 1 M λ j c i , j ≤ g i ( l i ) , i = 1 , ⋯ , N } , (10)</p><p>I U ( λ M ) = { i | − ∑ j = 1 M λ j c i , j ≥ g i ( u i ) , i = 1 , ⋯ , N } . (11)</p><p>Let m = | J ( λ M ) | , n = | I ( λ M ) | , n L = | I L ( λ M ) | , and n U = | I U ( λ M ) | . For the given λ M &gt; 0 , without changing the orders of indices j and i, we re-index the constraints in the active constraint set J ( λ M ) as j = 1 , ⋯ , m , and we re-index the variables in the non-bound variable set I ( λ M ) as i = 1 , ⋯ , n , and re-index the variables in I L ( λ M ) and I U ( λ M ) as i = 1 , ⋯ , n L , and i = 1 , ⋯ , n U , respectively. As a result, constraint M in the original problem is re-indexed as constraint m, and λ M is also restated as λ m .</p><p>We define G j ( λ , 1 ⋯ , λ m ) ≡ ∑ i = 1 N c i , j x i ( λ ) − C j = 0 , j = 1 , ⋯ , m − 1 , and substitute</p><p>x i ( λ ) = min { max { h i ( − ∑ j = 1 M λ j c i , j ) , l i } , u i }</p><p>into G j ( λ 1 , ⋯ , λ m ) , then we have</p><p>G j ( λ 1 , ⋯ , λ m ) ≡ ∑ i = 1 n c i , j h i ( − ∑ s = 1 m λ s c i , s ) − ( C j − ∑ i = 1 n L c i , j l i − ∑ i = 1 n U c i , j u i ) = 0 , (12)</p><p>Taking the derivative of Equation (12), we get</p><p>d G j ( λ 1 , ⋯ , λ m ) d λ m = − [ ∑ i = 1 n c i , j k i ( x i ( λ 1 , ⋯ , λ m ) ) ∑ s = 1 m d λ s d λ m c i , s ] = − ∑ s = 1 m ∑ i = 1 n c i , j c i , s k i ( x i ( λ 1 , ⋯ , λ m ) ) d λ s d λ m = 0 ,   j = 1 , ⋯ , m − 1 , (13)</p><p>where k i ( x i ) = d g i ( x i ) / d x i .</p><p>Since f i ( x i ) , i = 1 , ⋯ , n are differentiable convex, we know g i ( x i ) is increasing and k i ( x i ( λ 1 , ⋯ , λ m ) ) &gt; 0 . Note that f ^ i ( λ M ) = f i + λ M c i , M x i has the same structure as f i ( x i ) . So we define</p><p>ρ i = 1 k i ( x i ( λ 1 , ⋯ , λ m ) ) &gt; 0 ,</p><p>i = 1 , ⋯ , n , and a j s = ∑ i = 1 n ρ i c i , j c i , s , j , s = 1 , ⋯ , m , then Equation (13) can be rewritten in matrix form:</p><p>( a 11 a 12 ⋯ a 1 m a 21 a 22 ⋯ a 2 m ⋮ ⋮ ⋱ ⋮ a ( m − 1 ) 1 a ( m − 1 ) 2 ⋯ a ( m − 1 ) m ) ( d λ 1 / d λ m ⋮ d λ m − 1 / d λ m 1 ) = ( 0 0 ⋮ 0 ) . (14)</p><p>In order to solve d λ j d λ m , j = 1 , ⋯ , m − 1 , from Equation (14), we further define</p><p>H m = | a 11 a 12 ⋯ a 1 m a 21 a 22 ⋯ a 2 m ⋮ ⋮ ⋱ ⋮ a m 1 a m 2 ⋯ a m m | , (15)</p><p>and denote by H j ( m − 1 ) , j = 1 , ⋯ , m − 1 the m-1 dimensional determinant in which the j column of H m − 1 is replaced by ( a 1 m , a 2 m , ⋯ , a ( m − 1 ) m ) T . We have the following formula from Equation (14) and Equation (15):</p><p>d λ j d λ m = − H j ( m − 1 ) H m − 1 , j = 1 , ⋯ , m − 1 , m &gt; 1 . (16)</p><p>Notice that the above results have similar structures as the results in Zhang [<xref ref-type="bibr" rid="scirp.85777-ref27">27</xref>]. Using the similar way, we can prove that</p><p>d ∑ i = 1 n c i , m x i ( λ m ) d λ m = − ∑ i = 1 n ρ i c i , m ( ∑ j = 1 m − 1 c i , j d λ j d λ m + c i , m ) = − ∑ i = 1 n ρ i c i , m ( − ∑ j = 1 m − 1 c i , j H j ( m − 1 ) H m − 1 + c i , m ) = − H m H m − 1 &lt; 0 . (17)</p><p>Since constraint M in the original problem is re-indexed as constraint m, and λ M is also restated as λ m , then ∑ i = 1 n c i , m x i ( λ m ) is equivalent to ∑ i = 1 N c i , M x i ( λ M ) in problem P with the original index, thus we know that ∑ i = 1 N c i , M x i ( λ M ) is a decreasing in λ M .</p><p>Therefore, there are three possible cases: 1) When λ M = 0 , we get the optimal solution to problem P ( f , M ) by solving problem P ( f , M − 1 ) ; 2) If λ M &gt; 0 and m = 1 , we obtain the optimal solution to problem P ( f , M ) by setting x i ( λ M ) = min { max { h i ( − λ M c i , M ) , l i } , u i } ; 3) When λ M &gt; 0 and m &gt; 1 , we can solve problem P ( f , M ) by studying problem P ( f ^ ( λ M ) , M − 1 ) , with f ^ i ( λ M ) = f i + λ M c i , M x i .</p></sec><sec id="s3_2"><title>3.2. Solution Method</title><p>According to Proposition 2, we can solve x * by searching the optimal value of λ . Before presenting the solution method, we first study the bounds for λ . The lower bound for λ is 0, and the upper bound for λ is given in the following proposition.</p><p>Proposition 5. The upper bound of λ i is max ( 0 , max i = 1 , ⋯ , N { − g i ( l i ) / c i , M } ) .</p><p>From Proposition 4, we get the optimal value of x * if the optimal solution x ( λ M ) to problem P ( f ^ ( λ M ) , M − 1 ) satisfies</p><p>λ M ( ∑ i = 1 N c i , M x i ( λ M ) − C M ) = 0 .</p><p>Since ∑ i = 1 N c i , M x i ( λ M ) is decreasing in λ M , the optimal solution can be found by applying the binary search over [ 0 , max ( 0 , max i = 1 , ⋯ , N { − g i ( l i ) / c i , M } ) ] . Since Problem P ( f ^ ( λ M ) , M − 1 ) has the same structure as problem P ( f , M ) , we can use a multi-tier binary search method to solve problem P. Main steps of the multi-tier binary search method are given in Algorithm 1.</p><p>Algorithm 1: SloveP ( f , M )</p><p>Step 1: If M = 0 , then let x i * = min { max { arg { g i ( x i ) = 0 } , l i } , u i } , stop;</p><p>Step 2: Let λ M L = 0 , λ M U = max ( 0 , max i = 1 , ⋯ , N { − g i ( l i ) / c i , M } ) ;</p><p>Step 3: Let λ M = ( λ M L + λ M U ) / 2 ;</p><p>Step 4: If λ M = 0 , then let x i * = SolveP ( f , M − 1 ) and λ M * = 0 , stop;</p><p>Step 5: If M = 1 , then let x i ( λ M ) = min { max { h i ( − λ M c i , M ) , l i } , u i } ;</p><p>If M &gt; 1 , then let x i ( λ M ) = SolveP ( f ^ ( λ M ) , M − 1 )</p><p>Step 6: If ∑ i = 1 N c i , M x i ( λ M ) &gt; C M , then let λ M L = λ M , go to Step 3;</p><p>If ∑ i = 1 N c i , M x i ( λ M ) &lt; C M , then let λ M U = λ M , go to Step 3;</p><p>Step 7: Let x i * = x i ( λ M ) and λ M * = λ M , stop.</p><p>In the algorithm, we first solve the unconstrained problem with bounded variables (Step 1) to obtain x * . If the constraints are active, we apply the binary search procedure (Step 2 - 7) over interval [ λ M L , λ M U ] to determine λ M * . If either λ M = 0 or ∑ i = 1 N c i , M x i ( λ M ) = C M , the binary search procedure terminates. If ∑ i = 1 N c i , M x i ( λ M ) ≤ C M is not binding, then the iterating process will end in Step 4 with λ M = 0 . Therefore, we can get the optimal solution x i * by solving problem P ( f , M − 1 ) . If the constraint ∑ i = 1 N c i , M x i ( λ M ) ≤ C M is active, the so-</p><p>lution procedure will stop at Step 7 with ∑ i = 1 N c i , M x i ( λ M ) = C M . Step 5 derives</p><p>x i ( λ M ) by solving problem P ( f ^ ( λ M ) , M − 1 ) with f ^ i ( λ M ) = f i + λ M c i , M x i for the given λ M &gt; 0 . If M = 1 , problem P ( f ^ ( λ M ) , M − 1 ) has no knapsack</p><p>constraint, and hence we have x i ( λ M ) = min { max { h i ( − λ M c i , M ) , l i } , u i } . If</p><p>M &gt; 1 , we can solve the problem recursively. Problem P ( f ^ ( λ M ) , M − 1 ) has the same structure as problem P ( f , M ) , and hence the algorithm can call itself recursively to solve the problem P ( f ^ ( λ M ) , M − 1 ) .</p><p>The algorithm is a recursive algorithm with M tiers of binary search loop. The computational complexity of M-tier binary search procedure is O ( ( log 2 ( 1 / ε ) ) M ) , where ε is the error target for the binary search. The computational complexity of the last recursive step is O ( N ) . Therefore, the proposed algorithm has the computational complexity O ( ( log 2 ( 1 / ε ) ) M N ) , which is polynomial in the number of decision variables N.</p></sec></sec><sec id="s4"><title>4. Numerical Study</title><p>The solution method developed in this paper can be used for solving the continuous nonlinear multidimensional knapsack problems with general structure, so many application problems with different objective functions summarized in Zhang and Hua with multiple constraints can be used to show the application of our method [<xref ref-type="bibr" rid="scirp.85777-ref16">16</xref>].</p><p>In our numerical study, we first show the application of our method using two examples: quadratic multidimensional knapsack problem (QMK) and the production planning problem presented in Bretthauer and Shetty [<xref ref-type="bibr" rid="scirp.85777-ref12">12</xref>]. Then we use the statistical study to show the efficiency of our method. All computational experiments are conducted on a laptop (dual processor 2.00 GHz, memory 2.96G) with Matlab R2011a.</p><sec id="s4_1"><title>4.1. The Illustrative Examples</title><p>The first illustrative example is a separable quadratic knapsack problem. We set the objective function as f i ( x i ) = a i ( x i − b i ) 2 , a i &gt; 0 , i = 1 , ⋯ , N . It has two resource constraints: C<sub>1</sub> = 12,000 and C<sub>2</sub> = 10,000. <xref ref-type="table" rid="table2">Table 2</xref> gives the relevant information for this example. x i * is the optimal solution obtained by applying our algorithm. To show the efficiency of our method, we plot the values of λ M L , λ M U and λ M in the iteration process for solving the example in <xref ref-type="fig" rid="fig1">Figure 1</xref>. <xref ref-type="fig" rid="fig1">Figure 1</xref> shows our algorithm can solve the problem within very limited iterations.</p><p>In the second example, we solve the production planning problem in Bretthauer and Shetty [<xref ref-type="bibr" rid="scirp.85777-ref12">12</xref>]. The objective function was set as</p><p>f i ( x i ) = min ∑ i = 1 n ( h i + d i x i + e i x i ) ,</p><p>i = 1 , ⋯ , N . There are three resource constraints: C<sub>1</sub> = 200, C<sub>2</sub> = 300, and C<sub>3</sub> = 500. We use the same parameters used in Bretthauer and Shetty [<xref ref-type="bibr" rid="scirp.85777-ref12">12</xref>]. The relevant</p><table-wrap id="table2" ><label><xref ref-type="table" rid="table2">Table 2</xref></label><caption><title> Parameters and solution for the first example</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >i</th><th align="center" valign="middle" >a<sub>i</sub></th><th align="center" valign="middle" >b<sub>i</sub></th><th align="center" valign="middle" >c<sub>i,</sub><sub>1</sub></th><th align="center" valign="middle" >c<sub>i,2</sub></th><th align="center" valign="middle" >l<sub>i </sub></th><th align="center" valign="middle" >u<sub>i </sub></th><th align="center" valign="middle" >x i * <sub> </sub></th></tr></thead><tr><td align="center" valign="middle" >1</td><td align="center" valign="middle" >12</td><td align="center" valign="middle" >20</td><td align="center" valign="middle" >50</td><td align="center" valign="middle" >100</td><td align="center" valign="middle" >6.7</td><td align="center" valign="middle" >10</td><td align="center" valign="middle" >10.0000</td></tr><tr><td align="center" valign="middle" >2</td><td align="center" valign="middle" >15</td><td align="center" valign="middle" >18</td><td align="center" valign="middle" >50</td><td align="center" valign="middle" >80</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >20</td><td align="center" valign="middle" >13.4020</td></tr><tr><td align="center" valign="middle" >3</td><td align="center" valign="middle" >20</td><td align="center" valign="middle" >8</td><td align="center" valign="middle" >50</td><td align="center" valign="middle" >100</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >30</td><td align="center" valign="middle" >3.6894</td></tr><tr><td align="center" valign="middle" >4</td><td align="center" valign="middle" >10</td><td align="center" valign="middle" >28</td><td align="center" valign="middle" >150</td><td align="center" valign="middle" >100</td><td align="center" valign="middle" >2.5</td><td align="center" valign="middle" >40</td><td align="center" valign="middle" >19.3787</td></tr><tr><td align="center" valign="middle" >5</td><td align="center" valign="middle" >10</td><td align="center" valign="middle" >10</td><td align="center" valign="middle" >100</td><td align="center" valign="middle" >80</td><td align="center" valign="middle" >5</td><td align="center" valign="middle" >5.6</td><td align="center" valign="middle" >5.0000</td></tr><tr><td align="center" valign="middle" >6</td><td align="center" valign="middle" >20</td><td align="center" valign="middle" >30</td><td align="center" valign="middle" >100</td><td align="center" valign="middle" >80</td><td align="center" valign="middle" >3</td><td align="center" valign="middle" >20</td><td align="center" valign="middle" >20.0000</td></tr><tr><td align="center" valign="middle" >7</td><td align="center" valign="middle" >18</td><td align="center" valign="middle" >25</td><td align="center" valign="middle" >100</td><td align="center" valign="middle" >100</td><td align="center" valign="middle" >8</td><td align="center" valign="middle" >25</td><td align="center" valign="middle" >20.2104</td></tr><tr><td align="center" valign="middle" >8</td><td align="center" valign="middle" >15</td><td align="center" valign="middle" >30</td><td align="center" valign="middle" >100</td><td align="center" valign="middle" >88</td><td align="center" valign="middle" >3</td><td align="center" valign="middle" >20</td><td align="center" valign="middle" >20.0000</td></tr><tr><td align="center" valign="middle" >λ *</td><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" >0.0092</td><td align="center" valign="middle" >1.7243</td><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td></tr><tr><td align="center" valign="middle" >f *</td><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" >6795</td></tr></tbody></table></table-wrap><p>information for this example is listed in <xref ref-type="table" rid="table3">Table 3</xref>. x i * is the optimal solution obtained by applying our algorithm.</p></sec><sec id="s4_2"><title>4.2. The Statistical Results</title><p>In this subsection, we present two numerical experiments to show the effectiveness of our method for solving problems with different scale and objective functions. In the first experiment, parameters of the QMK problems are all randomly generated. We use the notation z ~ U ( α , β ) to denote that z is uniformly generated over [ α , β ] . The parameters of QMK instances are generated as follows: a i ~ U ( 1 , 2 ) , b i ~ U ( 5 , 10 ) , c i , j ~ U ( 1 , 10 ) , l i ~ U ( 5 , 15 ) , u i ~ U ( 20 , 30 ) and C j ~ N &#215; U ( 100000 , 200000 ) , for i = 1 , ⋯ , N ; j = 1 , ⋯ , M .</p><p>In this experiment, we set problems with different sizes, respectively with M = 4 and N = 10, M = 2 and N = 100, M = 3 and N = 100, M = 2 and N = 1000. For each problem size, 50 test instances are randomly generated. The statistical results on number of iterations and computation time (in seconds) are reported in <xref ref-type="table" rid="table4">Table 4</xref>.</p><p>In the Second experiment, we solve the production planning problem with randomly generated parameters. The parameters of the instances are generated as follows: d i ~ U ( 30 , 50 ) , e i ~ U ( 100 , 200 ) , c i , j ~ U ( 10 , 50 ) , l i ~ U ( 1 , 5 ) , u i ~ U ( 20 , 30 ) and C j ~ N &#215; U ( 100000 , 200000 ) , for i = 1 , ⋯ , N ; j = 1 , ⋯ , M .</p><p>In this experiment, we set problems with different sizes, respectively with M = 4 and N = 10, M = 2 and N = 100, M = 3 and N = 100, M = 2 and N = 1000. For each problem size, we randomly generated 50 test instances. The statistical results on number of iterations and computation time (in seconds) are presented in <xref ref-type="table" rid="table5">Table 5</xref>.</p><p>From <xref ref-type="table" rid="table4">Table 4</xref> and <xref ref-type="table" rid="table5">Table 5</xref>, we observe that the standard deviations of number of iterations and computation times are quite low. It implies that our method is quite effective with different objective functions. We also observe that the</p><table-wrap id="table3" ><label><xref ref-type="table" rid="table3">Table 3</xref></label><caption><title> Parameters and solutions for the second example</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >i</th><th align="center" valign="middle" >h<sub>i</sub></th><th align="center" valign="middle" >d<sub>i</sub></th><th align="center" valign="middle" >e<sub>i</sub></th><th align="center" valign="middle" >c<sub>i,1</sub></th><th align="center" valign="middle" >c<sub>i,2</sub></th><th align="center" valign="middle" >c<sub>i,3</sub></th><th align="center" valign="middle" >l<sub>i </sub></th><th align="center" valign="middle" >u<sub>i </sub></th><th align="center" valign="middle" >x i * <sub> </sub></th></tr></thead><tr><td align="center" valign="middle" >1</td><td align="center" valign="middle" >10</td><td align="center" valign="middle" >30.2</td><td align="center" valign="middle" >83</td><td align="center" valign="middle" >10</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >11</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >20</td><td align="center" valign="middle" >1.6578</td></tr><tr><td align="center" valign="middle" >2</td><td align="center" valign="middle" >20</td><td align="center" valign="middle" >5</td><td align="center" valign="middle" >15</td><td align="center" valign="middle" >12</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >5</td><td align="center" valign="middle" >20</td><td align="center" valign="middle" >5.0000</td></tr><tr><td align="center" valign="middle" >3</td><td align="center" valign="middle" >14</td><td align="center" valign="middle" >42.5</td><td align="center" valign="middle" >63</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >4</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >25</td><td align="center" valign="middle" >2.0000</td></tr><tr><td align="center" valign="middle" >4</td><td align="center" valign="middle" >13</td><td align="center" valign="middle" >48</td><td align="center" valign="middle" >81</td><td align="center" valign="middle" >5</td><td align="center" valign="middle" >5</td><td align="center" valign="middle" >5</td><td align="center" valign="middle" >4.4</td><td align="center" valign="middle" >22</td><td align="center" valign="middle" >4.4000</td></tr><tr><td align="center" valign="middle" >5</td><td align="center" valign="middle" >4</td><td align="center" valign="middle" >42</td><td align="center" valign="middle" >65</td><td align="center" valign="middle" >3</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >6</td><td align="center" valign="middle" >2.3</td><td align="center" valign="middle" >25</td><td align="center" valign="middle" >2.3000</td></tr><tr><td align="center" valign="middle" >6</td><td align="center" valign="middle" >5</td><td align="center" valign="middle" >36</td><td align="center" valign="middle" >75</td><td align="center" valign="middle" >8</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >3</td><td align="center" valign="middle" >2.2</td><td align="center" valign="middle" >24</td><td align="center" valign="middle" >2.2000</td></tr><tr><td align="center" valign="middle" >7</td><td align="center" valign="middle" >13</td><td align="center" valign="middle" >41.4</td><td align="center" valign="middle" >94</td><td align="center" valign="middle" >5</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >24</td><td align="center" valign="middle" >1.5068</td></tr><tr><td align="center" valign="middle" >8</td><td align="center" valign="middle" >27</td><td align="center" valign="middle" >22.5</td><td align="center" valign="middle" >20</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >3</td><td align="center" valign="middle" >3</td><td align="center" valign="middle" >3.5</td><td align="center" valign="middle" >22</td><td align="center" valign="middle" >3.5000</td></tr><tr><td align="center" valign="middle" >9</td><td align="center" valign="middle" >40</td><td align="center" valign="middle" >31.6</td><td align="center" valign="middle" >12</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >5</td><td align="center" valign="middle" >5</td><td align="center" valign="middle" >1.6</td><td align="center" valign="middle" >30</td><td align="center" valign="middle" >1.6000</td></tr><tr><td align="center" valign="middle" >10</td><td align="center" valign="middle" >23</td><td align="center" valign="middle" >44</td><td align="center" valign="middle" >55.5</td><td align="center" valign="middle" >3</td><td align="center" valign="middle" >8</td><td align="center" valign="middle" >8</td><td align="center" valign="middle" >1.9</td><td align="center" valign="middle" >32</td><td align="center" valign="middle" >1.9000</td></tr><tr><td align="center" valign="middle" >λ *</td><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" >0.0051</td><td align="center" valign="middle" >0.0064</td><td align="center" valign="middle" >0.0064</td><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td></tr><tr><td align="center" valign="middle" >f *</td><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" >1261.5</td></tr></tbody></table></table-wrap><table-wrap id="table4" ><label><xref ref-type="table" rid="table4">Table 4</xref></label><caption><title> Statistical results for randomly generated QMK problems</title></caption><table><tbody><thead><tr><th align="center" valign="middle"  colspan="2"  ></th><th align="center" valign="middle"  colspan="4"  ># of iterations</th><th align="center" valign="middle"  colspan="4"  >Computation time</th></tr></thead><tr><td align="center" valign="middle"  colspan="2"  >N, M</td><td align="center" valign="middle" >10, 4</td><td align="center" valign="middle" >100, 2</td><td align="center" valign="middle" >100, 3</td><td align="center" valign="middle" >1000, 2</td><td align="center" valign="middle" >10, 4</td><td align="center" valign="middle" >100, 2</td><td align="center" valign="middle" >100, 3</td><td align="center" valign="middle" >1000, 2</td></tr><tr><td align="center" valign="middle"  colspan="2"  >Mean</td><td align="center" valign="middle" >15.30</td><td align="center" valign="middle" >16.82</td><td align="center" valign="middle" >16.92</td><td align="center" valign="middle" >17.86</td><td align="center" valign="middle" >1.1713</td><td align="center" valign="middle" >0.0073</td><td align="center" valign="middle" >0.1044</td><td align="center" valign="middle" >0.0225</td></tr><tr><td align="center" valign="middle"  colspan="2"  >Std.dev.</td><td align="center" valign="middle" >1.0926</td><td align="center" valign="middle" >0.7475</td><td align="center" valign="middle" >0.8041</td><td align="center" valign="middle" >0.3505</td><td align="center" valign="middle" >0.2811</td><td align="center" valign="middle" >0.0026</td><td align="center" valign="middle" >0.0365</td><td align="center" valign="middle" >0.0083</td></tr><tr><td align="center" valign="middle"  rowspan="2"  >95% C.I.</td><td align="center" valign="middle" >Lower</td><td align="center" valign="middle" >13</td><td align="center" valign="middle" >15</td><td align="center" valign="middle" >15</td><td align="center" valign="middle" >17</td><td align="center" valign="middle" >0.6012</td><td align="center" valign="middle" >0.0028</td><td align="center" valign="middle" >0.0405</td><td align="center" valign="middle" >0.0082</td></tr><tr><td align="center" valign="middle" >Upper</td><td align="center" valign="middle" >17</td><td align="center" valign="middle" >18</td><td align="center" valign="middle" >18</td><td align="center" valign="middle" >18</td><td align="center" valign="middle" >1.7729</td><td align="center" valign="middle" >0.0118</td><td align="center" valign="middle" >0.1575</td><td align="center" valign="middle" >0.0381</td></tr></tbody></table></table-wrap><table-wrap id="table5" ><label><xref ref-type="table" rid="table5">Table 5</xref></label><caption><title> Statistical results for randomly generated production planning problems</title></caption><table><tbody><thead><tr><th align="center" valign="middle"  colspan="2"  ></th><th align="center" valign="middle"  colspan="4"  ># of iterations</th><th align="center" valign="middle"  colspan="4"  >Computation time</th></tr></thead><tr><td align="center" valign="middle"  colspan="2"  >N, M</td><td align="center" valign="middle" >10, 4</td><td align="center" valign="middle" >100, 2</td><td align="center" valign="middle" >100, 3</td><td align="center" valign="middle" >1000, 2</td><td align="center" valign="middle" >10, 4</td><td align="center" valign="middle" >100, 2</td><td align="center" valign="middle" >100, 3</td><td align="center" valign="middle" >1000, 2</td></tr><tr><td align="center" valign="middle"  colspan="2"  >Mean</td><td align="center" valign="middle" >22.46</td><td align="center" valign="middle" >23.82</td><td align="center" valign="middle" >23.92</td><td align="center" valign="middle" >24.02</td><td align="center" valign="middle" >9.2210</td><td align="center" valign="middle" >0.0292</td><td align="center" valign="middle" >0.6762</td><td align="center" valign="middle" >0.1025</td></tr><tr><td align="center" valign="middle"  colspan="2"  >Std.dev.</td><td align="center" valign="middle" >1.4458</td><td align="center" valign="middle" >0.3881</td><td align="center" valign="middle" >0.2740</td><td align="center" valign="middle" >0.1414</td><td align="center" valign="middle" >2.3702</td><td align="center" valign="middle" >0.0120</td><td align="center" valign="middle" >0.2538</td><td align="center" valign="middle" >0.0456</td></tr><tr><td align="center" valign="middle"  rowspan="2"  >95% C.I.</td><td align="center" valign="middle" >Lower</td><td align="center" valign="middle" >18</td><td align="center" valign="middle" >23</td><td align="center" valign="middle" >23</td><td align="center" valign="middle" >24</td><td align="center" valign="middle" >2.5809</td><td align="center" valign="middle" >0.0113</td><td align="center" valign="middle" >0.2713</td><td align="center" valign="middle" >0.0457</td></tr><tr><td align="center" valign="middle" >Upper</td><td align="center" valign="middle" >24</td><td align="center" valign="middle" >24</td><td align="center" valign="middle" >24</td><td align="center" valign="middle" >25</td><td align="center" valign="middle" >13.5177</td><td align="center" valign="middle" >0.0456</td><td align="center" valign="middle" >1.0566</td><td align="center" valign="middle" >0.1750</td></tr></tbody></table></table-wrap><p>computation time is more sensitive to the number of the resource constraints rather than the number of variables. Since the application problems often have much more variables than knapsack constraints, our algorithm is useful in practice.</p></sec></sec><sec id="s5"><title>5. Conclusions</title><p>In this paper, we study a class of continuous separable nonlinear multidimensional knapsack problems. By analyzing the structural properties of the optimal solution, we develop a multi-tier binary solution method. The proposed method has following advantages. 1) It is applicable for solving the nonlinear multidimensional knapsack problems with general structure. 2) It has computational complexity of polynomial in the number of variables.</p><p>This research can be further extended in several ways. One is to study non-separable multidimensional knapsack problems using the similar idea. Another way is to develop exact solution methods or heuristics for solving the integer multidimensional knapsack problems based on our method. Finally, the idea used in this study can be extended for investigating other complex optimization problems with multiple constraints.</p></sec><sec id="s6"><title>Acknowledgements</title><p>This work is supported by National Natural Science Foundation of China (Grants No. 71672199).</p></sec><sec id="s7"><title>Cite this paper</title><p>Zhang, B., Lin, Z. and Wang, Y. (2018) A Class of Continuous Separable Nonlinear Multidimensional Knapsack Problems. American Journal of Operations Research, 8, 266-280. https://doi.org/10.4236/ajor.2018.84015</p></sec><sec id="s8"><title>Appendix</title><p>A.1 Proof of Proposition 2</p><p>It is defined that 0 ≤ l i &lt; u i for all i = 1 , ⋯ , N . The optimal solution to problem PR should satisfy Equation (1) and Equation (3). If l i ≤ x &#175; i ≤ u i , it means that the bound constraint is inactive. Therefore, we have x ^ i = x &#175; i . Since g i ( x i ) is increasing in x i , and g i ( x &#175; i ) = 0 , we have g i ( x i ) ≥ 0 if x i &gt; x &#175; i . If x &#175; i &lt; l i &lt; u i , then g i ( x i ) ≥ 0 if l i ≤ x i ≤ u i . Thus for any x i ∈ [ l i , u i ] , we have f i ( l i ) ≤ f i ( x i ) , and x ^ i = l i . If l i &lt; u i &lt; x &#175; i , we have x ^ i = u i . It can be proved similar to the condition of x &#175; i &lt; l i .</p><p>A.2 Proof of Proposition 3</p><p>1) If g i ( l i ) ≤ − ∑ j = 1 M λ j c i , j ≤ g i ( u i ) , then we have l i ≤ h i ( − ∑ j = 1 M λ j c i , j ) ≤ u i , and w i = v i = 0 , which implies x i ( λ ) = h i ( − ∑ j = 1 M λ j c i , j ) . If − ∑ j = 1 M λ j c i , j &lt; g i ( l i ) , then we have g i ( x i ) + ∑ j = 1 M λ j c i , j ≥ g i ( l i ) + ∑ j = 1 M λ j c i , j &gt; 0 , and hence w i &gt; 0 , x i ( λ ) = l i .</p><p>If − ∑ j = 1 M λ j c i , j &gt; g i ( u i ) , we have g i ( x i ) + ∑ j = 1 M λ j c i , j ≤ g i ( u i ) + ∑ j = 1 M λ j c i , j &lt; 0 , which means v i &gt; 0 , and x i ( λ ) = u i . Therefore, we have</p><p>x i ( λ ) = { l i , if   − ∑ j = 1 M λ j c i , j &lt; g i ( l i ) , h i ( − ∑ j = 1 M λ j c i , j ) , if   g i ( l i ) ≤ − ∑ j = 1 M λ j c i , j ≤ g i ( u i ) , u i , if   − ∑ j = 1 M λ j c i , j &gt; g i ( u i ) . (A1)</p><p>2) λ j = 0 or ∑ i = 1 N c i , j x i ( λ ) = C j implies</p><p>λ j ( ∑ i = 1 N c i , j x i ( λ ) − C j ) = 0 , j = 1 , ⋯ , M .</p><p>Because x ( λ ) satisfies Equation (5) and Equation (6), x ( λ ) will satisfy all KKT conditions. Therefore, x * = x ( λ ) if ( x ( λ ) , λ ) satisfies λ j = 0 or ∑ i = 1 N c i , j x i = C j , j = 1 , ⋯ , M .</p><p>A.3 Proof of Proposition 4</p><p>1) λ M = 0 or ∑ i = 1 N c i , M x i ( λ M ) = C M implies λ M ( ∑ i = 1 N c i , M x i − C M ) = 0 . Since ( x ( λ M ) , λ M ) satisfies Equation (5) and Equation (6), it will satisfy all KKT conditions. Therefore, x * = x ( λ M ) if ( x ( λ M ) , λ M ) satisfies λ M = 0 or ∑ i = 1 N c i , M x i ( λ M ) = C M .</p><p>2) KKT conditions for problem P ( f ^ ( λ M ) , M − 1 ) are</p><p>d f ^ i ( x i ) d x i + ∑ j = 1 M − 1 λ j c i , j − w i + v i = 0 , i = 1 , ⋯ , N , (A2)</p><p>∑ i = 1 N w i ( x i − l i ) + ∑ i = 1 N v i ( x i − u i ) = 0 , (A3)</p><p>λ j ( ∑ i = 1 N c i , j x i − C j ) = 0 , j = 1 , ⋯ , M − 1 . (A4)</p><p>Notice that f ^ i ( x i ) is a parameter-adjusted function of f i ( x i ) , with f ^ i ( λ M ) = f i + λ M c i , M x i . These conditions in Equations (A2)-(A3) are the same as KKT conditions given in Equations (5)-(7) without λ M ( ∑ i = 1 N c i , M x i − C M ) = 0 . Since x ( λ M ) is the optimal solution of the KKT conditions in Equations (5)-(7) without λ M ( ∑ i = 1 N c i , M x i − C M ) = 0 , it must be the optimal solution to problem P ( f ^ ( λ M ) , M − 1 ) .</p><p>A.4 Proof of Proposition 5</p><p>Let λ &#175; M = max ( 0 , max i = 1 , ⋯ , N { − g i ( l i ) / c i , M } ) . If λ M * &gt; λ &#175; M , then we have λ M * c i , M &gt; − g i ( l i ) , i = 1 , ⋯ , N . From Equation (5), we have</p><p>w i * = g i ( x i ) + ∑ j = 1 M λ j c i , j + v i &gt; g i ( x i ) + λ M * c i , M + v i &gt; 0 , i = 1 , ⋯ , N . (A5)</p><p>Since w i &gt; 0 , from Equation (6), we know x i = l i and v i = 0 . Thus, we have</p><p>λ M * ( ∑ i = 1 N c i , M x i * − C M ) = λ M * ( ∑ i = 1 N c i , M l i − C M ) ≠ 0 . (A6)</p><p>Equation (A6) violates the slackness condition λ M ( ∑ i = 1 N c i , M x i − C M ) = 0 in Equation (7). Therefore, there must be λ M * &lt; λ &#175; M .</p></sec></body><back><ref-list><title>References</title><ref id="scirp.85777-ref1"><label>1</label><mixed-citation publication-type="other" xlink:type="simple">Bonnans, J.F. (1994) Local Analysis of Newton-Type Methods for Variational Inequalities and Nonlinear Programming. Applied Mathematics and Optimization, 29, 161-186. https://doi.org/10.1007/BF01204181</mixed-citation></ref><ref id="scirp.85777-ref2"><label>2</label><mixed-citation publication-type="other" xlink:type="simple">Coleman, T.F. and Li, Y. (1994) On the Convergence of Interior-Reflective Newton Methods for Nonlinear Minimization Subject to Bounds. Mathematical Programming, 67, 189-224. https://doi.org/10.1007/BF01582221</mixed-citation></ref><ref id="scirp.85777-ref3"><label>3</label><mixed-citation publication-type="other" xlink:type="simple">Van Hentenryck, P., Michel, L. and Benhamou, F. (1998) Constraint Programming over Nonlinear Constraints. Science of Computer Programming, 30, 83-118. https://doi.org/10.1016/S0167-6423(97)00008-7</mixed-citation></ref><ref id="scirp.85777-ref4"><label>4</label><mixed-citation publication-type="other" xlink:type="simple">Borchers, B. and Mitchell, J.E. (1994) An Improved Branch and Bound Algorithm for Mixed Integer Nonlinear Programs. Computers &amp; Operations Research, 21, 359-367. https://doi.org/10.1016/0305-0548(94)90024-8</mixed-citation></ref><ref id="scirp.85777-ref5"><label>5</label><mixed-citation publication-type="other" xlink:type="simple">Leyffer, S. (2001) Integrating SQP and Branch-and-Bound for Mixed Integer Nonlinear Programming. Computational Optimization and Applications, 18, 295-309. https://doi.org/10.1023/A:1011241421041</mixed-citation></ref><ref id="scirp.85777-ref6"><label>6</label><mixed-citation publication-type="other" xlink:type="simple">Byrd, R.H., Hribar, M.E. and Nocedal, J. (1999) An Interior Point Algorithm for Large-Scale Nonlinear Programming. SIAM Journal on Optimization, 9, 877-900. https://doi.org/10.1137/S1052623497325107</mixed-citation></ref><ref id="scirp.85777-ref7"><label>7</label><mixed-citation publication-type="other" xlink:type="simple">Benson, H.Y., Vanderbei, R.J. and Shanno, D.F. (2002) Interior-Point Methods for Nonconvex Nonlinear Programming: Filter Methods and Merit Functions. Computational Optimization and Applications, 23, 257-272. https://doi.org/10.1023/A:1020533003783</mixed-citation></ref><ref id="scirp.85777-ref8"><label>8</label><mixed-citation publication-type="other" xlink:type="simple">Spellucci, P. (1998) An SQP Method for General Nonlinear Programs Using only Equality Constrained Subproblems. Mathematical Programming, 82, 413-448. https://doi.org/10.1007/BF01580078</mixed-citation></ref><ref id="scirp.85777-ref9"><label>9</label><mixed-citation publication-type="other" xlink:type="simple">Zhu, Z. and Zhang, K. (2004) A New SQP Method of Feasible Directions for Nonlinear Programming. Applied Mathematics and Computation, 148, 121-134. https://doi.org/10.1016/S0096-3003(02)00832-9</mixed-citation></ref><ref id="scirp.85777-ref10"><label>10</label><mixed-citation publication-type="other" xlink:type="simple">Nie, P.Y. and Ma, C.F. (2006) A Trust Region Filter Method for General Non-Linear Programming. Applied Mathematics and Computation, 172, 1000-1017. https://doi.org/10.1016/j.amc.2005.03.004</mixed-citation></ref><ref id="scirp.85777-ref11"><label>11</label><mixed-citation publication-type="other" xlink:type="simple">Nie, P.Y. (2007) Sequential Penalty Quadratic Programming Filter Methods for Nonlinear Programming. Nonlinear Analysis: Real World Applications, 8, 118-129. https://doi.org/10.1016/j.nonrwa.2005.06.003</mixed-citation></ref><ref id="scirp.85777-ref12"><label>12</label><mixed-citation publication-type="other" xlink:type="simple">Bretthauer, K.M. and Shetty, B. (2002b) The Nonlinear Knapsack Problem-Algo- rithms and Applications. European Journal of Operational Research, 138, 459-472. https://doi.org/10.1016/S0377-2217(01)00179-5</mixed-citation></ref><ref id="scirp.85777-ref13"><label>13</label><mixed-citation publication-type="other" xlink:type="simple">Bretthauer, K.M. and Shetty, B. (1995) The Nonlinear Resource Allocation Problem. Operations Research, 43, 670-683. https://doi.org/10.1287/opre.43.4.670</mixed-citation></ref><ref id="scirp.85777-ref14"><label>14</label><mixed-citation publication-type="other" xlink:type="simple">Kodialam, M.S. and Luss, H. (1998) Algorithms for Separable Nonlinear Resource Allocation Problems. Operations Research, 46, 272-284. https://doi.org/10.1287/opre.46.2.272</mixed-citation></ref><ref id="scirp.85777-ref15"><label>15</label><mixed-citation publication-type="other" xlink:type="simple">Bretthauer, K.M. and Shetty, B. (2002a) A Pegging Algorithm for the Nonlinear Resource Allocation Problem. Computers &amp; Operations Research, 29, 505-527. https://doi.org/10.1016/S0305-0548(00)00089-7</mixed-citation></ref><ref id="scirp.85777-ref16"><label>16</label><mixed-citation publication-type="other" xlink:type="simple">Zhang, B. and Hua, Z. (2008) A Unified Method for a Class of Convex Separable Nonlinear Knapsack Problems. European Journal of Operational Research, 191, 1-6. https://doi.org/10.1016/j.ejor.2007.07.005</mixed-citation></ref><ref id="scirp.85777-ref17"><label>17</label><mixed-citation publication-type="other" xlink:type="simple">Kiwiel, K.C. (2008) Breakpoint Searching Algorithms for the Continuous Quadratic Knapsack Problem. Mathematical Programming, 112, 473-491. https://doi.org/10.1007/s10107-006-0050-z</mixed-citation></ref><ref id="scirp.85777-ref18"><label>18</label><mixed-citation publication-type="other" xlink:type="simple">Sharkey, T.C., Romeijn, H.E. and Geunes, J. (2011) A Class of Nonlinear Nonseparable Continuous Knapsack and Multiple-Choice Knapsack Problems. Mathematical Programming, 126, 69-96. https://doi.org/10.1007/s10107-009-0274-9</mixed-citation></ref><ref id="scirp.85777-ref19"><label>19</label><mixed-citation publication-type="other" xlink:type="simple">Morin, T.L. and Marsten, R.E. (1976) An Algorithm for Nonlinear Knapsack Problems. Management Science, 22, 1147-1158. https://doi.org/10.1287/mnsc.22.10.1147</mixed-citation></ref><ref id="scirp.85777-ref20"><label>20</label><mixed-citation publication-type="other" xlink:type="simple">Ohtagaki, H., Iwasaki, A., Nakagawa, Y. and Narihisa, H. (2000) Smart Greedy Procedure for Solving a Multidimensional Nonlinear Knapsack Class of Reliability Optimization Problems. Mathematical and Computer Modelling, 31, 283-288. https://doi.org/10.1016/S0895-7177(00)00097-2</mixed-citation></ref><ref id="scirp.85777-ref21"><label>21</label><mixed-citation publication-type="other" xlink:type="simple">Li, D., Sun, X.L. and Wang, F.L. (2006) Convergent Lagrangian and Contour Cut Method for Nonlinear Integer Programming with a Quadratic Objective Function. SIAM Journal on Optimization, 17, 372-400. https://doi.org/10.1137/040606193</mixed-citation></ref><ref id="scirp.85777-ref22"><label>22</label><mixed-citation publication-type="other" xlink:type="simple">Li, D., Sun, X.L., Wang, J. and McKinnon, K.I. (2009) Convergent Lagrangian and Domain Cut Method for Nonlinear Knapsack Problems. Computational Optimization and Applications, 42, 67-104. https://doi.org/10.1007/s10589-007-9113-1</mixed-citation></ref><ref id="scirp.85777-ref23"><label>23</label><mixed-citation publication-type="other" xlink:type="simple">Quadri, D., Soutif, E. and Tolla, P. (2009) Exact Solution Method to Solve Large Scale Integer Quadratic Multidimensional Knapsack Problems. Journal of Combinatorial Optimization, 17, 157-167. https://doi.org/10.1007/s10878-007-9105-1</mixed-citation></ref><ref id="scirp.85777-ref24"><label>24</label><mixed-citation publication-type="other" xlink:type="simple">Wang, H., Kochenberger, G. and Glover, F. (2012) A Computational Study on the Quadratic Knapsack Problem with Multiple Constraints. Computers &amp; Operations Research, 39, 3-11. https://doi.org/10.1016/j.cor.2010.12.017</mixed-citation></ref><ref id="scirp.85777-ref25"><label>25</label><mixed-citation publication-type="other" xlink:type="simple">Abdel-Malek, L.L. and Areeratchakul, N. (2007) A Quadratic Programming Approach to the Multi-Product Newsvendor Problem with Side Constraints. European Journal of Operational Research, 176, 1607-1619. https://doi.org/10.1016/j.ejor.2005.11.002</mixed-citation></ref><ref id="scirp.85777-ref26"><label>26</label><mixed-citation publication-type="other" xlink:type="simple">Abdel-Malek, L.L. and Otegbeye, M. (2013) Separable Programming/Duality Approach to Solving the Multi Constrained Newsboy/Gardener Problem. Applied Mathematical Modelling, 37, 4497-4508. https://doi.org/10.1016/j.apm.2012.09.059</mixed-citation></ref><ref id="scirp.85777-ref27"><label>27</label><mixed-citation publication-type="other" xlink:type="simple">Zhang, B. (2012) Multi-Tier Binary Solution Method for Multi-Product Newsvendor Problem with Multiple Constraints. European Journal of Operational Research, 218, 426-434. https://doi.org/10.1016/j.ejor.2011.10.053</mixed-citation></ref></ref-list></back></article>