diving for conflicts in mixed integer programming
play

Diving for Conflicts in Mixed-Integer Programming Ambros Gleixner - PowerPoint PPT Presentation

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,


  1. 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

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  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

  9. 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

  10. • 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. • 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

  17. 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

  18. 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

  19. 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

  20. 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