Cut - A partition of vertices into 2 disjoint sets and value of the cut is the weight of all edges crossing the cut.
MAXCUT: Given a graph G=(V,E), such that all the weight of edges in E is 1, find the maximum value of a cut attainable in G.
Randomized Algorithm to Approximate
This problem is NP-hard, but we can try approximating using randomness. We take each vertex in V, and with probability 21 put it in A, else put it in B .
Theorem - Let G=(V,E) be an undirected graph on n vertices and m edges. There exists a partition of V into disjoint sets A and B such that the cut value is at least 2m. Proof - We make use of the approach mentioned above, and name the edges e1,e2,…,em
We define Xi for each edge in the set
Xi={10if edge i connects A to Botherwise
P[Xi=1]=P[Endpoints are in different sets]=21
Hence,
E[Xi]=21
E[∣Cut(A,B)∣]=E[i=1∑mXi]=i=1∑mE[Xi]=2m
Since the expected value is 2m, there exists a partition A,B such that at least 2m edges connect A to B (proven using reverse markov).
Expected number of trials to find cut value ≥2m
Take p to be the probability that a random cut has ≥2m edges.
Therefore, the expected number of trials is p1≤2m+1.
Derandomization using Conditional Expectation
Instead of placing vertices in A or B uniformly and independently like the earlier method, we now place vertices in a deterministic way, one at a time in an arbitrary order v1,v2,…,vn.
Define xi to be the set where vi is placed, xi∈{A,B}.
Suppose the first k vertices are already placed. We then define the expected value of the cut as randomizing over the n−k vertices left, while fixing the first k.
E[∣Cut(A,B)∣∣x1,x2,…,xk]
Algorithm -
Given k vertices have been placed, we look on which value of xk+1 gives a higher expected value, and place the k+1 vertex in that set. i.e, find the value of xk+1 such that -