SDP Relaxation of the Max-Cut Problem
SDP Relaxation of the Max-Cut Problem
SDP Relaxation of the Max-Cut Problem
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsSemidefinite relaxation <strong>of</strong> <strong>the</strong> max-cut problemA. Dudek, K. Ghobadi, E. Kim, S. Lin, R. Spjut, J. ZhuMSRI Workshop on Continuous Optimization and its ApplicationsJuly 17, 2007
3<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsProject Statement<strong>Problem</strong> Statement and BackgroundReformulation and <strong>Relaxation</strong>Setting up an Instance<strong>Problem</strong>Find <strong>the</strong> <strong>SDP</strong> relaxation <strong>of</strong> <strong>the</strong> <strong>Max</strong>-<strong>Cut</strong> problem:1 Solve this relaxation using e.g. SeDumi with MATLAB.2 Use randomly generated, weighted, undirected graphs,e.g. W=sprandsym(60,.5).3 Can you streng<strong>the</strong>n <strong>the</strong> relaxation by adding additionalconstraints? (Hint: consider constraints <strong>of</strong> <strong>the</strong> typex i x 2 k x j = x i x j .)Let G = (V , E) be a graph and let w : E → R be an edgeweight function on G and set n = |V |.
3<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsProject Statement<strong>Problem</strong> Statement and BackgroundReformulation and <strong>Relaxation</strong>Setting up an Instance<strong>Problem</strong>Find <strong>the</strong> <strong>SDP</strong> relaxation <strong>of</strong> <strong>the</strong> <strong>Max</strong>-<strong>Cut</strong> problem:1 Solve this relaxation using e.g. SeDumi with MATLAB.2 Use randomly generated, weighted, undirected graphs,e.g. W=sprandsym(60,.5).3 Can you streng<strong>the</strong>n <strong>the</strong> relaxation by adding additionalconstraints? (Hint: consider constraints <strong>of</strong> <strong>the</strong> typex i x 2 k x j = x i x j .)Let G = (V , E) be a graph and let w : E → R be an edgeweight function on G and set n = |V |.
<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsA Review <strong>of</strong> <strong>Max</strong>-cut<strong>Problem</strong> Statement and BackgroundReformulation and <strong>Relaxation</strong>Setting up an Instancew ij :={ w((i, j)) if (i, j) ∈ E0 o<strong>the</strong>rwiseLet W = ( )w ij , <strong>the</strong> matrix whose ij-th entry is wij .A cut is a partition <strong>of</strong> V into two sets C ⊂ V and V \ C. Itssize iss(C) :=∑i∈C,j∈V \Cw ijA cut C is maximal if ∀ ˜C ∈ 2 V , s(C) ≥ s( ˜C)<strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong>For a weighted graph (V , E, w) find a maximal cut C.RemarkThe <strong>Max</strong>-<strong>Cut</strong> problem is NP-hard.4
<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsA Review <strong>of</strong> <strong>Max</strong>-cut<strong>Problem</strong> Statement and BackgroundReformulation and <strong>Relaxation</strong>Setting up an Instancew ij :={ w((i, j)) if (i, j) ∈ E0 o<strong>the</strong>rwiseLet W = ( )w ij , <strong>the</strong> matrix whose ij-th entry is wij .A cut is a partition <strong>of</strong> V into two sets C ⊂ V and V \ C. Itssize iss(C) :=∑i∈C,j∈V \Cw ijA cut C is maximal if ∀ ˜C ∈ 2 V , s(C) ≥ s( ˜C)<strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong>For a weighted graph (V , E, w) find a maximal cut C.RemarkThe <strong>Max</strong>-<strong>Cut</strong> problem is NP-hard.4
<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsA Review <strong>of</strong> <strong>Max</strong>-cut<strong>Problem</strong> Statement and BackgroundReformulation and <strong>Relaxation</strong>Setting up an Instancew ij :={ w((i, j)) if (i, j) ∈ E0 o<strong>the</strong>rwiseLet W = ( )w ij , <strong>the</strong> matrix whose ij-th entry is wij .A cut is a partition <strong>of</strong> V into two sets C ⊂ V and V \ C. Itssize iss(C) :=∑i∈C,j∈V \Cw ijA cut C is maximal if ∀ ˜C ∈ 2 V , s(C) ≥ s( ˜C)<strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong>For a weighted graph (V , E, w) find a maximal cut C.RemarkThe <strong>Max</strong>-<strong>Cut</strong> problem is NP-hard.4
<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsA Review <strong>of</strong> <strong>Max</strong>-cut<strong>Problem</strong> Statement and BackgroundReformulation and <strong>Relaxation</strong>Setting up an Instancew ij :={ w((i, j)) if (i, j) ∈ E0 o<strong>the</strong>rwiseLet W = ( )w ij , <strong>the</strong> matrix whose ij-th entry is wij .A cut is a partition <strong>of</strong> V into two sets C ⊂ V and V \ C. Itssize iss(C) :=∑i∈C,j∈V \Cw ijA cut C is maximal if ∀ ˜C ∈ 2 V , s(C) ≥ s( ˜C)<strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong>For a weighted graph (V , E, w) find a maximal cut C.RemarkThe <strong>Max</strong>-<strong>Cut</strong> problem is NP-hard.4
<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsA Review <strong>of</strong> <strong>Max</strong>-cut<strong>Problem</strong> Statement and BackgroundReformulation and <strong>Relaxation</strong>Setting up an Instancew ij :={ w((i, j)) if (i, j) ∈ E0 o<strong>the</strong>rwiseLet W = ( )w ij , <strong>the</strong> matrix whose ij-th entry is wij .A cut is a partition <strong>of</strong> V into two sets C ⊂ V and V \ C. Itssize iss(C) :=∑i∈C,j∈V \Cw ijA cut C is maximal if ∀ ˜C ∈ 2 V , s(C) ≥ s( ˜C)<strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong>For a weighted graph (V , E, w) find a maximal cut C.RemarkThe <strong>Max</strong>-<strong>Cut</strong> problem is NP-hard.4
<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsA Review <strong>of</strong> <strong>Max</strong>-cut<strong>Problem</strong> Statement and BackgroundReformulation and <strong>Relaxation</strong>Setting up an Instancew ij :={ w((i, j)) if (i, j) ∈ E0 o<strong>the</strong>rwiseLet W = ( )w ij , <strong>the</strong> matrix whose ij-th entry is wij .A cut is a partition <strong>of</strong> V into two sets C ⊂ V and V \ C. Itssize iss(C) :=∑i∈C,j∈V \Cw ijA cut C is maximal if ∀ ˜C ∈ 2 V , s(C) ≥ s( ˜C)<strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong>For a weighted graph (V , E, w) find a maximal cut C.RemarkThe <strong>Max</strong>-<strong>Cut</strong> problem is NP-hard.4
5<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsReformulation <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong>We reforumlate <strong>the</strong> <strong>Max</strong>-<strong>Cut</strong> problem:<strong>Problem</strong> Statement and BackgroundReformulation and <strong>Relaxation</strong>Setting up an Instance<strong>Problem</strong>: Reformulation <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong>Given any cut C, define{x := (x 1 , . . . , x n ) T 1 i ∈ C, x i :=−1 i ∉ C<strong>Max</strong>imize t = 1 ∑2 i
5<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsReformulation <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong>We reforumlate <strong>the</strong> <strong>Max</strong>-<strong>Cut</strong> problem:<strong>Problem</strong> Statement and BackgroundReformulation and <strong>Relaxation</strong>Setting up an Instance<strong>Problem</strong>: Reformulation <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong>Given any cut C, define{x := (x 1 , . . . , x n ) T 1 i ∈ C, x i :=−1 i ∉ C<strong>Max</strong>imize t = 1 ∑2 i
5<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsReformulation <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong>We reforumlate <strong>the</strong> <strong>Max</strong>-<strong>Cut</strong> problem:<strong>Problem</strong> Statement and BackgroundReformulation and <strong>Relaxation</strong>Setting up an Instance<strong>Problem</strong>: Reformulation <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong>Given any cut C, define{x := (x 1 , . . . , x n ) T 1 i ∈ C, x i :=−1 i ∉ C<strong>Max</strong>imize t = 1 ∑2 i
5<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsReformulation <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong>We reforumlate <strong>the</strong> <strong>Max</strong>-<strong>Cut</strong> problem:<strong>Problem</strong> Statement and BackgroundReformulation and <strong>Relaxation</strong>Setting up an Instance<strong>Problem</strong>: Reformulation <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong>Given any cut C, define{x := (x 1 , . . . , x n ) T 1 i ∈ C, x i :=−1 i ∉ C<strong>Max</strong>imize t = 1 ∑2 i
5<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsReformulation <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong>We reforumlate <strong>the</strong> <strong>Max</strong>-<strong>Cut</strong> problem:<strong>Problem</strong> Statement and BackgroundReformulation and <strong>Relaxation</strong>Setting up an Instance<strong>Problem</strong>: Reformulation <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong>Given any cut C, define{x := (x 1 , . . . , x n ) T 1 i ∈ C, x i :=−1 i ∉ C<strong>Max</strong>imize t = 1 ∑2 i
<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsReformulation <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong>Some Equalities for t<strong>Problem</strong> Statement and BackgroundReformulation and <strong>Relaxation</strong>Setting up an InstanceSkip long string <strong>of</strong> equalities for t⎛ ⎛ ⎞ ⎛ ⎞⎞t = 1 ∑w ij (1 − x i x j ) = 1 ⎝2 ⎝ ∑ w ij⎠ − 2 ⎝ ∑ w ij x i x j⎠⎠24i
<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsReformulation <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong>Some Equalities for t<strong>Problem</strong> Statement and BackgroundReformulation and <strong>Relaxation</strong>Setting up an InstanceSkip long string <strong>of</strong> equalities for t⎛ ⎛ ⎞ ⎛ ⎞⎞t = 1 ∑w ij (1 − x i x j ) = 1 ⎝2 ⎝ ∑ w ij⎠ − 2 ⎝ ∑ w ij x i x j⎠⎠24i
<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsReformulation <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong>Some Equalities for t<strong>Problem</strong> Statement and BackgroundReformulation and <strong>Relaxation</strong>Setting up an InstanceSkip long string <strong>of</strong> equalities for t⎛ ⎛ ⎞ ⎛ ⎞⎞t = 1 ∑w ij (1 − x i x j ) = 1 ⎝2 ⎝ ∑ w ij⎠ − 2 ⎝ ∑ w ij x i x j⎠⎠24i
<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsReformulation <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong>Some Equalities for t<strong>Problem</strong> Statement and BackgroundReformulation and <strong>Relaxation</strong>Setting up an InstanceSkip long string <strong>of</strong> equalities for t⎛ ⎛ ⎞ ⎛ ⎞⎞t = 1 ∑w ij (1 − x i x j ) = 1 ⎝2 ⎝ ∑ w ij⎠ − 2 ⎝ ∑ w ij x i x j⎠⎠24i
<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsReformulation <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong>Some Equalities for t<strong>Problem</strong> Statement and BackgroundReformulation and <strong>Relaxation</strong>Setting up an InstanceSkip long string <strong>of</strong> equalities for t⎛ ⎛ ⎞ ⎛ ⎞⎞t = 1 ∑w ij (1 − x i x j ) = 1 ⎝2 ⎝ ∑ w ij⎠ − 2 ⎝ ∑ w ij x i x j⎠⎠24i
<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsReformulation <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong>Some Equalities for t<strong>Problem</strong> Statement and BackgroundReformulation and <strong>Relaxation</strong>Setting up an InstanceSkip long string <strong>of</strong> equalities for t⎛ ⎛ ⎞ ⎛ ⎞⎞t = 1 ∑w ij (1 − x i x j ) = 1 ⎝2 ⎝ ∑ w ij⎠ − 2 ⎝ ∑ w ij x i x j⎠⎠24i
<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsReformulation <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong>Some Equalities for t<strong>Problem</strong> Statement and BackgroundReformulation and <strong>Relaxation</strong>Setting up an InstanceSkip long string <strong>of</strong> equalities for t⎛ ⎛ ⎞ ⎛ ⎞⎞t = 1 ∑w ij (1 − x i x j ) = 1 ⎝2 ⎝ ∑ w ij⎠ − 2 ⎝ ∑ w ij x i x j⎠⎠24i
<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsReformulation <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong>Some Equalities for t<strong>Problem</strong> Statement and BackgroundReformulation and <strong>Relaxation</strong>Setting up an InstanceSkip long string <strong>of</strong> equalities for t⎛ ⎛ ⎞ ⎛ ⎞⎞t = 1 ∑w ij (1 − x i x j ) = 1 ⎝2 ⎝ ∑ w ij⎠ − 2 ⎝ ∑ w ij x i x j⎠⎠24i
<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and Results<strong>Problem</strong> Statement and BackgroundReformulation and <strong>Relaxation</strong>Setting up an InstanceReformulation and <strong>Relaxation</strong> <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong>Lemmat = x T Lx = trace(x T Lx) = trace(x T (Lx)) = trace((Lx)x T ) =trace(LX) = L • X, where X = xx T is a real symmetricmatrix, =⇒ X ≽ 0.diag(X) = e ⇐⇒ x 2i= 1 ⇐⇒ x i ∈ {−1, 1}.X = X T ≽ 0, rank(X) = 1 ⇐⇒ X = xx TW is <strong>the</strong> edge-weight matrix L = 1 4 (Diag(We) − W ) <strong>Problem</strong>: Equivalent Reformulation <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong><strong>Max</strong>imize L • Xsubject to diag(X) = e, rank(X) = 1, and X ≽ 0.
<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and Results<strong>Problem</strong> Statement and BackgroundReformulation and <strong>Relaxation</strong>Setting up an InstanceReformulation and <strong>Relaxation</strong> <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong>Lemmat = x T Lx = trace(x T Lx) = trace(x T (Lx)) = trace((Lx)x T ) =trace(LX) = L • X, where X = xx T is a real symmetricmatrix, =⇒ X ≽ 0.diag(X) = e ⇐⇒ x 2i= 1 ⇐⇒ x i ∈ {−1, 1}.X = X T ≽ 0, rank(X) = 1 ⇐⇒ X = xx TW is <strong>the</strong> edge-weight matrix L = 1 4 (Diag(We) − W ) <strong>Problem</strong>: Equivalent Reformulation <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong><strong>Max</strong>imize L • Xsubject to diag(X) = e, rank(X) = 1, and X ≽ 0.
<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and Results<strong>Problem</strong> Statement and BackgroundReformulation and <strong>Relaxation</strong>Setting up an InstanceReformulation and <strong>Relaxation</strong> <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong>Lemmat = x T Lx = trace(x T Lx) = trace(x T (Lx)) = trace((Lx)x T ) =trace(LX) = L • X, where X = xx T is a real symmetricmatrix, =⇒ X ≽ 0.diag(X) = e ⇐⇒ x 2i= 1 ⇐⇒ x i ∈ {−1, 1}.X = X T ≽ 0, rank(X) = 1 ⇐⇒ X = xx TW is <strong>the</strong> edge-weight matrix L = 1 4 (Diag(We) − W ) <strong>Problem</strong>: Equivalent Reformulation <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong><strong>Max</strong>imize L • Xsubject to diag(X) = e, rank(X) = 1, and X ≽ 0.
<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and Results<strong>Problem</strong> Statement and BackgroundReformulation and <strong>Relaxation</strong>Setting up an InstanceReformulation and <strong>Relaxation</strong> <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong>Lemmat = x T Lx = trace(x T Lx) = trace(x T (Lx)) = trace((Lx)x T ) =trace(LX) = L • X, where X = xx T is a real symmetricmatrix, =⇒ X ≽ 0.diag(X) = e ⇐⇒ x 2i= 1 ⇐⇒ x i ∈ {−1, 1}.X = X T ≽ 0, rank(X) = 1 ⇐⇒ X = xx TW is <strong>the</strong> edge-weight matrix L = 1 4 (Diag(We) − W ) <strong>Problem</strong>: Equivalent Reformulation <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong><strong>Max</strong>imize L • Xsubject to diag(X) = e, rank(X) = 1, and X ≽ 0.
<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and Results<strong>Problem</strong> Statement and BackgroundReformulation and <strong>Relaxation</strong>Setting up an InstanceReformulation and <strong>Relaxation</strong> <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong>Lemmat = x T Lx = trace(x T Lx) = trace(x T (Lx)) = trace((Lx)x T ) =trace(LX) = L • X, where X = xx T is a real symmetricmatrix, =⇒ X ≽ 0.diag(X) = e ⇐⇒ x 2i= 1 ⇐⇒ x i ∈ {−1, 1}.X = X T ≽ 0, rank(X) = 1 ⇐⇒ X = xx TW is <strong>the</strong> edge-weight matrix L = 1 4 (Diag(We) − W ) <strong>Problem</strong>: Equivalent Reformulation <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong><strong>Max</strong>imize L • Xsubject to diag(X) = e, rank(X) = 1, and X ≽ 0.
<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and Results<strong>Problem</strong> Statement and BackgroundReformulation and <strong>Relaxation</strong>Setting up an InstanceReformulation and <strong>Relaxation</strong> <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong>Lemmat = x T Lx = trace(x T Lx) = trace(x T (Lx)) = trace((Lx)x T ) =trace(LX) = L • X, where X = xx T is a real symmetricmatrix, =⇒ X ≽ 0.diag(X) = e ⇐⇒ x 2i= 1 ⇐⇒ x i ∈ {−1, 1}.X = X T ≽ 0, rank(X) = 1 ⇐⇒ X = xx TW is <strong>the</strong> edge-weight matrix L = 1 4 (Diag(We) − W ) <strong>Problem</strong>: Equivalent Reformulation <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong><strong>Max</strong>imize L • Xsubject to diag(X) = e, rank(X) = 1, and X ≽ 0.
<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and Results<strong>Problem</strong> Statement and BackgroundReformulation and <strong>Relaxation</strong>Setting up an InstanceReformulation and <strong>Relaxation</strong> <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong>Lemmat = x T Lx = trace(x T Lx) = trace(x T (Lx)) = trace((Lx)x T ) =trace(LX) = L • X, where X = xx T is a real symmetricmatrix, =⇒ X ≽ 0.diag(X) = e ⇐⇒ x 2i= 1 ⇐⇒ x i ∈ {−1, 1}.X = X T ≽ 0, rank(X) = 1 ⇐⇒ X = xx TW is <strong>the</strong> edge-weight matrix L = 1 4 (Diag(We) − W ) <strong>Problem</strong>: Equivalent Reformulation <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong><strong>Max</strong>imize L • Xsubject to diag(X) = e, rank(X) = 1, and X ≽ 0.
<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and Results<strong>Problem</strong> Statement and BackgroundReformulation and <strong>Relaxation</strong>Setting up an InstanceReformulation and <strong>Relaxation</strong> <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong>Lemmat = x T Lx = trace(x T Lx) = trace(x T (Lx)) = trace((Lx)x T ) =trace(LX) = L • X, where X = xx T is a real symmetricmatrix, =⇒ X ≽ 0.diag(X) = e ⇐⇒ x 2i= 1 ⇐⇒ x i ∈ {−1, 1}.X = X T ≽ 0, rank(X) = 1 ⇐⇒ X = xx TW is <strong>the</strong> edge-weight matrix L = 1 4 (Diag(We) − W ) <strong>Problem</strong>: Equivalent Reformulation <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong><strong>Max</strong>imize L • Xsubject to diag(X) = e, rank(X) = 1, and X ≽ 0.
<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and Results<strong>Problem</strong> Statement and BackgroundReformulation and <strong>Relaxation</strong>Setting up an InstanceReformulation and <strong>Relaxation</strong> <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong>Lemmat = x T Lx = trace(x T Lx) = trace(x T (Lx)) = trace((Lx)x T ) =trace(LX) = L • X, where X = xx T is a real symmetricmatrix, =⇒ X ≽ 0.diag(X) = e ⇐⇒ x 2i= 1 ⇐⇒ x i ∈ {−1, 1}.X = X T ≽ 0, rank(X) = 1 ⇐⇒ X = xx TW is <strong>the</strong> edge-weight matrix L = 1 4 (Diag(We) − W ) <strong>Problem</strong>: Equivalent Reformulation <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong><strong>Max</strong>imize L • Xsubject to diag(X) = e, rank(X) = 1, and X ≽ 0.
<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and Results<strong>Problem</strong> Statement and BackgroundReformulation and <strong>Relaxation</strong>Setting up an InstanceReformulation and <strong>Relaxation</strong> <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong>Lemmat = x T Lx = trace(x T Lx) = trace(x T (Lx)) = trace((Lx)x T ) =trace(LX) = L • X, where X = xx T is a real symmetricmatrix, =⇒ X ≽ 0.diag(X) = e ⇐⇒ x 2i= 1 ⇐⇒ x i ∈ {−1, 1}.X = X T ≽ 0, rank(X) = 1 ⇐⇒ X = xx TW is <strong>the</strong> edge-weight matrix L = 1 4 (Diag(We) − W ) <strong>Problem</strong>: <strong>SDP</strong> <strong>Relaxation</strong> <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong><strong>Max</strong>imize L • Xsubject to diag(X) = e and X ≽ 0.
8<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsSetting up an Instance<strong>Problem</strong> Statement and BackgroundReformulation and <strong>Relaxation</strong>Setting up an InstanceWe setup an instance <strong>of</strong> <strong>the</strong> <strong>Max</strong>-<strong>Cut</strong> problem in MATLAB with<strong>the</strong> following code:% Fix <strong>the</strong> dimension (number <strong>of</strong> vertices in graph)n=60;% Generate a weighted graphW=sprandsym(n,.5); W(1:n+1:n^2)=zeros(1,n);% Calculate <strong>the</strong> LaplacianL=1/4 * (diag(W*ones(n,1))-W);
9<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsInterfacing with SeDumiSeDumi Input FormatBasic <strong>Relaxation</strong>: Setting up <strong>the</strong> Input to SeDumiBasic <strong>Relaxation</strong>: Numerical ResultsTo be consistent with <strong>the</strong> notation <strong>of</strong> SeDumi’s documentationand interface, substitute “x” for “z”. The SeDumi primal form isMinimizesubject toc T zAz = b, for z ∈ Kwhere c, z, b ∈ R p , and A is a p × p matrix. In MATLAB,c=-L(:); % Format <strong>the</strong> Laplacian to vector form% Translate constraint diag(X)=e into vector format:A=sparse(1:n,1:n+1:n^2,ones(1,n),n,n^2);b=ones(n,1);% Tell SeDumi that X must be positive semidefiniteK.s=[n];[X,Y,INFO] = sedumi(A,b,c,K) % Run SeDumi
10% Tell SeDumi that X must be positive <strong>Problem</strong>semidefiniteSet-up SeDumi Input FormatK.s=[n];Solving Using SeDumi Basic <strong>Relaxation</strong>: Setting up <strong>the</strong> Input to SeDumiImproving <strong>the</strong> Implementation and Results Basic <strong>Relaxation</strong>: Numerical Results% Run SeDumi[X,Y,INFO] = sedumi(A,b,c,K)Interfacing with SeDumiA visual summary <strong>of</strong> Az = bIt may help to visualize <strong>the</strong> constraint:⎛⎜⎝1 0 . . . 0 0 0 0 . . . 0 0 0 0 . . . 00 0 . . . 0 0 1 0 . . . 0 0 0 0 . . . 00 0 . . . 0 0 0 0 . . . 0 0 0 1 . . . 0. .. .. . . . .. .. . . . .. .. .0 0 . . . 0 0 0 0 . . . 0 0 0 0 . . . 0. . .0 . . . 00 . . . 00 . . . 0.. .. .0 . . . 1⎞⎟⎠⎛n×n 2 ⎜⎜⎝x 11x 12.x 1nx 21x 22x 23.x 2nx 31x 32x 33.x 3n.x n1.x nn⎞⎟⎠n 2 ×1⎛=⎜⎝111.1⎞⎟⎠n×1
11<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsSeDumi Input FormatBasic <strong>Relaxation</strong>: Setting up <strong>the</strong> Input to SeDumiBasic <strong>Relaxation</strong>: Numerical ResultsNumerical Results: Basic <strong>Relaxation</strong> G ( n, 1 2n Ratio50 6.292239e-0160 6.202113e-0170 6.067923e-0180 6.074731e-0190 5.980219e-01100 5.894269e-01110 5.849831e-01120 5.837704e-01130 5.793048e-01140 5.777026e-01150 5.749815e-01160 5.715093e-01170 5.702395e-01180 5.686022e-01190 5.675917e-01200 5.654331e-01250 5.591398e-01300 5.538571e-01350 5.506719e-01400 5.472742e-01450 5.441005e-01500 5.422019e-01600 5.390324e-01700 5.359528e-01800 5.337012e-01900 5.320470e-011000 5.303538e-01)
12<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsTriangle InequalitiesStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Triangle InequalitiesStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Quadruple EqualitiesAn idea proposed by Poljak and Rendl (1995), and fur<strong>the</strong>rdeveloped by Helmberg, Rendl, Vanderbei and Wolkowicz(1996):For each triple, x i , x j , x k ∈ {−1, 1} we havex ij + x jk + x ki ≥ −1 (1)x ij − x jk − x ki ≥ −1 (2)−x ij + x jk − x ki ≥ −1 (3)−x ij − x jk + x ki ≥ −1. (4)With (1)-(4), we have <strong>the</strong> streng<strong>the</strong>ned <strong>SDP</strong> relaxation:<strong>Problem</strong>: Streng<strong>the</strong>ned <strong>Relaxation</strong> <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong><strong>Max</strong>imize L • Xsubject to diag(X) = e, X ≽ 0, and (1) − (4).
12<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsTriangle InequalitiesStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Triangle InequalitiesStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Quadruple EqualitiesAn idea proposed by Poljak and Rendl (1995), and fur<strong>the</strong>rdeveloped by Helmberg, Rendl, Vanderbei and Wolkowicz(1996):For each triple, x i , x j , x k ∈ {−1, 1} we havex ij + x jk + x ki ≥ −1 (1)x ij − x jk − x ki ≥ −1 (2)−x ij + x jk − x ki ≥ −1 (3)−x ij − x jk + x ki ≥ −1. (4)With (1)-(4), we have <strong>the</strong> streng<strong>the</strong>ned <strong>SDP</strong> relaxation:<strong>Problem</strong>: Streng<strong>the</strong>ned <strong>Relaxation</strong> <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong><strong>Max</strong>imize L • Xsubject to diag(X) = e, X ≽ 0, and (1) − (4).
13<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Triangle InequalitiesStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Quadruple EqualitiesTriangle InequalitiesReplacing Inequalities (1)-(4) with Equalities for SeDumi’s Input FormatIntroduce slack variables s ijkl ≥ 0 to get equalities for SeDumi.x ij + x jk + x ki − s ijk1 = −1x ij − x jk − x ki − s ijk2 = −1−x ij + x jk − x ki − s ijk3 = −1−x ij − x jk + x ki − s ijk4 = −1Considering (1)-(4) when a pair <strong>of</strong> i, j, k are <strong>the</strong> same isredundant.So we are concerned with “only” N := 2n(n − 1)(n − 2)/3slack variables.
13<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Triangle InequalitiesStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Quadruple EqualitiesTriangle InequalitiesReplacing Inequalities (1)-(4) with Equalities for SeDumi’s Input FormatIntroduce slack variables s ijkl ≥ 0 to get equalities for SeDumi.x ij + x jk + x ki − s ijk1 = −1x ij − x jk − x ki − s ijk2 = −1−x ij + x jk − x ki − s ijk3 = −1−x ij − x jk + x ki − s ijk4 = −1Considering (1)-(4) when a pair <strong>of</strong> i, j, k are <strong>the</strong> same isredundant.So we are concerned with “only” N := 2n(n − 1)(n − 2)/3slack variables.
13<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Triangle InequalitiesStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Quadruple EqualitiesTriangle InequalitiesReplacing Inequalities (1)-(4) with Equalities for SeDumi’s Input FormatIntroduce slack variables s ijkl ≥ 0 to get equalities for SeDumi.x ij + x jk + x ki − s ijk1 = −1x ij − x jk − x ki − s ijk2 = −1−x ij + x jk − x ki − s ijk3 = −1−x ij − x jk + x ki − s ijk4 = −1Considering (1)-(4) when a pair <strong>of</strong> i, j, k are <strong>the</strong> same isredundant.So we are concerned with “only” N := 2n(n − 1)(n − 2)/3slack variables.
<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsTriangle InequalitiesA visual summary <strong>of</strong> Az = bStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Triangle InequalitiesStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Quadruple Equalities0B@It may help to visualize <strong>the</strong> constraint:0n×N1 0 . . . 0 0 0 0 . . . 0 0 0 0 . . . 00 0 . . . 0 0 1 0 . . . 0 0 0 0 . . . 00 0 . . . 0 0 0 0 . . . 0 0 0 1 . . . 0... ... ... ... ... .. . ... ... ... ... .. . ... ..0 0 . . . 0 0 0 0 . . . 0 0 0 0 . . . 0−IN×N tempA N×n 2. . .140 . . . 00 . . . 00 . . . 0.. ... ..0 . . . 11CA0B@s1,2,3,1s1,2,4,1.s1,3,4,1s1,3,5,1. . .s2,3,4,1s2,3,5,1. . .sn−2,n−1,n,1s1,2,3,2. . .sn−2,n−1,n,2. . ....s1,2,3,4. . .sn−2,n−1,n,4x11x12.x1nx21x22x23.x2nx31x32x33.x3n.xn1.xnn1CAN+n 2 ×1=„ In×1−IN×1«n+N×1
15<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Triangle InequalitiesStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Quadruple EqualitiesNumerical Results: Triangle <strong>Relaxation</strong> G ( n, 1 2)n Ratio 1 Ratio 25 7.142857e-01 7.142857e-016 7.500000e-01 7.500000e-017 7.177745e-01 6.875000e-018 7.417858e-01 7.368421e-019 7.570369e-01 7.272727e-0110 6.978259e-01 6.709667e-0111 7.433614e-01 7.241379e-0112 6.845083e-01 6.808511e-0113 6.986989e-01 6.862745e-0114 6.655176e-01 6.615384e-0115 6.613215e-01 6.433655e-01
16<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsQuadruple EqualitiesStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Triangle InequalitiesStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Quadruple EqualitiesAn idea <strong>of</strong> Goemans developed by Anjos and Wolkowicz(2002):For each quadruple x i , x j , x j , x k ∈ {−1, 1} we have:x i x j x j x k = x i x 2j x k = x i x k . (5)With (5), we have <strong>the</strong> <strong>SDP</strong> formulation:<strong>Problem</strong>: An Equivalent Formulation <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong><strong>Max</strong>imize L • Xsubject to diag(X) = e, X ≽ 0, and x ij x jk = x ik .
16<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsQuadruple EqualitiesStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Triangle InequalitiesStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Quadruple EqualitiesAn idea <strong>of</strong> Goemans developed by Anjos and Wolkowicz(2002):For each quadruple x i , x j , x j , x k ∈ {−1, 1} we have:x i x j x j x k = x i x 2j x k = x i x k . (5)With (5), we have <strong>the</strong> <strong>SDP</strong> formulation:<strong>Problem</strong>: An Equivalent Formulation <strong>of</strong> <strong>Max</strong>-<strong>Cut</strong> <strong>Problem</strong><strong>Max</strong>imize L • Xsubject to diag(X) = e, X ≽ 0, and x ij x jk = x ik .
<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsSecond lifting/relaxationStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Triangle InequalitiesStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Quadruple EqualitiesAfter liftingY = [ y y T ] , where y = vec(X)We have <strong>the</strong> max-cut problem:<strong>Max</strong>imize[ ] L 0• Y = L • Y0 011subject to diag(Y ) = e (S1)Y ≽ 0(S2)Y 11 = Y ii ∀i = 2, . . . , n (S3)diag(Y ij ) = Y (i,j)iie (S4)Y ij e j = Y 11 e i ∀j = 2, . . . n, i < j (S5)rank(Y ) = 1.(S6)TheoremThe second lifting relaxation provides a tighter upper bound.17
<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsSecond lifting/relaxationStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Triangle InequalitiesStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Quadruple EqualitiesAfter liftingY = [ y y T ] , where y = vec(X)We have <strong>the</strong> max-cut problem:<strong>Max</strong>imize[ ] L 0• Y = L • Y0 011subject to diag(Y ) = e (S1)Y ≽ 0(S2)Y 11 = Y ii ∀i = 2, . . . , n (S3)diag(Y ij ) = Y (i,j)iie (S4)Y ij e j = Y 11 e i ∀j = 2, . . . n, i < j (S5)rank(Y ) = 1.(S6)TheoremThe second lifting relaxation provides a tighter upper bound.17
<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsSecond lifting/relaxationStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Triangle InequalitiesStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Quadruple EqualitiesAfter liftingY = [ y y T ] , where y = vec(X)We have <strong>the</strong> max-cut problem:<strong>Max</strong>imize[ ] L 0• Y = L • Y0 011subject to diag(Y ) = e (S1)Y ≽ 0(S2)Y 11 = Y ii ∀i = 2, . . . , n (S3)diag(Y ij ) = Y (i,j)iie (S4)Y ij e j = Y 11 e i ∀j = 2, . . . n, i < j (S5)rank(Y ) = 1.(S6)TheoremThe second lifting relaxation provides a tighter upper bound.17
<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsSecond lifting/relaxationStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Triangle InequalitiesStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Quadruple EqualitiesAfter liftingY = [ y y T ] , where y = vec(X)We have <strong>the</strong> max-cut relaxation:<strong>Max</strong>imize[ ] L 0• Y = L • Y0 011subject to diag(Y ) = e (S1)Y ≽ 0(S2)Y 11 = Y ii ∀i = 2, . . . , n (S3)diag(Y ij ) = Y (i,j)iie (S4)Y ij e j = Y 11 e i ∀j = 2, . . . n, i < j (S5)TheoremThe second lifting relaxation provides a tighter upper bound.17
<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsSecond lifting/relaxationStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Triangle InequalitiesStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Quadruple EqualitiesAfter liftingY = [ y y T ] , where y = vec(X)We have <strong>the</strong> max-cut relaxation:<strong>Max</strong>imize[ ] L 0• Y = L • Y0 011subject to diag(Y ) = e (S1)Y ≽ 0(S2)Y 11 = Y ii ∀i = 2, . . . , n (S3)diag(Y ij ) = Y (i,j)iie (S4)Y ij e j = Y 11 e i ∀j = 2, . . . n, i < j (S5)TheoremThe second lifting relaxation provides a tighter upper bound.17
18<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsTighter Upper Bound TheoremStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Triangle InequalitiesStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Quadruple EqualitiesSuppose that X ∗ is an optimal solution to <strong>the</strong> first liftingrelaxation.If Rank(X ∗ ) = 1, <strong>the</strong>n we have <strong>the</strong> optimal solution to <strong>the</strong>original max-cut problem.If Rank(X ∗ ) > 1, we will show that after lifting X ∗ toY = (yy T ), where y = vec X ∗ , Y is not feasible to <strong>the</strong>second relaxation.By contradiction, we assume that Y is feasible to <strong>the</strong> secondrelaxation, <strong>the</strong>n it satisfies (S4) and (S5), which implies thatXikX ∗kj ∗ = Xij ∗ for all i, j, k.Hence, X ∗ = xx T , where x = (X1k, ∗ X2k, ∗ · · · , Xnk), ∗ whichcontradicts Rank X ∗ > 1.Therefore, Y is not feasible to <strong>the</strong> second lifting relaxation.On <strong>the</strong> o<strong>the</strong>r hand, if Y is feasible to <strong>the</strong> second liftingrelaxation, by (S1) and (S2), diag(Y 11 ) = e and Y 11 ≽ 0.Then, Y 11 is feasible to <strong>the</strong> first lifting relaxation.□
18<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsTighter Upper Bound TheoremStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Triangle InequalitiesStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Quadruple EqualitiesSuppose that X ∗ is an optimal solution to <strong>the</strong> first liftingrelaxation.If Rank(X ∗ ) = 1, <strong>the</strong>n we have <strong>the</strong> optimal solution to <strong>the</strong>original max-cut problem.If Rank(X ∗ ) > 1, we will show that after lifting X ∗ toY = (yy T ), where y = vec X ∗ , Y is not feasible to <strong>the</strong>second relaxation.By contradiction, we assume that Y is feasible to <strong>the</strong> secondrelaxation, <strong>the</strong>n it satisfies (S4) and (S5), which implies thatXikX ∗kj ∗ = Xij ∗ for all i, j, k.Hence, X ∗ = xx T , where x = (X1k, ∗ X2k, ∗ · · · , Xnk), ∗ whichcontradicts Rank X ∗ > 1.Therefore, Y is not feasible to <strong>the</strong> second lifting relaxation.On <strong>the</strong> o<strong>the</strong>r hand, if Y is feasible to <strong>the</strong> second liftingrelaxation, by (S1) and (S2), diag(Y 11 ) = e and Y 11 ≽ 0.Then, Y 11 is feasible to <strong>the</strong> first lifting relaxation.□
18<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsTighter Upper Bound TheoremStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Triangle InequalitiesStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Quadruple EqualitiesSuppose that X ∗ is an optimal solution to <strong>the</strong> first liftingrelaxation.If Rank(X ∗ ) = 1, <strong>the</strong>n we have <strong>the</strong> optimal solution to <strong>the</strong>original max-cut problem.If Rank(X ∗ ) > 1, we will show that after lifting X ∗ toY = (yy T ), where y = vec X ∗ , Y is not feasible to <strong>the</strong>second relaxation.By contradiction, we assume that Y is feasible to <strong>the</strong> secondrelaxation, <strong>the</strong>n it satisfies (S4) and (S5), which implies thatXikX ∗kj ∗ = Xij ∗ for all i, j, k.Hence, X ∗ = xx T , where x = (X1k, ∗ X2k, ∗ · · · , Xnk), ∗ whichcontradicts Rank X ∗ > 1.Therefore, Y is not feasible to <strong>the</strong> second lifting relaxation.On <strong>the</strong> o<strong>the</strong>r hand, if Y is feasible to <strong>the</strong> second liftingrelaxation, by (S1) and (S2), diag(Y 11 ) = e and Y 11 ≽ 0.Then, Y 11 is feasible to <strong>the</strong> first lifting relaxation.□
18<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsTighter Upper Bound TheoremStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Triangle InequalitiesStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Quadruple EqualitiesSuppose that X ∗ is an optimal solution to <strong>the</strong> first liftingrelaxation.If Rank(X ∗ ) = 1, <strong>the</strong>n we have <strong>the</strong> optimal solution to <strong>the</strong>original max-cut problem.If Rank(X ∗ ) > 1, we will show that after lifting X ∗ toY = (yy T ), where y = vec X ∗ , Y is not feasible to <strong>the</strong>second relaxation.By contradiction, we assume that Y is feasible to <strong>the</strong> secondrelaxation, <strong>the</strong>n it satisfies (S4) and (S5), which implies thatXikX ∗kj ∗ = Xij ∗ for all i, j, k.Hence, X ∗ = xx T , where x = (X1k, ∗ X2k, ∗ · · · , Xnk), ∗ whichcontradicts Rank X ∗ > 1.Therefore, Y is not feasible to <strong>the</strong> second lifting relaxation.On <strong>the</strong> o<strong>the</strong>r hand, if Y is feasible to <strong>the</strong> second liftingrelaxation, by (S1) and (S2), diag(Y 11 ) = e and Y 11 ≽ 0.Then, Y 11 is feasible to <strong>the</strong> first lifting relaxation.□
18<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsTighter Upper Bound TheoremStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Triangle InequalitiesStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Quadruple EqualitiesSuppose that X ∗ is an optimal solution to <strong>the</strong> first liftingrelaxation.If Rank(X ∗ ) = 1, <strong>the</strong>n we have <strong>the</strong> optimal solution to <strong>the</strong>original max-cut problem.If Rank(X ∗ ) > 1, we will show that after lifting X ∗ toY = (yy T ), where y = vec X ∗ , Y is not feasible to <strong>the</strong>second relaxation.By contradiction, we assume that Y is feasible to <strong>the</strong> secondrelaxation, <strong>the</strong>n it satisfies (S4) and (S5), which implies thatXikX ∗kj ∗ = Xij ∗ for all i, j, k.Hence, X ∗ = xx T , where x = (X1k, ∗ X2k, ∗ · · · , Xnk), ∗ whichcontradicts Rank X ∗ > 1.Therefore, Y is not feasible to <strong>the</strong> second lifting relaxation.On <strong>the</strong> o<strong>the</strong>r hand, if Y is feasible to <strong>the</strong> second liftingrelaxation, by (S1) and (S2), diag(Y 11 ) = e and Y 11 ≽ 0.Then, Y 11 is feasible to <strong>the</strong> first lifting relaxation.□
18<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsTighter Upper Bound TheoremStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Triangle InequalitiesStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Quadruple EqualitiesSuppose that X ∗ is an optimal solution to <strong>the</strong> first liftingrelaxation.If Rank(X ∗ ) = 1, <strong>the</strong>n we have <strong>the</strong> optimal solution to <strong>the</strong>original max-cut problem.If Rank(X ∗ ) > 1, we will show that after lifting X ∗ toY = (yy T ), where y = vec X ∗ , Y is not feasible to <strong>the</strong>second relaxation.By contradiction, we assume that Y is feasible to <strong>the</strong> secondrelaxation, <strong>the</strong>n it satisfies (S4) and (S5), which implies thatXikX ∗kj ∗ = Xij ∗ for all i, j, k.Hence, X ∗ = xx T , where x = (X1k, ∗ X2k, ∗ · · · , Xnk), ∗ whichcontradicts Rank X ∗ > 1.Therefore, Y is not feasible to <strong>the</strong> second lifting relaxation.On <strong>the</strong> o<strong>the</strong>r hand, if Y is feasible to <strong>the</strong> second liftingrelaxation, by (S1) and (S2), diag(Y 11 ) = e and Y 11 ≽ 0.Then, Y 11 is feasible to <strong>the</strong> first lifting relaxation.□
18<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsTighter Upper Bound TheoremStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Triangle InequalitiesStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Quadruple EqualitiesSuppose that X ∗ is an optimal solution to <strong>the</strong> first liftingrelaxation.If Rank(X ∗ ) = 1, <strong>the</strong>n we have <strong>the</strong> optimal solution to <strong>the</strong>original max-cut problem.If Rank(X ∗ ) > 1, we will show that after lifting X ∗ toY = (yy T ), where y = vec X ∗ , Y is not feasible to <strong>the</strong>second relaxation.By contradiction, we assume that Y is feasible to <strong>the</strong> secondrelaxation, <strong>the</strong>n it satisfies (S4) and (S5), which implies thatXikX ∗kj ∗ = Xij ∗ for all i, j, k.Hence, X ∗ = xx T , where x = (X1k, ∗ X2k, ∗ · · · , Xnk), ∗ whichcontradicts Rank X ∗ > 1.Therefore, Y is not feasible to <strong>the</strong> second lifting relaxation.On <strong>the</strong> o<strong>the</strong>r hand, if Y is feasible to <strong>the</strong> second liftingrelaxation, by (S1) and (S2), diag(Y 11 ) = e and Y 11 ≽ 0.Then, Y 11 is feasible to <strong>the</strong> first lifting relaxation.□
18<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsTighter Upper Bound TheoremStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Triangle InequalitiesStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Quadruple EqualitiesSuppose that X ∗ is an optimal solution to <strong>the</strong> first liftingrelaxation.If Rank(X ∗ ) = 1, <strong>the</strong>n we have <strong>the</strong> optimal solution to <strong>the</strong>original max-cut problem.If Rank(X ∗ ) > 1, we will show that after lifting X ∗ toY = (yy T ), where y = vec X ∗ , Y is not feasible to <strong>the</strong>second relaxation.By contradiction, we assume that Y is feasible to <strong>the</strong> secondrelaxation, <strong>the</strong>n it satisfies (S4) and (S5), which implies thatXikX ∗kj ∗ = Xij ∗ for all i, j, k.Hence, X ∗ = xx T , where x = (X1k, ∗ X2k, ∗ · · · , Xnk), ∗ whichcontradicts Rank X ∗ > 1.Therefore, Y is not feasible to <strong>the</strong> second lifting relaxation.On <strong>the</strong> o<strong>the</strong>r hand, if Y is feasible to <strong>the</strong> second liftingrelaxation, by (S1) and (S2), diag(Y 11 ) = e and Y 11 ≽ 0.Then, Y 11 is feasible to <strong>the</strong> first lifting relaxation.□
19<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Triangle InequalitiesStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Quadruple EqualitiesNumerical Results: Comparison <strong>of</strong> AlgorithmsComparison <strong>of</strong> Algorithm Performancerelaxation n=4 n = 6 n = 8 n = 10<strong>SDP</strong> 2.00000000 6.43225787 9.52050490 17.0875592TRI 1.99999999 5.99999995 8.99999986 16.9999998QUAD 1.99999999 5.99999988 8.99999900 16.9999996
20Thanks!!<strong>Problem</strong> Set-upSolving Using SeDumiImproving <strong>the</strong> Implementation and ResultsStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Triangle InequalitiesStreng<strong>the</strong>ning <strong>the</strong> <strong>Relaxation</strong>: Quadruple EqualitiesThanks for your attention!Semidefinite relaxation <strong>of</strong> <strong>the</strong> max-cut problemA. Dudek, K. Ghobadi, E. Kim, S. Lin, R. Spjut, J. ZhuMSRI Workshop on Continuous Optimization and its ApplicationsJuly 17, 2007