conflict analysis l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Conflict Analysis PowerPoint Presentation
Download Presentation
Conflict Analysis

Loading in 2 Seconds...

play fullscreen
1 / 68

Conflict Analysis - PowerPoint PPT Presentation


  • 582 Views
  • Uploaded on

Conflict Analysis. SCIP Workshop at ZIB October 2007. General Idea. Problem is divided into smaller subproblems branching tree Some subproblems are infeasible Analyzing the infeasibilities can yield information about the problem

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Conflict Analysis' - alden


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
conflict analysis

Conflict Analysis

SCIP Workshop at ZIB

October 2007

general idea
General 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
example
Example
  • a subproblem is infeasible

x1 = 1

x2 = 0

x3 = 0

example4
Example
  • a subproblem is infeasible
  • conflict analysis yields feasible constraint, that cuts off other nodes in the tree

x1 = 1

x2 = 0

x3 = 0

outline
Outline
  • Conflict Analysis in SAT
  • Conflict Analysis in MIP
  • Implementation
  • Computational Results
outline6
Outline
  • Conflict Analysis in SAT
  • Conflict Analysis in MIP
  • Implementation
  • Computational Results
satisfiability problem sat
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

binary constraint propagation10
Binary Constraint Propagation
  • clause:
  • fixings:
  • deduction:
conflict graph
Conflict Graph
  • decision variables
  • deduced variables
  • conflict
conflict graph12
Conflict Graph
  • decision variables
  • deduced variables
  • conflict

conflict detecting clause

conflict graph conflict cuts
Conflict Graph – Conflict Cuts
  • choose cut that separates decision variables from conflict vertex
conflict graph conflict cuts14
Conflict Graph – Conflict Cuts

reason side

conflict side

  • choose cut that separates decision variables from conflict vertex
conflict graph conflict cuts15
Conflict Graph – Conflict Cuts

reason side

conflict side

  • choose cut that separates decision variables from conflict vertex
  • conflict clause:
conflict graph trivial cuts
Conflict Graph – Trivial Cuts
  • -cut:
  • decision cut:
conflict graph first uip
Conflict Graph – First-UIP
  • Unique Implication Point: lies on all paths from the last decision vertex to the conflict vertex
conflict graph first uip18
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)
conflict graph first uip cut
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:
conflict analysis algorithm fuip
Conflict Analysis Algorithm (FUIP)
  • BCP detected a conflict
conflict analysis algorithm fuip21
Conflict Analysis Algorithm (FUIP)
  • Initialize conflict queue with the variables involved in the conflict
conflict analysis algorithm fuip22
Conflict Analysis Algorithm (FUIP)
  • Initialize conflict queue with the variables involved in the conflict
conflict analysis algorithm fuip23
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
conflict analysis algorithm fuip24
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
conflict analysis algorithm fuip25
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
conflict analysis algorithm fuip26
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
conflict analysis algorithm fuip27
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
conflict analysis algorithm fuip28
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
conflict analysis algorithm fuip29
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
conflict analysis algorithm fuip30
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
conflict analysis algorithm fuip31
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
conflict analysis algorithm fuip32
Conflict Analysis Algorithm (FUIP)
  • If there is only one variable of the last depth level left, stop
conflict analysis algorithm fuip33
Conflict Analysis Algorithm (FUIP)
  • If there is only one variable of the last depth level left, stop
  • The remaining variables define the conflict set
conflict analysis algorithm fuip34
Conflict Analysis Algorithm (FUIP)
  • The conflict clause consists of all (negated) assignments in the conflict set:
outline35
Outline
  • Conflict Analysis in SAT
    • deductions lead to conflict  conflict graph
    • cut in conflict graph  conflict clause
  • Conflict Analysis in MIP
  • Implementation
  • Computational Results
outline36
Outline
  • Conflict Analysis in SAT
    • deductions lead to conflict  conflict graph
    • cut in conflict graph  conflict clause
  • Conflict Analysis in MIP
  • Implementation
  • Computational Results
mixed integer program
Mixed Integer Program
  • linear objective function c
  • linear constraints Ax  b
  • real or integer valued variables x
conflict analysis for mip
Conflict Analysis for MIP

Two main differences to SAT:

  • non-binary variables
    • conflict graph: bound changes instead of fixings
    • conflict clause  conflict constraint
conflict analysis for mip39
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

conflict analysis for mip40
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

conflict analysis for mip41
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

back to sat conflict graph
Back to SAT: Conflict Graph
  • One clause detected theconflict
  • Only a few variables linked to the conflict vertex

conflict detecting clause

infeasible lp conflict graph
Infeasible LP: Conflict Graph
  • The LP as a whole is responsible for the conflict
  • All local bound changes are linked to the conflict vertex
infeasible lp conflict graph44
Infeasible LP: Conflict Graph
  • LP analysis selects some of these local bounds
infeasible lp conflict graph45
Infeasible LP: Conflict Graph
  • LP analysis selects some of these bounds
  • cut yields conflict constraint
conflict analysis for infeasible lps
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
infeasible lp dual ray heuristic
Infeasible LP: Dual Ray Heuristic

local bounds

  • LP relaxation:
infeasible lp dual ray heuristic48
Infeasible LP: Dual Ray Heuristic
  • LP relaxation:
  • dual LP:

local bounds

