24
Mixed Integer Linear Programming in R Stefan Theussl Department of Statistics and Mathematics Wirtschaftsuniversit¨ at Wien July 1, 2008

Mixed Integer Linear Programming in R · PDF fileMixed Integer Linear Programming in R Stefan Theussl Department of Statistics and Mathematics Wirtschaftsuniversit at Wien July 1,

  • Upload
    votruc

  • View
    223

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Mixed Integer Linear Programming in R · PDF fileMixed Integer Linear Programming in R Stefan Theussl Department of Statistics and Mathematics Wirtschaftsuniversit at Wien July 1,

Mixed Integer Linear Programming in R

Stefan Theussl

Department of Statistics and MathematicsWirtschaftsuniversitat Wien

July 1, 2008

Page 2: Mixed Integer Linear Programming in R · PDF fileMixed Integer Linear Programming in R Stefan Theussl Department of Statistics and Mathematics Wirtschaftsuniversit at Wien July 1,

Outline

IntroductionLinear ProgrammingQuadratic ProgrammingMixed Integer Programming

COIN-OR Initiative

R PackagesInterfaces to Open Source SolversCommercial SolversOptimization Infrastructure for R

Benchmarks

Outlook and Future Work

Page 3: Mixed Integer Linear Programming in R · PDF fileMixed Integer Linear Programming in R Stefan Theussl Department of Statistics and Mathematics Wirtschaftsuniversit at Wien July 1,

Introduction

Page 4: Mixed Integer Linear Programming in R · PDF fileMixed Integer Linear Programming in R Stefan Theussl Department of Statistics and Mathematics Wirtschaftsuniversit at Wien July 1,

Applications in Finance

I Portfolio selection and asset allocation (Markowitz)

I Pricing and hedging of options

I Asset/liability management

I Risk management

Page 5: Mixed Integer Linear Programming in R · PDF fileMixed Integer Linear Programming in R Stefan Theussl Department of Statistics and Mathematics Wirtschaftsuniversit at Wien July 1,

Mathematical Programming

I Linear Programming (LP)

I Quadratic Programming (QP)

I Nonlinear Programming (NLP)

Additionally if variables have to be of type integer (integerprogramming—IP)

I Mixed Integer Linear Programming (MILP)

I Mixed Integer Quadratic Programming (MIQP)

I Nonlinear Mixed INteger Programming (NMINP)

Page 6: Mixed Integer Linear Programming in R · PDF fileMixed Integer Linear Programming in R Stefan Theussl Department of Statistics and Mathematics Wirtschaftsuniversit at Wien July 1,

Linear Programming

Mathematical formulation

objective min ctxsubject to

constraints Ax = bx ≥ 0

objective variables xi , i = 1, . . . ,N

Examples: Asset/liability cash flow matching, asset pricing andarbitrage

Page 7: Mixed Integer Linear Programming in R · PDF fileMixed Integer Linear Programming in R Stefan Theussl Department of Statistics and Mathematics Wirtschaftsuniversit at Wien July 1,

Quadratic Programming

Mathematical formulation

objective min x tQxsubject to

constraints Ax = bx ≥ 0

objective variables xi , i = 1, . . . ,N

Examples: Portfolio selection, asset allocation

Page 8: Mixed Integer Linear Programming in R · PDF fileMixed Integer Linear Programming in R Stefan Theussl Department of Statistics and Mathematics Wirtschaftsuniversit at Wien July 1,

Mixed Integer Programming

I Some variables have to be of type integer

I E.g., we cannot buy 3.4 shares but 3 or 4

I Open source MILP solvers available but currently no opensource MIQP solver in R

Page 9: Mixed Integer Linear Programming in R · PDF fileMixed Integer Linear Programming in R Stefan Theussl Department of Statistics and Mathematics Wirtschaftsuniversit at Wien July 1,

COIN-OR Initiative

Page 10: Mixed Integer Linear Programming in R · PDF fileMixed Integer Linear Programming in R Stefan Theussl Department of Statistics and Mathematics Wirtschaftsuniversit at Wien July 1,

Organization of COIN-OR

I The COmputational INfrastructure for OperationsResearch (COIN-OR) project promotes the developmentand use of interoperable, open source software foroperations research

I Furthermore, it is a repository consisting of several projects

I Each has its own project manager, wiki, website, mailing list(similar to R-Forge or Sourceforge)

I Stable releases or snapshots as well es direct source codeaccess through svn are provided

I Pre-compiled binaries (Linux, Windows)

