Primal heuristic for MINLPs in SCIP Ambros Gleixner, and Felipe - - PowerPoint PPT Presentation

primal heuristic for minlps in scip
SMART_READER_LITE
LIVE PREVIEW

Primal heuristic for MINLPs in SCIP Ambros Gleixner, and Felipe - - PowerPoint PPT Presentation

Primal heuristic for MINLPs in SCIP Ambros Gleixner, and Felipe Serrano Zuse Institute Berlin serrano@zib.de SCIP Optimization Suite http://scip.zib.de Workshop on Discrepancy Theory and Integer Programming Amsterdam June 12, 2018


slide-1
SLIDE 1

Primal heuristic for MINLPs in SCIP

Ambros Gleixner, and Felipe Serrano

Zuse Institute Berlin · serrano@zib.de SCIP Optimization Suite · http://scip.zib.de Workshop on Discrepancy Theory and Integer Programming Amsterdam · June 12, 2018

slide-2
SLIDE 2

Outline

Introduction: LP-based Branch and Bound Spatial Branch and bound Heuristics Sub-NLP NLP diving Multi-start MPEC Undercover RENS Conclusion

Gleixner, Serrano · MINLPs in SCIP 1 / 24

slide-3
SLIDE 3

Mixed-Integer Nonlinear Programs (MINLPs)

min cTx s.t. gk(x) ≤ 0 ∀k ∈ [m] xi ∈ Z ∀i ∈ I ⊆ [n] xi ∈ [ℓi, ui] ∀i ∈ [n] The functions gk ∈ C1([ℓ, u], R) can be

−1 1 −1 1 5 10

convex or

100 200 300 200 −200 200

nonconvex

Gleixner, Serrano · MINLPs in SCIP 2 / 24

slide-4
SLIDE 4

One way of solving MINLPs to global optimality

  • Methods for finding (good) feasible solutions

Primal heuristics

  • Proof that there is no better solution

LP-based spatial branch and bound

Gleixner, Serrano · MINLPs in SCIP 3 / 24

slide-5
SLIDE 5

LP based spatial Branch & Bound

  • Build a (extended formulation of a) polyhedral relaxation R
  • Solve R and get solution x∗
  • If x∗ is feasible we are done. If not,
  • Try to strengthen R by separating x∗
  • When not possible, branch possibly on continuous variables (spatially)

Gleixner, Serrano · MINLPs in SCIP 4 / 24

slide-6
SLIDE 6

Building polyhedral relaxations: the problem

  • We can start with the variable’s bounds as our relaxation.
  • Then we have to solve the separation problem: Given

{x ∈ [l, u] : g(x) ≤ 0} and ¯ x s.t. g(¯ x) > 0 either

  • Find a separating inequality or
  • prove that none exists.
  • Very expensive for general g
  • However, when g is convex, it is as easy as computing a gradient:

g x g x x x

  • Idea: find convex underestimator g of g x
  • Then x

l u g x x l u g x

  • If g x

0 we can separate.

Gleixner, Serrano · MINLPs in SCIP 5 / 24

slide-7
SLIDE 7

Building polyhedral relaxations: the problem

  • We can start with the variable’s bounds as our relaxation.
  • Then we have to solve the separation problem: Given

{x ∈ [l, u] : g(x) ≤ 0} and ¯ x s.t. g(¯ x) > 0 either

  • Find a separating inequality or
  • prove that none exists.
  • Very expensive for general g
  • However, when g is convex, it is as easy as computing a gradient:

g x g x x x

  • Idea: find convex underestimator g of g x
  • Then x

l u g x x l u g x

  • If g x

0 we can separate.

Gleixner, Serrano · MINLPs in SCIP 5 / 24

slide-8
SLIDE 8

Building polyhedral relaxations: the problem

  • We can start with the variable’s bounds as our relaxation.
  • Then we have to solve the separation problem: Given

{x ∈ [l, u] : g(x) ≤ 0} and ¯ x s.t. g(¯ x) > 0 either

  • Find a separating inequality or
  • prove that none exists.
  • Very expensive for general g
  • However, when g is convex, it is as easy as computing a gradient:

