+ All Categories
Home > Documents > COSMO.jl - A conic operator splitting method · 8izepxfdbsfbcpvutpmwjohmbshfdpowfydpojdqspcmfnt •...

COSMO.jl - A conic operator splitting method · 8izepxfdbsfbcpvutpmwjohmbshfdpowfydpojdqspcmfnt •...

Date post: 03-Aug-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
35
A conic operator splitting method for large convex problems Michael Garstka · Paul Goulart · Mark Cannon International Conference on Continuous Optimization, Berlin 6th August 2019 University of Oxford | Michael Garstka COSMO.jl - A conic operator splitting method 1/20 1 /20
Transcript
Page 1: COSMO.jl - A conic operator splitting method · 8izepxfdbsfbcpvutpmwjohmbshfdpowfydpojdqspcmfnt • 1spcmfnejnfotjpothspxesbtujdbmmz • 4ubuf pg uif bsu joufsjpsqpjou tpmwfsepoputdbmfxfmm

" DPOJD PQFSBUPS TQMJUUJOH NFUIPE GPSMBSHF DPOWFY QSPCMFNT

.JDIBFM (BSTULB · 1BVM (PVMBSU ·.BSL $BOOPO

*OUFSOBUJPOBM $POGFSFODF PO $POUJOVPVT 0QUJNJ[BUJPO #FSMJO�UI "VHVTU ����

6OJWFSTJUZ PG 0YGPSE ] .JDIBFM (BSTULB $04.0�KM � " DPOJD PQFSBUPS TQMJUUJOHNFUIPE �����/��

Page 2: COSMO.jl - A conic operator splitting method · 8izepxfdbsfbcpvutpmwjohmbshfdpowfydpojdqspcmfnt • 1spcmfnejnfotjpothspxesbtujdbmmz • 4ubuf pg uif bsu joufsjpsqpjou tpmwfsepoputdbmfxfmm

8IZ EP XF DBSF BCPVU TPMWJOH MBSHF DPOWFY DPOJD QSPCMFNT

• 1SPCMFN EJNFOTJPOT HSPX ESBTUJDBMMZ• 4UBUF�PG�UIF�BSU JOUFSJPS QPJOU TPMWFS EP OPU TDBMF XFMM

6OJWFSTJUZ PG 0YGPSE ] .JDIBFM (BSTULB $04.0�KM � " DPOJD PQFSBUPS TQMJUUJOHNFUIPE �����/��

Page 3: COSMO.jl - A conic operator splitting method · 8izepxfdbsfbcpvutpmwjohmbshfdpowfydpojdqspcmfnt • 1spcmfnejnfotjpothspxesbtujdbmmz • 4ubuf pg uif bsu joufsjpsqpjou tpmwfsepoputdbmfxfmm

COSMO.jl A quadratic objective conic solverimplemented in pure Julia

• "%.. TPMWFS GPS MBSHF DPOWFY DPOJD QSPCMFNT• 4VQQPSU PG NBKPS DPOWFY DPOFT�

;FSP DPOF 4FDPOE PSEFS DPOF 1PXFS DPOF/POOFHBUJWFT 1PTJUJWF TFNJEFöOJUF DPOF)ZQFSCPY &YQPOFOUJBM DPOF

• 2VBESBUJD DPTU GVODUJPO BOE DPOJD DPOTUSBJOUT• *NQMFNFOUFE JO +VMJB

6OJWFSTJUZ PG 0YGPSE ] .JDIBFM (BSTULB $04.0�KM � " DPOJD PQFSBUPS TQMJUUJOHNFUIPE �����/��

Page 4: COSMO.jl - A conic operator splitting method · 8izepxfdbsfbcpvutpmwjohmbshfdpowfydpojdqspcmfnt • 1spcmfnejnfotjpothspxesbtujdbmmz • 4ubuf pg uif bsu joufsjpsqpjou tpmwfsepoputdbmfxfmm

0WFSWJFX

$04.0�KM

&YBNQMF� /FBSFTU $PSSFMBUJPO .BUSJY QSPCMFN

$POJD 1SPCMFN 'PSNBU

"%.. "MHPSJUIN

$IPSEBM EFDPNQPTJUJPO PG 14% DPOTUSBJOUT

$VTUPNJTBCMF BOE FYUFOTJCMF DPEF

$PODMVTJPO

6OJWFSTJUZ PG 0YGPSE ] .JDIBFM (BSTULB $04.0�KM � " DPOJD PQFSBUPS TQMJUUJOHNFUIPE �����/��

Page 5: COSMO.jl - A conic operator splitting method · 8izepxfdbsfbcpvutpmwjohmbshfdpowfydpojdqspcmfnt • 1spcmfnejnfotjpothspxesbtujdbmmz • 4ubuf pg uif bsu joufsjpsqpjou tpmwfsepoputdbmfxfmm

&YBNQMF� /FBSFTU DPSSFMBUJPO NBUSJY QSPCMFN• (JWFO EBUB NBUSJYC ∈ Rn×n öOE UIF OFBSFTU DPSSFMBUJPO NBUSJYX �

NJOJNJ[F 12∥X − C∥2F

TVCKFDU UP Xii = 1, i = 1, . . . , nX ∈ Sn+,

• 5IF PCKFDUJWF GVODUJPO DBO CF SFXSJUUFO BT

12∥X − C∥2F = 1

2x⊤x− c⊤x+ 1

2c⊤c

XJUI x = WFD(X) BOE c = WFD(C)

6OJWFSTJUZ PG 0YGPSE ] .JDIBFM (BSTULB $04.0�KM � " DPOJD PQFSBUPS TQMJUUJOHNFUIPE �����/��

Page 6: COSMO.jl - A conic operator splitting method · 8izepxfdbsfbcpvutpmwjohmbshfdpowfydpojdqspcmfnt • 1spcmfnejnfotjpothspxesbtujdbmmz • 4ubuf pg uif bsu joufsjpsqpjou tpmwfsepoputdbmfxfmm

&YBNQMF� /FBSFTU DPSSFMBUJPO NBUSJY QSPCMFN• 8F DBO TPMWF UIJT XJUI B GFX MJOFT PG DPEF XJUI +V.1 BOE $04.0�

� * 4 avKK2i`B+U`�M/UM- MVVc� + 4 p2+U*Vc�

� K 4 CmJSXJQ/2HUrBi?nQTiBKBx2`U*PaJPXPTiBKBx2`VVc� !p�`B�#H2UK- s(R,M- R,M)- Sa.Vc� t 4 p2+UsVc�

� !Q#D2+iBp2UK- JBM- yX8 t^ t @ +^ t Y yX8 +^ +V�

�� !+QMbi`�BMiUK- (B 4 R, M)- s(B- B) 44 RXV��

�� CmJSXQTiBKBx25UKV

X ∈ S+n

12∥X − C∥2F

Xii = 1, i = 1, . . . , n

6OJWFSTJUZ PG 0YGPSE ] .JDIBFM (BSTULB $04.0�KM � " DPOJD PQFSBUPS TQMJUUJOHNFUIPE �����/��

Page 7: COSMO.jl - A conic operator splitting method · 8izepxfdbsfbcpvutpmwjohmbshfdpowfydpojdqspcmfnt • 1spcmfnejnfotjpothspxesbtujdbmmz • 4ubuf pg uif bsu joufsjpsqpjou tpmwfsepoputdbmfxfmm

&YBNQMF� /FBSFTU DPSSFMBUJPO NBUSJY QSPCMFN

0 100 200 300 400 500 600 700 800

10−2

10−1

100

101

102

103

$04.0 +VMJB

4F%V.J ."5-"#

4$4 $

.PTFL $

EJNFOTJPO n PG EBUB NBUSJYC ∈ Rn×n

TPMWFUJN

F<T>

6OJWFSTJUZ PG 0YGPSE ] .JDIBFM (BSTULB $04.0�KM � " DPOJD PQFSBUPS TQMJUUJOHNFUIPE �����/��

Page 8: COSMO.jl - A conic operator splitting method · 8izepxfdbsfbcpvutpmwjohmbshfdpowfydpojdqspcmfnt • 1spcmfnejnfotjpothspxesbtujdbmmz • 4ubuf pg uif bsu joufsjpsqpjou tpmwfsepoputdbmfxfmm

1SPCMFN 'PSNBU

NJOJNJ[F 12x

⊤Px+ q⊤xTVCKFDU UP Ax+ s = b

s ∈ K

• %FDJTJPO WBSJBCMFT� x ∈ Rn s ∈ Rm

• 1SPCMFN EBUB� SFBM NBUSJDFT P ≽ 0 A BOE SFBM WFDUPST q b• $POWFY DPOFK XIJDI DBO CF B $BSUFTJBO QSPEVDU PG DPOFT�

K = K1 ×K2 × · · ·×KN

6OJWFSTJUZ PG 0YGPSE ] .JDIBFM (BSTULB $04.0�KM � " DPOJD PQFSBUPS TQMJUUJOHNFUIPE �����/��

Page 9: COSMO.jl - A conic operator splitting method · 8izepxfdbsfbcpvutpmwjohmbshfdpowfydpojdqspcmfnt • 1spcmfnejnfotjpothspxesbtujdbmmz • 4ubuf pg uif bsu joufsjpsqpjou tpmwfsepoputdbmfxfmm

1SPCMFN 'PSNBU

-JOFBS 1SPHSBN

NJOJNJ[F 12x

⊤Px+ q⊤xTVCKFDU UP Ax+ s = b

s ∈ {0}m1 × Rm2+

• %FDJTJPO WBSJBCMFT� x ∈ Rn s ∈ Rm

• 1SPCMFN EBUB� SFBM NBUSJDFT P ≽ 0 A BOE SFBM WFDUPST q b• $POWFY DPOFK XIJDI DBO CF B $BSUFTJBO QSPEVDU PG DPOFT�

K = K1 ×K2 × · · ·×KN

6OJWFSTJUZ PG 0YGPSE ] .JDIBFM (BSTULB $04.0�KM � " DPOJD PQFSBUPS TQMJUUJOHNFUIPE �����/��

Page 10: COSMO.jl - A conic operator splitting method · 8izepxfdbsfbcpvutpmwjohmbshfdpowfydpojdqspcmfnt • 1spcmfnejnfotjpothspxesbtujdbmmz • 4ubuf pg uif bsu joufsjpsqpjou tpmwfsepoputdbmfxfmm

1SPCMFN 'PSNBU

4FNJEFöOJUF 1SPHSBN

NJOJNJ[F 12x

⊤Px+ q⊤xTVCKFDU UP Ax+ s = b

NBU(s) ≽ 0

• %FDJTJPO WBSJBCMFT� x ∈ Rn s ∈ Rm

• 1SPCMFN EBUB� SFBM NBUSJDFT P ≽ 0 A BOE SFBM WFDUPST q b• $POWFY DPOFK XIJDI DBO CF B $BSUFTJBO QSPEVDU PG DPOFT�

K = K1 ×K2 × · · ·×KN

6OJWFSTJUZ PG 0YGPSE ] .JDIBFM (BSTULB $04.0�KM � " DPOJD PQFSBUPS TQMJUUJOHNFUIPE �����/��

Page 11: COSMO.jl - A conic operator splitting method · 8izepxfdbsfbcpvutpmwjohmbshfdpowfydpojdqspcmfnt • 1spcmfnejnfotjpothspxesbtujdbmmz • 4ubuf pg uif bsu joufsjpsqpjou tpmwfsepoputdbmfxfmm

(FOFSJD "%..

NJOJNJ[F f(x) + g(z)TVCKFDU UP Ax+Bz = c

• "VHNFOUFE -BHSBOHJBO�

Lρ(x, z, y) = f(x) + g(z) + y⊤(Ax+Bz − c) +ρ

2∥Ax+Bz − c∥22,

• "%.. TUFQT�

xk+1 := BSHNJOx

Lρ(x, zk, yk)

zk+1 := BSHNJOz

Lρ(xk+1, z, yk)

yk+1 := yk + ρ(Axk+1 +Bzk+1 − c)

6OJWFSTJUZ PG 0YGPSE ] .JDIBFM (BSTULB $04.0�KM � " DPOJD PQFSBUPS TQMJUUJOHNFUIPE �����/��

Page 12: COSMO.jl - A conic operator splitting method · 8izepxfdbsfbcpvutpmwjohmbshfdpowfydpojdqspcmfnt • 1spcmfnejnfotjpothspxesbtujdbmmz • 4ubuf pg uif bsu joufsjpsqpjou tpmwfsepoputdbmfxfmm

(FOFSJD "%..

NJOJNJ[F f(x) + g(z)TVCKFDU UP Ax+Bz = c

• "VHNFOUFE -BHSBOHJBO�

Lρ(x, z, y) = f(x) + g(z) + y⊤(Ax+Bz − c) +ρ

2∥Ax+Bz − c∥22,

• "%.. TUFQT�

xk+1 := BSHNJOx

Lρ(x, zk, yk)

zk+1 := BSHNJOz

Lρ(xk+1, z, yk)

yk+1 := yk + ρ(Axk+1 +Bzk+1 − c)

6OJWFSTJUZ PG 0YGPSE ] .JDIBFM (BSTULB $04.0�KM � " DPOJD PQFSBUPS TQMJUUJOHNFUIPE �����/��

Page 13: COSMO.jl - A conic operator splitting method · 8izepxfdbsfbcpvutpmwjohmbshfdpowfydpojdqspcmfnt • 1spcmfnejnfotjpothspxesbtujdbmmz • 4ubuf pg uif bsu joufsjpsqpjou tpmwfsepoputdbmfxfmm

(FOFSJD "%..

NJOJNJ[F f(x) + g(z)TVCKFDU UP Ax+Bz = c

• "VHNFOUFE -BHSBOHJBO�

Lρ(x, z, y) = f(x) + g(z) + y⊤(Ax+Bz − c) +ρ

2∥Ax+Bz − c∥22,

• "%.. TUFQT�

xk+1 := BSHNJOx

Lρ(x, zk, yk)

zk+1 := BSHNJOz

Lρ(xk+1, z, yk)

yk+1 := yk + ρ(Axk+1 +Bzk+1 − c)

6OJWFSTJUZ PG 0YGPSE ] .JDIBFM (BSTULB $04.0�KM � " DPOJD PQFSBUPS TQMJUUJOHNFUIPE �����/��

Page 14: COSMO.jl - A conic operator splitting method · 8izepxfdbsfbcpvutpmwjohmbshfdpowfydpojdqspcmfnt • 1spcmfnejnfotjpothspxesbtujdbmmz • 4ubuf pg uif bsu joufsjpsqpjou tpmwfsepoputdbmfxfmm

(FOFSJD "%..

NJOJNJ[F f(x) + g(z)TVCKFDU UP Ax+Bz = c

• "VHNFOUFE -BHSBOHJBO�

Lρ(x, z, y) = f(x) + g(z) + y⊤(Ax+Bz − c) +ρ

2∥Ax+Bz − c∥22,

• "%.. TUFQT�

xk+1 := BSHNJOx

Lρ(x, zk, yk)

zk+1 := BSHNJOz

Lρ(xk+1, z, yk)

yk+1 := yk + ρ(Axk+1 +Bzk+1 − c)

6OJWFSTJUZ PG 0YGPSE ] .JDIBFM (BSTULB $04.0�KM � " DPOJD PQFSBUPS TQMJUUJOHNFUIPE �����/��

Page 15: COSMO.jl - A conic operator splitting method · 8izepxfdbsfbcpvutpmwjohmbshfdpowfydpojdqspcmfnt • 1spcmfnejnfotjpothspxesbtujdbmmz • 4ubuf pg uif bsu joufsjpsqpjou tpmwfsepoputdbmfxfmm

4QMJUUJOH NFUIPE

NJOJNJ[F 12x

⊤Px+ q⊤x

TVCKFDU UP Ax+ s = b

s ∈ K

NJOJNJ[F 12 x̃

⊤Px̃+ q⊤x̃+ IAx+s=b(x̃, s̃) + IK(s)

TVCKFDU UP (x̃, s̃) = (x, s)

f(x̃, s̃) g(x, s)

6OJWFSTJUZ PG 0YGPSE ] .JDIBFM (BSTULB $04.0�KM � " DPOJD PQFSBUPS TQMJUUJOHNFUIPE �������/��

Page 16: COSMO.jl - A conic operator splitting method · 8izepxfdbsfbcpvutpmwjohmbshfdpowfydpojdqspcmfnt • 1spcmfnejnfotjpothspxesbtujdbmmz • 4ubuf pg uif bsu joufsjpsqpjou tpmwfsepoputdbmfxfmm

"%.. BMHPSJUIN

(x̃k+1, s̃k+1) = BSHNJOx̃,s̃

Lρ(x̃, s̃, xk, sk, yk

)

xk+1 = ΠRn

(x̃k+1

)

sk+1 = ΠK

(s̃k+1 + 1

ρyk)

yk+1 = yk + ρ(s̃k+1 − sk+1

)

FRVBMJUZDPOTUSBJOFE 21→ MJOFBS ,,5 TZTUFN

QSPKFDUJPOPOUPK

XIJMF UFSNJOBUJPO DSJUFSJB OPU TBUJTöFE

%P*OQVU� *OJUJBM WBMVFT x0, s0, y0 TUFQ TJ[FT σ, ρ

��

��

��

��

��

����

6OJWFSTJUZ PG 0YGPSE ] .JDIBFM (BSTULB $04.0�KM � " DPOJD PQFSBUPS TQMJUUJOHNFUIPE �������/��

Page 17: COSMO.jl - A conic operator splitting method · 8izepxfdbsfbcpvutpmwjohmbshfdpowfydpojdqspcmfnt • 1spcmfnejnfotjpothspxesbtujdbmmz • 4ubuf pg uif bsu joufsjpsqpjou tpmwfsepoputdbmfxfmm

$IPSEBM %FDPNQPTJUJPO

NJOJNJ[F 12x

⊤Px+ q⊤x

TVCKFDU UPm∑

i=1

Aixi + S = B

S ∈ Sr+

NJOJNJ[F 12x

⊤Px+ q⊤x

TVCKFDU UPm∑

i=1

Aixi +p∑

ℓ=1

T⊤ℓ SℓTℓ = B

Sℓ ∈ S|Cℓ|+ , ℓ = 1, . . . , p

"HMFS�T UIFPSFN

S11 S12 0 0 0 S16

S21 S22 S23 S24 0 S26

0 S32 S33 S34 0 0

0 S42 S43 S44 S45 S46

0 0 0 S54 S55 S56

S61 S62 0 S64 S65 S66

⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣

⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦

6OJWFSTJUZ PG 0YGPSE ] .JDIBFM (BSTULB $04.0�KM � " DPOJD PQFSBUPS TQMJUUJOHNFUIPE �������/��

Page 18: COSMO.jl - A conic operator splitting method · 8izepxfdbsfbcpvutpmwjohmbshfdpowfydpojdqspcmfnt • 1spcmfnejnfotjpothspxesbtujdbmmz • 4ubuf pg uif bsu joufsjpsqpjou tpmwfsepoputdbmfxfmm

$IPSEBM %FDPNQPTJUJPO

NJOJNJ[F 12x

⊤Px+ q⊤x

TVCKFDU UPm∑

i=1

Aixi + S = B

S ∈ Sr+

NJOJNJ[F 12x

⊤Px+ q⊤x

TVCKFDU UPm∑

i=1

Aixi +p∑

ℓ=1

T⊤ℓ SℓTℓ = B

Sℓ ∈ S|Cℓ|+ , ℓ = 1, . . . , p

"HMFS�T UIFPSFN

S11 S12 0 0 0 S16

S21 S22 S23 S24 0 S26

0 S32 S33 S34 0 0

0 S42 S43 S44 S45 S46

0 0 0 S54 S55 S56

S61 S62 0 S64 S65 S66

⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣

⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦

��

� �

6OJWFSTJUZ PG 0YGPSE ] .JDIBFM (BSTULB $04.0�KM � " DPOJD PQFSBUPS TQMJUUJOHNFUIPE �������/��

Page 19: COSMO.jl - A conic operator splitting method · 8izepxfdbsfbcpvutpmwjohmbshfdpowfydpojdqspcmfnt • 1spcmfnejnfotjpothspxesbtujdbmmz • 4ubuf pg uif bsu joufsjpsqpjou tpmwfsepoputdbmfxfmm

$IPSEBM %FDPNQPTJUJPO

NJOJNJ[F 12x

⊤Px+ q⊤x

TVCKFDU UPm∑

i=1

Aixi + S = B

S ∈ Sr+

NJOJNJ[F 12x

⊤Px+ q⊤x

TVCKFDU UPm∑

i=1

Aixi +p∑

ℓ=1

T⊤ℓ SℓTℓ = B

Sℓ ∈ S|Cℓ|+ , ℓ = 1, . . . , p

"HMFS�T UIFPSFN

S11 S12 0 0 0 S16

S21 S22 S23 S24 0 S26

0 S32 S33 S34 0 0

0 S42 S43 S44 S45 S46

0 0 0 S54 S55 S56

S61 S62 0 S64 S65 S66

⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣

⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦

��

� �

6OJWFSTJUZ PG 0YGPSE ] .JDIBFM (BSTULB $04.0�KM � " DPOJD PQFSBUPS TQMJUUJOHNFUIPE �������/��

Page 20: COSMO.jl - A conic operator splitting method · 8izepxfdbsfbcpvutpmwjohmbshfdpowfydpojdqspcmfnt • 1spcmfnejnfotjpothspxesbtujdbmmz • 4ubuf pg uif bsu joufsjpsqpjou tpmwfsepoputdbmfxfmm

$IPSEBM %FDPNQPTJUJPO

NJOJNJ[F 12x

⊤Px+ q⊤x

TVCKFDU UPm∑

i=1

Aixi + S = B

S ∈ Sr+

NJOJNJ[F 12x

⊤Px+ q⊤x

TVCKFDU UPm∑

i=1

Aixi +p∑

ℓ=1

T⊤ℓ SℓTℓ = B

Sℓ ∈ S|Cℓ|+ , ℓ = 1, . . . , p

"HMFS�T UIFPSFN

S11 S12 0 0 0 S16

S21 S22 S23 S24 0 S26

0 S32 S33 S34 0 0

0 S42 S43 S44 S45 S46

0 0 0 S54 S55 S56

S61 S62 0 S64 S65 S66

⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣

⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦

��

� �

6OJWFSTJUZ PG 0YGPSE ] .JDIBFM (BSTULB $04.0�KM � " DPOJD PQFSBUPS TQMJUUJOHNFUIPE �������/��

Page 21: COSMO.jl - A conic operator splitting method · 8izepxfdbsfbcpvutpmwjohmbshfdpowfydpojdqspcmfnt • 1spcmfnejnfotjpothspxesbtujdbmmz • 4ubuf pg uif bsu joufsjpsqpjou tpmwfsepoputdbmfxfmm

$IPSEBM %FDPNQPTJUJPO

NJOJNJ[F 12x

⊤Px+ q⊤x

TVCKFDU UPm∑

i=1

Aixi + S = B

S ∈ Sr+

NJOJNJ[F 12x

⊤Px+ q⊤x

TVCKFDU UPm∑

i=1

Aixi +p∑

ℓ=1

T⊤ℓ SℓTℓ = B

Sℓ ∈ S|Cℓ|+ , ℓ = 1, . . . , p

"HMFS�T UIFPSFN

S11 S12 0 0 0 S16

S21 S22 S23 S24 0 S26

0 S32 S33 S34 0 0

0 S42 S43 S44 S45 S46

0 0 0 S54 S55 S56

S61 S62 0 S64 S65 S66

⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣

⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦

��

� �

6OJWFSTJUZ PG 0YGPSE ] .JDIBFM (BSTULB $04.0�KM � " DPOJD PQFSBUPS TQMJUUJOHNFUIPE �������/��

Page 22: COSMO.jl - A conic operator splitting method · 8izepxfdbsfbcpvutpmwjohmbshfdpowfydpojdqspcmfnt • 1spcmfnejnfotjpothspxesbtujdbmmz • 4ubuf pg uif bsu joufsjpsqpjou tpmwfsepoputdbmfxfmm

$IPSEBM %FDPNQPTJUJPO

NJOJNJ[F 12x

⊤Px+ q⊤x

TVCKFDU UPm∑

i=1

Aixi + S = B

S ∈ Sr+

NJOJNJ[F 12x

⊤Px+ q⊤x

TVCKFDU UPm∑

i=1

Aixi +p∑

ℓ=1

T⊤ℓ SℓTℓ = B

Sℓ ∈ S|Cℓ|+ , ℓ = 1, . . . , p

"HMFS�T UIFPSFN

S11 S12 0 0 0 S16

S21 S22 S23 S24 0 S26

0 S32 S33 S34 0 0

0 S42 S43 S44 S45 S46

0 0 0 S54 S55 S56

S61 S62 0 S64 S65 S66

⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣

⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦

���

� ��

C1

C2

C3

6OJWFSTJUZ PG 0YGPSE ] .JDIBFM (BSTULB $04.0�KM � " DPOJD PQFSBUPS TQMJUUJOHNFUIPE �������/��

Page 23: COSMO.jl - A conic operator splitting method · 8izepxfdbsfbcpvutpmwjohmbshfdpowfydpojdqspcmfnt • 1spcmfnejnfotjpothspxesbtujdbmmz • 4ubuf pg uif bsu joufsjpsqpjou tpmwfsepoputdbmfxfmm

&YBNQMF� /FBSFTU DPSSFMBUJPO NBUSJY QSPCMFN• (JWFO EBUB NBUSJYC ∈ Rn×n öOE UIF OFBSFTU DPSSFMBUJPO NBUSJYX �

NJOJNJ[F 12∥X − C∥2F

TVCKFDU UP Xii = 1, i = 1, . . . , nX ∈ Sn+,

• -FU�T BTTVNF UIBUC IBT B DIPSEBM TQBSTJUZ TUSVDUVSF XJUIG(V,E)�

d

Nb CMPDLTd

w

w

• 8F XBOUX UP LFFQ UIF TBNF TQBSTJUZ TUSVDUVSFX ∈ Sn+(E, 0)

6OJWFSTJUZ PG 0YGPSE ] .JDIBFM (BSTULB $04.0�KM � " DPOJD PQFSBUPS TQMJUUJOHNFUIPE �������/��

Page 24: COSMO.jl - A conic operator splitting method · 8izepxfdbsfbcpvutpmwjohmbshfdpowfydpojdqspcmfnt • 1spcmfnejnfotjpothspxesbtujdbmmz • 4ubuf pg uif bsu joufsjpsqpjou tpmwfsepoputdbmfxfmm

&YBNQMF� /FBSFTU DPSSFMBUJPO NBUSJY QSPCMFN

� K 4 CmJSXJQ/2HUrBi?nQTiBKBx2`U*PaJPXPTiBKBx2`- /2+QKTQb2 4 i`m2VVc� !p�`B�#H2UK- s(R,M- R,M)Vc� t 4 p2+UsVc� !Q#D2+iBp2UK- JBM- yX8 t^ t @ +^ t Y yX8 +^ +V� !+QMbi`�BMiUK- (B 4 R, M)- s(B- B) 44 RXV�

� !+QMbi`�BMiUK- � t BM JPAXSQbBiBp2a2KB/27BMBi2*QM2h`B�M;H2UMVVc�

�� CmJSXQTiBKBx25UKV

6OJWFSTJUZ PG 0YGPSE ] .JDIBFM (BSTULB $04.0�KM � " DPOJD PQFSBUPS TQMJUUJOHNFUIPE �������/��

Page 25: COSMO.jl - A conic operator splitting method · 8izepxfdbsfbcpvutpmwjohmbshfdpowfydpojdqspcmfnt • 1spcmfnejnfotjpothspxesbtujdbmmz • 4ubuf pg uif bsu joufsjpsqpjou tpmwfsepoputdbmfxfmm

&YBNQMF� /FBSFTU DPSSFMBUJPO NBUSJY QSPCMFN

2 5 10 15 20 30 40 50 60 70 80 90 100

10−2

10−1

100

101

102

103

$04.0

4$4

$04.0 EFDPNQPTFE

4F%V.J .PTFL

OVNCFS PG CMPDLT JO CMPDL�TUSVDUVSFE EBUB NBUSJYC

TPMWFUJN

F<T>

6OJWFSTJUZ PG 0YGPSE ] .JDIBFM (BSTULB $04.0�KM � " DPOJD PQFSBUPS TQMJUUJOHNFUIPE �������/��

Page 26: COSMO.jl - A conic operator splitting method · 8izepxfdbsfbcpvutpmwjohmbshfdpowfydpojdqspcmfnt • 1spcmfnejnfotjpothspxesbtujdbmmz • 4ubuf pg uif bsu joufsjpsqpjou tpmwfsepoputdbmfxfmm

"%.. BMHPSJUIN

(x̃k+1, s̃k+1) = BSHNJOx̃,s̃

Lρ(x̃, s̃, xk, sk, yk

)

xk+1 = ΠRn

(x̃k+1

)

sk+1 = ΠK

(s̃k+1 + 1

ρyk)

yk+1 = yk + ρ(s̃k+1 − sk+1

)

FRVBMJUZDPOTUSBJOFE 21→ MJOFBS ,,5 TZTUFN

QSPKFDUJPOPOUPK

XIJMF UFSNJOBUJPO DSJUFSJB OPU TBUJTöFE

%P*OQVU� *OJUJBM WBMVFT x0, s0, y0 TUFQ TJ[FT σ, ρ

��

��

��

��

��

����

6OJWFSTJUZ PG 0YGPSE ] .JDIBFM (BSTULB $04.0�KM � " DPOJD PQFSBUPS TQMJUUJOHNFUIPE �������/��

Page 27: COSMO.jl - A conic operator splitting method · 8izepxfdbsfbcpvutpmwjohmbshfdpowfydpojdqspcmfnt • 1spcmfnejnfotjpothspxesbtujdbmmz • 4ubuf pg uif bsu joufsjpsqpjou tpmwfsepoputdbmfxfmm

$VTUPNJTBCMF BOE FYUFOTJCMF DPEF

• $VTUPN TPMWFS GPS ,,5 TZTUFN• 6TFS�EFöOFE DPOWFY TFUT�

� O .27BM2 M2r +QMp2t b2i� bi`m+i Jv*QMp2ta2i I, *PaJPX�#bi`�+i*QMp2ta2i� /BK,,AMi� 2M/�

� O /27BM2 � T`QD2+iBQM 7mM+iBQM� 7mM+iBQM *PaJPXT`QD2+i5Ut- +QMp2tnb2i,,Jv*QMp2ta2iV� O T`QD2+iBQM +Q/2 7Q` t QMiQ +QMp2tnb2i� 2M/

6OJWFSTJUZ PG 0YGPSE ] .JDIBFM (BSTULB $04.0�KM � " DPOJD PQFSBUPS TQMJUUJOHNFUIPE �������/��

Page 28: COSMO.jl - A conic operator splitting method · 8izepxfdbsfbcpvutpmwjohmbshfdpowfydpojdqspcmfnt • 1spcmfnejnfotjpothspxesbtujdbmmz • 4ubuf pg uif bsu joufsjpsqpjou tpmwfsepoputdbmfxfmm

COSMO.jl A quadratic objective conic solverimplemented in pure Julia

$PODMVTJPO�• PQFO TPVSDF "%..�CBTFE TPMWFS

XSJUUFO JO +VMJB• TVQQPSUT RVBESBUJD PCKFDUJWFT• TVQQPSUT NBKPS DPOWFY DPOFT• JOGFBTJCJMJUZ EFUFDUJPO• DIPSEBM EFDPNQPTJUJPO PG 14%

DPOTUSBJOUT• BMMPXT VTFS�EFöOFE DPOWFY TFUT

'VUVSF XPSL�• "DDFMFSBUJPO NFUIPET• "QQSPYJNBUF QSPKFDUJPOT• 1BSBMMFM *NQMFNFOUBUJPO PG QSPKFDUJPOT

6OJWFSTJUZ PG 0YGPSE ] .JDIBFM (BSTULB $04.0�KM � " DPOJD PQFSBUPS TQMJUUJOHNFUIPE �������/��

Page 29: COSMO.jl - A conic operator splitting method · 8izepxfdbsfbcpvutpmwjohmbshfdpowfydpojdqspcmfnt • 1spcmfnejnfotjpothspxesbtujdbmmz • 4ubuf pg uif bsu joufsjpsqpjou tpmwfsepoputdbmfxfmm

COSMO.jl A quadratic objective conic solverimplemented in pure Julia

$PODMVTJPO�• PQFO TPVSDF "%..�CBTFE TPMWFS

XSJUUFO JO +VMJB• TVQQPSUT RVBESBUJD PCKFDUJWFT• TVQQPSUT NBKPS DPOWFY DPOFT• JOGFBTJCJMJUZ EFUFDUJPO• DIPSEBM EFDPNQPTJUJPO PG 14%

DPOTUSBJOUT• BMMPXT VTFS�EFöOFE DPOWFY TFUT

'VUVSF XPSL�• "DDFMFSBUJPO NFUIPET• "QQSPYJNBUF QSPKFDUJPOT• 1BSBMMFM *NQMFNFOUBUJPO PG QSPKFDUJPOT

6OJWFSTJUZ PG 0YGPSE ] .JDIBFM (BSTULB $04.0�KM � " DPOJD PQFSBUPS TQMJUUJOHNFUIPE �������/��

Page 30: COSMO.jl - A conic operator splitting method · 8izepxfdbsfbcpvutpmwjohmbshfdpowfydpojdqspcmfnt • 1spcmfnejnfotjpothspxesbtujdbmmz • 4ubuf pg uif bsu joufsjpsqpjou tpmwfsepoputdbmfxfmm

'VUVSF 8PSL� 4NBSU $MJRVF .FSHJOH

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0 0

⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣

⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦

6OJWFSTJUZ PG 0YGPSE ] .JDIBFM (BSTULB $04.0�KM � " DPOJD PQFSBUPS TQMJUUJOHNFUIPE �������/��

Page 31: COSMO.jl - A conic operator splitting method · 8izepxfdbsfbcpvutpmwjohmbshfdpowfydpojdqspcmfnt • 1spcmfnejnfotjpothspxesbtujdbmmz • 4ubuf pg uif bsu joufsjpsqpjou tpmwfsepoputdbmfxfmm

'VUVSF 8PSL� 4NBSU $MJRVF .FSHJOH

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0 0

⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣

⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦

6OJWFSTJUZ PG 0YGPSE ] .JDIBFM (BSTULB $04.0�KM � " DPOJD PQFSBUPS TQMJUUJOHNFUIPE �������/��

Page 32: COSMO.jl - A conic operator splitting method · 8izepxfdbsfbcpvutpmwjohmbshfdpowfydpojdqspcmfnt • 1spcmfnejnfotjpothspxesbtujdbmmz • 4ubuf pg uif bsu joufsjpsqpjou tpmwfsepoputdbmfxfmm

'VUVSF 8PSL� 4NBSU $MJRVF .FSHJOH

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0 0

⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣

⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦

6OJWFSTJUZ PG 0YGPSE ] .JDIBFM (BSTULB $04.0�KM � " DPOJD PQFSBUPS TQMJUUJOHNFUIPE �������/��

Page 33: COSMO.jl - A conic operator splitting method · 8izepxfdbsfbcpvutpmwjohmbshfdpowfydpojdqspcmfnt • 1spcmfnejnfotjpothspxesbtujdbmmz • 4ubuf pg uif bsu joufsjpsqpjou tpmwfsepoputdbmfxfmm

'VUVSF 8PSL� 4NBSU $MJRVF .FSHJOH

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0 0

⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣

⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦

$16 �

$16 �

$16 �

6OJWFSTJUZ PG 0YGPSE ] .JDIBFM (BSTULB $04.0�KM � " DPOJD PQFSBUPS TQMJUUJOHNFUIPE �������/��

Page 34: COSMO.jl - A conic operator splitting method · 8izepxfdbsfbcpvutpmwjohmbshfdpowfydpojdqspcmfnt • 1spcmfnejnfotjpothspxesbtujdbmmz • 4ubuf pg uif bsu joufsjpsqpjou tpmwfsepoputdbmfxfmm

'VUVSF 8PSL� 4NBSU $MJRVF .FSHJOH

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0 0

⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣

⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦

$16 �

$16 �

$16 �

6OJWFSTJUZ PG 0YGPSE ] .JDIBFM (BSTULB $04.0�KM � " DPOJD PQFSBUPS TQMJUUJOHNFUIPE �������/��

Page 35: COSMO.jl - A conic operator splitting method · 8izepxfdbsfbcpvutpmwjohmbshfdpowfydpojdqspcmfnt • 1spcmfnejnfotjpothspxesbtujdbmmz • 4ubuf pg uif bsu joufsjpsqpjou tpmwfsepoputdbmfxfmm

$04.0�KM 1BDLBHF• *OTUBMMBUJPO WJB UIF +VMJB QBDLBHF NBOBHFS

• $PEF BOE EPDVNFOUBUJPO BWBJMBCMF BU�?iiTb,ff;Bi?m#X+QKfQt7Q`/+QMi`QHf*PaJPXDH

6OJWFSTJUZ PG 0YGPSE ] .JDIBFM (BSTULB $04.0�KM � " DPOJD PQFSBUPS TQMJUUJOHNFUIPE �������/��


Recommended