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