g(¯ x) + ∇g(¯ x)(x − ¯ x) ≤ 0

  • Idea: find convex underestimator g of g x
  • Then x

l u g x x l u g x

  • If g x

0 we can separate.

Gleixner, Serrano · MINLPs in SCIP 5 / 24

slide-9
SLIDE 9

Building polyhedral relaxations: the problem

  • We can start with the variable’s bounds as our relaxation.
  • Then we have to solve the separation problem: Given

{x ∈ [l, u] : g(x) ≤ 0} and ¯ x s.t. g(¯ x) > 0 either

  • Find a separating inequality or
  • prove that none exists.
  • Very expensive for general g
  • However, when g is convex, it is as easy as computing a gradient:

g(¯ x) + ∇g(¯ x)(x − ¯ x) ≤ 0

  • Idea: find convex underestimator ˆ

g of g(x)

  • Then x

l u g x x l u g x

  • If g x

0 we can separate.

Gleixner, Serrano · MINLPs in SCIP 5 / 24

slide-10
SLIDE 10

Building polyhedral relaxations: the problem

  • We can start with the variable’s bounds as our relaxation.
  • Then we have to solve the separation problem: Given

{x ∈ [l, u] : g(x) ≤ 0} and ¯ x s.t. g(¯ x) > 0 either

  • Find a separating inequality or
  • prove that none exists.
  • Very expensive for general g
  • However, when g is convex, it is as easy as computing a gradient:

g(¯ x) + ∇g(¯ x)(x − ¯ x) ≤ 0

  • Idea: find convex underestimator ˆ

g of g(x)

  • Then {x ∈ [l, u] : g(x) ≤ 0} ⊆ {x ∈ [l, u] : ˆ

g(x) ≤ 0}

  • If ˆ

g(¯ x) > 0 we can separate.

Gleixner, Serrano · MINLPs in SCIP 5 / 24

slide-11
SLIDE 11

Building polyhedral relaxations: an example

  • x2 + y2 + 2 exp(xy3) ≤ 3 with x, y ∈ [−2, 2]
  • x2

y2 x2 y2 2 xy3

  • 2
  • 1

1 2

  • 2
  • 1

1 2

  • Admittedly, ad-hoc argument
  • In practice: if functions are simple enough, we know convex/concave

envelopes

  • If function is not simple enough, make it simpler!

Gleixner, Serrano · MINLPs in SCIP 6 / 24

slide-12
SLIDE 12

Building polyhedral relaxations: an example

  • x2 + y2 + 2 exp(xy3) ≤ 3 with x, y ∈ [−2, 2]
  • exp(·) > 0 ⇒ x2 + y2 ≤ x2 + y2 + 2 exp(xy3)
  • 2
  • 1

1 2

  • 2
  • 1

1 2

  • Admittedly, ad-hoc argument
  • In practice: if functions are simple enough, we know convex/concave

envelopes

  • If function is not simple enough, make it simpler!

Gleixner, Serrano · MINLPs in SCIP 6 / 24

slide-13
SLIDE 13

Building polyhedral relaxations: an example

  • x2 + y2 + 2 exp(xy3) ≤ 3 with x, y ∈ [−2, 2]
  • exp(·) > 0 ⇒ x2 + y2 ≤ x2 + y2 + 2 exp(xy3)
  • 2
  • 1

1 2

  • 2
  • 1

1 2

  • Admittedly, ad-hoc argument
  • In practice: if functions are simple enough, we know convex/concave

envelopes

  • If function is not simple enough, make it simpler!

Gleixner, Serrano · MINLPs in SCIP 6 / 24

slide-14
SLIDE 14

Building polyhedral relaxation in SCIP

  • x2 + y2 + 2 exp(xy3) ≤ 3
  • Introduce auxiliary variables
  • z1 = y3
  • z2 = xz1
  • x2 + y2 + 2 exp(z2) ≤ 3
  • We can find polyhedral relaxations of z1 = y3
  • For z2 = xz1 we have McCormick inequalities:

