scip - solving constraint integer programsscip 2.0.1 { cplex 12.2.0.2 cplex 12.2.0.2 gurobi 4.0.0...

26
SCIP Solving Constraint Integer Programs Timo Berthold Zuse Institute Berlin DFG Research Center MATHEON Mathematics for key technologies Sino-German Workshop, ZIB, 19/Aug/2011

Upload: others

Post on 21-Sep-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SCIP - Solving Constraint Integer ProgramsSCIP 2.0.1 { Cplex 12.2.0.2 Cplex 12.2.0.2 Gurobi 4.0.0 results by H. Mittelmann (16.1.2011). winner of \Pseudo-Boolean Competition" 2009,

SCIPSolving Constraint Integer Programs

Timo BertholdZuse Institute Berlin

DFG Research Center MATHEON

Mathematics for key technologies

Sino-German Workshop, ZIB, 19/Aug/2011

Page 2: SCIP - Solving Constraint Integer ProgramsSCIP 2.0.1 { Cplex 12.2.0.2 Cplex 12.2.0.2 Gurobi 4.0.0 results by H. Mittelmann (16.1.2011). winner of \Pseudo-Boolean Competition" 2009,

Constraint Integer Programming

. Mixed Integer Programming

. Constraint Integer Programming

. Constraint Programming

. SAtisfiability Testing

. Pseudo-Boolean Optimization

. Finite Domain

CP

CIP

FDPB

MIP

SAT

min cTx

s.t. x ∈ F

(xI , xC ) ∈ ZI ×RC

. linear objective

. “general” constraints

. integer or real variables

Timo Berthold: SCIP – Solving Constraint Integer Programs 2 / 23

Page 3: SCIP - Solving Constraint Integer ProgramsSCIP 2.0.1 { Cplex 12.2.0.2 Cplex 12.2.0.2 Gurobi 4.0.0 results by H. Mittelmann (16.1.2011). winner of \Pseudo-Boolean Competition" 2009,

Constraint Integer Programming

. Mixed Integer Programming

. Constraint Integer Programming

. Constraint Programming

. SAtisfiability Testing

. Pseudo-Boolean Optimization

. Finite Domain

CP

CIP

FDPB

MIP

SAT

min cTx

s.t. x ∈ F

(xI , xC ) ∈ ZI ×RC

. linear objective

. “general” constraints

. integer or real variables

Timo Berthold: SCIP – Solving Constraint Integer Programs 2 / 23

Page 4: SCIP - Solving Constraint Integer ProgramsSCIP 2.0.1 { Cplex 12.2.0.2 Cplex 12.2.0.2 Gurobi 4.0.0 results by H. Mittelmann (16.1.2011). winner of \Pseudo-Boolean Competition" 2009,

Solving Techniques

Presolving Primal heuristics Cutting planes

Branch & Bound Domain propagation

x1

x2

x3

x4

x1

x2

x3

x4

Conflict analysis

Timo Berthold: SCIP – Solving Constraint Integer Programs 3 / 23

Page 5: SCIP - Solving Constraint Integer ProgramsSCIP 2.0.1 { Cplex 12.2.0.2 Cplex 12.2.0.2 Gurobi 4.0.0 results by H. Mittelmann (16.1.2011). winner of \Pseudo-Boolean Competition" 2009,

How do we solve CIPs?

MIP

. LP relaxation

. cutting planes

CP

. domain propagation

SAT

. conflict analysis

. periodic restarts

MIP, CP, and SAT

. tree search algorithms

SCIP

Timo Berthold: SCIP – Solving Constraint Integer Programs 4 / 23

Page 6: SCIP - Solving Constraint Integer ProgramsSCIP 2.0.1 { Cplex 12.2.0.2 Cplex 12.2.0.2 Gurobi 4.0.0 results by H. Mittelmann (16.1.2011). winner of \Pseudo-Boolean Competition" 2009,

SCIP Facts

. more than 300 000 lines of C code→ 18% documentation, 20% assertions

. 7 examples illustrating the use of SCIP

. HowTos: each plugin type, debugging, automatic testing, . . .

. C++ wrapper classes, python interface (beta), Java

. supports 10 different input formats

. 7 interfaces to external LP solvers

. more than 1000 parameters, 15 “emphasis” settings

. active mailing list (180 members)

. 5000 downloads per year

. free for academics, available in source code: http://scip.zib.de

. runs on Linux, Windows, Mac (Darwin+PPC), SunOS, . . .

Timo Berthold: SCIP – Solving Constraint Integer Programs 5 / 23

Page 7: SCIP - Solving Constraint Integer ProgramsSCIP 2.0.1 { Cplex 12.2.0.2 Cplex 12.2.0.2 Gurobi 4.0.0 results by H. Mittelmann (16.1.2011). winner of \Pseudo-Boolean Competition" 2009,

New: SCIP to go

Timo Berthold: SCIP – Solving Constraint Integer Programs 6 / 23

Page 8: SCIP - Solving Constraint Integer ProgramsSCIP 2.0.1 { Cplex 12.2.0.2 Cplex 12.2.0.2 Gurobi 4.0.0 results by H. Mittelmann (16.1.2011). winner of \Pseudo-Boolean Competition" 2009,

Computational results

. fastest non-commercial MIP solver

0

500

1000

1500

tim

ein

seco

nd

s

non-commercial commercial12.5x 12.1x

5.07x

1.65x1.27x

1.00x

4.22x

0.71x

0.10x 0.09x

not solved 75% 71% 39% 16% 11% 7% 52% 11% 2% 2%

GLPK 4.43lpsolve 5.5Symphony 5.3.0CBC 2.6.0SCIP 2.0.1 – CLP 1.13.2SCIP 2.0.1 – SoPlex 1.5Minto 3.1 – Cplex 9SCIP 2.0.1 – Cplex 12.2.0.2Cplex 12.2.0.2Gurobi 4.0.0

results by H. Mittelmann (16.1.2011)

. winner of “Pseudo-Boolean Competition” 2009, 2010, and 2011

Timo Berthold: SCIP – Solving Constraint Integer Programs 7 / 23

Page 9: SCIP - Solving Constraint Integer ProgramsSCIP 2.0.1 { Cplex 12.2.0.2 Cplex 12.2.0.2 Gurobi 4.0.0 results by H. Mittelmann (16.1.2011). winner of \Pseudo-Boolean Competition" 2009,

Computational results

. fastest noncommercial solver for convex MIQCPs

0

500

1000

1500

2000

tim

ein

seco

nd

s

non-commercial commercial

8.21x

1.00x

12.08x

8.03x

0.42x

not solved 71% 34% 75% 68% 28%

Couenne 0.3

SCIP 2.0.1 – SoPlex 1.5

LindoGlobal 6.1

BARON 9.0

CPLEX 12.2

. fastest MIQCP solver (non-convex)

0

410

820

1230

1640

2050

tim

ein

seco

nd

s

4.64x 4.63x5.43x

0.87x 1.00x

not solved 77% 78% 80% 45% 48%

BARON 9.0

Couenne 0.3

LindoGlobal 6.1

SCIP 2.0.1 – Cplex 12.2

SCIP 2.0.1 – SoPlex 1.5

Timo Berthold: SCIP – Solving Constraint Integer Programs 8 / 23

Page 10: SCIP - Solving Constraint Integer ProgramsSCIP 2.0.1 { Cplex 12.2.0.2 Cplex 12.2.0.2 Gurobi 4.0.0 results by H. Mittelmann (16.1.2011). winner of \Pseudo-Boolean Competition" 2009,

ZIB Optimization Suite = SCIP + SoPlex + ZIMPL

Toolbox for generating and solving constraint integer programs

ZIMPL. a mixed integer programming modeling language

. easily generating LPs, MIPs, and MIQCPs

SCIP. a MIP and CP solver, branch-cut-and-price framework

. ZIMPL models can directly be loaded into SCIP and solved

SoPlex. a linear programming solver

. SCIP uses SoPlex as underlying LP solver

Timo Berthold: SCIP – Solving Constraint Integer Programs 9 / 23

Page 11: SCIP - Solving Constraint Integer ProgramsSCIP 2.0.1 { Cplex 12.2.0.2 Cplex 12.2.0.2 Gurobi 4.0.0 results by H. Mittelmann (16.1.2011). winner of \Pseudo-Boolean Competition" 2009,

LP/IP team

. Tobias Achterberg (IBM)

. Thorsten Koch

. Marc Pfetsch (TU Braun.)

. Timo Berthold

. Gerald Gamrath

. Ambros Gleixner

. Stefan Heinz

. Matthias Miltenberger

. Yuji Shinano

. Stefan Vigerske

. Kati Wolter

. Gregor Hendel

. Alexandra Kraft

. Michael Winkler

Timo Berthold: SCIP – Solving Constraint Integer Programs 10 / 23

Page 12: SCIP - Solving Constraint Integer ProgramsSCIP 2.0.1 { Cplex 12.2.0.2 Cplex 12.2.0.2 Gurobi 4.0.0 results by H. Mittelmann (16.1.2011). winner of \Pseudo-Boolean Competition" 2009,

History of SCIP

1996 SoPlex – Sequential obj. simPlex (R. Wunderling [now IBM])

1998 SIP – Solving Integer Programs (A. Martin [now U Erlangen])

10/2002 Start of SCIP development (T. Achterberg [now IBM])

08/2003 Chipdesign verification ⇒ Constraint Programming

09/2005 First public version 0.80

09/2007 Version 1.00, ZIB Optimization Suite

01/2009 Gas transport optimization ⇒ nonlinear

09/2009 Beale-Orchard-Hays Prize (T. Achterberg)

07/2010 Supply-Chain management ⇒ extremely large LPs/MIPs

12/2010 Google Research Award 2011

01/2011 Version 2.0.1

10/2011 Version 2.1.0

Timo Berthold: SCIP – Solving Constraint Integer Programs 11 / 23

Page 13: SCIP - Solving Constraint Integer ProgramsSCIP 2.0.1 { Cplex 12.2.0.2 Cplex 12.2.0.2 Gurobi 4.0.0 results by H. Mittelmann (16.1.2011). winner of \Pseudo-Boolean Competition" 2009,

Siemens cooperation

Longstanding Cooperation with departmentModeling, Simulation, Optimization

. first licensee (1996) of SoPlex

. steady use in various optimization modules

placement robots incircuit board production

optimal planning ofwater networks

Timo Berthold: SCIP – Solving Constraint Integer Programs 12 / 23

Page 14: SCIP - Solving Constraint Integer ProgramsSCIP 2.0.1 { Cplex 12.2.0.2 Cplex 12.2.0.2 Gurobi 4.0.0 results by H. Mittelmann (16.1.2011). winner of \Pseudo-Boolean Competition" 2009,

History of SCIP

1996 SoPlex – Sequential obj. simPlex (R. Wunderling [now IBM])

1998 SIP – Solving Integer Programs (A. Martin [now U Erlangen])

10/2002 Start of SCIP development (T. Achterberg [now IBM])

08/2003 Chipdesign verification ⇒ Constraint Programming

09/2005 First public version 0.80

09/2007 Version 1.00, ZIB Optimization Suite

01/2009 Gas transport optimization ⇒ nonlinear

09/2009 Beale-Orchard-Hays Prize (T. Achterberg)

07/2010 Supply-Chain management ⇒ extremely large LPs/MIPs

12/2010 Google Research Award 2011

01/2011 Version 2.0.1

01/2011 Version 2.0.1

Timo Berthold: SCIP – Solving Constraint Integer Programs 13 / 23

Page 15: SCIP - Solving Constraint Integer ProgramsSCIP 2.0.1 { Cplex 12.2.0.2 Cplex 12.2.0.2 Gurobi 4.0.0 results by H. Mittelmann (16.1.2011). winner of \Pseudo-Boolean Competition" 2009,

Chipdesign verification

Goal: (computer-)proof, that a design is free of errors

Method: property checking using CIPs

Result:

5 10 15 20 25 35 4030

12h

1 h

32h

2 h

register width

tim

e

Boolean satisfiability

Constraint Integer Programming

constraints 422 152026variables 3714 50756 Duration: 2003-2008

Timo Berthold: SCIP – Solving Constraint Integer Programs 14 / 23

Page 16: SCIP - Solving Constraint Integer ProgramsSCIP 2.0.1 { Cplex 12.2.0.2 Cplex 12.2.0.2 Gurobi 4.0.0 results by H. Mittelmann (16.1.2011). winner of \Pseudo-Boolean Competition" 2009,

History of SCIP

1996 SoPlex – Sequential obj. simPlex (R. Wunderling [now IBM])

1998 SIP – Solving Integer Programs (A. Martin [now U Erlangen])

10/2002 Start of SCIP development (T. Achterberg [now IBM])

08/2003 Chipdesign verification ⇒ Constraint Programming

09/2005 First public version 0.80

09/2007 Version 1.00, ZIB Optimization Suite

01/2009 Gas transport optimization ⇒ nonlinear

09/2009 Beale-Orchard-Hays Prize (T. Achterberg)

07/2010 Supply-Chain management ⇒ extremely large LPs/MIPs

12/2010 Google Research Award 2011

01/2011 Version 2.0.1

01/2011 Version 2.0.1

Timo Berthold: SCIP – Solving Constraint Integer Programs 15 / 23

Page 17: SCIP - Solving Constraint Integer ProgramsSCIP 2.0.1 { Cplex 12.2.0.2 Cplex 12.2.0.2 Gurobi 4.0.0 results by H. Mittelmann (16.1.2011). winner of \Pseudo-Boolean Competition" 2009,

Optimization of gastransport

Stochastic Mixed-Integer Nonlinear Constraint Program

Gasflow on Entryvs. Temperature

-5 0 5 10 15 20 25

over a large network. Start: 01/2009

Goal:

. develop algorithms to solve such problems to “global optimality”!

. rather: attempt to integrate as many aspects as possible

Industry partner:

Timo Berthold: SCIP – Solving Constraint Integer Programs 16 / 23

Page 18: SCIP - Solving Constraint Integer ProgramsSCIP 2.0.1 { Cplex 12.2.0.2 Cplex 12.2.0.2 Gurobi 4.0.0 results by H. Mittelmann (16.1.2011). winner of \Pseudo-Boolean Competition" 2009,

Optimization of gastransport

Stochastic Mixed-Integer Nonlinear Constraint Program

Gasflow on Entryvs. Temperature

-5 0 5 10 15 20 25

over a large network. Start: 01/2009

Goal:

. develop algorithms to solve such problems to “global optimality”!

. rather: attempt to integrate as many aspects as possible

Industry partner:

Timo Berthold: SCIP – Solving Constraint Integer Programs 16 / 23

Page 19: SCIP - Solving Constraint Integer ProgramsSCIP 2.0.1 { Cplex 12.2.0.2 Cplex 12.2.0.2 Gurobi 4.0.0 results by H. Mittelmann (16.1.2011). winner of \Pseudo-Boolean Competition" 2009,

History of SCIP

1996 SoPlex – Sequential obj. simPlex (R. Wunderling [now IBM])

1998 SIP – Solving Integer Programs (A. Martin [now U Erlangen])

10/2002 Beginning of SCIP development (T. Achterberg [now IBM])

08/2003 Chipdesign verification ⇒ Constraint Programming

09/2005 First public version 0.80

09/2007 Version 1.00, ZIB Optimization Suite

01/2009 Gas transport optimization ⇒ nonlinear

09/2009 Beale-Orchard-Hays Prize (T. Achterberg)

07/2010 Supply-Chain-Management ⇒ extrem große LPs/MIPs

12/2010 Google Research Award 2011

01/2011 Version 2.0.1

01/2011 Version 2.0.1

Timo Berthold: SCIP – Solving Constraint Integer Programs 17 / 23

Page 20: SCIP - Solving Constraint Integer ProgramsSCIP 2.0.1 { Cplex 12.2.0.2 Cplex 12.2.0.2 Gurobi 4.0.0 results by H. Mittelmann (16.1.2011). winner of \Pseudo-Boolean Competition" 2009,

Supply-Chain-Management

Huge, numerically challenging problems

Start: 07/2010

Topics:

. LP solver

. presolving

. numerical stability

. multi-level objective

Industry partner:

Timo Berthold: SCIP – Solving Constraint Integer Programs 18 / 23

Page 21: SCIP - Solving Constraint Integer ProgramsSCIP 2.0.1 { Cplex 12.2.0.2 Cplex 12.2.0.2 Gurobi 4.0.0 results by H. Mittelmann (16.1.2011). winner of \Pseudo-Boolean Competition" 2009,

History of SCIP

1996 SoPlex – Sequential obj. simPlex (R. Wunderling [now IBM])

1998 SIP – Solving Integer Programs (A. Martin [now U Erlangen])

10/2002 Beginning of SCIP development (T. Achterberg [now IBM])

08/2003 Chipdesign verification ⇒ Constraint Programming

09/2005 First public version 0.80

09/2007 Version 1.00, ZIB Optimization Suite

01/2009 Gas transport optimization ⇒ nonlinear

09/2009 Beale-Orchard-Hays Prize (T. Achterberg)

07/2010 Supply-Chain management ⇒ extremely large LPs/MIPs

12/2010 Google Research Award 2011

01/2011 Version 2.0.1

10/2011 Version 2.1.0

Timo Berthold: SCIP – Solving Constraint Integer Programs 19 / 23

Page 22: SCIP - Solving Constraint Integer ProgramsSCIP 2.0.1 { Cplex 12.2.0.2 Cplex 12.2.0.2 Gurobi 4.0.0 results by H. Mittelmann (16.1.2011). winner of \Pseudo-Boolean Competition" 2009,

History of SCIP

1996 SoPlex – Sequential obj. simPlex (R. Wunderling [now IBM])

1998 SIP – Solving Integer Programs (A. Martin [now U Erlangen])

10/2002 Beginning of SCIP development (T. Achterberg [now IBM])

08/2003 Chipdesign verification ⇒ Constraint Programming

09/2005 First public version 0.80

09/2007 Version 1.00, ZIB Optimization Suite

01/2009 Gas transport optimization ⇒ nonlinear

09/2009 Beale-Orchard-Hays Prize (T. Achterberg)

07/2010 Supply-Chain management ⇒ extremely large LPs/MIPs

12/2010 Google Research Award 2011

01/2011 Version 2.0.1

10/2011 Version 2.1.0

Timo Berthold: SCIP – Solving Constraint Integer Programs 19 / 23

Page 23: SCIP - Solving Constraint Integer ProgramsSCIP 2.0.1 { Cplex 12.2.0.2 Cplex 12.2.0.2 Gurobi 4.0.0 results by H. Mittelmann (16.1.2011). winner of \Pseudo-Boolean Competition" 2009,

Outreach. RWTH Aaachen. Universitat Bayreuth. FU Berlin. TU Berlin. HU Berlin. WIAS Berlin. TU Braunschweig. TU Chemnitz. TU Darmstadt. TU Dortmund. TU Dresden. Universitat Erlangen-Nurnberg. Leibniz Universitat Hannover. Universitat Heidelberg. Fraunhofer ITWM

Kaiserslautern. Universitat Karlsruhe. Christian-Albrechts-Universitat

zu Kiel. Hochschule Lausitz. OvGU Magdeburg. TU Munchen. Universitat Osnabruck. Universitat Stuttgart

. Aarhus Universitet

. The University of Adelaide

. Universita dell’Aquila

. Arizona State University

. University of Assiut

. National Technical University of Athens

. Georgia Institute of Technology

. Indian Institute of Science

. Tsinghua University

. UC Berkeley

. Lehigh University

. University of Bristol

. Eotvos Lorand Tudomanyegyetem

. Universidad de Buenos Aires

. Institut Francais de Mecanique Avancee

. Chuo University

. Clemson University

. University College Cork

. Danmarks Tekniske Universitet

. Syddansk Universitet

. Fuzhou University

. Jinan University

. Rijksuniversiteit Groningen

. Hanoi Institute of Mathematics

. The Hong Kong Polytechnic University

. University of Hyogo

. The Irkutsk Scientific Center

. University of the Witwatersrand

. Københavens Universitet

. Kunming Botany Institute

. Ecole Poly. Federale de Lausanne

. Linkopings universitet

. Universite catholique de Louvain

. Universidad Rey Juan Carlos

. Universite de la MediterraneeAix-Marseille

. University of Melbourne

. UNAM

. Politecnico di Milano

. Universita degli Studi di Milano

. Monash University

. Ikerlan

. Universite de Montreal

. NIISI RAS

. Universite de Nantes

. The University of Newcastle

. University of Nottingham

. Universitetet i Oslo

. Universita degli Studi di Padova

. L’Universite Sud de Paris

. Brown University

. The University of Queensland

. IASI CNR

. Erasmus Universiteit Rotterdam

. Carnegie Mellon University

. Universidad Diego Portales

. University of Balochistan

. Universidad San Francisco de Quito

. Universidade Federal do Rio de Janeiro

. Universidade de Sao Paulo

. Fudan University

. University of New South Wales

. Tel Aviv University

. The University of Tokyo

. Politecnico di Torino

. University of Toronto

. NTNU i Trondheim

. The University of York

. University of Washington

. University of Waterloo

. Massey University

. Austrian Institute of Technology

. TU Wien

. Universitat Wien

. Wirtschaftsuniversitat Wien

. ETH Zurich

Timo Berthold: SCIP – Solving Constraint Integer Programs 20 / 23

Page 24: SCIP - Solving Constraint Integer ProgramsSCIP 2.0.1 { Cplex 12.2.0.2 Cplex 12.2.0.2 Gurobi 4.0.0 results by H. Mittelmann (16.1.2011). winner of \Pseudo-Boolean Competition" 2009,

Outreach

Some universities and institutes using SCIP:

Timo Berthold: SCIP – Solving Constraint Integer Programs 21 / 23

Page 25: SCIP - Solving Constraint Integer ProgramsSCIP 2.0.1 { Cplex 12.2.0.2 Cplex 12.2.0.2 Gurobi 4.0.0 results by H. Mittelmann (16.1.2011). winner of \Pseudo-Boolean Competition" 2009,

Outlook

Current Topics:

. non-convex constraints

. massive parallelization (→ HLRN)

. improvements in column generation

. development of a new LP solver

Research projects:

. exact integer programming(DFG priority program “Algorithm Engineering”)

. mixed-integer nonlinear programming(MATHEON project B20)

. solver technologies for supply chain management

Timo Berthold: SCIP – Solving Constraint Integer Programs 22 / 23

Page 26: SCIP - Solving Constraint Integer ProgramsSCIP 2.0.1 { Cplex 12.2.0.2 Cplex 12.2.0.2 Gurobi 4.0.0 results by H. Mittelmann (16.1.2011). winner of \Pseudo-Boolean Competition" 2009,

SCIPSolving Constraint Integer Programs

Timo BertholdZuse Institute Berlin

DFG Research Center MATHEON

Mathematics for key technologies

Sino-German Workshop, ZIB, 19/Aug/2011