Branching algorithms for the vertex cover problem