max{xz1 +z1x−xz1, x¯ z1 +z1¯ x−¯ x¯ z1} ≤ z2 ≤ min{x¯ z1 +z1x−x¯ z1, xz1 +z1¯ x−¯ xz1}

  • Finally, x2 + y2 + 2 exp(z2) is convex

Gleixner, Serrano · MINLPs in SCIP 7 / 24

slide-15
SLIDE 15

Spatial Branch and bound

Solutions might not be separable: conv{(x, y) : x2 = y, x ∈ [ℓ, u]} is x2 ≤ y ≤ ℓ2 + u2 − ℓ2 u − ℓ (x − ℓ) ∀x ∈ [ℓ, u]. Branching on a nonlinear variable in a nonconvex constraint allows for tighter relaxations:

1.0 0.5 0.5 1.0 0.2 0.4 0.6 0.8 1.0

Gleixner, Serrano · MINLPs in SCIP 8 / 24

slide-16
SLIDE 16

Spatial Branch and bound

Solutions might not be separable: conv{(x, y) : x2 = y, x ∈ [ℓ, u]} is x2 ≤ y ≤ ℓ2 + u2 − ℓ2 u − ℓ (x − ℓ) ∀x ∈ [ℓ, u]. Branching on a nonlinear variable in a nonconvex constraint allows for tighter relaxations:

1.0 0.5 0.5 1.0 0.2 0.4 0.6 0.8 1.0 1.0 0.5 0.5 1.0 0.2 0.4 0.6 0.8 1.0

Gleixner, Serrano · MINLPs in SCIP 8 / 24

slide-17
SLIDE 17

Outline

Introduction: LP-based Branch and Bound Spatial Branch and bound Heuristics Sub-NLP NLP diving Multi-start MPEC Undercover RENS Conclusion

Gleixner, Serrano · MINLPs in SCIP 9 / 24

slide-18
SLIDE 18

Sub-NLP

  • Idea: fix integer variables to integer values and run a local NLP solver
  • Good for: MINLP

Let ¯ x be LP-optimum of the current node’s relaxation

  • If there is a i ∈ I such that ¯

xi / ∈ Z → STOP

  • Fix xi to ¯

xi.

  • Solve remaining NLP to local optimality using ¯

x as initial point.

min

Extends MIP heuristics to MINLP

  • SCIP runs its MIP heuristics on MIP relaxation of MINLP
  • use heuristic’s proposed solution as x

Gleixner, Serrano · MINLPs in SCIP 10 / 24

slide-19
SLIDE 19

Sub-NLP

  • Idea: fix integer variables to integer values and run a local NLP solver
  • Good for: MINLP

Let ¯ x be LP-optimum of the current node’s relaxation

  • If there is a i ∈ I such that ¯

xi / ∈ Z → STOP

  • Fix xi to ¯

xi.

  • Solve remaining NLP to local optimality using ¯

x as initial point.

min

Extends MIP heuristics to MINLP

  • SCIP runs its MIP heuristics on MIP relaxation of MINLP
  • use heuristic’s proposed solution as ¯

x

Gleixner, Serrano · MINLPs in SCIP 10 / 24

slide-20
SLIDE 20

NLP diving

  • Idea: Solve NLP relaxations, fixing an integer variable after each NLP
  • Good for: MINLP
  • solve NLP relaxation
  • fix an integer variable
  • propagate
  • repeat
  • if fixing is infeasible, backtrack
  • undo last fixing and fix to another value
  • if infeasible again, abort

Gleixner, Serrano · MINLPs in SCIP 11 / 24

slide-21
SLIDE 21

Multi-start Heuristic [Chinneck et al. 2013]

  • Idea: use different starting points for NLP solver
  • Good for: NLPs without too many integer variables

4 ≤ x2 + y2 ≤ 9 4 ≤ (x − 2)2 + y2 ≤ 9 x ∈ [−4, 6] y ∈ [−4, 4]

Gleixner, Serrano · MINLPs in SCIP 12 / 24

slide-22
SLIDE 22

Multi-start in SCIP

