Given a graph , partition the vertex set into two sets . An edge is said to be cut by this partition, if its end points lie on different sides of the partition. Find a partition that maximizes the number of edges cut (see figure ).
This problem is NP-hard. We will give a simple 0.5-approximation algorithm for this problem through randomization. This was the best known approximation guarantee for this problem for several years.
Let and .
Claim 1. There exists a partition of the vertex set such that number of edges cut .
Proof: We build a set (i.e., one side of the partition) by including each vertex in with probability 0.5. Now we ask the question: what is the expected number of edges cut by the partition . To answer this question, for every edge , we define if the edge is cut by the partition, 0 otherwise.
We can write the following expression for the number of edges cut :
(8.7) |
The question we want to answer is: We use the linearity of the expectations. First convince your self that .
This holds since, conditioned on being in the set or not, there is exactly one choice for , which makes the edge a cut. Hence, we get the following:
(8.8) |