THE SAS MILP SOLVER: CURRENT STATUS AND FUTURE DEVELOPMENTS INFORMS Annual Meeting 2016, Nashville Philipp M. Christophel Menal Güzelsoy Amar Narisetty Imre Pólik
THE SAS MILP SOLVER: CURRENTSTATUS AND FUTURE DEVELOPMENTS
INFORMS Annual Meeting 2016, Nashville
Philipp M. ChristophelMenal GüzelsoyAmar Narisetty
Imre Pólik
SAS/OR AGENDA
1 Introduction
2 Improvements in SAS/OR 14.2Precedence detectionModulo 2 solver
3 Computational results
4 Future Developments
Copyright 2016, SAS Institute Inc. All rights reserved. 2
INTRODUCTION ABOUT THE SAS MILP SOLVER
SAS/OR: LP, QP, NLP, MILP, modeling language, networkalgorithms, constraint programming, derivative-freeoptimization, discrete event simulationAccessible through the PROC OPTMODEL modelinglanguage and directly by calling PROC OPTMILPAlgorithms
I LP relaxation-based branch and cutI Decomposition
Developed since 2004, available since 2006Latest version: SAS/OR 14.2
Copyright 2016, SAS Institute Inc. All rights reserved. 3
IMPROVEMENTS INSAS/OR 14.2 OVERVIEW
PresolverI New techniques: two-row tightening, row aggregation, swap
substitutions, free columns substitutions, mod 2 reductions,precedence constraint, number theory based tightenings andsubstitutions
CutsI New flow cover, flow path, and MIR cuts
SimplexI Crash basis improvementsI Perturbation improvements
OtherI More dual solution tighteningI (Orbital) Probing in node presolverI New pre-LP heuristics
Copyright 2016, SAS Institute Inc. All rights reserved. 4
IMPROVEMENTS INSAS/OR 14.2 PRECEDENCE DETECTION
Given constraints of the form x ≤ y or x ≤ 1− y identify theredundant onesPrecedence graph (G): each variable and its complement getsa nodeArcs indicate the precedence relationshipTransitive closure (G): adding all the implied arcs to the graphRedundancy detection: uv ∈ G is redundant iff∃w ∈ G,w 6= u, v : uw ∈ G,wv ∈ GNeed to be careful about back edges and self links
Copyright 2016, SAS Institute Inc. All rights reserved. 5
IMPROVEMENTS INSAS/OR 14.2 PRECEDENCE DETECTION
Precedence graph
1
2 3
4
x1 ≤ x2
x2 ≤ x3
x3 ≤ x4
x1 ≤ x4
Copyright 2016, SAS Institute Inc. All rights reserved. 6
IMPROVEMENTS INSAS/OR 14.2 PRECEDENCE DETECTION
Transitive closure
1
2 3
4
x1 ≤ x2
x2 ≤ x3
x3 ≤ x4
x1 ≤ x4
Copyright 2016, SAS Institute Inc. All rights reserved. 6
IMPROVEMENTS INSAS/OR 14.2 PRECEDENCE DETECTION
(14) is redundant
1
2 3
4
x1 ≤ x2
x2 ≤ x3
x3 ≤ x4
x1 ≤ x4
Copyright 2016, SAS Institute Inc. All rights reserved. 6
IMPROVEMENTS INSAS/OR 14.2 PRECEDENCE DETECTION
Already had transitive closure implemented as part of SAS/ORVery fastThe closure can be used to speed up probingVery effective on the opm2 class of instances
Instance Rows Rows leftopm2_z7_s2 26675 15699opm2_z10_s2 146299 65358opm2_z11_s8 205459 88265opm2_z12_s7 297768 124278opm2_z12_s14 297299 124194
Copyright 2016, SAS Institute Inc. All rights reserved. 7
IMPROVEMENTS INSAS/OR 14.2 MODULO 2 SOLVER
Take all integer equalities modulo 2Solve the system with Gaussian elimination
I dense bitfield storage with 64bit wordsI all coefficients are 0-1I pivoting operation is bitwise XOR: very fast
Detect infeasibilityObtain the parity of a variable: tighten or fixIdentify linear relations between 2 binaries
x + y ≡ 0 mod 2 −→ x = y
Copyright 2016, SAS Institute Inc. All rights reserved. 8
COMPUTATIONALRESULTS OVERALL PERFORMANCE
Test set of 798 instances from customers and publicbenchmarks96 machines running 2 jobs each on 16-core/2-socket Intel(R)Xeon(R) E5-2630 v3 @ 2.40GHz CPUs62GB of memory per job2-hour time limit, default options, 4 threadsResults for 14.2
I 57% faster than 14.1 on instances both versions solveI 61 instances more solved within the time limit
Copyright 2016, SAS Institute Inc. All rights reserved. 9
COMPUTATIONALRESULTS OVERALL PERFORMANCE
frac
tion
of in
stan
ces
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0
log2(r)
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
SAS/OR 14.2SAS/OR 14.1SAS/OR 13.2SAS/OR 13.1
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0
Copyright 2016, SAS Institute Inc. All rights reserved. 10
COMPUTATIONALRESULTS PUBLIC BENCHMARKS
Mittelmann Test Solved Time (sec.)1
Bench, 1 thr, 2h, 0 gap 81 of 87 240Bench, 1 thr, 2h, 0 gap (17 seeds avg.) 82 of 87 235Bench, 4 thr, 2h, 0 gap 85 of 87 121Bench, 4 thr, 2h, 0 gap (17 seeds avg.) 85 of 87 113Bench, 12 thr, 2h, 0 gap 82 of 87 95Bench, 12 thr, 2h, 0 gap (17 seeds avg.) 84 of 87 84Solvable, 12 thr, 2h, 0 gap 170 of 208 261Infeasible, 4 thr, 1h 18 of 19 47Feasible, 4 thr, 1h, 1st feasible 27 of 33 114
1Intel(R) Xeon(R) E5-2630 v3 @ 2.40GHz CPUCopyright 2016, SAS Institute Inc. All rights reserved. 11
FUTUREDEVELOPMENTS OUTLOOK
SAS/OR solvers on SAS ViyaI SAS Viya: a new, cloud-based
architectureI Data in HadoopI Call from SAS, Python, Java, LuaI Distributed parallel MILP solver
Solver ImprovementsI New lift-and-project cutsI Cut management improvementsI Probing improvementsI Even more presolver techniquesI Simplex: Row basis and advanced
crash basis
Copyright 2016, SAS Institute Inc. All rights reserved. 12
FUTUREDEVELOPMENTS CONTRIBUTIONS TO MIPLIB 2017
0
10
20
30
40
50
60
Num
bero
fIns
tanc
es
2003 2004 2005 2006 2007 2008 2009 2010 2011
easyhardopen Since 1992, MIPLIB has been
a key driver for computational progressin mixed integer programming.
“Shape the Future ofMixed Integer Programming!”
Go to miplibsubmissions.zib.de to submit your instances to the6th Mixed Integer Programming Library
Deadline: Februar 28, 2017An initiative by Arizona State University, COIN-OR, CPLEX, FICO,Gurobi, MIPCL, MOSEK, NuOPT, SAS, and Zuse Institute Berlin.
Copyright 2016, SAS Institute Inc. All rights reserved. 13
http://support.sas.com/orThe SAS MILP Solver: Current Status And Future
Developments