Input: Nonlinear Constraints gi(x) ≤ 0

  • 1. generate random points in [ℓ, u]
  • 2. for each point xk:
  • sk

i gi xk gi xk

2

gi xk i

  • Update:

xk xk 1 n

n i 1

sk

i

  • 3. identify clusters of points C1

Cp

  • 4. for each cluster
  • build convex combination

y

1 Cj x Cj x

  • round each fractional integer

variable to closest integer

  • use resulting point as starting point

for NLP

Gleixner, Serrano · MINLPs in SCIP 13 / 24

slide-23
SLIDE 23

Multi-start in SCIP

Input: Nonlinear Constraints gi(x) ≤ 0

  • 1. generate random points in [ℓ, u]
  • 2. for each point xk:
  • sk

i gi xk gi xk

2

gi xk i

  • Update:

xk xk 1 n

n i 1

sk

i

  • 3. identify clusters of points C1

Cp

  • 4. for each cluster
  • build convex combination

y

1 Cj x Cj x

  • round each fractional integer

variable to closest integer

  • use resulting point as starting point

for NLP

Gleixner, Serrano · MINLPs in SCIP 13 / 24

slide-24
SLIDE 24

Multi-start in SCIP

Input: Nonlinear Constraints gi(x) ≤ 0

  • 1. generate random points in [ℓ, u]
  • 2. for each point xk:
  • sk

i := −gi(xk) ||∇gi(xk)||2 ∇gi(xk) ∀i

  • Update:

x+

k = xk + 1

n

n

i=1

sk

i

  • 3. identify clusters of points C1

Cp

  • 4. for each cluster
  • build convex combination

y

1 Cj x Cj x

  • round each fractional integer

variable to closest integer

  • use resulting point as starting point

for NLP

Gleixner, Serrano · MINLPs in SCIP 13 / 24

slide-25
SLIDE 25

Multi-start in SCIP

Input: Nonlinear Constraints gi(x) ≤ 0

  • 1. generate random points in [ℓ, u]
  • 2. for each point xk:
  • sk

i := −gi(xk) ||∇gi(xk)||2 ∇gi(xk) ∀i

  • Update:

x+

k = xk + 1

n

n

i=1

sk

i

  • 3. identify clusters of points C1

Cp

  • 4. for each cluster
  • build convex combination

y

1 Cj x Cj x

  • round each fractional integer

variable to closest integer

  • use resulting point as starting point

for NLP

Gleixner, Serrano · MINLPs in SCIP 13 / 24

slide-26
SLIDE 26

Multi-start in SCIP

Input: Nonlinear Constraints gi(x) ≤ 0

  • 1. generate random points in [ℓ, u]
  • 2. for each point xk:
  • sk

i := −gi(xk) ||∇gi(xk)||2 ∇gi(xk) ∀i

  • Update:

x+

k = xk + 1

n

n

i=1

sk

i

  • 3. identify clusters of points C1

Cp

  • 4. for each cluster
  • build convex combination

y

1 Cj x Cj x

  • round each fractional integer

variable to closest integer

  • use resulting point as starting point

for NLP

Gleixner, Serrano · MINLPs in SCIP 13 / 24

slide-27
SLIDE 27

Multi-start in SCIP

Input: Nonlinear Constraints gi(x) ≤ 0

  • 1. generate random points in [ℓ, u]
  • 2. for each point xk:
  • sk

i := −gi(xk) ||∇gi(xk)||2 ∇gi(xk) ∀i

  • Update:

x+

k = xk + 1

n

n

i=1

sk

i

  • 3. identify clusters of points C1, . . . , Cp
  • 4. for each cluster
  • build convex combination

y

1 Cj x Cj x

  • round each fractional integer

variable to closest integer

  • use resulting point as starting point

for NLP

Gleixner, Serrano · MINLPs in SCIP 13 / 24

slide-28
SLIDE 28

Multi-start in SCIP

Input: Nonlinear Constraints gi(x) ≤ 0

  • 1. generate random points in [ℓ, u]
  • 2. for each point xk:
  • sk

i := −gi(xk) ||∇gi(xk)||2 ∇gi(xk) ∀i

  • Update:

