26 R. Fukasawa, M. Goycoolea(b) There exist i, j ∈ 1,...,n such that e i > e j ,(a i > 0, c i > 0, u i =+∞) and (a j < 0, c j ≤ 0, u j =+∞).Pro<strong>of</strong> It is clear that if ei<strong>the</strong>r condition holds <strong>the</strong>n <strong>the</strong> problem must be unbounded. Weprove <strong>the</strong> converse. Let U ={i ∈ 1,...,n : u i =+∞}, and consider <strong>the</strong> recessioncone <strong>of</strong> conv(K ), which is given by C ={x ∈ R n : ax ≤ 0, x i ≥ 0 ∀i ∈ U, x i =0 ∀i /∈ U}.The extreme rays <strong>of</strong> conv(K ) are <strong>the</strong> extreme rays <strong>of</strong> C and must satisfy n − 1<strong>of</strong><strong>the</strong> linearly independent constraints defining C at equality. Thus, all extreme ray vectorshave at most two-nonzero values. Let x correspond to an extreme ray satisfyingcx > 0. We may assume that (a) does not hold. Therefore, for any nonzero componentx i we have that c i > 0 ⇒ a i > 0 and a i ≤ 0 ⇒ c i ≤ 0. Given that cx > 0wemayassume that c i > 0. Thus a i > 0 and since ax ≤ 0, it follows that <strong>the</strong>re must exist jsuch that x j > 0 and a j < 0. Finally, cx > 0 implies that c i x i > −c j x j , and ax = 0implies that a i x i =−a j x j . From this we have that e i > e j , and this concludes ourpro<strong>of</strong>.⊓⊔Observe that Proposition 3 implies that it can be determined if MIKP is unboundedin linear time. In fact, this can be achieved by looping through <strong>the</strong> unbounded variablesand keeping track <strong>of</strong> <strong>the</strong> most efficient one satisfying (a i > 0, c i > 0), <strong>the</strong> least efficientone satisfying (a j < 0, c j ≤ 0), and checking if any satisfy (a i ≤ 0, c i > 0).3.2 PreprocessingWe utilize a simple eight-step pre-processing procedure in order to speed our algorithm.Let N + ={i ∈ 1,...,n : a i > 0}, and N − ={i ∈ 1,...,n : a i < 0}. Weassume that for each i ∈ I we have l i ∈ Z and u i ∈ Z ∪{∞}. If <strong>the</strong>re exists i ∈ N −such that u i =+∞, define L min =−∞. O<strong>the</strong>rwise, define,L min = ∑a i u i + ∑a i l ii∈N − i∈N +If <strong>the</strong>re exists i ∈ N + such that u i =+∞, define L max =+∞. O<strong>the</strong>rwise,L max = ∑a i l i + ∑a i u ii∈N − i∈N +Finally, let sign(x) = 1ifx > 0, sign(x) =−1ifx < 0 and sign(x) = 0ifx = 0.1. Detect infeasibility. The problem is infeasible if and only if one <strong>of</strong> <strong>the</strong> followingconditions hold: (a) L min ̸= −∞and L min > b, or (b) <strong>the</strong>re exists i ∈ 1,...,nsuch that u i ̸= ∞and l i > u i .2. Detect unboundedness. Use <strong>the</strong> algorithm discussed in Sect. 3.1 to detect if <strong>the</strong>problem is unbounded. Observe that if <strong>the</strong> problem is bounded, all variables x isatisfying c i ≥ 0 and a i ≤ 0 will be such that u i is finite.123
<strong>On</strong> <strong>the</strong> <strong>exact</strong> <strong>separation</strong> <strong>of</strong> MIK <strong>cuts</strong> 273. Fix variables at <strong>the</strong>ir bounds. Fix to u i all variables x i such that c i ≥ 0 anda i ≤ 0. Fix to l i to all variables x i such that c i ≤ 0 and a i ≥ 0. Observe that afterfixing, all variables will be such that (a i > 0 and c i > 0) or (a i < 0 and c i < 0).4. Tighten upper bounds. If L min ̸= −∞, <strong>the</strong>n <strong>the</strong> for each i ∈ N + we can re-defineu i := min{u i , (b − L min + a i l i )/a i }.Ifi ∈ I we can fur<strong>the</strong>r streng<strong>the</strong>n this byletting u i := ⌊u i ⌋.5. Tighten lower bounds. If L min ̸= ∞, <strong>the</strong>n <strong>the</strong> for each i ∈ N − we can re-definel i := max{l i , (b − L min + a i u i )/a i }.Ifi ∈ I we can fur<strong>the</strong>r streng<strong>the</strong>n this byletting l i := ⌈l i ⌉.6. Sort variables Sort variables in order <strong>of</strong> increasing efficiency. Break ties by letting<strong>integer</strong> variables precede continuous variables. Break second ties in order <strong>of</strong>increasing a i .7. Aggregate <strong>integer</strong> variables. If two <strong>integer</strong> variables x i , x j are such that a i = a jand c i = c j aggregate <strong>the</strong>m into a new variable x k <strong>of</strong> <strong>the</strong> same type such thata k = a i = a j , c k = c i = c j , l k = l i + l j and u k = u i + u j .8. Aggregate continuous variables. If two continuous variables x i , x j are such thatand sign(a i ) = sign(a j ) aggregate <strong>the</strong>m into a new variable x k <strong>of</strong> <strong>the</strong>c ia i= c ja jsame type such that a k = a i , c k = c i , l k = l i + a ja il j and u k = u i + a ja iu j .Note that steps one through five can be performed toge<strong>the</strong>r in a single loop, andthat step seven can be performed in a single pass after sorting. For more informationand for possible extensions see Savelsbergh [45]. From this point on, we will assumethat we are always dealing with instances that have been preprocessed according to<strong>the</strong> steps above.3.3 Branch and boundWe use a depth-first-search branch and bound algorithm which always branches on <strong>the</strong>unique fractional variable. We use a simple linear programming algorithm, a variation<strong>of</strong> Dantzig’s algorithm [20], which runs in linear time by taking advantage <strong>of</strong> <strong>the</strong> factthat variables are sorted by decreasing efficiency. We do not use any cutting planesin <strong>the</strong> algorithm, nor any heuristics to generate feasible solutions. The algorithm usesvariable reduced-cost information to improve variable bounds at each node <strong>of</strong> <strong>the</strong> tree.3.4 DominationConsider x 1 and x 2 , two feasible solutions <strong>of</strong> MIKP. We say that x 1 cost-dominatesx 2 if cx 1 > cx 2 and ax 1 ≤ ax 2 . <strong>On</strong> <strong>the</strong> o<strong>the</strong>r hand, we say that x 1 lexicographicallydominatesx 2 if cx 1 = cx 2 , ax 1 ≤ ax 2 , and if in addition <strong>the</strong>re exists i ∈{1,...,n}such that xi 1 < xi 2 and xk 1 = x2 kfor all k < i. We say that a solution is dominated if itis cost-dominated or lexicographically-dominated. Observe that <strong>the</strong>re exists a uniquenon-dominated optimal solution (or none at all).Traditional branch and bound algorithms work by pruning nodes when (a) <strong>the</strong>y areproven infeasible, or (b) when <strong>the</strong> LP relaxation <strong>of</strong> <strong>the</strong> nodes have value worse than123