I the CoinAll distribution includes a large subset of COIN-OR

Page 11: Mixed Integer Linear Programming in R · PDF fileMixed Integer Linear Programming in R Stefan Theussl Department of Statistics and Mathematics Wirtschaftsuniversit at Wien July 1,

The COIN-OR Philosophy

I Reuse instead of reinvent

I Reduce development time and increase robustness

I Increase interoperability

I Peer review of software

I Free distribution of ideas

I Reproducability

Page 12: Mixed Integer Linear Programming in R · PDF fileMixed Integer Linear Programming in R Stefan Theussl Department of Statistics and Mathematics Wirtschaftsuniversit at Wien July 1,

COIN-OR Projects

I Open Solver Interface (OSI)

I Cut Generator Library (CGL)

I Branch, Cut and Price Library (BCP)

I Interior Point Optimization (IPOPT)

I COIN-OR LP (CLP)

I SYMPHONY

I and many more

Page 13: Mixed Integer Linear Programming in R · PDF fileMixed Integer Linear Programming in R Stefan Theussl Department of Statistics and Mathematics Wirtschaftsuniversit at Wien July 1,

R Packages

Page 14: Mixed Integer Linear Programming in R · PDF fileMixed Integer Linear Programming in R Stefan Theussl Department of Statistics and Mathematics Wirtschaftsuniversit at Wien July 1,

Interfaces to Open Source Solvers

I Interfaces to the GNU Linear Programming Kit (GLPK) viapackages Rglpk and glpk

I Interfaces to lp solve via packages lpSolve and lpSolveAPI

I and Rsymphony, an interface to the COIN-OR SYMPHONYsolver

Page 15: Mixed Integer Linear Programming in R · PDF fileMixed Integer Linear Programming in R Stefan Theussl Department of Statistics and Mathematics Wirtschaftsuniversit at Wien July 1,

Interfaces to Open Source Solvers

How to solve MILPs in R?

I Rsymphony solve LP(obj, mat, dir, rhs,bounds = NULL, types = NULL, max = FALSE)

I Rglpk solve LP(obj, mat, dir, rhs, types = NULL,max = FALSE, bounds = NULL, verbose = FALSE)

I lp(direction = "min", objective.in, const.mat,const.dir, const.rhs, transpose.constraints =TRUE, int.vec, presolve=0, compute.sens=0,binary.vec, all.int=FALSE, all.bin=FALSE, scale =196, dense.const, num.bin.solns=1, use.rw=FALSE)

Page 16: Mixed Integer Linear Programming in R · PDF fileMixed Integer Linear Programming in R Stefan Theussl Department of Statistics and Mathematics Wirtschaftsuniversit at Wien July 1,

Commercial Solvers

I Currently an R interface to the CPLEXcallable library from ILOG is available

I Package Rcplex already on CRAN

I Rcplex is capable of solving linear as well as mixed integerquadratic programs

I Supports sparse matrices (‘simple triplet matrix’, Matrixpackage)

CPLEX can be called viaRcplex(cvec, Amat, bvec, Qmat = NULL, lb = 0, ub =Inf, control = list(), objsense = c("min", "max"),sense = "L", vtype = NULL)

Page 17: Mixed Integer Linear Programming in R · PDF fileMixed Integer Linear Programming in R Stefan Theussl Department of Statistics and Mathematics Wirtschaftsuniversit at Wien July 1,

Optimization Infrastructure for R

Page 18: Mixed Integer Linear Programming in R · PDF fileMixed Integer Linear Programming in R Stefan Theussl Department of Statistics and Mathematics Wirtschaftsuniversit at Wien July 1,

Optimization Infrastructure for R

We plan to offer a package for optimization whichallows to solve MILPs (and other programs) using aunique interface:

I OI solve(problem, solver = "lp solve", control =NULL)

The main function takes 3 arguments:

problem represents an object containing the description of theMILP

solver specifies the solver to be used (e.g., GLPK, lp solve,SYMPHONY, . . . )

control is a list containing additional control arguments tothe corresponding solver

Page 19: Mixed Integer Linear Programming in R · PDF fileMixed Integer Linear Programming in R Stefan Theussl Department of Statistics and Mathematics Wirtschaftsuniversit at Wien July 1,

Benchmarks

Page 20: Mixed Integer Linear Programming in R · PDF fileMixed Integer Linear Programming in R Stefan Theussl Department of Statistics and Mathematics Wirtschaftsuniversit at Wien July 1,

MIPLIB2003