x+

k = xk + 1

n

n

i=1

sk

i

  • 3. identify clusters of points C1, . . . , Cp
  • 4. for each cluster
  • build convex combination

y :=

1 |Cj|

x∈Cj x

  • round each fractional integer

variable to closest integer

  • use resulting point as starting point

for NLP

Gleixner, Serrano · MINLPs in SCIP 13 / 24

slide-29
SLIDE 29

MPEC Heuristic [Schewe and Schmidt 2016]

  • Idea: write x ∈ {0, 1} as x(1 − x) = 0, relax to x(1 − x) ≤ ε and solve

sequences of NLP with ε → 0

  • Good for: Mixed Binary NLPs
  • MPEC stands for Mathematical Program with Equilibrium Constraints

min f(x) s.t. gj(x) ≤ 0 ∀j ∈ {1, . . . , m} xi ∈ [ℓi, ui] ∀i ∈ {1, . . . , k} xi ∈ {0, 1} ∀i ∈ {k + 1, . . . , n} xi(1 − xi) = 0

Gleixner, Serrano · MINLPs in SCIP 14 / 24

slide-30
SLIDE 30

MPEC Heuristic [Schewe and Schmidt 2016]

  • Idea: write x ∈ {0, 1} as x(1 − x) = 0, relax to x(1 − x) ≤ ε and solve

sequences of NLP with ε → 0

  • Good for: Mixed Binary NLPs
  • MPEC stands for Mathematical Program with Equilibrium Constraints

min f(x) s.t. gj(x) ≤ 0 ∀j ∈ {1, . . . , m} xi ∈ [ℓi, ui] ∀i ∈ {1, . . . , k} xi ∈ [0, 1] ∀i ∈ {k + 1, . . . , n} xi(1 − xi) ≤ 0 ∀i ∈ {k + 1, . . . , n} (NLP)

Gleixner, Serrano · MINLPs in SCIP 14 / 24

slide-31
SLIDE 31

MPEC Heuristic [Schewe and Schmidt 2016]

  • Idea: write x ∈ {0, 1} as x(1 − x) = 0, relax to x(1 − x) ≤ ε and solve

sequences of NLP with ε → 0

  • Good for: Mixed Binary NLPs
  • MPEC stands for Mathematical Program with Equilibrium Constraints

min f(x) s.t. gj(x) ≤ 0 ∀j ∈ {1, . . . , m} xi ∈ [ℓi, ui] ∀i ∈ {1, . . . , k} xi ∈ [0, 1] ∀i ∈ {k + 1, . . . , n} xi(1 − xi) ≤ ε ∀i ∈ {k + 1, . . . , n} (NLPε)

Gleixner, Serrano · MINLPs in SCIP 14 / 24

slide-32
SLIDE 32

MPEC in SCIP

Algorithm

  • 0. choose ε ∈ [0, 1

4] and x ∈ Rn

  • 1. x

solution of NLP using x as starting point

  • 2. if x is feasible for NLP and xi

0 1 STOP

  • 3. if x is feasible for NLP but not binary:
  • 2 ; GOTO 1. with x

x

  • 4. x is infeasible for NLP but satisfies xi 1

xi STOP

  • 5. x is infeasible for NLP and there are xi 1

xi

  • reset or fix xi for binary variables with xi 1

xi

  • xi

xi 0 5 1

  • therwise
  • GOTO 1.

Gleixner, Serrano · MINLPs in SCIP 15 / 24

slide-33
SLIDE 33

MPEC in SCIP

Algorithm

  • 0. choose ε ∈ [0, 1

4] and x ∈ Rn

  • 1. x∗ := solution of NLPε using x as starting point
  • 2. if x is feasible for NLP and xi

0 1 STOP

  • 3. if x is feasible for NLP but not binary:
  • 2 ; GOTO 1. with x

x

  • 4. x is infeasible for NLP but satisfies xi 1

xi STOP

  • 5. x is infeasible for NLP and there are xi 1

xi

  • reset or fix xi for binary variables with xi 1

xi

  • xi

