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

diving for conflicts in mixed integer programming
SMART_READER_LITE
LIVE PREVIEW

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,


slide-1
SLIDE 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

slide-2
SLIDE 2

Question

Primal heuristics

  • incomplete

methods without guarantees

  • e.g., rounding,

diving, LNS, ...

  • goal: find

near-optimal solutions

? → ←

Conflict information

  • information on

infeasible subproblems

  • e.g. conflict

analysis, dual ray analysis, clique table, ...

  • goal: find valid

reductions

Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 1 / 8

slide-3
SLIDE 3

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 x1 2 (1) x1 x2 2x3 (2) x1 x2 x3 0 1 x2 1 is a sufficient reason

Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 2 / 8

slide-4
SLIDE 4

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 x1 2 (1) x1 x2 2x3 (2) x1 x2 x3 0 1 x2 1 is a sufficient reason

Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 2 / 8

slide-5
SLIDE 5

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 x1 2 (1) x1 x2 2x3 (2) x1 x2 x3 0 1 x2 1 is a sufficient reason

Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 2 / 8

slide-6
SLIDE 6

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 x1 + x2 + 2x3 ≤ 2 (1) x1 + x2 − 2x3 ≤ 0 (2) x1, x2, x3 ∈ {0, 1} x2 1 is a sufficient reason

Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 2 / 8

slide-7
SLIDE 7

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 x1 + x2 + 2x3 ≤ 2 (1) x1 + x2 − 2x3 ≤ 0 (2) x1, x2, x3 ∈ {0, 1} (x2 ≥ 1)

(1)

= ⇒ (x3 ≤ 0) x2 1 is a sufficient reason

Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 2 / 8

slide-8
SLIDE 8

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 x1 + x2 + 2x3 ≤ 2 (1) x1 + x2 − 2x3 ≤ 0 (2) x1, x2, x3 ∈ {0, 1} (x2 ≥ 1)

(1)

= ⇒ (x3 ≤ 0) = ⇒ (2) is violated x2 1 is a sufficient reason

Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 2 / 8

slide-9
SLIDE 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 x1 + ≤ 2 (1) x1 + ≤ 0 (2) x1, x2, x3 ∈ {0, 1} (x2 ≥ 1)

(1)

= ⇒ (x3 ≤ 0) = ⇒ (2) is violated ⇝ x2 ≥ 1 is a sufficient reason

Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 2 / 8

slide-10
SLIDE 10

Conflict Graph Analysis

  • Goes back to Marques-Silva and Sakallah (1999)
  • Idea: consider implications that led to the local bounds
  • x1

x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 y infeasibility branching decisions implied bounds

Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 3 / 8

slide-11
SLIDE 11

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

x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 y infeasibility branching decisions implied bounds

Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 3 / 8

slide-12
SLIDE 12

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

x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 y infeasibility branching decisions implied bounds

Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 3 / 8

slide-13
SLIDE 13

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

x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 y infeasibility branching decisions implied bounds

Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 3 / 8

slide-14
SLIDE 14

LP Infeasibility

  • Assume a subproblem with bounds ℓ ≤ ℓ′ ≤ u′ ≤ u

min{cTx | Ax ≥ b, ℓ′ ≤ x ≤ u′, xi ∈ Z ∀i ∈ I} (3)

  • LP of (3) infeasible

unbounded direction in the dual max yTb rT u yTA rT cT y

m r n

(4)

  • i.e. a ray y s

