Skip to main content
Log in

Algorithmic improvements on dynamic programming for the bi-objective {0,1} knapsack problem

  • Published:
Computational Optimization and Applications Aims and scope Submit manuscript

Abstract

This paper presents several methodological and algorithmic improvements over a state-of-the-art dynamic programming algorithm for solving the bi-objective {0,1} knapsack problem. The variants proposed make use of new definitions of lower and upper bounds, which allow a large number of states to be discarded. The computation of these bounds are based on the application of dichotomic search, definition of new bound sets, and bi-objective simplex algorithms to solve the relaxed problem. Although these new techniques are not of a common application for dynamic programming, we show that the best variants tested in this work can lead to an average improvement of 10 to 30 % in CPU-time and significant less memory usage than the original approach in a wide benchmark set of instances, even for the most difficult ones in the literature.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Fig. 1
Fig. 2
Fig. 3

Similar content being viewed by others

References

  1. Aneja, Y., Nair, K.: Bicriteria transportation problem. Manag. Sci. 25(1), 73–78 (1979)

    Article  MathSciNet  MATH  Google Scholar 

  2. Bazgan, C., Hugot, H., Vanderpooten, D.: Implementing an efficient fptas for the 0-1 multi-objective knapsack problem. Eur. J. Oper. Res. 198(1), 47–56 (2009)

    Article  MathSciNet  MATH  Google Scholar 

  3. Bazgan, C., Hugot, H., Vanderpooten, D.: Solving efficiently the 0-1 multi-objective knapsack problem. Comput. Oper. Res. 36(1), 260–279 (2009)

    Article  MathSciNet  MATH  Google Scholar 

  4. Captivo, M., Clímaco, J., Figueira, J., Martins, E., dos Santos, J.: Solving bicriteria 0-1 knapsack problems using a labeling algorithm. Comput. Oper. Res. 30(12), 1865–1886 (2003)

    Article  MathSciNet  MATH  Google Scholar 

  5. Cormen, T., Leiserson, C., Rivest, R., Stein, C.: Introduction to Algorithms. MIT Press, Cambridge (2001)

    MATH  Google Scholar 

  6. Erlebach, T., Kellerer, H., Pferschy, U.: Approximating multi-objective knapsack problems. Manag. Sci. 48(12), 1603–1612 (2002)

    Article  MATH  Google Scholar 

  7. Gomes da Silva, C., Clímaco, J., Figueira, J.: A scatter search method for bi-criteria {0,1}-knapsack problems. Eur. J. Oper. Res. 169(2), 373–391 (2006)

    Article  MATH  Google Scholar 

  8. Gomes da Silva, C., Clímaco, J., Figueira, J.: Core problems in bi-criteria {0, 1}-knapsack problems. Comput. Oper. Res. 35(7), 2292–2306 (2008)

    Article  MathSciNet  MATH  Google Scholar 

  9. Gomes da Silva, C., Figueira, J., Clímaco, J.: Integrating partial optimization with scatter search for solving bi-criteria {0, 1}-knapsack problems. Eur. J. Oper. Res. 177(3), 1656–1677 (2007)

    Article  MATH  Google Scholar 

  10. Jenkins, L.: A bicriteria knapsack program for planning remediation of contaminated lightstation sites. Eur. J. Oper. Res. 140(2), 427–433 (2002)

    Article  MATH  Google Scholar 

  11. Klamroth, K., Wiecek, M.M.: Dynamic programming approaches to the multiple criteria knapsack problem. Nav. Res. Logist. 47(1), 57–76 (2000)

    Article  MathSciNet  MATH  Google Scholar 

  12. Kellerer, H., Pferschy, U., Pisinger, D.: Knapsack Problems. Springer, Berlin (2004)

    Book  MATH  Google Scholar 

  13. Kostreva, M., Ogryczak, W., Tonkyn, D.: Relocation problems arising in conservation biology. Comput. Math. Appl. 37(4–5), 135–150 (1999)

    Article  MATH  Google Scholar 

  14. Ehrgott, M., Gandibleux, X.: Bound sets for biobjective combinatorial optimization problems. Comput. Oper. Res. 34(9), 2674–2694 (2007)

    Article  MathSciNet  MATH  Google Scholar 

  15. Martello, S., Toth, P.: Knapsack Problems—Algorithms and Computer Implementations. Wiley, New York (1990)

    MATH  Google Scholar 

  16. Nemhauser, G., Ullmann, Z.: Discrete dynamic programming and capital allocation. Manag. Sci. 15(9), 494–505 (1969)

    Article  MathSciNet  MATH  Google Scholar 

  17. Pisinger, D.: A minimal algorithm for the 0-1 knapsack problem. Oper. Res. 45, 758–767 (1997)

    Article  MathSciNet  MATH  Google Scholar 

  18. Rosenblatt, M., Sinuany-Stern, Z.: Generating the discrete efficient fronteir to the capital budgeting problem. Oper. Res. 37(3), 384–394 (1989)

    Article  MATH  Google Scholar 

  19. Steuer, R.: Multiple Criteria Optimization: Theory, Computation and Application. Wiley, New York (1986)

    MATH  Google Scholar 

  20. Teng, J., Tzeng, G.: A multiobjective programming approach for selecting non-independent transportation investiment alternatives. Transp. Res., Part B, Methodol. 30(4), 201–307 (1996)

    Article  Google Scholar 

  21. Visée, M., Teghem, J., Pirlot, M., Ulungu, E.L.: Two-phases method and branch and bound procedures to solve the bi–objective knapsack problem. J. Glob. Optim. 12(2), 139–155 (1998)

    Article  MATH  Google Scholar 