xi 0 5 1

  • therwise
  • GOTO 1.

Gleixner, Serrano · MINLPs in SCIP 15 / 24

slide-34
SLIDE 34

MPEC in SCIP

Algorithm

  • 0. choose ε ∈ [0, 1

4] and x ∈ Rn

  • 1. x∗ := solution of NLPε using x as starting point
  • 2. if x∗ is feasible for NLPε and x∗

i ∈ {0, 1} → STOP

  • 3. if x is feasible for NLP but not binary:
  • 2 ; GOTO 1. with x

x

  • 4. x is infeasible for NLP but satisfies xi 1

xi STOP

  • 5. x is infeasible for NLP and there are xi 1

xi

  • reset or fix xi for binary variables with xi 1

xi

  • xi

xi 0 5 1

  • therwise
  • GOTO 1.

Gleixner, Serrano · MINLPs in SCIP 15 / 24

slide-35
SLIDE 35

MPEC in SCIP

Algorithm

  • 0. choose ε ∈ [0, 1

4] and x ∈ Rn

  • 1. x∗ := solution of NLPε using x as starting point
  • 2. if x∗ is feasible for NLPε and x∗

i ∈ {0, 1} → STOP

  • 3. if x∗ is feasible for NLPε but not binary:
  • 2 ; GOTO 1. with x

x

  • 4. x is infeasible for NLP but satisfies xi 1

xi STOP

  • 5. x is infeasible for NLP and there are xi 1

xi

  • reset or fix xi for binary variables with xi 1

xi

  • xi

xi 0 5 1

  • therwise
  • GOTO 1.

Gleixner, Serrano · MINLPs in SCIP 15 / 24

slide-36
SLIDE 36

MPEC in SCIP

Algorithm

  • 0. choose ε ∈ [0, 1

4] and x ∈ Rn

  • 1. x∗ := solution of NLPε using x as starting point
  • 2. if x∗ is feasible for NLPε and x∗

i ∈ {0, 1} → STOP

  • 3. if x∗ is feasible for NLPε but not binary:
  • ε := ε

2 ; GOTO 1. with x := x∗

  • 4. x is infeasible for NLP but satisfies xi 1

xi STOP

  • 5. x is infeasible for NLP and there are xi 1

xi

  • reset or fix xi for binary variables with xi 1

xi

  • xi

xi 0 5 1

  • therwise
  • GOTO 1.

Gleixner, Serrano · MINLPs in SCIP 15 / 24

slide-37
SLIDE 37

MPEC in SCIP

Algorithm

  • 0. choose ε ∈ [0, 1

4] and x ∈ Rn

  • 1. x∗ := solution of NLPε using x as starting point
  • 2. if x∗ is feasible for NLPε and x∗

i ∈ {0, 1} → STOP

  • 3. if x∗ is feasible for NLPε but not binary:
  • ε := ε

2 ; GOTO 1. with x := x∗

  • 4. x∗ is infeasible for NLPε but satisfies x∗

i (1 − x∗ i ) ≤ ε → STOP

  • 5. x is infeasible for NLP and there are xi 1

xi

  • reset or fix xi for binary variables with xi 1

xi

  • xi

xi 0 5 1

  • therwise
  • GOTO 1.

Gleixner, Serrano · MINLPs in SCIP 15 / 24

slide-38
SLIDE 38

MPEC in SCIP

Algorithm

  • 0. choose ε ∈ [0, 1

4] and x ∈ Rn

  • 1. x∗ := solution of NLPε using x as starting point
  • 2. if x∗ is feasible for NLPε and x∗

i ∈ {0, 1} → STOP

  • 3. if x∗ is feasible for NLPε but not binary:
  • ε := ε

2 ; GOTO 1. with x := x∗

  • 4. x∗ is infeasible for NLPε but satisfies x∗

i (1 − x∗ i ) ≤ ε → STOP

  • 5. x∗ is infeasible for NLPε and there are x∗

i (1 − x∗ i ) > ε

  • reset or fix xi for binary variables with xi 1

xi

  • xi

xi 0 5 1

  • therwise
  • GOTO 1.

