ug[SCIP-Jack, MPI]: A Massively Parallel Steiner Tree Solver
Daniel Rehfeldt · Yuji Shinano · Thorsten Koch
Zuse Institute Berlin Technische Universit¨ at Berlin UG19, Berlin, January 2019
ug[SCIP-Jack, MPI]: A Massively Parallel Steiner Tree Solver Daniel - - PowerPoint PPT Presentation
ug[SCIP-Jack, MPI]: A Massively Parallel Steiner Tree Solver Daniel Rehfeldt Yuji Shinano Thorsten Koch Zuse Institute Berlin Technische Universit at Berlin UG19, Berlin, January 2019 The Steiner Tree Problem in Graphs Given: G =
Zuse Institute Berlin Technische Universit¨ at Berlin UG19, Berlin, January 2019
>0: positive edge costs
Thorsten Koch · Daniel Rehfeldt 2 / 46
>0: positive edge costs
Thorsten Koch · Daniel Rehfeldt 2 / 46
>0: positive edge costs
Thorsten Koch · Daniel Rehfeldt 2 / 46
Network telecommunication design for Austrian cities, see New Real-world Instances for the Steiner Tree Problem in Graphs (Leitner et al., 2014)
Thorsten Koch · Daniel Rehfeldt 3 / 46
Rooted prize-collecting Steiner tree problem
Thorsten Koch · Daniel Rehfeldt 4 / 46
Rectilinear Steiner minimum tree problem
Thorsten Koch · Daniel Rehfeldt 4 / 46
Hop-constrained directed Steiner tree problem
Thorsten Koch · Daniel Rehfeldt 4 / 46
Maximum-weight connected subgraph problem
Thorsten Koch · Daniel Rehfeldt 4 / 46
Group Steiner tree problem
Thorsten Koch · Daniel Rehfeldt 4 / 46
Maximum-weight connected subgraph problem
Thorsten Koch · Daniel Rehfeldt 4 / 46
Maximum-weight connected subgraph problem
Thorsten Koch · Daniel Rehfeldt 4 / 46
Thorsten Koch · Daniel Rehfeldt 5 / 46
Thorsten Koch · Daniel Rehfeldt 5 / 46
Thorsten Koch · Daniel Rehfeldt 5 / 46
Thorsten Koch · Daniel Rehfeldt 5 / 46
Thorsten Koch · Daniel Rehfeldt 6 / 46
Thorsten Koch · Daniel Rehfeldt 7 / 46
◮ plugin based system ◮ default plugins handle MIPs and nonconvex MINLPs ◮ support for branch-and-price and custom relaxations
◮ more than 500 000 lines of C code, 20% documentation ◮ 36 000 assertions, 5 000 debug messages ◮ HowTos: plugins types, debugging, automatic testing ◮ 11 examples and 5 applications illustrating the use of SCIP ◮ active mailing list scip@zib.de (300 members)
◮ user-friendly interactive shell ◮ interfaces to AMPL, GAMS, ZIMPL, MATLAB, Python and Java ◮ C++ wrapper classes ◮ LP solvers: CLP, CPLEX, Gurobi, MOSEK, QSopt, SoPlex, Xpress ◮ over 1 600 parameters and 15 emphasis settings Thorsten Koch · Daniel Rehfeldt 8 / 46
Thorsten Koch · Daniel Rehfeldt 9 / 46
Thorsten Koch · Daniel Rehfeldt 10 / 46
Abbreviation Problem Name SPG Steiner tree problem in graphs SAP Steiner arborescence problem RSMT Rectilinear Steiner minimum tree problem OARSMT Obstacle-avoiding rectilinear Steiner minimum tree problem NWSTP Node-weighted Steiner tree problem NWPTSTP Node-weighted partial terminal Steiner tree problem PCSTP Prize-collecting Steiner tree problem RPCSTP Rooted prize-collecting Steiner tree problem MWCSP Maximum-weight connected subgraph problem RMWCSP Rooted maximum-weight connected subgraph problem DCSTP Degree-constrained Steiner tree problem GSTP Group Steiner tree problem HCDSTP Hop-constrained directed Steiner tree problem
Thorsten Koch · Daniel Rehfeldt 11 / 46
Thorsten Koch · Daniel Rehfeldt 12 / 46
◮ extremely fast separator routine based on new max-flow
◮ all general methods provided by SCIP
◮ efficient transformations to Steiner arborescence problem
◮ preprocessing and propagation routines ◮ primal and dual heuristics Thorsten Koch · Daniel Rehfeldt 12 / 46
Pre processing DA native SCIP DT BT CNS BND HBND CBND NTDk NV SL ACNS SD NPVk AVS SDC UNT UNPV NNP BR RPT CT PNT PVD · · · Parallel dist ributed shared Relaxator Separator stp dual- ascent based native SCIP Pricer Branch stp native SCIP Node selector Primal Heuristic RSPH RSPH SAP Greedy MWCS ascend prune prune Local MWCS recomb ination VQ native SCIP Greedy PC RSPH DC Dual Heuristic LP Interface Reader Trans formation SPG RMST OA RMST NWST RPCST PCST RMWCS MWCS DCST HCDST GSTP Cutpool Pro pagator stp native SCIP Writer
Thorsten Koch · Daniel Rehfeldt 13 / 46
Thorsten Koch · Daniel Rehfeldt 14 / 46
▷ Track A: exact, few terminals; results on public instances:
▶ Winner:
▶ SCIP-Jack/SoPlex:
▶ SCIP-Jack/CPLEX: 100/100
▷ Track B: exact, low treewidth; results on public instances:
▶ SCIP-Jack/SoPlex:
▶ SCIP-Jack/CPLEX:
▶ best other:
▷ Track C: heuristic, mean ratio to best known upper bound:
▶ Winner:
▶ SCIP-Jack/SoPlex:
▶ SCIP-Jack/CPLEX:
A mostly discrete tour through optimization Thorsten Koch 85 Thorsten Koch · Daniel Rehfeldt 15 / 46
Thorsten Koch · Daniel Rehfeldt 16 / 46
e∈E(S) c(e) + v∈V \V (S) p(v) is minimized
Thorsten Koch · Daniel Rehfeldt 17 / 46
p=2.5 p=7 1.1 0.6 1.5 r′ M M 7 2.5 1.1 0.6 1.5
Thorsten Koch · Daniel Rehfeldt 18 / 46
p=2.5 p=7 1.1 0.6 1.5 r′ M M 7 2.5 1.1 0.6 1.5
Thorsten Koch · Daniel Rehfeldt 18 / 46
Thorsten Koch · Daniel Rehfeldt 19 / 46
Thorsten Koch · Daniel Rehfeldt 20 / 46
Thorsten Koch · Daniel Rehfeldt 21 / 46
pc(W ) := max{cpc(W (vi, vik)) | vik ∈ V (W ) ∩ (Tp ∪ {vj})}.
pc(vi, vj) := min{l− pc(W ′) | W ′ ∈ Wpc(vi, vj)}.
Thorsten Koch · Daniel Rehfeldt 22 / 46
pc(vi, vj),
Thorsten Koch · Daniel Rehfeldt 23 / 46
p=2.5 p=7 1.1 0.6 1.5 r′ M M 7 2.5 1.1 0.6 1.5
Thorsten Koch · Daniel Rehfeldt 24 / 46
INPUT: RPCSTP (V , E, Tf , c, p) and tp, tq ∈ Tf Tf := {t1, t2, ..., tz} fixed terminals OUTPUT: SAP
2.1 add node t′
i to V ′,
2.2 add arc (ti, t′
i ) of weight 0 to A′,
2.3 add arc (tp, t′
i ) of weight p(ti) to A′.
1, ..., t′ z} ∪ Tf .
p=2.5 p=7 1.1 0.6 1.5 r′ 2.5 1.1 0.6 1.5 We have recently proved: Choice of tp, tq does not change LP value! But: Can have strong impact in practival solving, natural candidate for UG racing ramp up parameter!
Thorsten Koch · Daniel Rehfeldt 25 / 46
Thorsten Koch · Daniel Rehfeldt 26 / 46
Thorsten Koch · Daniel Rehfeldt 27 / 46
Thorsten Koch · Daniel Rehfeldt 28 / 46
Thorsten Koch · Daniel Rehfeldt 29 / 46
◮ Fischetti et. al.: > 200 seconds ◮ SCIP-Jack:
Thorsten Koch · Daniel Rehfeldt 30 / 46
◮ Long running time in root node. ◮ Special branching. ◮ Distributing problem specific preprocessing effects. Thorsten Koch · Daniel Rehfeldt 31 / 46
Thorsten Koch · Daniel Rehfeldt 32 / 46
Thorsten Koch · Daniel Rehfeldt 33 / 46
Thorsten Koch · Daniel Rehfeldt 34 / 46
Thorsten Koch · Daniel Rehfeldt 35 / 46
Thorsten Koch · Daniel Rehfeldt 36 / 46
Thorsten Koch · Daniel Rehfeldt 37 / 46
Thorsten Koch · Daniel Rehfeldt 38 / 46
◮ 13 by SCIP-Jack: ◮ 12 by best other (Polzin, Vahdati Daneshmand, 2014)1
◮ 18 by SCIP-Jack: ◮ 13 by best other (Polzin, Vahdati Daneshmand, 2014)
2Run time is scaled, as solver is not publicly available
Thorsten Koch · Daniel Rehfeldt 39 / 46
Thorsten Koch · Daniel Rehfeldt 40 / 46
Thorsten Koch · Daniel Rehfeldt 41 / 46
Thorsten Koch · Daniel Rehfeldt 42 / 46
Thorsten Koch · Daniel Rehfeldt 43 / 46
Thorsten Koch · Daniel Rehfeldt 44 / 46
Thorsten Koch · Daniel Rehfeldt 45 / 46
Thorsten Koch · Daniel Rehfeldt 45 / 46
Thorsten Koch · Daniel Rehfeldt 46 / 46