Download references

Acknowledgements

The authors acknowledge the anonymous referee that suggested the second version of variant B-DP3. J.R. Figueira, L. Paquete and D. Vanderpooten acknowledge the financial support from the Luso-French bilateral cooperation agreement between LAMSADE and CEG-IST (FCT/CNRS 2009). J.R. Figueira and M. Simões acknowledge a grant from CEG-IST, Instituto Superior Técnico (PTDC/GES/73853/2006). D. Vanderpooten acknowledges the support by the project ANR-09-BLAN-0361 “GUaranteed Efficiency for PAReto optimal solutions Determination (GUEPARD)”.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Luís Paquete.

Appendices

Appendix A: Simplex algorithm

The continuous 0-1 bi-objective knapsack problem can be formalized as follows (see Sect. 1 for the notation and Eq. (1) for the discrete variant):

$$ \begin{array}{l@{\quad}l} \max & f(x) = \bigl(f_1(x), f_2(x) \bigr)\\[5pt] \mbox{subject to:}& w^\mathrm{T}x \leq W,\quad x \in [0,1]^n\\ \end{array} $$
(4)

The simplex algorithm computes the set of all nondominated vectors of problem (4). It starts from one lexicographically-optimal solution. Then, it proceeds with an efficient pivoting process until an efficient solution of optimal value for objective f 2 is obtained. In order to obtain the lexicographically-optimal solution, the objects are sorted in non-increasing order of the profit-to-weight ratio \(v_{k}^{1}/w_{k}\). In case of ties, the objects with the same profit-to-weight ratio are sorted in non-increasing order of the profit-to-weight ratio for \(v_{k}^{2}/w_{k}\).

Remark 1

If two objects j and have the same profit-to-weight ratio on the first and the second objective, then consider only one object of weights w j +w and of profit \((v^{1}_{j} + v^{1}_{\ell}, v^{2}_{j} + v^{2}_{\ell})\).

The lexicographical-optimal solution x is obtained by using a greedy procedure that includes sorted objects until the capacity is achieved. Let

$$c = \min \Biggl\{j: \sum_{k=1}^j w_j>W \Biggr\} $$

be the critical object; then \(x^{*} = (x^{*}_{1},\ldots,x^{*}_{n})\) is such that:

$$x^*_j = \begin{cases} 1 & \mbox{for } j= 1,\ldots,c-1,\\[5pt] (W- \sum_{k=1}^{c-1}w_k )/w_c, & \mbox{for } j = c,\\[5pt] 0 & \mbox{for } j= c+1,\ldots,n.\\ \end{cases} $$

Given that \(x^{*}_{c}\) is not equal to zero (that case will be considered later on), it constitutes an efficient basic variable. Note that an efficient basis is constituted by only one efficient basic variable.

The algorithm uses a pivoting procedure that ensures the transition from one efficient solution to an adjacent one that decreases the value on the first objective. This procedure, which starts with solution x and one of its associated efficient basis \(\{x^{*}_{c}\}\), is described as follows for the general case considering an efficient solution x and one of its associated efficient basis {x c }.

  1. 1.

    Given that variable x c is basic, compute the reduced costs associated to variable x j on the objective i that is \(V^{i}_{(c,j)}= v_{j}^{i} - v_{c}^{i} \cdot w_{j}/w_{c}\), i=1,2 and j=1,…,n. The indexes of candidates variables to enter the basis are:

    $$J = \left \{j \in \{1,\ldots,n\}\setminus c \mbox{ such that: } \begin{array}{l} V^1_{(c,j)}<0 \mbox{ and } V^2_{(c,j)}>0, \mbox{ if } x_j = 0\\[7pt] V^1_{(c,j)}>0 \mbox{ and } V^2_{(c,j)}<0, \mbox{ if } x_j = 1\\ \end{array} \right \} $$

    If J is an empty set, the algorithm terminates since it is not possible to increase the value of solution x on the second objective. Hence, x is an efficient solution that is optimal for the second objective. Otherwise, the algorithm proceeds with an efficient pivoting between x c and variable \(x_{j^{*}}\) (j J), which provides a new efficient solution such that the slope of the line through this new solution and the previous solution x is the smallest. Then, j is such that

    $$\frac{V^2_{(c,j^*)}}{V^1_{(c,j^*)}} = \min_{j \in J} \frac{V^2_{(c,j)}}{V^1_{(c,j)}} $$

