Download presentation

Presentation is loading. Please wait.

Published byBrenda Carson Modified about 1 year ago

1
Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg Conflict Analysis SCIP Workshop at ZIB October 2007

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

3
3 Example a subproblem is infeasible x 1 = 1 x 2 = 0 x 3 = 0 c1:c1: x1x1 – x 2 – x 3 0 c2:c2: x1x1 + x 2 – x 3 1

4
4 Example a subproblem is infeasible conflict analysis yields feasible constraint, that cuts off other nodes in the tree x 1 = 1 x 2 = 0 x 3 = 0 c1:c1: x1x1 – x 2 – x 3 0 c2:c2: x1x1 + x 2 – x 3 1 c3:c3: x1x1 0

5
5 Outline Conflict Analysis in SAT Conflict Analysis in MIP Implementation Computational Results

6
6 Outline Conflict Analysis in SAT Conflict Analysis in MIP Implementation Computational Results

7
7 Boolean variables x 1,...,x n {0,1} Clauses Task: find assignment x * {0,1} n that satisfies all clauses, or prove that no such assignment exists Satisfiability Problem (SAT) C1:C1: l 11 ... l 1k 1... Cm:Cm:l n1 ... l mk m with literals l ik = x j or l ik = x j = 1 – x j

8
8 Binary Constraint Propagation clause:

9
9 Binary Constraint Propagation clause: fixings:

10
10 Binary Constraint Propagation clause: fixings: deduction:

11
11 Conflict Graph decision variables deduced variables conflict

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

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

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

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

16
16 Conflict Graph – Trivial Cuts -cut: decision cut:

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

18
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
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
20 Conflict Analysis Algorithm (FUIP) BCP detected a conflict

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

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

23
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
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
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
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
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
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
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
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
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
32 Conflict Analysis Algorithm (FUIP) If there is only one variable of the last depth level left, stop

33
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
34 Conflict Analysis Algorithm (FUIP) The conflict clause consists of all (negated) assignments in the conflict set:

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

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

37
37 linear objective function c linear constraints Ax b real or integer valued variables x Mixed Integer Program maxcTxcTx s.t. Ax b x R p Z q

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

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

40
40 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 Conflict Analysis for MIP technical issue

41
41 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 Conflict Analysis for MIP technical issue analyze LP

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

43
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
44 Infeasible LP: Conflict Graph LP analysis selects some of these local bounds

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

46
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
47 Infeasible LP: Dual Ray Heuristic LP relaxation: maxcTxcTx s.t. Ax b 0 x u local bounds

48
48 Infeasible LP: Dual Ray Heuristic LP relaxation: dual LP: maxcTxcTx s.t. Ax b 0 x u local bounds min b T y + T r s.t. A T y + r c y, r 0

49
49 Infeasible LP: Dual Ray Heuristic LP relaxation: dual LP: dual ray: maxcTxcTx s.t. Ax b 0 x u local bounds min b T y + T r s.t. A T y + r c y, r 0 (y *, r * ) 0, A T y * + r * 0, b T y * + T r * < 0

50
50 Infeasible LP: Dual Ray Heuristic LP relaxation: dual LP: dual ray: maxcTxcTx s.t. Ax b 0 x u local bounds min b T y + T r s.t. A T y + r c y, r 0 (y *, r * ) 0, A T y * + r * 0, b T y * + T r * < 0

51
51 Infeasible LP: Dual Ray Heuristic LP relaxation: dual LP: dual ray: relax bounds: maxcTxcTx s.t. Ax b 0 x u local bounds min b T y + T r s.t. A T y + r c y, r 0 (y *, r * ) 0, A T y * + r * 0, b T y * + T r * < 0 i := u i, s.t. still b T y * + T r * < 0

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

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

54
54 Implementation Which pruned subproblems should be analyzed? propagation conflictsyes infeasible LP conflictsyes bound-exceeding LP conflictsno strong branching conflictsno 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

55
55 How to Support Conflict Analysis in 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

56
56 Reverse Propagation input: constraint and tightened bound deduced

57
57 Reverse Propagation input: constraint and tightened bound deduced output: bounds that are reason for deduction and

58
58 Reverse Propagation: Examples set covering constraints only one type of propagation reverse propagation easy: all variables except the inferred variable are reason variables

59
59 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 Reverse Propagation: Examples

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

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

62
62 Computational Results 47 instancesCPLEX 10.0SCIPSCIP + ConfA Fails533 Nodes Node Winner(24)14 (7)27 (17) Time Time Winner(33)16 (4)25 (11) 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%

63
63 Computational Results 21 instancesCPLEX 10.0SCIPSCIP + ConfA Fails011 Nodes Node Winner(7)0 (3)16 (14) Time Time Winner(12)1 (4)16 (9) ALU instances up to 8 bits for which one of the three needed at least 1000 nodes infeasible MIP instances nodes: -85%time: -58%

64
64 Computational Results 6 instancesCPLEX 10.0SCIPSCIP + ConfA Fails100 Nodes Node Winner006 Time Time Winner(4)0 (0)5 (2) "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%

65
65 Computational Results SCIP + ConfA hours full conflict analysis (bound-exceeding LPs and strong branchings) SCIP Nodes Time11.4 hours 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

66
66 Computational Results

67
67 Computational Results

68
68 Computational Results SCIPSCIP + ConfA Nodes Time20.0 hours10.3 hours 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

Similar presentations

© 2016 SlidePlayer.com Inc.

All rights reserved.

Ads by Google