infeasible lp dual ray heuristic49
Infeasible LP: Dual Ray Heuristic
  • LP relaxation:
  • dual LP:
  • dual ray:

local bounds

infeasible lp dual ray heuristic50
Infeasible LP: Dual Ray Heuristic
  • LP relaxation:
  • dual LP:
  • dual ray:

local bounds

infeasible lp dual ray heuristic51
Infeasible LP: Dual Ray Heuristic
  • LP relaxation:
  • dual LP:
  • dual ray:
  • relax bounds:

local bounds

outline52
Outline
  • Conflict Analysis in SAT
    • deductions lead to conflict  conflict graph
    • cut in conflict graph  conflict clause
  • Conflict Analysis in MIP
    • deductions lead to infeasible LP
    • LP analysis links conflict vertex
    • cut in conflict graph  conflict constraint
  • Implementation
  • Computational Results

conflict graph

outline53
Outline
  • Conflict Analysis in SAT
    • deductions lead to conflict  conflict graph
    • cut in conflict graph  conflict clause
  • Conflict Analysis in MIP
    • deductions lead to infeasible LP
    • LP analysis links conflict vertex
    • cut in conflict graph  conflict constraint
  • Implementation
  • Computational Results

conflict graph

implementation
Implementation
  • Which pruned subproblems should be analyzed?
    • propagation conflicts yes
    • infeasible LP conflicts yes
    • bound-exceeding LP conflicts no
    • strong branching conflicts no
  • How many conflict constraints per conflict?
    • all FUIP constraints: 1-FUIP, 2-FUIP, ...
  • How should conflict constraints be used?
    • only for propagation, not as cutting planes
  • How can useless conflict constraints be identified?
    • "easy" for SAT due to depth-first-search
    • open topic for best-first-search MIP, needs more ideas!
    • currently: aging mechanism
how to support conflict analysis in user plugins
How to Support Conflict Analysisin User Plugins
  • affected plugin types
    • constraint handlers (propagation)
    • propagator
  • special bound inference methods for propagation
    • SCIPinferVarLbCons(), SCIPinferVarUbCons()
    • SCIPinferVarLbProp(), SCIPinferVarUbProp()
    • provide constraint and one additional integer („inferinfo“)
  • reverse propagation
    • must provide the „reason“ for a bound deduction
    • can use the inferinfo to help finding the reason
reverse propagation
Reverse Propagation
  • input: constraint and tightened bound
    • deduced
reverse propagation57
Reverse Propagation
  • input: constraint and tightened bound
    • deduced
  • output: bounds that are reason for deduction
    • and
reverse propagation examples
Reverse Propagation: Examples
  • set covering constraints
    • only one type of propagation
    • reverse propagation easy:all variables except the inferred variable are reason variables
reverse propagation examples59
Reverse Propagation: Examples
  • set covering constraints
    • only one type of propagation
    • reverse propagation easy:all variables except the inferred variable are reason variables
  • linear constraints
    • propagation of left and right hand side
    • inferinfo: array position of inferred variable and lhs/rhs indicator
    • reverse propagation:find set of variables j  k with bounds that trigger the deduction
outline60
Outline
  • Conflict Analysis in SAT
    • deductions lead to conflict  conflict graph
    • cut in conflict graph  conflict clause
  • Conflict Analysis in MIP
    • deductions lead to infeasible LP
    • LP analysis links conflict vertex
    • cut in conflict graph  conflict constraint
  • Implementation
  • Computational Results

conflict graph

outline61
Outline
  • Conflict Analysis in SAT
    • deductions lead to conflict  conflict graph
    • cut in conflict graph  conflict clause
  • Conflict Analysis in MIP
    • deductions lead to infeasible LP
    • LP analysis links conflict vertex
    • cut in conflict graph  conflict constraint
  • Implementation
  • Computational Results

conflict graph

computational results
Computational Results
  • Instances of MIPLIB 2003 and Mittelmann
    • that could be solved by one of the three in 1 hour
    • for which one of the three needed at least 1000 nodes

nodes: -20% time: -14%

computational results63
Computational Results
  • ALU instances up to 8 bits
    • for which one of the three needed at least 1000 nodes
    • infeasible MIP instances

nodes: -85% time: -58%

computational results64
Computational Results
  • "Enlight" instances up to board size 10  10
    • for which one of the three needed at least 1000 nodes
    • 2 infeasible and 4 feasible MIP instances

nodes: -78% time: -59%

computational results65
Computational Results
  • instance "arki001" from MIPLIB 3.0 / MIPLIB 2003
    • first solved by Balas and Saxena (Dec 2005)
      • "Optimizing over the Split Closure"
      • 54 hours rank-1 split cut generation + 11 hours CPLEX 9.0
    • Bob-tuned CPLEX:
      • "using a lot of strong branching"
      • 628 hours, 103 million nodes
    • SCIP:
      • using an insane amount of strong branching
  • full conflict analysis (bound-exceeding LPs and strong branchings)
computational results68
Computational Results
  • instance „roll3000" from MIPLIB 2003
    • SCIP:
      • using an insane amount of strong branching
      • moderate conflict analysis
      • 3.2GHz Pentium-IV
  • Unfortunately...
    • XPressMP 2006B with tuned settings: 1 hour (3 GHz Athlon-64)
    • Reported by Alkis Vazacopoulos (ISMP 2006)
    • As far as I understood: lots of local cuts