MIPLIB2003 is

I a collection of real-world mixed integer programs

I standard test set used to compare the performance of MILPsolvers

I available online athttp://miplib.zib.de/miplib2003.php

I maintained by Alexander Martin, Tobias Achterberg andThorsten Koch

I instances in MPS file format can be read in R via Rglpk’sMPS file reader

Page 21: Mixed Integer Linear Programming in R · PDF fileMixed Integer Linear Programming in R Stefan Theussl Department of Statistics and Mathematics Wirtschaftsuniversit at Wien July 1,

Results of Benchmark Experiment

GLPK Rglpk lp solve lpSolve SYMPHONY Rsymphonyaflow30a 1158.00 1158.00 1158.00 1158.00 1158.00 1159.00

air04 56137.00 56137.00 56137.00 56137.00 56137.00air05 26374.00 26374.00 26374.00 26374.00 26374.00 26374.00

cap6000 −2451377.00 −2451380.00 −2451377.00 −2451377.00 −2451377.00danoint 65.67 65.67 65.67 65.67 65.67disctom −5000.00 −5000.00 −5000.00

fiber 405935.18 405935.18 405935.18 405935.18fixnet6 3983.00 3983.00

gesa2 25779856.37 24534703.78 25779856.37manna81 −13164.00 −13164.00

mas76 40005.05 40005.05 40005.05 40005.05 40005.05misc07 2810.00 2810.00 2810.00 2810.00 2810.00 2810.00

modglob 20740500.00 20740508.09 20740508.09 20740508.09nw04 16862.00 16862.00 16862.00 16862.00 16862.00 16862.00

p2756 3124.00 3124.00pk1 11.00 11.00 11.00 11.00 11.00 11.00

pp08aCUTS 7350.00 7380.00 7350.00 7350.00qiu −132.87 −132.87 −32.06 −132.87 −132.87

rout 1127.54 1077.56 1077.56 −Infvpm2 13.75 13.75 13.75 7.00 13.75 13.75

Table: Objective values—command line solvers and R interfaces

Page 22: Mixed Integer Linear Programming in R · PDF fileMixed Integer Linear Programming in R Stefan Theussl Department of Statistics and Mathematics Wirtschaftsuniversit at Wien July 1,

Results of Benchmark Experiment

GLPK Rglpk lp solve lpSolve SYMPHONY Rsymphonyaflow30a 893.32 712.49 640.06 407.84 350.04 35.42

air04 312.34 191.97 1055.63 84.36 161.92air05 165.08 92.48 393.31 67.46 32.70 70.17

cap6000 153.29 131.71 130.45 112.21 320.81 74.40danoint 6.37 1.41 744.72 268.80 1632.76 4021.88disctom 35.49 29.14 98.50 206.68

fiber 15.74 1.56 0.10 0.10fixnet6 0.16 0.73

gesa2 80.96 0.11 8639.25 13.51manna81 0.04 0.06

mas76 632.73 673.62 0.00 4.97 34.51 39.57misc07 0.89 1.06 0.29 0.30 1.67 4.62

modglob 1689.69 827.89 313.45 1554.79nw04 13.03 11.85 0.76 0.86 14.25 11.76

p2756 282.10 0.53pk1 380.72 630.54 5.48 4.66 10.38 23.60

pp08aCUTS 767.40 3595.35 1412.84 4.47qiu 397.91 460.61 67.32 135.71 27.96 59.69

rout 21.62 78.36 2963.72 3179.14 10146.32 0.00vpm2 1686.00 2706.43 96.09 4048.86 17.96 1.97

Table: Comparison of runtimes [min]—command line solvers vs. Rinterfaces

Page 23: Mixed Integer Linear Programming in R · PDF fileMixed Integer Linear Programming in R Stefan Theussl Department of Statistics and Mathematics Wirtschaftsuniversit at Wien July 1,

Outlook and Future Work

I Optimization infrastructure package

I Interfaces to NMINP solvers Bonmin and LaGO (projectRINO on R-Forge)

I Investigation of SYMPHONY’s parallel solver

I Applications: Consensus ranking of journal ratings, portfoliooptimization

Page 24: Mixed Integer Linear Programming in R · PDF fileMixed Integer Linear Programming in R Stefan Theussl Department of Statistics and Mathematics Wirtschaftsuniversit at Wien July 1,

Thank you for your attention

Further reading:

Gerard Cornuejols and Reha Tutuncu.Optimization Methods in Finance.Cambridge University Press, 2006.