Gleixner, Serrano · MINLPs in SCIP 15 / 24

slide-39
SLIDE 39

MPEC in SCIP

Algorithm

  • 0. choose ε ∈ [0, 1

4] and x ∈ Rn

  • 1. x∗ := solution of NLPε using x as starting point
  • 2. if x∗ is feasible for NLPε and x∗

i ∈ {0, 1} → STOP

  • 3. if x∗ is feasible for NLPε but not binary:
  • ε := ε

2 ; GOTO 1. with x := x∗

  • 4. x∗ is infeasible for NLPε but satisfies x∗

i (1 − x∗ i ) ≤ ε → STOP

  • 5. x∗ is infeasible for NLPε and there are x∗

i (1 − x∗ i ) > ε

  • reset or fix xi for binary variables with x∗

i (1 − x∗ i ) > ε

  • xi

xi 0 5 1

  • therwise
  • GOTO 1.

Gleixner, Serrano · MINLPs in SCIP 15 / 24

slide-40
SLIDE 40

MPEC in SCIP

Algorithm

  • 0. choose ε ∈ [0, 1

4] and x ∈ Rn

  • 1. x∗ := solution of NLPε using x as starting point
  • 2. if x∗ is feasible for NLPε and x∗

i ∈ {0, 1} → STOP

  • 3. if x∗ is feasible for NLPε but not binary:
  • ε := ε

2 ; GOTO 1. with x := x∗

  • 4. x∗ is infeasible for NLPε but satisfies x∗

i (1 − x∗ i ) ≤ ε → STOP

  • 5. x∗ is infeasible for NLPε and there are x∗

i (1 − x∗ i ) > ε

  • reset or fix xi for binary variables with x∗

i (1 − x∗ i ) > ε

  • xi :=

