Consider the problem of finding the Max-Cut in a weighted graph
It is known to be NP-complete to decide if the maximum cut is bigger than some parameter . It’s NP-hard to even approximate the Max-Cut to an approximate ratio of (unless )
If we pick the cut randomly, that is if we decide randomly whether to include a vertex or not on the left side, the expected cost of the cut is half the total cost of the graph. Hence it is at least half of the Max-Cut value and gives a approximation. In fact, a greedy deterministic algorithm also gives you the same approximation factor. Start with a trivial partition, and move the vertices around –if the cost of cut edges from a vertex exceeds the cost from internal edges, move the vertex to the other side– this flips the cut edges and internal edges and increases the cost.
The Goemans-Williamson algorithm is a randomized algorithm that achieves, on expectation, an approximation factor of
The algorithm is based on a semi-definite relaxation of the Max-Cut problem. Note that the Max-Cut can be seen as a quadratic integer program given by:
We relax the condition to and consider the semidefinite program
Now once we solve for the semidefinite program, we round the fractional solutions to get approximations to the Max-Cut. We take a random hyperplane and set the values of vectors on one side to and the opposite side to .
Note that the fractional solution has contribution for an edge; on the other hand on the probability that and fall on opposite sides of the random hyperplane and hence contribute to the cost is given by .
Thus on expectation the approximation ratio is at least