An algorithm X of an undirected graph G returns, Vc. Vc is a set of vertices of G and every edge in G has at least one of its endpoints in Vc. In other words, the algorithm finds a set of the fewest vertices such that every edge includes at least one of the vertices of G in the set, Vc. The following is a pseudo-code of a proposed algorithm for the vertex cover problem using the degree of each vertex. Vc = { } //Vc is a set of vertices covering edges V' = All the vertices in G E' = All the edges in G While E' is not empty Find a vertex v of the highest possible degree in E' Add v to Vc. Remove vertex v from V' and remove all the edges that hit v from E' return Vc. Vc needs to cover all of the edges in G. This proposed algorithm is based on the idea that selecting a vertex including the most edges at each step of the while loop will result in covering the most edges. With that in mind, please answer the following three questions: What type (approach) of the algorithm is the pseudo code above? Does it result in finding the smallest vertex cover in the end? If so, briefly describe how it finds them along with its time complexity in your own words. If not, give a counterexample along with your best-guessed complexity of solving this problem in your own words.
An algorithm X of an undirected graph G returns, Vc. Vc is a set of vertices of G and every edge in G has at least one of its endpoints in Vc. In other words, the
The following is a pseudo-code of a proposed algorithm for the vertex cover problem using the degree of each vertex.
Vc = { } //Vc is a set of vertices covering edges
V' = All the vertices in G
E' = All the edges in G
While E' is not empty
Find a vertex v of the highest possible degree in E'
Add v to Vc.
Remove vertex v from V' and remove all the edges that hit v from E'
return Vc.
Vc needs to cover all of the edges in G. This proposed algorithm is based on the idea that selecting a vertex including the most edges at each step of the while loop will result in covering the most edges.
With that in mind, please answer the following three questions:
- What type (approach) of the algorithm is the pseudo code above?
- Does it result in finding the smallest vertex cover in the end? If so, briefly describe how it finds them along with its time complexity in your own words. If not, give a counterexample along with your best-guessed complexity of solving this problem in your own words.
Step by step
Solved in 2 steps with 1 images