Week 7 (FPT+Kernels, Exponential Time Hypothesis) Flashcards

(18 cards)

1
Q

What time complexity does a parameterised problem need to be considered FPT?

A

f(k) * n^{ O(1) }.

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

What does FPT stand for?

A

Fixed-Parameter Tractable.

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

Define the k-VC problem.

A

k-VC is parameterised Vertex Cover problem.
Given an undirected graph G = (V,E) .
Solve for if there exist subset X of V of size <= k.
Such that all edge in E has a point in X.

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

Assume P != NP What can you deduct about the time complexity of algorithms for k-VC

A

You cannot expect it to run in polynomial time in both k and n.

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

Describe the bounded-search tree algorithm on k-VC and argue its correctness

A

With G as the root of the tree.
The tree has a branching factor of 2.
Each layer, pick an edge and the next nodes remove one of the vertex in the edge.
The tree has a height of k
If any of the leaf nodes have no edges left then there’s a solution of size <= k
And vice versa.

If there is a vertex cover of size <= k, then at least one of the graphs at the leaf nodes has no edges. If there is no vertex cover of size <=k. then none of the leaf nodes are empty graphs

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

Show the running time of bounded-search tree on k-VC

A

The binary search tree has the maximum height of k.
So, It has at most 2^{ k+1 } - 1 nodes.
Each node takes n^{ O(1) } time.
So, final time complexity is [ 2^ { k+ 1} - 1 ] * [ n ^ { O(1) } ].

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

Does Independent Set have an FPT?

A

No, there’s no function for k-IS that runs in f(k) * n^ { O(1) }.

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

What is 2-Hitting-Set?

A

Given a set U and S where S contains every subset of U that is of size 2.
Solve for set X where it “hits” every subset (contains at least a element for every subset in S).

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

What is k-2-Hitting-Set?

A

Given a set U and S where S contains every subset of U that is of size 2. Does there exist Y⊆U of size <= k such that each subset of S contains at least one element of y.

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

Which problem is 2-Hitting-Set equivalent to?

A

Vertex Cover.

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

How to convert VC into 2-HS and vice versa?

A

VC to 2-HS:
Given G = (V, E), Let U=V and S=set of each edge.

2-HS to VC:
Given U&S, Let G = (U, edges formed by S)

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

What is a kernel?

A

An algorithm ALG which given an instance (I, k) of a parameterised problem produces (I’, k’) of the same problem that satisfies:
- Running time of ALG is poly(|I|, k).
- (I’, k’) and (I, k) are equivalent instances.
- There exist g and h such that |I’| <= g(k) and k’ <= h(k)

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

What are equivalent instances?

A

Both instances represent the same answer to the decision problem.
Considered interchangeable.

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

Show a kernel of k-VC.

A

Kernel for Vertex Cover:
X = Empty, G’ = G and k’ = k.
While k’ != 0 and the graph G has edges.
Find a vertex v of degree >= k’ + 1 and add it to X.
G’ = G’ - v and k’ = k’ - 1.
If k’ = 0 and the graph G’ still has edges left to cover, then return NO.
If k’ != 0 and the graph G’ has no edges left to cover, then return YES.

Otherwise, return G’ and k’

This is a kernel for k-Vertex Cover:
We have taken only poly(n, k) time so far
We stopped the algorithm so max degree of G’ is <= k’
If number of edges in G is > (k’)^2 , then return NO.
Otherwise, we have an equivalent instance with <= (k’)^2 edges.

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

How do we go from a Kernel to a FPT?

A

Suppose there is a poly(n,k) algorithm which constructs an equivalence instance with graph size n’<=g(k) and parameter k’<=h(k).

  • Let f(k) be a brute force algorithm to check Y/N
  • Total running time = n^O(1).k^O(1) + f(k) <= n^O(1).k^O(1). f(k)

Combine k^O(1) and f(k) to some other function f(k)

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

How are the Independent set and Vertex cover problems equivalent?

A

We can show that for any f(n) time algorithm for one problem works on another:

  • Independent Set ≤P Vertex Cover

If s is an independent set, V\S is a vertex cover

17
Q

How do you equate k-3-hitting set and Vertex cover?

A

Use 3 branches to get a running time of 3^K.|U|^O(1)

18
Q

How do we go from a FTP to a Kernel?

A

Suppose there is an algorithm ALG that runs in f(k).n^O(1) time = f(k).n^c where c is a constant

  • Run ALG for n^(c+1) time
  • If ALG finishes, output Y/N as per what ALG computed
  • If ALG doesn’t finish, f(k).n^c > n^(c+1) => f(k) > n