ytA st ytb st u yTA x yTb (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

slide-15
SLIDE 15

LP Infeasibility

  • Assume a subproblem with bounds ℓ ≤ ℓ′ ≤ u′ ≤ u

min{cTx | Ax ≥ b, ℓ′ ≤ x ≤ u′, xi ∈ Z ∀i ∈ I} (3)

  • LP of (3) infeasible ⇐

⇒ unbounded direction in the dual max{yTb + rT{ℓ′, u′} | yTA + rT = cT, y ∈ Rm

+, r ∈ Rn}

(4)

  • i.e. a ray (y, s)

ytA + st = 0 ytb + st{ℓ′, u′} > 0 yTA x yTb (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

slide-16
SLIDE 16

LP Infeasibility

  • Assume a subproblem with bounds ℓ ≤ ℓ′ ≤ u′ ≤ u

min{cTx | Ax ≥ b, ℓ′ ≤ x ≤ u′, xi ∈ Z ∀i ∈ I} (3)

  • LP of (3) infeasible ⇐

⇒ unbounded direction in the dual max{yTb + rT{ℓ′, u′} | yTA + rT = cT, y ∈ Rm

+, r ∈ Rn}

(4)

  • i.e. a ray (y, s)

ytA + st = 0 ytb + st{ℓ′, u′} > 0 ⇓ (yTA)x ≥ yTb (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

slide-17
SLIDE 17

LP Infeasibility

  • Assume a subproblem with bounds ℓ ≤ ℓ′ ≤ u′ ≤ u

min{cTx | Ax ≥ b, ℓ′ ≤ x ≤ u′, xi ∈ Z ∀i ∈ I} (3)

  • LP of (3) infeasible ⇐

⇒ unbounded direction in the dual max{yTb + rT{ℓ′, u′} | yTA + rT = cT, y ∈ Rm

+, r ∈ Rn}

(4)

  • i.e. a ray (y, s)

ytA + st = 0 ytb + st{ℓ′, u′} > 0 ⇓ (yTA)x ≥ yTb (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

slide-18
SLIDE 18

Motivation

Starting point of a diving heuristic

  • primal feasible x⋆ for min{ctx | Ax ≥ b, ℓ′ ≤ x ≤ u′}
  • dual feasible (y⋆, r⋆) for max{ytb + r{ℓ′, u′} | ytA + r = c}

(y⋆, r⋆) ytA + st = 0 ytb + st{ℓ′, u′} > 0 infeasible y r c infeasible infeasible ytA st feasible Question: How to satisfy ytb st u 0?

Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 5 / 8

slide-19
SLIDE 19

Motivation

Starting point of a diving heuristic

  • primal feasible x⋆ for min{ctx | Ax ≥ b, ℓ′ ≤ x ≤ u′}
  • dual feasible (y⋆, r⋆) for max{ytb + r{ℓ′, u′} | ytA + r = c}

(y⋆, r⋆) ytA + st = 0 ytb + st{ℓ′, u′} > 0 infeasible (y⋆, r⋆ − c) infeasible infeasible ytA + st = 0 feasible Question: How to satisfy ytb st u 0?

Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 5 / 8

slide-20
SLIDE 20

Motivation

Starting point of a diving heuristic

  • primal feasible x⋆ for min{ctx | Ax ≥ b, ℓ′ ≤ x ≤ u′}
  • dual feasible (y⋆, r⋆) for max{ytb + r{ℓ′, u′} | ytA + r = c}

(y⋆, r⋆) ytA + st = 0 ytb + st{ℓ′, u′} > 0 infeasible (y⋆, r⋆ − c) infeasible infeasible ytA + st = 0 feasible Question: How to satisfy ytb + st{ℓ′, u′} > 0?

Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 5 / 8

slide-21
SLIDE 21

Motivation

(y⋆)tb + (r⋆ − c)t{ℓ′, u′} > 0 ⇐ ⇒ (y⋆)tb + ∑

(r⋆

i −ci)>0

(r⋆

i − ci) · ℓ′ i +

(r⋆

i −ci)<0

(r⋆

i − ci) · u′ i > 0

Violation reduced by increasing

i if ri

ci decreasing ui if ri ci Observation

  • 1. Each fractional candidate i with xi

is basic.

  • 2. Basic variables have reduced cost ri

0. Dive optimistically: towards best bound / pseudo solution.

Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 6 / 8

slide-22
SLIDE 22

Motivation

(y⋆)tb + (r⋆ − c)t{ℓ′, u′} > 0 ⇐ ⇒ (y⋆)tb + ∑

(r⋆

i −ci)>0

(r⋆

i − ci) · ℓ′ i +

(r⋆

i −ci)<0

(r⋆

i − ci) · u′ i > 0

Violation reduced by increasing ℓ′

i if r⋆ i − ci > 0

decreasing u′

i if r⋆ i − ci < 0

Observation

  • 1. Each fractional candidate i with xi

is basic.

  • 2. Basic variables have reduced cost ri

0. Dive optimistically: towards best bound / pseudo solution.

Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 6 / 8

slide-23
SLIDE 23

Motivation

(y⋆)tb + (r⋆ − c)t{ℓ′, u′} > 0 ⇐ ⇒ (y⋆)tb + ∑

(r⋆

i −ci)>0

(r⋆

i − ci) · ℓ′ i +

(r⋆

i −ci)<0

(r⋆

i − ci) · u′ i > 0

Violation reduced by increasing ℓ′

i if r⋆ i − ci > 0

decreasing u′

i if r⋆ i − ci < 0

Observation

  • 1. Each fractional candidate i with x⋆

i /

∈ Z is basic.

  • 2. Basic variables have reduced cost r⋆

i = 0.

⇝ Dive optimistically: towards best bound / pseudo solution.

Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 6 / 8

slide-24
SLIDE 24

Motivation

(y⋆)tb + (r⋆ − c)t{ℓ′, u′} > 0 ⇐ ⇒ (y⋆)tb + ∑

(r⋆

i −ci)>0

(r⋆

i − ci) · ℓ′ i +

(r⋆

i −ci)<0

(r⋆

i − ci) · u′ i > 0

Violation reduced by increasing ℓ′

i if ci < 0

decreasing u′

i if ci > 0

Observation

  • 1. Each fractional candidate i with x⋆

i /

∈ Z is basic.

  • 2. Basic variables have reduced cost r⋆

i = 0.

⇝ Dive optimistically: towards best bound / pseudo solution.

Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 6 / 8

slide-25
SLIDE 25

Candidate Selection

Dual view: fd-dual

  • Goal: reduce violation of ytb + st{ℓ′, u′} > 0
  • Choose candidate with maximal ci · (⌈x⋆

i ⌉ − ℓ′) resp. ci · (u′ i − ⌊x⋆ i ⌋)

Primal view: fd-primal

  • Goal: increase objective function value
  • Choose candidate with maximal ci · (1 − fi) resp. ci · fi,

where fi := x⋆

i − ⌊x⋆ i ⌋ is the fractionality in the LP solution x∗

Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 7 / 8

slide-26
SLIDE 26

Summary

  • 1. Learning from infeasibility
  • classical conflict analysis and LP extensions
  • 2. Farkas diving
  • optimistic diving towards best bound relaxation
  • “diving for conflicts”
  • 3. Outlook: “conflicts for diving”?
  • traditional coefficient diving: dive towards few “variable locks” from model constraints
  • conflicts diving: dive towards few “conflict locks” from Farkas constraints

Thank you for your attention!

Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 8 / 8

slide-27
SLIDE 27

Summary

  • 1. Learning from infeasibility
  • classical conflict analysis and LP extensions
  • 2. Farkas diving
  • optimistic diving towards best bound relaxation
  • “diving for conflicts”
  • 3. Outlook: “conflicts for diving”?
  • traditional coefficient diving: dive towards few “variable locks” from model constraints
  • conflicts diving: dive towards few “conflict locks” from Farkas constraints

Thank you for your attention!

Gleixner and Witzig · Diving for Conflicts in Mixed-Integer Programming 8 / 8