Conic Programming in GAMS
Armin Pruessner, Michael Bussieck, Steven Dirkse, Alex Meeraus
GAMS Development Corporation
INFORMS 2003, Atlanta October 19-22
Conic Programming in GAMS Armin Pruessner, Michael Bussieck, Steven - - PowerPoint PPT Presentation
Conic Programming in GAMS Armin Pruessner, Michael Bussieck, Steven Dirkse, Alex Meeraus GAMS Development Corporation INFORMS 2003, Atlanta October 19-22 Direction What this talk is about Overview: the class of conic programs
Armin Pruessner, Michael Bussieck, Steven Dirkse, Alex Meeraus
INFORMS 2003, Atlanta October 19-22
2
– Overview: the class of conic programs – Conic constraints and examples using GAMS – Solvers in GAMS and numerical results – CONE World - a forum for conic programming
– Conic programming algorithms – Detailed applications
3
4
– Truss topology design – FIR filter design
– Portfolio optimization
– Robust linear programming – Norm minimization problems 7th DIMACS Implementation Challenge on SDP and Second Order Cone Programming (SOCP)
5
Less General More General
SDP SOCP (Convex) QCQP (Convex) QP LP
Less Difficult More Difficult Model Generality Solution Difficulty
6
≤ =
− − k k k k k
x x x x C
2 ) 1 ( : 1 ) 1 ( : 1
:
x x T
7
Trivial Quadratic Cone:
2 2
8
− × − i k i n k i n i n i T i i i T
i i
1 ) 1 (
i T i i i
9
≠i j i i
2
≠ ≠ ≥ j k i k 2 k
,
10
2 2 2 2 2
i i
Rotated quadratic cone Quadratic cone
11
− 1 1 2 1 2 1 2 1 2 1 L M O M M L L
q r
12
13
Set s /s1,s2,…,sn/; Set t(s) / s2,…,sn/; Variable x(s);
x(‘s1’) =C= sum(t(s), x(s));
Note: Summation on right hand side
x(‘s1’) =G= sqrt[sum(t(s),sqr(x(s)))];
14
Set s /s1,s2,s3,…,sn/; Set t(s) / s3,…,sn/; Variable x(s);
x(‘s1’)+x(‘s2’) =C= sum(t(s), x(s));
Note: Summation on right hand side 2*x(‘s1’)*x(‘s2’)=G= sum[t(s),sqr(x(s))];
15
2
) Im( ) Re( ) Im( ) Re( ) Re( ) Im( ) Im( ) Re( min − − b b x x A A A A
16
2 2
im re im re i
17
Objective..
reseq_re(i).. res_re(i) =E= sum(j, A_re(i,j)*x_re(j))
reseq_im(i).. res_im(i) =E= … coneeq(i).. t(i) =C= res_re(i) + res_im(i); Model conemodel /objective, reseq_re, reseq_im, coneeq/; Solve conemodel using lp minimizing obj;
18
j j j i j j j j j j j j
min 2 2 ' , ' ' ,
Objective is to minimize variance (risk), subject to an expected return σj,j’ = covariance =1 / (numdays-1) xj = % of investment in stock j pj = price change (return) for stock j rmin = minimum expected return Dj,d = Deviation per day d of stock j wrt to mean return
19
2 2
2
d j
20
Objective..
Budget.. sum(j, x(j)) =E= 1; Return.. Sum(j, p(j)*x(j)) =G= rmin; Wcone(days).. w(d) = sum(j, D(j,d)*x(j); cone_eq1.. q =E= 1; cone_eq2.. q + r =C= sum(d, w(d)); Model conemodel / all /; Solve conemodel using lp minimizing obj;
21
– LP (simplex or interior point) – MIP (branch and bound) – Conic Programs (conic interior point): – Convex NLP
22
– Sum of norms – Antenna array weight design – Scheduling problems MOSEK solves all SOCP models and is the most efficient
23
– In SeDuMi (MATLAB) format – MOSEK: extended QPS format (based on MPS)
24
5 9 32 32 75 75 6 13 13 22 22 68 68 1 2 5 10 10 7 28 28 107 107 445 445 Sched_50_50_orig Sched_100_50_orig Sched_100_100_orig Sched_200_100_orig 6 13 13 29 29 138 138 6 17 17 28 28 95 95 1 2 4 10 10 5 22 22 94 94 409 409 Sched_50_50_orig Sched_100_50_orig Sched_100_100_orig Sched_200_100_orig 3 18 18 780 780 6 29 29 504 504 2 9 355 355 15 15 221 221 MM MM Qssp30 Qssp60 Qssp180 4 9 459 459 4 14 14 232 232 2 9 182 182 11 11 151 151 MM MM Nql30 Nql60 Nql180 9 11 11 24 24 12 12 11 11 20 20 18 18 11 11 3 3 8 2 11 11 9 16 16 7 Nb Nb_L1 Nb_L2 Nb_L2_Bessel
SeDuMi SeDuMi SDPT3 SDPT3 MOS MOSEK LO LOQO QO Problem Problem
MM: memory problems
25
26
Figure 1
27
discussion and information on cone programming
models
– GAMS cone format – NLP formulation
solvers
28
29
30
using CONVERT utility in GAMS)
31
Figure 2
10 20 30 40 50 60 70 80 90 100 1 10 100 1000 Percent Of Models Solved Time Factor Performance Profile MOSEK NLP-1 NLP-2 NLP-3
32
disciplines (but sometimes neglected)
– Open data source (models, solvers, solver options) – Should be easily reproducible
scripts to reproduce results
– See www.gamsworld.org/global/reproduce
33
34
35
http://www.gams.com/presentations
36
Applications of Second Order Cone Programming, Linear Algebra and its Applications, 284:193-228, November 1998.
at www.mosek.com/documentation, 2003.
and SOCP solvers, Math Program., Series B, 2002 (appeared electronically).
software with performance profiles, Math. Programming, 91 (2),
201-213, 2002.