Complexity classes XP and FPT Flashcards
What is the general approach to solving computational problems discussed in this chapter?
Try to develop an efficient algorithm or prove the problem is NP-hard to understand its difficulty.
Why is proving a problem NP-hard not always satisfactory?
People still want solutions that are as good as possible, even if the exact answer is not feasible.
What are some strategies for addressing NP-complete problems?
Approximation algorithms, local search heuristics, and identifying special cases where problems are tractable.
How can problem instances sometimes be easier than the worst case?
Instances may have special structures or parameters that allow more efficient algorithms.
What is the Vertex Cover Problem?
Given a graph G=(V,E) and an integer k, find a subset S ⊆ V such that every edge has at least one endpoint in S, and |S| ≤ k.
What parameters affect the complexity of the Vertex Cover Problem?
The number of vertices n and the allowable size of the vertex cover k.
How does the brute-force approach solve the Vertex Cover Problem?
It checks all subsets of size k, taking time O(knk+1), which becomes impractical for even small k.
What is the time complexity of the improved Vertex Cover algorithm?
O(2^k * kn), which is practical for small k.
What insight helps simplify the Vertex Cover Problem?
If a graph has a small vertex cover, it cannot have many edges, limiting its complexity.
What is the significance of edge count in the Vertex Cover Problem?
If G has more than k(n-1) edges, it cannot have a vertex cover of size k.
How does the recursive algorithm solve the Vertex Cover Problem?
By removing one endpoint of an edge and checking recursively if a vertex cover exists in the smaller graph.
What is the base case for the recursive Vertex Cover algorithm?
If the graph has no edges, the vertex cover is the empty set.
What is the branching factor of the recursive Vertex Cover algorithm?
Each recursive call branches into two smaller problems, one for each endpoint of an edge.
What is the recurrence relation for the Vertex Cover algorithm?
T(n, k) = 2T(n, k-1) + O(kn), where T(n, 1) = O(n).
How does the recursive tree structure affect the algorithm’s runtime?
The tree has at most 2^(k+1) nodes, and each node takes O(kn) time.