Complexity classes XP and FPT Flashcards

1
Q

What is the general approach to solving computational problems discussed in this chapter?

A

Try to develop an efficient algorithm or prove the problem is NP-hard to understand its difficulty.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Why is proving a problem NP-hard not always satisfactory?

A

People still want solutions that are as good as possible, even if the exact answer is not feasible.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What are some strategies for addressing NP-complete problems?

A

Approximation algorithms, local search heuristics, and identifying special cases where problems are tractable.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

How can problem instances sometimes be easier than the worst case?

A

Instances may have special structures or parameters that allow more efficient algorithms.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is the Vertex Cover Problem?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What parameters affect the complexity of the Vertex Cover Problem?

A

The number of vertices n and the allowable size of the vertex cover k.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

How does the brute-force approach solve the Vertex Cover Problem?

A

It checks all subsets of size k, taking time O(knk+1), which becomes impractical for even small k.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is the time complexity of the improved Vertex Cover algorithm?

A

O(2^k * kn), which is practical for small k.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What insight helps simplify the Vertex Cover Problem?

A

If a graph has a small vertex cover, it cannot have many edges, limiting its complexity.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is the significance of edge count in the Vertex Cover Problem?

A

If G has more than k(n-1) edges, it cannot have a vertex cover of size k.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

How does the recursive algorithm solve the Vertex Cover Problem?

A

By removing one endpoint of an edge and checking recursively if a vertex cover exists in the smaller graph.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is the base case for the recursive Vertex Cover algorithm?

A

If the graph has no edges, the vertex cover is the empty set.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is the branching factor of the recursive Vertex Cover algorithm?

A

Each recursive call branches into two smaller problems, one for each endpoint of an edge.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What is the recurrence relation for the Vertex Cover algorithm?

A

T(n, k) = 2T(n, k-1) + O(kn), where T(n, 1) = O(n).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

How does the recursive tree structure affect the algorithm’s runtime?

A

The tree has at most 2^(k+1) nodes, and each node takes O(kn) time.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What happens to the runtime as k increases in the Vertex Cover algorithm?

A

The runtime grows exponentially with k, making the algorithm impractical for large k.

17
Q

How can the improved Vertex Cover algorithm be used in practice?

A

It is effective for small k, where exponential scaling is manageable.

18
Q

What is the primary limitation of exponential algorithms like Vertex Cover?

A

They scale poorly for larger parameter values, becoming infeasible quickly.

19
Q

Why is it important to identify special structures in graphs?

A

Special structures, like trees or small tree-width graphs, allow NP-complete problems to become tractable.

20
Q

How does the Vertex Cover algorithm improve on brute force?

A

It uses recursive branching to limit the search space, avoiding examination of all subsets.

21
Q

What is the practical significance of the Vertex Cover algorithm?

A

It enables solving small instances efficiently, providing insight into NP-complete problems.

22
Q

Can the Vertex Cover algorithm solve all instances efficiently?

A

No, it becomes infeasible for large k or n due to exponential scaling.

23
Q

Why do we check the number of edges before starting the Vertex Cover algorithm?

A

To eliminate cases where a vertex cover of size k is impossible due to too many edges.

24
Q

What is the role of maximum degree in analyzing the Vertex Cover Problem?

A

The maximum degree limits the number of edges a small vertex cover can handle.

25
Q

What does the algorithm do if neither G-{u} nor G-{v} has a vertex cover of size k-1?

A

It concludes that G does not have a vertex cover of size k.

26
Q

How does the Vertex Cover algorithm use recursive calls?

A

It explores both possibilities for including one endpoint of an edge in the vertex cover.

27
Q

What is the practical application of the Vertex Cover algorithm?

A

It can be used in network security, resource allocation, and other optimization problems where coverage is critical.

28
Q

How does moving exponential dependence to k improve practicality?

A

It separates exponential growth from n, making the algorithm feasible for small k and large n.

29
Q

Why does exponential growth still pose a challenge for the Vertex Cover algorithm?

A

Even small increases in k result in rapid increases in computation time, limiting scalability.