{ 0, x∗

i > 0.5

1,

  • therwise
  • GOTO 1.

Gleixner, Serrano · MINLPs in SCIP 15 / 24

slide-41
SLIDE 41

MPEC in SCIP

Algorithm

  • 0. choose ε ∈ [0, 1

4] and x ∈ Rn

  • 1. x∗ := solution of NLPε using x as starting point
  • 2. if x∗ is feasible for NLPε and x∗

i ∈ {0, 1} → STOP

  • 3. if x∗ is feasible for NLPε but not binary:
  • ε := ε

2 ; GOTO 1. with x := x∗

  • 4. x∗ is infeasible for NLPε but satisfies x∗

i (1 − x∗ i ) ≤ ε → STOP

  • 5. x∗ is infeasible for NLPε and there are x∗

i (1 − x∗ i ) > ε

  • reset or fix xi for binary variables with x∗

i (1 − x∗ i ) > ε

  • xi :=

{ 0, x∗

i > 0.5

1,

  • therwise
  • GOTO 1.

Gleixner, Serrano · MINLPs in SCIP 15 / 24

slide-42
SLIDE 42

Undercover [Berthold and Gleixner 2014]

  • Idea: fix variables so that MINLP transforms into a MIP
  • Good for: MIQCQP
  • Solve a relaxation (LP, NLP)
  • Identify minimum set C of variables to be fixed in
  • rder to obtain a MIP
  • Fix variables in C to relaxation’s solution.
  • Solve MIP
  • Postprocess: Fix integer values and solve NLP

Gleixner, Serrano · MINLPs in SCIP 16 / 24

slide-43
SLIDE 43

Undercover in SCIP

  • Identifying minimum set C of variables to be fixed
  • If

∂2 ∂xixj gk(x) ̸= 0 then xi or xj must be fixed

  • Build graph with nodes xi and arcs {xi, xj} if

∂ ∂xixj gk(x) ̸= 0

  • Minimum vertex cover yields the set we are looking for.
  • Fix variables in C to relaxation’s solution
  • Fix a variable, if variable must be integer, fix to rounded value.
  • Propagate bounds: to avoid ”obvious” infeasible fixings
  • If next fixing value is outside bounds, choose closest bound or resolve

relaxation

  • If infeasible, backtrack: undo last fixing and try new value

Gleixner, Serrano · MINLPs in SCIP 17 / 24

slide-44
SLIDE 44

RENS: The optimal rounding [Berthold 2014]

  • RENS stands for Relaxation Enforced Neighborhood Search
  • Idea: restrict integer variables around LP-relaxation’s solution and solve

remaining MINLP

  • Good for: MIP, MINLP
  • Let ¯

x be the LP solution

  • If |{i ∈ I : ¯

xi ∈ Z}| > p|I| for some p ∈ [0, 1] then

  • Change bounds of xi to {⌊¯

xi⌋, ⌈¯ xi⌉}

  • Solve smaller MINLP
  • This gives the feasible rounding with best
  • bjective value

Gleixner, Serrano · MINLPs in SCIP 18 / 24

slide-45
SLIDE 45

Computational results for RENS

  • Basic LP solutions often show high integrality
  • Success rate seems to decreases when more integer variables are fixed
  • Roundability of MIP and MINLP are similar

Gleixner, Serrano · MINLPs in SCIP 19 / 24

slide-46
SLIDE 46

Computational results for RENS

  • Basic LP solutions often show high integrality
  • Success rate seems to decreases when more integer variables are fixed
  • Roundability of MIP and MINLP are similar

Gleixner, Serrano · MINLPs in SCIP 20 / 24

slide-47
SLIDE 47

Outline

Introduction: LP-based Branch and Bound Spatial Branch and bound Heuristics Sub-NLP NLP diving Multi-start MPEC Undercover RENS Conclusion

Gleixner, Serrano · MINLPs in SCIP 21 / 24

slide-48
SLIDE 48

Conclusion

Summary

  • very brief introduction to LP-based branch and bound
  • overview of MINLP heuristics in SCIP

What is missing in SCIP

  • Non-linear Feasibility Pump
  • Problem specific heuristics

Thank you for your attention

Gleixner, Serrano · MINLPs in SCIP 22 / 24

slide-49
SLIDE 49

Conclusion

Summary

  • very brief introduction to LP-based branch and bound
  • overview of MINLP heuristics in SCIP

What is missing in SCIP

  • Non-linear Feasibility Pump
  • Problem specific heuristics

Thank you for your attention

Gleixner, Serrano · MINLPs in SCIP 22 / 24

slide-50
SLIDE 50

Conclusion

Summary

  • very brief introduction to LP-based branch and bound
  • overview of MINLP heuristics in SCIP

What is missing in SCIP

  • Non-linear Feasibility Pump
  • Problem specific heuristics

Thank you for your attention

Gleixner, Serrano · MINLPs in SCIP 22 / 24

slide-51
SLIDE 51

Primal heuristic for MINLPs in SCIP

Ambros Gleixner, and Felipe Serrano

Zuse Institute Berlin · serrano@zib.de SCIP Optimization Suite · http://scip.zib.de Workshop on Discrepancy Theory and Integer Programming Amsterdam · June 12, 2018

slide-52
SLIDE 52

Literature I

Timo Berthold. RENS – the optimal rounding. Mathematical Programming Computation, 6(1):33–54, 2014.

doi: 10.1007/s12532-013-0060-9.

Timo Berthold and Ambros M. Gleixner. Undercover: a primal MINLP heuristic exploring a largest sub-MIP. Mathematical Programming, 144(1-2):315–346, 2014.

doi: 10.1007/s10107-013-0635-2.

Lars Schewe and Martin Schmidt. Computing feasible points for minlps with mpecs. Technical report, Technical report, Optimization Online, 2016. URL http://www. optimization-online. org/DB_HTML/2016/12/5778. html, 2016.

Gleixner, Serrano · MINLPs in SCIP 23 / 24

slide-53
SLIDE 53

Literature II

Laurence Smith, John Chinneck, and Victor Aitken. Improved constraint consensus methods for seeking feasibility in nonlinear programs. Computational Optimization and Applications, 54(3):555–578, 2013.

doi: 10.1007/s10589-012-9473-z.

Gleixner, Serrano · MINLPs in SCIP 24 / 24