Experiments with the "Oregon Trail Knapsack Problem"

Abstract This paper presents hybrid algorithms for a variation of the Bounded Knapsack Problem which we call the Oregon Trail Knapsack. Our problem entails imposing a cost as well as a weight limit, constraining the values of types of items by means of a variety of value functions, and allowing the value of one item type to be dependent on the presence or absence of another type in the knapsack. These modifications to the original problem make it more complex and require adaptations of known knapsack algorithms. To solve this problem, we combine constraint propagation techniques and domain pruning with classic branch and bound approaches that require a sorting of the items. Our experiments compare a constraint-language implementation with a simulation of the constraint-based system in a procedural language. Results indicate that the constraint-based solution is natural to the problem and efficient enough to solve large problem instances typical of the application.

[1]  Pascal Van Hentenryck Constraint satisfaction in logic programming , 1989, Logic programming.

[2]  C. Kirchner,et al.  Deduction with symbolic constraints , 1990 .

[3]  Gert Smolka The Oz Programming Model , 1996 .

[4]  Grace Simpson Remembering Frederick Zeuner and others at the Institute of Archaeology, 1945-48 , 2000 .

[5]  Michel Gendreau,et al.  A View of Local Search in Constraint Programming , 1996, CP.

[6]  Nelson Maculan Relaxation Lagrangienne: Le Probleme Du Knapsack 0–1† , 1983 .

[7]  François Laburthe,et al.  Solving Small TSPs with Constraints , 1997, ICLP.

[8]  N. Guernalec,et al.  Narrowing a 2 n -block of sortings in O ( n log n ) , 1997 .

[9]  Mark Wallace,et al.  Survey: Practical Applications of Constraint Programming , 1996 .

[10]  Roland H. C. Yap,et al.  The CLP( R ) language and system , 1992, TOPL.

[11]  E. Balas,et al.  Set Partitioning: A survey , 1976 .

[12]  Paolo Toth,et al.  Knapsack Problems: Algorithms and Computer Implementations , 1990 .

[13]  G. Dantzig Discrete-Variable Extremum Problems , 1957 .

[14]  Jean-francois Puget,et al.  A C++ implementation of CLP , 1997 .

[15]  François Laburthe,et al.  Improved CLP Scheduling with Task Intervals , 1994, ICLP.

[16]  Marshall L. Fisher,et al.  Chapter 1 Vehicle routing , 1995 .

[17]  Joxan Jaffar,et al.  Constraint logic programming , 1987, POPL '87.

[18]  오병균,et al.  [서평]「Computer Algorithms/C++」 , 1998 .

[19]  Alain Colmerauer,et al.  An introduction to Prolog III , 1989, CACM.

[20]  Philippe Codognet,et al.  Compiling Constraints in clp(FD) , 1996, J. Log. Program..

[21]  Egon Balas,et al.  An Algorithm for Large Zero-One Knapsack Problems , 1980, Oper. Res..

[22]  Michel Gendreau,et al.  GENIUS-CP: a Generic Single-Vehicle Routing Algorithm , 1997, CP.

[23]  Jacques Desrosiers,et al.  The Pickup and Delivery Problem with Time Windows , 1989 .