SLIDE 1 Calcul de bornes dans LocalSolver 9.5
Nikolas Stott nstott@localsolver.com
www.localsolver.com ROADEF 2020 Montpellier
SLIDE 2 2 32
LocalSolver’s philosophy
Global optimization solver For combinatorial, numerical,
- r mixed-variable optimization
Suited for tackling large-scale problems Quality solutions in minutes without tuning
The « Swiss Army Knife » of mathematical optimization
www.localsolver.com
SLIDE 3
3 32
LocalSolver’s modeling bricks
Operator types:
➢ +, -, x, /, sqrt, pow, abs, if… ➢ partition, contains, at, indexOf…
Variable types:
➢ Bool, int, float ➢ Set, list
Multi-objective modeling:
➢ Lexicographic ordering ➢ Enables “soft constraints”
min( 𝑔
1 𝑦 , 𝑔 2 𝑦, 𝑧 )
1 𝑦 = 0 2 𝑦, 𝑧 = 0
SLIDE 4
4 32
Multi-objective modeling
Soft constraints with objective-lifting :
Min f(x) s.t. g(x) <= 0 h(x) = 0 Min violation( g(x) <= 0 ) Min f(x) s.t. h(x) = 0
Sometimes, real-world data clashes with constraints satisfaction…
SLIDE 5
5 32
LocalSolver 9.0 vs LocalSolver 9.5
Industrial scheduling and routing problem.
➢ 105 integers in [0, 5000] ➢ Time limit: 60s
LocalSolver 9.0 : LocalSolver 9.5 :
➢ 6 objectives and 27 constraints
LocalSolver now proves global optimality.
SLIDE 6
6 32
Architecture of LocalSolver
Primal heuristics:
➢ Historic core ➢ Local search techniques ➢ Extremely scalable
MINLP solver:
➢ Lower bounds ➢ Finds solutions when hard for pure primal heuristics
LocalSolver
Global preprocessing and scheduler
Solutions Solutions Bounds
SLIDE 7 7 32
Lower bounds in LocalSolver 9.5
- What was already there: CP and presolve
- MINLP sub-solver
- Solving multi-objective problems to OPT
- Dealing with collection variables
SLIDE 8
8 32
Lower bounds from preprocessing
Preprocessing yields globally valid bounds
SLIDE 9
9 32
Architecture : Directed Acyclic Graph
SLIDE 10
10 32
Bounds during preprocessing
x1 Op x2
[𝑚1, 𝑣1] [𝑚2, 𝑣2] [𝑚, 𝑣]
Deduce bounds of a node from its children If Op = “+”, then 𝑚, 𝑣 ⊆ [𝑚1 + 𝑚2, 𝑣1 + 𝑣2]
SLIDE 11
11 32
Bounds during preprocessing
x1 Op x2
[𝑚1, 𝑣1] [𝑚2, 𝑣2] [𝑚, 𝑣]
Infer bounds of a node from its parents
If Op = “+” and 𝑚 = 𝑣 , then
𝑚1 + 𝑣2 = 𝑚 𝑣2 + 𝑚1 = 𝑚
SLIDE 12
12 32
Bounds during preprocessing
➢ No fancy computation: only logical inference ➢ No solver is called: very precise ➢ Works on all variables: also lists & sets ➢ Each objective is handled independently
➢ Cheap bounds, for all objectives
SLIDE 13
13 32
MINLP Solver
LocalSolver has a global solver under the hood to solve MINLPs
➢ Reformulate model ➢ Solve linear/convex relaxation ➢ Branch and reduce to improve bound
SLIDE 14
14 32
MINLP reformulation
Linear/convex relaxation :
➢ Each link in the DAG becomes a constraint
SLIDE 15
15 32
MINLP reformulation
Linear/convex relaxation :
➢ Each link in the DAG becomes a constraint
SLIDE 16
16 32
MINLP reformulation
Linear/convex relaxation :
➢ Each link in the DAG becomes a constraint ➢ Linear constraints, linear objective, simple couplings
SLIDE 17
17 32
2 types of relaxations
Linear relaxation:
➢ Several convexity cuts ➢ Solved by simplex algorithm
Convex relaxation:
➢ Quadratic convexification ➢ Dedicated Augmented Lagrangian or Interior Points
SLIDE 18
18 32
Branch & reduce
SLIDE 19
19 32
Branch & reduce
SLIDE 20
20 32
Branch & reduce
SLIDE 21
21 32
Branch & reduce
SLIDE 22
22 32
Performance on MINLPLib:
SLIDE 23
23 32
Extension to multi-objective problems
LocalSolver provides lower bounds for multi-objective problems
SLIDE 24
24 32
Lower bounds for multi-objective problems
min( 𝑔
1 𝑦 , 𝑔 2 𝑦, 𝑧 )
1 𝑦 = 0 2 𝑦, 𝑧 = 0 𝑔
1 𝑝𝑞𝑢 = min 𝑔 1 𝑦
1 𝑦 = 0 2 𝑦, 𝑧 = 0 𝑔
2 𝑝𝑞𝑢 = min 𝑔 2 𝑦, 𝑧
1 𝑦 = 0 2 𝑦, 𝑧 = 0 𝑔
1 𝑦 = 𝑔 1 𝑝𝑞𝑢
Phase 1: Phase 2:
Typical multi-objective model:
Lexicographic treatment:
* Only when exact linearizations exist in LocalSolver 9.5
SLIDE 25
25 32
Bounds in a multi-objective context
Back to soft constraints: infeasible case
Min f(x) s.t. g(x) <= 0 h(x) = 0 Min violation( g(x) ) Min f(x) s.t. h(x) = 0
Before:
➢ Stop trying to find “feasibility”, ➢ Focus resources on finding opt for second objective ➢ Keep trying to find “feasibility”, and “waste” computing resources
Now:
SLIDE 26
26 32
LocalSolver 9.0 vs LocalSolver 9.5
Industrial scheduling and routing problem.
➢ 105 integers in [0, 5000] ➢ Time limit: 60s
LocalSolver 9.0 : LocalSolver 9.5 :
➢ 6 objectives and 27 constraints
LocalSolver now proves (global) optimality.
SLIDE 27
27 32
LocalSolver 9.0 vs LocalSolver 9.5
Other nonlinear industrial instance.
➢ 18k booleans ➢ Time limit: 60s
LocalSolver 9.0 : LocalSolver 9.5 :
➢ 5 objectives and 9k constraints
SLIDE 28
28 32
Bounds for models with collection variables
LocalSolver proves bounds for models based on sets
SLIDE 29 29 32
Linearization of collections:
Replace whole set structure by booleans:
➢ 𝑗 ∈ 𝑇
𝑘 becomes 𝑦𝑗𝑘
➢ 𝑞𝑏𝑠𝑢𝑗𝑢𝑗𝑝𝑜 𝑇0, 𝑇1 becomes: ∀𝑗, 𝑦𝑗0 + 𝑦𝑗1 = 1 σ𝑗(𝑦𝑗0+𝑦𝑗1) = |𝑇| ➢ And all others…
Sets are useful for modeling :
➢ Concise description for the user ➢ Not so useful for global optimization..
SLIDE 30 30 32
Set 1 Set 2 Set 3 Set 4
Bin-packing:
Detection of problem structure :
➢ Enables Stronger formulations
partition count s.t. 𝑧𝑘
min
𝑘
(𝐶
𝑘 ≠ ∅)
𝐶
𝑘
form a partition
s.t.
𝑥 𝐶
𝑘 ≤ 𝐷 ∀𝑘
SLIDE 31
31 32
Next…
Bounds for models involving lists… … in the works
SLIDE 32
32 32
Thanks
Do you have any questions ?