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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend