The greedy algorithm is a 2-approximation for vertex coverage, which theoretically, according to the hypothesis of unique games, is as good as it gets. In practice, solving the formulation of vertex cover as an integer program is likely to give much better results. Program
min sum_{v in V} x(v) st forall {u, v} in E, x(u) + x(v) >= 1 forall v in V, x(v) in {0, 1}.
source share