PowerPoint-presentasjon - School on Parameterized Algorithms and

advertisement
U N I V E R S I T Y
O F
B E R G E N
Parameterized Algorithms
The Basics
Bart M. P. Jansen
August 18th 2014, Bฤ™dlewo
Why we are here
• To create the recipes that make computers solve our problems efficiently
– With a bounded number of resources (memory, time)
• We measure the quality of an algorithm by the dependence of its running
time on the size ๐‘› of the input
– For an ๐‘›-bit input, the running time can be ๐‘›2 , 6๐‘› log ๐‘› , 2๐‘› ⋅ 3๐‘›6 , …
– Smaller functions are better, but as a general guideline:
• Polynomials are good, exponential functions are bad
• Unfortunately, many problems are NP-complete
• We believe that for NP-complete problems, there is no algorithm that:
– always gives the right answer, and whose
– running time is bounded by a polynomial function of the input size
2
Dealing with NP-complete problems
Approximation
Sacrifice quality of the solution: quickly find a solution that is provably not
very bad
Local search
Quickly find a solution for which you cannot give any quality guarantee (but
which might often be good)
Branch &
bound
Sacrifice running time guarantees: create an algorithm for which you do not
know how long it will take (but which might do well on the inputs you use)
Parameterized
algorithms
Sacrifice the running time: allow the running time to have an exponential
factor, but ensure that the exponential dependence is not on the entire
input size but just on some parameter that is hopefully small
Kernelization
Quickly shrink the input by preprocessing so that afterward running an
exponential-time algorithm on the shrunk instance is fast enough
3
History of parameterized complexity
PCP
Theorem
Downey &
Fellows book
Kernelization lower
bounds
NP-completeness
1940
1950
1960
MATCHING
algorithm
Simplex
algorithm
4
1970
1980
Graph
Minors
Theorem
1990
2000
Parameterized
(in)tractability
2010
…
Bฤ™dlewo
school
Planar DOMINATING
SET kernel
Google Scholar Papers on FPT and Kernelization
1200
1000
800
600
400
200
0
1985
1990
1995
FPT
5
2000
2005
Kernelization
2010
2015
This lecture
Fixed-parameter tractability
Kernelization algorithms
• VERTEX COVER
• FEEDBACK ARC SET in Tournaments
Bounded-depth search trees
• VERTEX COVER
• FEEDBACK VERTEX SET
Dynamic programming
• SET COVER
6
FIXED-PARAMETER TRACTABILITY
7
Parameterized problems
• As usual in complexity theory, we primarily study decision
problems (YES/NO questions)
– OPTIMIZATION: “Find the shortest path from ๐‘ฅ to ๐‘ฆ”
– DECISION: “Is there a path from ๐‘ฅ to ๐‘ฆ of length at most ๐‘˜?”
• Having an efficient algorithm for one typically gives an
efficient algorithm for the other
• A parameterized problem is a decision problem where we
associate an integer parameter to each instance
– The parameter measures some aspect of the instance
8
Problem parameterizations
• PACKET DELIVERY PROBLEM
Input:
A graph ๐บ, a starting vertex ๐‘ , a set ๐‘‡ of delivery
vertices, and an integer ๐‘™
Question: Is there a cycle in ๐บ that starts and ends in ๐‘ ,
visits all vertices in ๐‘‡, and has length at most ๐‘™?
• There are many possible parameters for this problem:
– The length ๐‘™ of the tour
– The number of delivery points |๐‘‡|
– Graph-theoretic measures of how complex ๐บ is (treewidth,
cliquewidth, vertex cover number)
• Parameterized complexity investigates:
9
Can the problem be solved efficiently,
if the parameter is small?
Fixed-parameter tractability – informally
• A parameterized problem is fixed-parameter tractable if
there is an algorithm that solves size-๐‘› inputs with parameter
value ๐‘˜ in time ๐‘“ ๐‘˜ ⋅ ๐‘›๐‘ for some constant ๐‘ and function ๐‘“
• For each fixed ๐‘˜, there is a polynomial-time ๐‘‚ ๐‘›๐‘ algorithm
• VERTEX COVER:
– “Can all the edges of this ๐‘›-vertex graph be covered by at
most ๐‘˜ vertices?”
– Solvable in time 1.2738๐‘˜ ⋅ ๐‘›, so FPT
10
Fixed-parameter tractability – formally
• Let Σ be a finite alphabet used to encode inputs
– (Σ = {0,1} for binary encodings)
• A parameterized problem is a set ๐‘„ ⊆ Σ ∗ × โ„•
– ๐‘„ = { ๐‘ฅ1 , ๐‘˜1 , ๐‘ฅ2 , ๐‘˜2 , … }
• The set ๐‘„ contains the tuples ๐‘ฅ, ๐‘˜ where the answer to the
question encoded by ๐‘ฅ is yes; ๐‘˜ is the parameter
• The parameterized problem ๐‘„ is fixed-parameter tractable if
there is an algorithm that, given an input (๐‘ฅ, ๐‘˜),
– decides if ๐‘ฅ, ๐‘˜ belongs to ๐‘„ or not, and
– runs in time ๐‘“ ๐‘˜ ๐‘ฅ ๐‘ for some function ๐‘“ and constant ๐‘
11
KERNELIZATION
12
Data reduction with a guarantee
• Kernelization is a method for parameterized preprocessing
– Efficiently reduce an instance (๐‘ฅ, ๐‘˜) to an equivalent
instance of size bounded by some ๐‘“(๐‘˜)
• One of the simplest ways of obtaining FPT algorithms
– Apply a brute force algorithm on the shrunk instance to get
an FPT algorithm
• Kernelization also allows a rigorous mathematical analysis of
efficient preprocessing
13
The VERTEX COVER problem
Input:
Parameter:
Question:
An undirected graph ๐บ and an integer ๐‘˜
๐‘˜
Is there a set ๐‘† of at most ๐‘˜ vertices in ๐บ, such
that each edge of ๐บ has an endpoint in ๐‘†?
• Such a set S is a vertex cover of ๐บ
14
Reduction rules for VERTEX COVER – (R1)
(R1) If there is an isolated vertex ๐‘ฃ, delete ๐‘ฃ from ๐บ
– Reduce to the instance ๐บ − ๐‘ฃ, ๐‘˜
(๐บ =
, ๐‘˜ = 7)
(๐บ′ =
, ๐‘˜′ = 7)
15
Reduction rules for VERTEX COVER – (R1)
(R1) If there is an isolated vertex ๐‘ฃ, delete ๐‘ฃ from ๐บ
– Reduce to the instance ๐บ − ๐‘ฃ, ๐‘˜
• To ensure that a reduction rule does not change the answer, we have to
prove safeness of the reduction rule
• If (๐บ, ๐‘˜) is transformed into (๐บ ′ , ๐‘˜ ′ ) then we should prove that:
(๐‘ฎ, ๐’Œ) is a YES-instance ⇔ (๐‘ฎ′ , ๐’Œ′ ) is a YES-instance
16
Reduction rules for VERTEX COVER – (R1)
(R1) If there is an isolated vertex ๐‘ฃ, delete ๐‘ฃ from ๐บ
– Reduce to the instance ๐บ − ๐‘ฃ, ๐‘˜
(๐บ =
, ๐‘˜ = 7)
(๐บ′ =
, ๐‘˜′ = 7)
17
Reduction rules for VERTEX COVER – (R2)
(R2) If there is a vertex ๐‘ฃ of degree more than ๐‘˜, then delete ๐‘ฃ (and its
incident edges) from ๐บ and decrease the parameter by 1
– Reduce to the instance ๐บ − ๐‘ฃ, ๐‘˜ − 1
(๐บ =
, ๐‘˜ = 7)
(๐บ′ =
, ๐‘˜′ = 6)
18
Reduction rules for VERTEX COVER – (R3)
(R3) If the previous rules are not applicable and ๐บ has more than ๐‘˜ 2 + ๐‘˜
vertices or more than ๐‘˜ 2 edges, then conclude that we are dealing with a NOinstance
19
Correctness of the cutoff rule
• Claim. If ๐บ is exhaustively reduced under (R1)-(R2) and has more than
๐‘˜ 2 + ๐‘˜ vertices or ๐‘˜ 2 edges, then there is no size-≤ ๐‘˜ vertex cover
• Proof.
– Suppose ๐บ has a vertex cover ๐‘†
– Since (R1) does not apply, every vertex of ๐บ − ๐‘† has at least one edge
– Since (R2) does not apply, every vertex has degree at most ๐‘˜:
๐ธ ๐บ ≤๐‘˜⋅ ๐‘†
๐‘‰ ๐บ − ๐‘† ≤ ๐ธ ๐บ ≤ ๐‘˜ ⋅ |๐‘†|
– So ๐‘‰ ๐บ ≤ ๐‘˜ + 1 ⋅ |๐‘†|
– So if ๐บ has a size-๐‘˜ vertex cover, ๐‘‰ ๐บ ≤ ๐‘˜ 2 + ๐‘˜ and ๐ธ ๐บ ≤ ๐‘˜ 2
S
20
≤๐‘˜
Preprocessing for VERTEX COVER
• (R1)-(R3) can be exhaustively applied in polynomial time
• In polynomial time, we can reduce a VERTEX COVER instance
(๐บ, ๐‘˜) to an instance (๐บ ′ , ๐‘˜ ′ ) such that:
– the two instances are equivalent: ๐บ, ๐‘˜ has answer YES if
and only if (๐บ ′ , ๐‘˜ ′ ) has answer YES
– instance (๐บ ′ , ๐‘˜ ′ ) has at most ๐‘˜ 2 + ๐‘˜ vertices and ๐‘˜ 2 edges
– ๐‘˜′ ≤ ๐‘˜
• This gives an FPT algorithm to solve an instance (๐บ, ๐‘˜):
– Compute reduced instance (๐บ ′ , ๐‘˜ ′ )
– Solve
(๐บ ′ , ๐‘˜ ′ )
by brute force: try all
2 +๐‘˜
๐‘˜
2
vertex subsets ๐‘†
• For each ๐‘†, test if it is a vertex cover of size at most ๐‘˜′
Theorem. ๐‘˜-VERTEX COVER is fixed-parameter tractable
21
Kernelization – formally
• Let ๐‘„ ⊆ Σ ∗ × โ„• be a parameterized problem and ๐‘“: โ„• → โ„•
• A kernelization (or kernel) for ๐‘„ of size ๐‘“ is an algorithm that, given
๐‘ฅ, ๐‘˜ ∈ Σ ∗ × โ„•, takes time polynomial in ๐‘ฅ + ๐‘˜, and outputs an
instance ๐‘ฅ ′ , ๐‘˜ ′ ∈ Σ ∗ × โ„• such that:
– ๐‘ฅ, ๐‘˜ ∈ ๐‘„ ⇔ ๐‘ฅ ′ , ๐‘˜ ′ ∈ ๐‘„
– ๐‘ฅ ′ , ๐‘˜ ′ ≤ ๐‘“(๐‘˜)
• A polynomial kernel is a kernel whose function ๐‘“ is a polynomial
Theorem. A parameterized problem is fixedparameter tractable if and only if it is decidable and
has a kernel (of arbitrary size)
22
Kernel for FEEDBACK ARC SET IN TOURNAMENTS
Input:
Parameter:
Question:
23
A tournament ๐บ and an integer ๐‘˜
๐‘˜
Is there a set ๐‘† of at most ๐‘˜ directed edges in ๐บ,
such that ๐บ − ๐‘† is acyclic?
Reduction rules for FEEDBACK ARC SET
(R1) If vertex ๐‘ฃ is not in any triangle, then remove ๐‘ฃ
(R2) If edge (๐‘ข, ๐‘ฃ) is in at least ๐‘˜ + 1 distinct triangles, reverse it
and decrease ๐‘˜ by one
(R3) If the previous rules are not applicable and ๐บ has more than
๐‘˜(๐‘˜ + 2) vertices, then conclude that we are dealing with a NOinstance
Theorem. ๐‘˜-FEEDBACK ARC SET IN TOURNAMENTS
has a kernel with ๐‘˜(๐‘˜ + 2) vertices
24
High-level kernelization strategy
• Compare to VERTEX COVER:
– (R1) deals with elements that do not constrain the solution
– (R2) deals with elements that must be in any solution
– (R3) deals with graphs that remain large after reduction
25
BOUNDED-DEPTH SEARCH TREES
26
Background
• A branching algorithm that explores a search tree of
bounded depth is one of the simplest types of FPT algorithms
• Main idea:
– Reduce problem instance (๐‘ฅ, ๐‘˜) to solving a bounded
number of instances with parameter < ๐‘˜
• If you can solve ๐‘ฅ, ๐‘˜ in polynomial time using the answers to
two instances ๐‘ฅ1 , ๐‘˜ − 1 and (๐‘ฅ2 , ๐‘˜ − 1), then the problem
can be solved in 2๐‘˜ ⋅ ๐‘›๐‘ time
– (assuming the case ๐‘˜ = 0 is polynomial-time solvable)
• If you generate ๐‘˜ subproblems instead of 2, then the problem
can be solved in ๐‘˜ ๐‘˜ ⋅ ๐‘›๐‘ = 2๐‘‚ ๐‘˜ log ๐‘˜ ⋅ ๐‘›๐‘ time
27
A search tree
(๐‘ฅ, ๐‘˜ = 3)
(๐‘ฅ1 , 2)
(๐‘ฅ3 , 1)
(๐‘ฅ7 , 0)
28
(๐‘ฅ8 , 0)
(๐‘ฅ2 , 2)
(๐‘ฅ4 , 1)
(๐‘ฅ9 , 0)
(๐‘ฅ5 , 1)
(๐‘ฅ6 , 1)
(๐‘ฅ10 , 0) (๐‘ฅ11 , 0) (๐‘ฅ12 , 0) (๐‘ฅ13 , 0) (๐‘ฅ14 , 0)
Analysis of bounded-depth search trees
• If the parameter decreases for each recursive call, the depth
of the tree is at most ๐‘˜
• # nodes in a depth-๐‘‘ tree with ๐‘™ leaves is ๐‘‚(๐‘™ ⋅ ๐‘‘)
– Usually sufficient to bound the number of leaves
• If the computation in each node takes polynomial time, total
running time is ๐‘‚(๐‘™ ⋅ ๐‘‘ ⋅ ๐‘›๐‘ )
29
VERTEX COVER revisited
Input:
Parameter:
Question:
30
A graph ๐บ and an integer ๐‘˜
๐‘˜
Is there a set ๐‘† of at most ๐‘˜ vertices in ๐บ, such
that each edge has an endpoint in ๐‘†?
Algorithm for VERTEX COVER
• Algorithm VC(Graph ๐บ, integer ๐‘˜)
• if ๐‘˜ < 0 then return NO
• if ๐บ has no edges then return YES
• else pick an edge in ๐บ and let ๐‘ข and ๐‘ฃ be its endpoints
– return (VC(๐บ– ๐‘ข, ๐‘˜ − 1) OR (VC(๐บ − ๐‘ฃ, ๐‘˜ − 1))
• Correct because any vertex cover must use ๐‘ข or ๐‘ฃ
• A size-๐‘˜ vertex cover in G that uses ๐‘ข, yields a size-(๐‘˜ − 1)
vertex cover in ๐บ − ๐‘ข
31
Running time for VERTEX COVER
• Every iteration either solves the problem directly or makes
two recursive calls with a decreased parameter
• The branching factor of the algorithm–and therefore of the
search tree–is two
• Tree of depth ๐‘˜ with branching factor 2 has at most 2๐‘˜ leaves
– Running time is 2๐‘˜ ⋅ ๐‘›๐‘
– Much better than 2
๐‘˜ 2 +๐‘˜
from the kernelization algorithm
• One way to faster algorithms:
– Pick a vertex ๐‘ฃ of maximum degree, recurse on
(๐บ − ๐‘ฃ, ๐‘˜ − 1) and (๐บ − ๐‘ ๐‘ฃ , ๐‘˜ − ๐‘‘ ๐‘ฃ )
32
The FEEDBACK VERTEX SET problem
Input:
Parameter:
Question:
An undirected (multi)graph ๐บ and an integer ๐‘˜
๐‘˜
Is there a set ๐‘† of at most ๐‘˜ vertices in ๐บ, such
that each cycle contains a vertex of ๐‘†?
• We allow multiple edges and self-loops
• Such a set ๐‘† is a feedback vertex set of ๐บ
– Removing ๐‘† from ๐บ results in an acyclic graph, a forest
33
Branching for FEEDBACK VERTEX SET
• For VERTEX COVER, we could easily identify a set of vertices to
branch on: the two endpoints of an edge
• For feedback vertex set, a solution may not contain any
endpoint of an edge
– How should we branch?
• We will find a set ๐‘† of ๐‘‚(๐‘˜) vertices such that any size-๐‘˜
feedback vertex set contains a vertex of ๐‘†
• To find ๐‘† we first have to simplify the graph using reduction
rules that do not change the answer
34
Reduction rules
(R1) If there is a loop at vertex ๐‘ฃ, then delete ๐‘ฃ and decrease ๐‘˜ by one
(R2) If there is an edge of multiplicity larger than 2, then reduce its
multiplicity to 2
(R3) If there is a vertex ๐‘ฃ of degree at most 1, then delete ๐‘ฃ
(R4) If there is a vertex ๐‘ฃ of degree two, then delete ๐‘ฃ and add an
edge between ๐‘ฃ’s neighbors
If (R1-R4) cannot be applied anymore,
then the minimum degree is at least 3
Observation. If ๐บ, ๐‘˜ is transformed into (๐บ ′ , ๐‘˜ ′ ), then:
1. FVS of size ≤ ๐‘˜ in ๐บ ⇔ FVS of size ≤ ๐‘˜′ in ๐บ′
2. Any feedback vertex set in ๐บ′ is a feedback vertex set in ๐บ
when combined with the vertices deleted by (R1)
35
Identifying a set to branch on
• Let ๐บ be a graph whose vertices have degree three or more
– Order the vertices as ๐‘ฃ1 , ๐‘ฃ2 , … , ๐‘ฃ๐‘› by decreasing degree
– Let ๐‘‰3๐‘˜ โ‰” {๐‘ฃ1 , … , ๐‘ฃ3๐‘˜ } be the 3๐‘˜ largest-degree vertices
• Lemma. If all vertices of ๐บ have degree 3 or more, then any
size-≤ ๐‘˜ feedback vertex set of ๐บ contains a vertex from ๐‘‰3๐‘˜
• So if there is a size-≤ ๐‘˜ solution, it contains a vertex of ๐‘‰3๐‘˜
– For each ๐‘ฃ ∈ ๐‘‰3๐‘˜ recurse on the instance (๐บ − ๐‘ฃ, ๐‘˜ − 1)
• Gives an algorithm with running time 3๐‘˜ ๐‘˜ ⋅ ๐‘›๐‘
– Apply the reduction rules, compute ๐‘‰3๐‘˜ , then branch
36
A useful claim
• Claim. If ๐‘‹ is a feedback vertex set of ๐บ, then
๐‘‘ ๐‘ฃ −1 ≥ ๐ธ ๐บ − ๐‘‰ ๐บ +1
๐‘ฃ∈๐‘‹
• Proof. Graph ๐น โˆถ= ๐บ – ๐‘‹ is a forest
– So ๐ธ ๐น ≤ ๐‘‰ ๐น − 1 = |๐‘‰(๐บ)| − |๐‘‹| − 1
– Every edge not in ๐น, is incident with a vertex of ๐‘‹
๐‘‘(๐‘ฃ) + ๐‘‰ ๐บ
− ๐‘‹ − 1 ≥ |๐ธ(๐บ)|
๐‘ฃ∈๐‘‹
• With this claim, we can prove the degree lemma
37
Proving the degree lemma
• Lemma. If all vertices of ๐บ have degree 3 or more, then any
size-≤ ๐‘˜ feedback vertex set of G contains a vertex from ๐‘‰3๐‘˜
• Proof by contradiction.
By the๐‘‹ ∩ ๐‘‰3๐‘˜ = ∅
– Let ๐‘‹ be a size-≤ ๐‘˜ feedback vertex set with
previous
– By choice of ๐‘‰3๐‘˜ we have:
claim
min ๐‘‘(๐‘ฃ) ≥ max ๐‘‘ ๐‘ฃ , so:
๐‘ฃ∈๐‘‰3๐‘˜
๐‘ฃ∈๐‘‹
๐‘‘ ๐‘ฃ −1 ≥3⋅
๐‘ฃ∈๐‘‰3๐‘˜
๐‘‘ ๐‘ฃ −1 ≥3⋅ ๐ธ ๐บ − ๐‘‰ ๐บ
๐‘ฃ∈๐‘‹
– Define ๐‘‰ + โ‰” ๐‘‰ ๐บ โˆ– ๐‘‰3๐‘˜ . Since ๐‘‹ ⊆ ๐‘‰ + :
(๐‘‘ ๐‘ฃ − 1) ≥
๐‘ฃ∈๐‘‰ +
๐‘‘ ๐‘ฃ −1 ≥ ๐ธ ๐บ − ๐‘‰ ๐บ +1
๐‘ฃ∈๐‘‹
๐‘‘ ๐‘ฃ − 1 ≥4 ⋅ ๐ธ ๐บ − ๐‘‰ ๐บ + 1 .
38
๐‘ฃ∈๐‘‰ ๐บ
+1 .
Proving the degree lemma (II)
•
๐‘ฃ∈๐‘‰ ๐บ
๐‘‘ ๐‘ฃ − 1 ≥4⋅ ๐ธ ๐บ − ๐‘‰ ๐บ + 1
• The degree sum counts every edge twice:
๐‘‘ ๐‘ฃ = 2 ⋅ |๐ธ(๐บ)|
๐‘ฃ∈๐‘‰ ๐บ
• Combining these:
4⋅ ๐ธ ๐บ − ๐‘‰ ๐บ
+1 ≤
๐‘‘ ๐‘ฃ −1 =2⋅ ๐ธ ๐บ
๐‘ฃ∈๐‘‰ ๐บ
• So 2 ⋅ ๐ธ ๐บ
< 3 ⋅ |๐‘‰ ๐บ |
• But since all vertices have degree ≥ 3 we have:
2⋅ ๐ธ ๐บ =
๐‘‘ ๐‘ฃ ≥3⋅ ๐‘‰ ๐บ ,
๐‘ฃ∈๐‘‰ ๐บ
• Contradiction
39
− |๐‘‰ ๐บ |
A final word on bounded-depth search trees
• The degree lemma proves the correctness of our branching
strategy for FEEDBACK VERTEX SET
• When building a branching algorithm for a parameterization
by the solution size:
– Find an ๐‘“(๐‘˜)-size set that contains a vertex of the solution
– Branch in ๐‘“(๐‘˜) directions, trying all possibilities
– We get a search tree of depth ๐‘˜ and branching factor ๐‘“(๐‘˜)
• You can think of the branching process as guessing
40
DYNAMIC PROGRAMMING
41
The SET COVER problem
Input:
Parameter:
Question:
A set family โ„ฑ over a universe ๐‘ˆ and an integer ๐‘˜
|๐‘ˆ|
Is there a subfamily โ„ฑ ′ ⊆ โ„ฑ of at most ๐‘˜ sets,
such that ๐น∈โ„ฑ′ ๐น = ๐‘ˆ?
• The subfamily โ„ฑ′ covers the universe ๐‘ˆ
• SET COVER parameterized by the universe size is FPT
– Algorithm with running time 2 ๐‘ˆ ⋅ ๐‘ˆ + โ„ฑ
– Based on dynamic
๐น programming ๐น2
1
๐น4
42
๐น3
๐‘
Dynamic programming for SET COVER
• Let โ„ฑ = {๐น1 , ๐น2 , … , ๐น๐‘š }
• We define a DP table for ๐‘‹ ⊆ ๐‘ˆ and ๐‘— ∈ {0,1, … , ๐‘š}
๐‘‡ ๐‘‹, ๐‘— = min nr. of sets from ๐น1 , … , ๐น๐‘— needed to cover ๐‘‹
Or +∞ if impossible
• The value ๐‘‡[๐‘ˆ, ๐‘š] gives the minimum size of a set cover
– To solve the problem, compute ๐‘‡ using base cases and a
recurrence
43
Filling the dynamic programming table
• ๐‘‡ ๐‘‹, ๐‘— = min nr. of sets from ๐น1 , … , ๐น๐‘— needed to cover ๐‘‹
Base case: ๐‘— = 0
๐‘‡ ๐‘‹, ๐‘— = 0 if ๐‘‹ = ∅, otherwise it is +∞
Recursive step: ๐‘— > 0
๐‘‡ ๐‘‹, ๐‘— = min(๐‘‡ ๐‘‹, ๐‘— − 1 , 1 + ๐‘‡ ๐‘‹\F๐‘— , ๐‘— − 1 )
• Skip set ๐น๐‘— , or pay for ๐น๐‘— and afterwards cover ๐‘‹\F๐‘—
• Each entry can be computed in polynomial time
– ( โ„ฑ + 1) ⋅ 2 ๐‘ˆ entries in total
44
More on dynamic programming
• Dynamic programming is a memory-intensive algorithmic
paradigm that yields FPT algorithms in various situations
– Here: dynamic programming over subsets of ๐‘ˆ
– Later: dynamic programming over tree decompositions
• Research challenge:
– Determine whether the 2 ๐‘ˆ factor can be improved to
2 − ๐œ– ๐‘ˆ for some ๐œ– > 0
45
Exercises
From this lecture ..
• Prove the safeness that the reduction rules for FEEDBACK ARC SET in
tournaments are safe
• Improve the running time of the Vertex Cover branching algorithm to
1.6181๐‘˜
Kernelization
• 2.4, 2.7, 2.9, 2.14
Branching
• 3.2, 3.4, 3.7, 3.8
Dynamic programming
• 6.2
46
Summary
• Parameterized algorithmics is a young, vibrant research area
that investigates how to cope with NP-completeness
• We saw three ways of building FPT algorithms:
1. Kernelization
2. Bounded-depth search trees
3. Dynamic programming over subsets
47
Download