Lecture 10: Semidefinite Programming

advertisement
Comp 260: Advanced Algorithms
Tufts University, Spring 2011
Prof. Lenore Cowen
Scribe: Eli Brown
Lecture 10: Semidefinite Programming
This is a short lecture because the class went to the Tufts Graduate
Research Symposium.
1
Max Cut with SDP
We will revisit a problem from earlier in the course and show a new approach
to solving it. The new approach builds on material we have seen since we
first attacked Max Cut with a randomized algorithm.
1.1
Max Cut
To review, the problem is posed:
Input: A graph G = (V, E) with weights wi,j for each (i, j) ∈ E.
Assume ∀i, j that wi,j ≥ 0 and that wi,j = 0 if (i, j) ∈
/ E.
Goal: Divide nodes into two subsets to maximize the total weight of
the edges that cross between the subsets. We say those edges “cross
the cut”.
We addressed this problem with a randomized solution. Let each vertex
independently flip a fair coin and based on the outcome, place that vertex
into either set S or S (the sides of the cut). Let W be the total weight of
1
the cut, that is the sum of the weights of the edges that cross it.
X
E[W ] =
wi,j · P r[(i, j)crosses the cut]
(i,j)∈E
=
X
wi,j · P r[i ∈ S, j ∈
/ S∨i∈
/ S, j ∈ S]
(i,j)∈E
=
1 X
wi,j
2
(i,j)∈E
=
1
· OPT
2
The expected value of our solution is 21 · OPT, but that does not mean
(without further mathematical argument) that a randomized solution will
meet this expected value a constant fraction of the time. What we need to
argue this at we have an algorithm that is 12 ·OPT. However, we presented two
different ways to achieve 12 · OPT deterministically for the maxcut problem
earlier in the course.
1.2
Semidefinite Programming (SDP)
Previously, we discussed linear programming (LP) and its applications. Semidefinite programming (SDP) is a generalization of LP. Instead of using linear
equations for constraints, we have constraints given by a positive semidefinite
matrix.
Definition 1.2.1 A matrix A is Positive Semidefinite for A ∈ Rn×n ⇐⇒
xT Ax ≥ 0, ∀x ∈ Rn
For a PSD matrix, the following are equivalent:
1. A is positive semidefinite
2. A has only non-negative eigenvalues
3. A = B T B for some matrix B ∈ Rn×n
2
A semidefinite program has the form:
P
max or min: i,j ci,j xi,j
P
subject to: i,j,k ai,j,k xi,j = bk,i
∀k
where: X = the matrix of xi,j is symmetric positive semi-definite
SDP are polynomial-time solvable. It is similar to linear programming
but on non-linear equations. The non-linear equations must form a positive
semidefinite matrix. Two methods for solving these systems include:
• Ellipsoid Method – Geometric Algorithms and Combinatorial Optimization. M. Grötschel, L. Lovász, A. Schrijver. 1988.
• Interior Point Methods – Interior Point Methods in Semidefinite Programming with Applications to Combinatorial Optimization. F. Alizadeh. 1993.
SDP is equivalent to Vector Programming, which is written in the
form:
P
max or min: i,j ci,j (vi · vj )
P
subject to: i,j ai,j,k (vi · vj ) = bk
∀k
where: vi ∈ Rn
The equivalence comes from the fact that X = V T V , for V composed of the
vi as columns ⇐⇒ x is PSD.
1.3
Solving Max Cut with SDP
Thanks to SDP, we can improve our approximation from 0.5 · OPT to 0.878 ·
OPT.
3
At the heart of this method is the idea that we could do the maximization
over 1-dimensional unit vectors. Assign a “vector” vi for each vertex in the
graph, and let:
−1
if vertex i is in S
vi =
1
if vertex i is in S
Then maximize the following expression, in which the sum increases by 1
exactly when the vertices are in opposite sets:
1X
wi,j (1 − vi vj )
2 i<j
To actually write an SDP that solves the problem, though, we need to
assign n-dimensional vectors. We need to make vi · vi = 1 ∀i, vi ∈ Rn . If
you drew them in n-space, those vectors would be on the unit sphere. Since
they represent vertices from the max cut problem, we want a way to separate
the vectors into two sets. The ones that have large angles between them are
the ones we want to put on either side of the cut. The insight for how to do
that is that we will pick a random hyperplane to split them.
Goemans-Williamson Algorithm:
1. Solve the vector program
2. Choose a random vector r uniformly from the unit sphere. To do that,
choose each coordinate from a Guassian distribution then normalize.
3. Set yi = +1 if r · vi ≥ 0 otherwise yi = −1
Proof 1.3.1 Now the expected value of the weight of the cut is:
X
E[W ] =
wi,j P r[vi + vj separated by r]
i<j
We can determine that probability by projecting r onto the plane defined by
vi + vj . All we need to know is how much of the unit circle is cut by the angle
given π1 arccos(vi · vj ). We get the OPT bound from
max
0<x<1
1
π
arccos(x)
≥ 0.878
− x)
1
(1
2
4
Download