Computers & Operations Research 34 (2007) 2657 – 2673 www.elsevier.com/locate/cor Reduction strategies and exact algorithms for the disjunctively constrained knapsack problem M. Hifi ∗ , M. Michrafy LaRIA, Université de Picardie JulesVerne, 5 rue du Moulin Neuf, 80000 Amiens, France Available online 19 December 2005 Abstract In this paper, we optimally solve the disjunctively constrained knapsack problem (DCKP), which is a variant of the standard knapsack problem with special disjunctive constraints. First, we develop a generic exact approach which can be considered as a three-phase procedure. The first phase tries to estimate a starting lower bound. The second phase applies a reduction procedure, combined with the lower bound, in order to fix some decision variables to the optimum. The third phase uses an exact branch and bound algorithm that identifies the optimal values of the free decision variables. Second, we design a specialized exact algorithm based upon a dichotomous search combined with a reduction procedure. Third and last, we propose a modified dichotomous search version which is based upon constructing an equivalent model to the DCKP, adding some dominating constraints, and injecting the so-called covering cut. We evaluate the performance of all versions of the algorithm and compare the obtained results to those of other exact algorithms of the literature. Encouraging results have been obtained. 2005 Elsevier Ltd. All rights reserved. Keywords: Branch and bound; Combinatorial optimization; Dichotomous search; Knapsacks; Reduction strategies; Valid cuts 1. Introduction In this paper, we deal with a particular 0–1 knapsack problem (KP) known as the disjunctively constrained knapsack problem (DCKP), where some items are incompatible with some other items. As for the standard KP, we are given a knapsack of fixed capacity c and a set of n items. Each item j,j = 1,...,n, has a size or weight, w j and a profit p j . In KP, the objective is to determine whether or not item j is packed in the knapsack of size c. Formally, the problem can be stated as follows: max ⎧ ⎨ ⎩ n j =1 p j x j n j =1 w j x j c, x j ∈{0, 1},j = 1, 2,...,n ⎫ ⎬ ⎭ . (1) KP (Eq. (1)) is a classic NP-hard combinatorial optimization problem with a wide range of applications [1–6]. ∗ Corresponding author. E-mail address: hifi@laria.u-picardie.fr (M. Hifi). 0305-0548/$ - see front matter 2005 Elsevier Ltd. All rights reserved. doi:10.1016/j.cor.2005.10.004