Primal heuristic for MINLPs in SCIP Ambros Gleixner, and Felipe - - PowerPoint PPT Presentation
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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