1 / 58

Conflict Analysis in Mixed Integer Programming

Conflict Analysis in Mixed Integer Programming. Main Idea. Problem is divided into smaller subproblems branching tree Some subproblems are infeasible Analyzing the infeasibilities can yield information about the problem Information can be used at other subproblems to prune the search tree.

tyson
Download Presentation

Conflict Analysis in Mixed Integer Programming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Conflict Analysisin Mixed Integer Programming

  2. Main Idea • Problem is divided into smaller subproblems • branching tree • Some subproblems are infeasible • Analyzing the infeasibilities can yield information about the problem • Information can be used at other subproblems to prune the search tree

  3. Example • a sub problem is infeasible x1 = 1 x2 = 0 x3 = 0

  4. Example • a sub problem is infeasible • conflict analysis yields feasible constraint, that cuts off other nodes in the tree x1 = 1 x2 = 0 x3 = 0

  5. Outline • Conflict Analysis in SAT • Conflict Analysis in MIP • Computational Results

  6. Outline • Conflict Analysis in SAT • Conflict Analysis in MIP • Computational Results

  7. Satisfiability Problem (SAT) • Boolean variables x1,...,xn {0,1} • Clauses • Task: • find assignment x* {0,1}n that satisfies all clauses, or prove that no such assignment exists with literals lik = xj or lik =xj = 1 – xj

  8. Binary Constraint Propagation • clause:

  9. Binary Constraint Propagation • clause: • fixings:

  10. Binary Constraint Propagation • clause: • fixings: • deduction:

  11. Conflict Graph • decision variables • deduced variables • conflict

  12. Conflict Graph • decision variables • deduced variables • conflict conflict detecting clause

  13. Conflict Graph – Conflict Cuts • choose cut that separates decision variables from conflict vertex

  14. Conflict Graph – Conflict Cuts reason side conflict side • choose cut that separates decision variables from conflict vertex

  15. Conflict Graph – Conflict Cuts reason side conflict side • choose cut that separates decision variables from conflict vertex • conflict clause:

  16. Conflict Graph – Trivial Cuts • -cut: • decision cut:

  17. Conflict Graph – First-UIP • Unique Implication Point: lies on all paths from the last decision vertex to the conflict vertex

  18. Conflict Graph – First-UIP • Unique Implication Point: lies on all paths from the last decision vertex to the conflict vertex • First UIP: the UIP closest to  (except  itself)

  19. Conflict Graph – First-UIP Cut • Put all vertices fixed after First-UIP to the conflict side, remaining vertices to the reason side • First-UIP cut:

  20. Conflict Analysis Algorithm (FUIP) • BCP detected a conflict

  21. Conflict Analysis Algorithm (FUIP) • Initialize conflict queue with the variables involved in the conflict

  22. Conflict Analysis Algorithm (FUIP) • Initialize conflict queue with the variables involved in the conflict

  23. Conflict Analysis Algorithm (FUIP) • As long as there is more than one variable of the last depth level in the queue, resolve the last deduction

  24. Conflict Analysis Algorithm (FUIP) • As long as there is more than one variable of the last depth level in the queue, resolve the last deduction

  25. Conflict Analysis Algorithm (FUIP) • As long as there is more than one variable of the last depth level in the queue, resolve the last deduction

  26. Conflict Analysis Algorithm (FUIP) • As long as there is more than one variable of the last depth level in the queue, resolve the last deduction

  27. Conflict Analysis Algorithm (FUIP) • As long as there is more than one variable of the last depth level in the queue, resolve the last deduction

  28. Conflict Analysis Algorithm (FUIP) • As long as there is more than one variable of the last depth level in the queue, resolve the last deduction

  29. Conflict Analysis Algorithm (FUIP) • As long as there is more than one variable of the last depth level in the queue, resolve the last deduction

  30. Conflict Analysis Algorithm (FUIP) • As long as there is more than one variable of the last depth level in the queue, resolve the last deduction

  31. Conflict Analysis Algorithm (FUIP) • As long as there is more than one variable of the last depth level in the queue, resolve the last deduction

  32. Conflict Analysis Algorithm (FUIP) • If there is only one variable of the last depth level left, stop

  33. Conflict Analysis Algorithm (FUIP) • If there is only one variable of the last depth level left, stop • The remaining variables define the conflict set

  34. Conflict Analysis Algorithm (FUIP) • The conflict clause consists of all (negated) assignments in the conflict set:

  35. Outline • Conflict Analysis in SAT • deductions lead to conflict  conflict graph • cut in conflict graph  conflict clause • Conflict Analysis in MIP • Computational Results

  36. Outline • Conflict Analysis in SAT • deductions lead to conflict  conflict graph • cut in conflict graph  conflict clause • Conflict Analysis in MIP • Computational Results

  37. Mixed Integer Program • linear objective function c • linear constraints Ax  b • real or integer valued variables x

  38. Conflict Analysis for MIP Two main differences to SAT: • non-binary variables • conflict graph: bound changes instead of fixings • conflict clause  conflict constraint

  39. Conflict Analysis for MIP Two main differences to SAT: • non-binary variables • conflict graph: bound changes instead of fixings • conflict clause  conflict constraint technical issue

  40. Conflict Analysis for MIP Two main differences to SAT: • non-binary variables • conflict graph: bound changes instead of fixings • conflict clause  conflict constraint • main reason for infeasibility: LP relaxation • conflict graph has no link from the decision and deduction vertices to the conflict vertex technical issue

  41. Conflict Analysis for MIP analyze LP Two main differences to SAT: • non-binary variables • conflict graph: bound changes instead of fixings • conflict clause  conflict constraint • main reason for infeasibility: LP relaxation • conflict graph has no link from the decision and deduction vertices to the conflict vertex technical issue

  42. Back to SAT: Conflict Graph • One clause detected theconflict • Only a few variables linked to the conflict vertex conflict detecting clause

  43. Infeasible LP: Conflict Graph • The LP as a whole is responsible for the conflict • All local bound changes are linked to the conflict vertex

  44. Infeasible LP: Conflict Graph • LP analysis selects some of these local bounds

  45. Infeasible LP: Conflict Graph • LP analysis selects some of these bounds • cut yields conflict constraint

  46. Conflict Analysis for infeasible LPs • if the LP relaxation is infeasible, the whole relaxation is involved in the conflict • all constraints • all global bounds • all local bounds • try to find a small subset of the local bounds that still leads to an infeasible LP relaxation • variant of minimal infeasible subsystem problem(see Amaldi, Pfetsch, Trotter) • heuristic: use dual ray to relax local bounds

  47. Infeasible LP: Dual Ray Heuristic local bounds • LP relaxation:

  48. Infeasible LP: Dual Ray Heuristic • LP relaxation: • dual LP: local bounds

  49. Infeasible LP: Dual Ray Heuristic • LP relaxation: • dual LP: • dual ray: local bounds

  50. Infeasible LP: Dual Ray Heuristic • LP relaxation: • dual LP: • dual ray: local bounds

More Related