Consider the following randomized approximation algorithm of vertex cover:
- Input: A graph G = (V, E).
- Output: A set $C_G \subseteq V$ a vertex cover of $G$.
The algorithm:
- Set $C_G := \emptyset$.
- For each edge $e$, in some arbitrary order:
- If $e$ is covered, skip it and continue to the next iteration of the loop.
- Let $e=\{u,v\}$. Choose an endpoint $w \in \{u, v\}$ uniformly at random.
- Add $w$ to $C_G$.
Let $C_G$ be the solution computed by this algorithm for a given graph $G$, and $\operatorname{OPT}_G$ an optimal solution. I found a proof (see link), that $$\mathbb{E}[|C_G|] \leq 2 \mathbb{E}[|\operatorname{OPT}_G|].$$
I have been trying however, to find a way to compute $\mathbb{E}[|C_G|]$ for a given graph $G = (V, E)$. The best I could come up with, is a dynamic programming solution over all subsets of the vertices, i.e. for each $S \subseteq 2^V$, we have to computed $C_{G[S]}$. This solution has $O^*(2^n)$ space and time complexity.
Is it possible to compute the expected value of $|C_G|$ in polynomial time or is it possible to prove that it is NP-hard to compute $\mathbb{E}[|C_G|]$?