Remark 2

Since the objects of the same profit-to-weight ratio for all j∈{1,…,n}∖c were added, it does not hold that \(V^{1}_{(c,j)} = 0\) and \(V^{2}_{(c,j)} = 0\).

Remark 3

However, it is possible to obtain variables such that \(V^{1}_{(c,j)} = 0\) and \(V^{2}_{(c,j)} < 0\) or \(V^{1}_{(c,j)} < 0\) and \(V^{2}_{(c,j)} = 0\), for x j =0, as well as variables such that \(V^{1}_{(c,j)} = 0\) and \(V^{2}_{(c,j)} > 0\) or \(V^{1}_{(c,j)} > 0\) and \(V^{2}_{(c,j)} = 0\), for x j =1. Note that these variables are not candidates to enter the basis since they cannot lead to an efficient pivoting and to a new efficient solution.

Remark 4

Index j is the index in J that maximizes \(-V^{2}_{(c,j)}/ (V^{1}_{(c,j)}-V^{2}_{(c,j)} )\).

  1. 2.

    Let δ=w c /w j . The values of variables x c and x j are updated as follows.

    $$\mbox{if } x_j = 0 \begin{cases} \mbox{if } \delta x_c < 1 \qquad \begin{cases} x_j := \delta x_c\\ x_c := 0\\ x_j \mbox{ enters the basis in substitution of $x_{c}$} \end{cases} \\[20pt] \mbox{if } \delta x_c > 1 \qquad \begin{cases} x_j := 1\\ x_c := x_c - \delta\\ x_c \mbox{ remains in the basis} \end{cases} \\[20pt] \mbox{if } \delta x_c = 1 \qquad \begin{cases} x_j := 1\\ x_c := 0\\ \mbox{The solution is integer} \end{cases} \end{cases} $$
    $$\mbox{if } x_j = 1 \begin{cases} \mbox{if } \delta (1-x_c) < 1 \begin{cases} x_j := 1 - \delta(1 - x_c)\\ x_c := 1\\ x_j \mbox{ enters the basis in substitution of $x_{c}$} \end{cases} \\[20pt] \mbox{if } \delta (1-x_c) > 1 \begin{cases} x_j := 0\\ x_c := x_c + \delta\\ x_c \mbox{ remains in the basis} \end{cases} \\[20pt] \mbox{if } \delta (1-x_c) = 1 \begin{cases} x_j := 0\\ x_c := 1\\ \mbox{The solution is integer} \end{cases} \\ \end{cases} $$

The final solution is efficient. The pivoting process is repeated with the new basic solution. In case of degeneration, i.e., when we obtain an integer solution, the pivoting procedure is slightly different. We consider all possible increasing pivots between x i and x j for i=1,…,n and j=i+1,…,n satisfying that

(5)

Among all these possible pivots satisfying (5), the algorithm pivots between x c and \(x_{j^{*}}\) such that

$$\frac{V^2_{(c,j^*)}}{V^1_{(c,j^*)}} = \min \frac{V^2_{(c,j)}}{V^1_{(c,j)}} $$

Hence, the algorithm updates the values of x c and \(x_{j^{*}}\) using Step 2 described above.

Appendix B: Computational results

Table 1 Average CPU-time of several approaches for the benchmark set of instances; see text for more details
Table 2 Maximum amount of states in memory of several approaches for the benchmark set of instances; B-DP1,3a denotes variants B-DP1, B-DP3a.95, B-DP3a.90 and B-DP3a.85; see text for more details

Rights and permissions

Reprints and permissions

About this article

Cite this article

Figueira, J.R., Paquete, L., Simões, M. et al. Algorithmic improvements on dynamic programming for the bi-objective {0,1} knapsack problem. Comput Optim Appl 56, 97–111 (2013). https://doi.org/10.1007/s10589-013-9551-x

Download citation

  • Received:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10589-013-9551-x

Keywords

Navigation