Diving for Conflicts in Mixed-Integer Programming Ambros Gleixner and Jakob Witzig Zuse Institute Berlin · gleixner@zib.de SCIP Optimization Suite · http://scip.zib.de Discrepancy Theory & Integer Programming CWI · Amsterdam · June 14, 2018
Question Primal heuristics Conflict information • incomplete • information on methods → infeasible without subproblems guarantees • e.g. conflict ? • e.g., rounding, analysis, dual diving, LNS, ... ray analysis, clique table, ... • goal: find near-optimal • goal: find valid ← solutions reductions Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 1 / 8
x 2 1 is a sufficient reason • that prunes other parts of the tree • also in backtracking Example: contradicting bound changes after propagation x 1 2 (1) x 1 x 2 2 x 3 0 (2) x 1 x 2 x 3 0 1 Introduction: Conflict Analysis Goal: When branch-and-bound reaches an infeasible subproblem, analyze the infeasibility to • extract a shorter reason Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 2 / 8
x 2 1 is a sufficient reason • also in backtracking Example: contradicting bound changes after propagation x 1 2 (1) x 1 x 2 2 x 3 0 (2) x 1 x 2 x 3 0 1 Introduction: Conflict Analysis Goal: When branch-and-bound reaches an infeasible subproblem, analyze the infeasibility to • extract a shorter reason • that prunes other parts of the tree Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 2 / 8
x 2 1 is a sufficient reason Example: contradicting bound changes after propagation x 1 2 (1) x 1 x 2 2 x 3 0 (2) x 1 x 2 x 3 0 1 Introduction: Conflict Analysis Goal: When branch-and-bound reaches an infeasible subproblem, analyze the infeasibility to • extract a shorter reason • that prunes other parts of the tree • also in backtracking Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 2 / 8
x 2 1 is a sufficient reason Introduction: Conflict Analysis Goal: When branch-and-bound reaches an infeasible subproblem, analyze the infeasibility to • extract a shorter reason • that prunes other parts of the tree • also in backtracking Example: contradicting bound changes after propagation x 1 + x 2 + 2 x 3 ≤ 2 (1) x 1 + x 2 − 2 x 3 ≤ 0 (2) x 1 , x 2 , x 3 ∈ { 0 , 1 } Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 2 / 8
x 2 1 is a sufficient reason Introduction: Conflict Analysis Goal: When branch-and-bound reaches an infeasible subproblem, analyze the infeasibility to • extract a shorter reason • that prunes other parts of the tree • also in backtracking Example: contradicting bound changes after propagation ( 1 ) x 1 + x 2 + 2 x 3 ≤ 2 (1) ( x 2 ≥ 1 ) ⇒ ( x 3 ≤ 0 ) = x 1 + x 2 − 2 x 3 ≤ 0 (2) x 1 , x 2 , x 3 ∈ { 0 , 1 } Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 2 / 8
x 2 1 is a sufficient reason Introduction: Conflict Analysis Goal: When branch-and-bound reaches an infeasible subproblem, analyze the infeasibility to • extract a shorter reason • that prunes other parts of the tree • also in backtracking Example: contradicting bound changes after propagation ( 1 ) x 1 + x 2 + 2 x 3 ≤ 2 (1) ( x 2 ≥ 1 ) ⇒ ( x 3 ≤ 0 ) = x 1 + x 2 − 2 x 3 ≤ 0 (2) ⇒ ( 2 ) is violated = x 1 , x 2 , x 3 ∈ { 0 , 1 } Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 2 / 8
Introduction: Conflict Analysis Goal: When branch-and-bound reaches an infeasible subproblem, analyze the infeasibility to • extract a shorter reason • that prunes other parts of the tree • also in backtracking Example: contradicting bound changes after propagation ( 1 ) x 1 + ≤ 2 (1) ( x 2 ≥ 1 ) ⇒ ( x 3 ≤ 0 ) = x 1 + ≤ 0 (2) ⇒ ( 2 ) is violated = x 1 , x 2 , x 3 ∈ { 0 , 1 } ⇝ x 2 ≥ 1 is a sufficient reason Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 2 / 8
• Conflict Graph Analysis • Goes back to Marques-Silva and Sakallah (1999) • Idea: consider implications that led to the local bounds x 1 x 2 x 3 x 4 x 5 branching decisions x 9 x 6 x 7 x 8 x 10 x 11 implied bounds x 12 x 13 x 14 x 15 y infeasibility x 16 x 17 x 18 Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 3 / 8
branching decisions implied bounds Conflict Graph Analysis • Goes back to Marques-Silva and Sakallah (1999) • Idea: consider implications that led to the local bounds • Each cut that separates branching nodes from y yields a conflict constraint x 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x 10 x 11 x 12 x 13 x 14 x 15 y infeasibility x 16 x 17 x 18 Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 3 / 8
branching decisions implied bounds Conflict Graph Analysis • Goes back to Marques-Silva and Sakallah (1999) • Idea: consider implications that led to the local bounds • Separating only branching nodes ⇒ no-good cut x 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x 10 x 11 x 12 x 13 x 14 x 15 y infeasibility x 16 x 17 x 18 Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 3 / 8
branching decisions implied bounds Conflict Graph Analysis • Goes back to Marques-Silva and Sakallah (1999) • Idea: consider implications that led to the local bounds • better: First Unique Implication Point (FUIP), ... x 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x 10 x 11 x 12 x 13 x 14 x 15 y infeasibility x 16 x 17 x 18 Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 3 / 8
y T A x y T b (Farkas constraint) • LP of (3) infeasible unbounded direction in the dual c T y m r max y T b r T y T A r T n u (4) • i.e. a ray y s y t A s t 0 y t b s t u 0 • Farkas constraint globally valid: propagate during tree search • analogous extension for bound exceeding LPs LP Infeasibility • Assume a subproblem with bounds ℓ ≤ ℓ ′ ≤ u ′ ≤ u min { c T x | Ax ≥ b , ℓ ′ ≤ x ≤ u ′ , x i ∈ Z ∀ i ∈ I} (3) Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 4 / 8
y T A x y T b (Farkas constraint) • Farkas constraint globally valid: propagate during tree search • analogous extension for bound exceeding LPs LP Infeasibility • Assume a subproblem with bounds ℓ ≤ ℓ ′ ≤ u ′ ≤ u min { c T x | Ax ≥ b , ℓ ′ ≤ x ≤ u ′ , x i ∈ Z ∀ i ∈ I} (3) • LP of (3) infeasible ⇐ ⇒ unbounded direction in the dual max { y T b + r T { ℓ ′ , u ′ } | y T A + r T = c T , y ∈ R m + , r ∈ R n } (4) • i.e. a ray ( y , s ) y t A + s t = 0 y t b + s t { ℓ ′ , u ′ } > 0 Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 4 / 8
• Farkas constraint globally valid: propagate during tree search • analogous extension for bound exceeding LPs LP Infeasibility • Assume a subproblem with bounds ℓ ≤ ℓ ′ ≤ u ′ ≤ u min { c T x | Ax ≥ b , ℓ ′ ≤ x ≤ u ′ , x i ∈ Z ∀ i ∈ I} (3) • LP of (3) infeasible ⇐ ⇒ unbounded direction in the dual max { y T b + r T { ℓ ′ , u ′ } | y T A + r T = c T , y ∈ R m + , r ∈ R n } (4) • i.e. a ray ( y , s ) y t A + s t = 0 y t b + s t { ℓ ′ , u ′ } > 0 ⇓ ( y T A ) x ≥ y T b (Farkas constraint) Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 4 / 8
LP Infeasibility • Assume a subproblem with bounds ℓ ≤ ℓ ′ ≤ u ′ ≤ u min { c T x | Ax ≥ b , ℓ ′ ≤ x ≤ u ′ , x i ∈ Z ∀ i ∈ I} (3) • LP of (3) infeasible ⇐ ⇒ unbounded direction in the dual max { y T b + r T { ℓ ′ , u ′ } | y T A + r T = c T , y ∈ R m + , r ∈ R n } (4) • i.e. a ray ( y , s ) y t A + s t = 0 y t b + s t { ℓ ′ , u ′ } > 0 ⇓ ( y T A ) x ≥ y T b (Farkas constraint) • Farkas constraint globally valid: propagate during tree search • analogous extension for bound exceeding LPs Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 4 / 8
infeasible infeasible feasible y t A s t y r c 0 Question: How to satisfy y t b s t u 0? Motivation Starting point of a diving heuristic • primal feasible x ⋆ for min { c t x | Ax ≥ b , ℓ ′ ≤ x ≤ u ′ } • dual feasible ( y ⋆ , r ⋆ ) for max { y t b + r { ℓ ′ , u ′ } | y t A + r = c } y t A + s t = 0 infeasible ( y ⋆ , r ⋆ ) y t b + s t { ℓ ′ , u ′ } > 0 Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 5 / 8
Question: How to satisfy y t b s t u 0? Motivation Starting point of a diving heuristic • primal feasible x ⋆ for min { c t x | Ax ≥ b , ℓ ′ ≤ x ≤ u ′ } • dual feasible ( y ⋆ , r ⋆ ) for max { y t b + r { ℓ ′ , u ′ } | y t A + r = c } y t A + s t = 0 infeasible infeasible ( y ⋆ , r ⋆ ) y t b + s t { ℓ ′ , u ′ } > 0 infeasible feasible ( y ⋆ , r ⋆ − c ) y t A + s t = 0 Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 5 / 8
Motivation Starting point of a diving heuristic • primal feasible x ⋆ for min { c t x | Ax ≥ b , ℓ ′ ≤ x ≤ u ′ } • dual feasible ( y ⋆ , r ⋆ ) for max { y t b + r { ℓ ′ , u ′ } | y t A + r = c } y t A + s t = 0 infeasible infeasible ( y ⋆ , r ⋆ ) y t b + s t { ℓ ′ , u ′ } > 0 infeasible feasible ( y ⋆ , r ⋆ − c ) y t A + s t = 0 Question: How to satisfy y t b + s t { ℓ ′ , u ′ } > 0? Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 5 / 8
Recommend
More recommend