SlideShare a Scribd company logo
IN
            OM
          .F
    O   RV
   D
FE


Parameterized Algorithms I




                       PART I
                       St. Petersburg, 2011
Classical complexity



   A brief review:
       We usually aim for polynomial-time algorithms: the running
       time is O(nc ), where n is the input size.
       Classical polynomial-time algorithms: shortest path,
       mathching, minimum spanning tree, 2SAT, convext hull,
       planar drawing, linear programming, etc.
       It is unlikely that polynomial-time algorithms exist for
       NP-hard problems.
Classical complexity




       Unfortunately, many problems of interest are NP-hard:
       Hamiltonian cycle, 3-coloring, 3SAT, etc.
       We expect that these problems can be solved only in
       exponential time (i.e., cn ).
   Can we say anything nontrivial about NP-hard problems?
Parameterized complexity




   Main idea: Instead of expressing the running time as a function
   T (n) of n, we express it as a function T (n, k) of the input size n
   and some parameter k of the input.

   In other words: we do not want to be efficient on all inputs of size
   n, only for those where k is small.
Parameterized complexity




   What can be the parameter k?
       The size k of the solution we are looking for.
       The maximum degree of the input graph.
       The diameter of the input graph.
       The length of clauses in the input Boolean formula.
       ...
Parameterized complexity

    Problem:     Min Vertex Cover             Max Independent Set
    Input:       Graph G, integer k           Graph G, integer k
    Question:    Is it possible to cover      Is it possible to find
                 the edges with k vertices?   k independent vertices?
Parameterized complexity

    Problem:      Min Vertex Cover             Max Independent Set
    Input:        Graph G, integer k           Graph G, integer k
    Question:     Is it possible to cover      Is it possible to find
                  the edges with k vertices?   k independent vertices?




    Complexity:   NP-complete                  NP-complete
Parameterized complexity

    Problem:       Min Vertex Cover             Max Independent Set
    Input:         Graph G, integer k           Graph G, integer k
    Question:      Is it possible to cover      Is it possible to find
                   the edges with k vertices?   k independent vertices?




    Complexity:    NP-complete                  NP-complete

    Complete       O(nk ) possibilities         O(nk ) possibilities

    enumeration:   O(2k n2 ) algorithm exists   No no(k) algorithm known
Bounded search tree method
Bounded search tree method

  Algorithm for M INIMUM V ERTEX C OVER :
  Algorithm for Minimum Vertex Cover:
                            e1 = x1 y1

                          x1            y1

           e2 = x2 y2
                 x2            y2
                                                       height:   k




                                                          k
  Height of of the search tree k ⇒ number of leavesof leaves is ≤ 2k ⇒
  Height the search tree is is ≤ k ⇒ number is 2 ⇒ complete search
  requires 2k ·search requires
   complete poly steps.             2k · poly steps.
                                                                     Fixed Parameter Algorithms – p.5/98
Exercise




    Problem:    Minimum Dominating Set
    Input:      Graph G, integer k
    Question:   Is it possible to cover
                all vertices with k vertices?
Exercise




    Problem:    Minimum Dominating Set
    Input:      Graph G, integer k
    Question:   Is it possible to cover
                all vertices with k vertices?
Fixed-parameter tractability

   Definition: A parameterization of a decision problem is a function
   that assigns an integer parameter k to each input instance x.
   The parameter can be
       explicit in the input (for example, if the parameter is the
       integer k appearing in the input (G, k) of Vertex Cover),
       or
       implicit in the input (for example, if the parameter is the
       diameter d of the input graph G).
Fixed-parameter tractability

   Definition: A parameterization of a decision problem is a function
   that assigns an integer parameter k to each input instance x.
   The parameter can be
       explicit in the input (for example, if the parameter is the
       integer k appearing in the input (G, k) of Vertex Cover),
       or
       implicit in the input (for example, if the parameter is the
       diameter d of the input graph G).
   Main definition:

     A parameterized problem is fixed-parameter tractable
     (FPT) if there is an f (k)nc time algorithm for some constant
     c.
Fixed-parameter tractability




   Example: Minimum Vertex Cover parameterized by the
   required size k is FPT: we have seen that it can be solved in time
   O(2k + n2 ).
   Better algorithms are known: e.g, O(1.2832k k + k|V |).
   Main goal of parameterized complexity: to find FPT problems.
FPT problems



  Examples of NP-hard problems that are FPT:
      Finding a vertex cover of size k.
      Finding a path of length k.
      Finding k disjoint triangles.
      Drawing the graph in the plane with k edge crossings.
      Finding disjoint paths that connect k pairs of points.
      ...
FPT algorithmic techniques
FPT algorithmic techniques

       Significant advances in the past 20 years or so (especially in
     Significantyears). in the past 20 years or so (especially in recent years).
       recent advances
       Powerful toolbox for designing FPT algorithms:
     Powerful toolbox for designing FPT algorithms:



           Bounded Search Tree



                    Kernelization




                    Color coding
                                                         Graph Minors Theorem



                      Treewidth                    Iterative compression


                                                                  Fixed Parameter Algorithms – p.8/98
Books




        Downey-Fellows: Parameterized Com-
        plexity, Springer, 1999



        Flum-Grohe: Parameterized Complexity
        Theory, Springer, 2006


        Niedermeier:     Invitation to Fixed-
        Parameter Algorithms, Oxford University
        Press, 2006.
Goals of the course




       Demonstrate techniques that were successfully used in the
       analysis of parameterized problems.
           Determine quickly if a problem is FPT.
           Design fast algorithms (improve the function f (k)).
Notes




        This course and slides are based on
        D´niel Marx’s lectures on parameterized
          a
        complexity
        http://www.cs.bme.hu/~dmarx/
What is missing but worth to discuss


      Complexity:
          W-hierarchy, reductions,
          Exponential Time Hypothesis and lower bounds for FPT
          algorithms
          ETH and parameterized complexity
          Polynomial Time Hierarchy and lower bounds on the sizes of
          kernels
      Algorithms:
          Integer programming
          Meta theorems: First Order Logic, Finite Integer Index
          Multi-cut algorithms and Directed FVS
Notes



        Warning: The results presented for particular problems are
        not necessarily the best known results or the most useful
        approaches for these problems.
        Conventions:
            Unless noted otherwise, k is the parameter.
            O∗ notation: O∗ (f (k)) means O(f (k) · nc ) for some constant
            c.
            Citations are mostly omitted (only for classical results).
            We gloss over the difference between decision and search
            problems.
Kernelization
                                   FPT algorithmic techniques


   Significant advances in the past 20 years or so (especially in recent years).

   Powerful toolbox for designing FPT algorithms:



         Bounded Search Tree



                   Kernelization




                   Color coding
                                                          Graph Minors Theorem



                    Treewidth                       Iterative compression


                                                                   Fixed Parameter Algorithms – p.8/98
N
            TIO
       L IZA
   RNE
KE



               Introduction and definition
               Part I: Crown Decomposition
               Part II: Sunflower Lemma
Kernelization
   Definition: Kernelization is a polynomial-time transformation that
   maps an instance (I, k) to an instance (I , k ) such that
       (I, k) is a yes-instance if and only if (I , k ) is a yes-instance,
       k ≤ k, and
       |I | ≤ f (k) for some function f (k).
Kernelization
   Definition: Kernelization is a polynomial-time transformation that
   maps an instance (I, k) to an instance (I , k ) such that
       (I, k) is a yes-instance if and only if (I , k ) is a yes-instance,
       k ≤ k, and
       |I | ≤ f (k) for some function f (k).

   Simple fact: If a problem has a kernelization algorithm, then it is
   FPT.
   Proof: Solve the instance (I , k ) by brute force.
Kernelization
   Definition: Kernelization is a polynomial-time transformation that
   maps an instance (I, k) to an instance (I , k ) such that
       (I, k) is a yes-instance if and only if (I , k ) is a yes-instance,
       k ≤ k, and
       |I | ≤ f (k) for some function f (k).

   Simple fact: If a problem has a kernelization algorithm, then it is
   FPT.
   Proof: Solve the instance (I , k ) by brute force.
   Converse: Every FPT problem has a kernelization algorithm.
   Proof: Suppose there is an f (k)nc algorithm for the problem.
       If f (k) ≤ n, then solve the instance in time f (k)nc ≤ nc+1 ,
       and output a trivial yes- or no-instance.
       If n < f (k), then we are done: a kernel of size f (k) is
       obtained.
Kernelization for Vertex Cover


  General strategy: We devise a list of reduction rules, and show
  that if none of the rules can be applied and the size of the instance
  is still larger than f (k), then the answer is trivial.
  Reduction rules for Vertex Cover instance (G, k):
      Rule 1: If v is an isolated vertex ⇒ (G  v, k)
      Rule 2: If d(v) > k ⇒ (G  v, k − 1)
Kernelization for Vertex Cover


  General strategy: We devise a list of reduction rules, and show
  that if none of the rules can be applied and the size of the instance
  is still larger than f (k), then the answer is trivial.
  Reduction rules for Vertex Cover instance (G, k):
      Rule 1: If v is an isolated vertex ⇒ (G  v, k)
      Rule 2: If d(v) > k ⇒ (G  v, k − 1)
  If neither Rule 1 nor Rule 2 can be applied:
      If |V (G)| > k(k + 1) ⇒ There is no solution (every vertex
      should be the neighbor of at least one vertex of the cover).
      Otherwise, |V (G)| ≤ k(k + 1) and we have a k(k + 1) vertex
      kernel.
Kernelization for Vertex Cover

  Let us add a third rule:
      Rule 1: If v is an isolated vertex ⇒ (G  v, k)
      Rule 2: If d(v) > k ⇒ (G  v, k − 1)
      Rule 3: If d(v) = 1, then we can assume that its neighbor u is
  in the
           solution ⇒ (G  (u ∪ v), k − 1).
  If none of the rules can be applied, then every vertex has degree at
  least 2.
  ⇒ |V (G)| ≤ |E(G)|
      If |E(G)| > k 2 ⇒ There is no solution (each vertex of the
      solution can cover at most k edges).
      Otherwise, |V (G)| ≤ |E(G)| ≤ k 2 and we have a k 2 vertex
      kernel.
Kernelization for Vertex for V ERTEX C OVER
          Kernelization Cover

       Let us add a fourth rule:
urth rule:
           Rule 4a: If v has degree 2, and its neighbors u1 and u2 are
v has degree 2, and its neighbors u1 that u21 , u2 adjacent, then we ⇒
       adjacent, then we can assume and u are are in the solution
 n assumethat1 , u, uv}, k − 2). solution ⇒ (G  {u1 , u2 , v }, k − 2).
       (G {u u1 2 , 2 are in the


                            u1
                                 v
                            u2
                        G
Kernelization for Vertex Cover
                       Kernelization for V ERTEX C OVER


s add a fourth rule:
              Rule 4b: If v has degree 2, then G is obtained by identifying
ule 4b: If v has degree 2, then G is obtained by identifying
         the two neighbors of v and deleting v ⇒ (G , k − 1).
        the two neighbors of v and deleting v ⇒ (G , k − 1).


                           u1

                                v   ⇒                  u
                           u2

                       G                           G




                                                               Fixed Parameter Algorithms – p.16/98
Kernelization for V ERTEX C OVER
   Kernelization for Vertex Cover
s add a fourth rule:
              Rule 4b: If v has degree 2, then G is obtained by identifying
ule 4b: If v has degree 2, then G is obtained by identifying
         the two neighbors of v and deleting v ⇒ (G , k − 1).
        the two neighbors of v and deleting v ⇒ (G , k − 1).


                           u1

                                v   ⇒                  u
                           u2

                       G                           G


         Correctness:
               Let S be a vertex cover of size k − 1 for G .
               If u ∈ S ⇒ (S  u) ∪ {u1 , u2 } is a vertex cover of size k for G.
                                                               Fixed Parameter Algorithms – p.16/98

               If u ∈ S ⇒ S ∪ v is a vertex cover of size k for G.
Kernelization for Vertex Cover
s add a fourth rule:
              Rule 4b: If v has degree 2, then G is obtained by identifying
ule 4b: If v has degree 2, then G is obtained by identifying
         the two neighborsand deleting v ⇒ (G , k v 1). (G , k − 1).
        the two neighbors of v
                               of v and deleting − ⇒

                           u1

                                v   ⇒                  u
                           u2

                       G                           G


         Correctness:
               Let S be a vertex cover of size k for G.
               If u1 , u2 ∈ S ⇒ (S  {u1 , u2 , v}) ∪ u is a vertex cover of size
               k − 1 for G .                                   Fixed Parameter Algorithms – p.16/98



               If exactly one of u1 and u2 is in S, then v ∈ S ⇒
               (S  {u1 , u2 , v}) ∪ u is a vertex cover of size k − 1 for G .
               If u1 , u2 ∈ S, then v ∈ S ⇒ (S  v) is a vertex cover of size
               k − 1 for G .
Kernelization for V ERTEX C OVER
   Kernelization for Vertex Cover
s add a fourth rule:
              Rule 4b: If v has degree 2, then G is obtained by identifying
ule 4b: If v has degree 2, then G is obtained by identifying
         the two neighborsand deleting v ⇒ (G , k v 1). (G , k − 1).
        the two neighbors of v
                               of v and deleting − ⇒


                           u1

                                v   ⇒                  u
                           u2

                       G                           G


         Kernel size:
               If |E(G)| > k 2 ⇒ There is no solution (each vertex of the
               solution can cover at most k edges).
               Otherwise, |V (G)| ≤ 2|E(G)|/3 ≤ 2 k 2 and we have a 2 k 2
                                                3
                                                               Fixed Parameter Algorithms – p.16/98
                                                                    3
               vertex kernel.
Covering Points with Lines



  Task: Given a set P of n points in the plane and an integer k, find
  k lines that cover all the points.
Covering Points with Lines
  Task: Given a set P of n points in the plane and an integer k, find
  k lines that cover all the points.




  Note: We can assume that every line of the solution covers at
  least 2 points, thus there are at most n2 candidate lines.
Covering Points with Lines
  Task: Given a set P of n points in the plane and an integer k, find
  k lines that cover all the points.




  Note: We can assume that every line of the solution covers at
  least 2 points, thus there are at most n2 candidate lines.
  Reduction Rule:
  If a candidate line covers a set S of more than k points ⇒
  (P  S, k − 1).
  If this rule cannot be applied and there are still more than k 2
  points, then there is no solution ⇒ Kernel with at most k 2 points.
Kernelization



       Kernelization can be thought of as a polynomial-time
       preprocessing before attacking the problem with whatever
       method we have. “It does no harm” to try kernelization.
       Some kernelizations use lots of simple reduction rules and
       require a complicated analysis to bound the kernel size. . .
       . . . while other kernelizations are based on surprising nice
       tricks (Next: Crown Reduction and the Sunflower Lemma).
       Possibility to prove lower bounds.
Crown Reduction
Crown Reduction


  Definition: A crown decomposition is a partition C ∪ H ∪ B of
  the vertices such that
                                                           C
      C is an independent set,
      there is no edge between C and                      H
      B,
                                                           B
      there is a matching between C
      and H that covers H.
Crown Reduction

  Definition: A crown decomposition is a partition C ∪ H ∪ B of
  the vertices such that
                                                             C
      C is an independent set,
      there is no edge between C and                         H
      B,
                                                              B
      there is a matching between C
      and H that covers H.


  Crown rule for Vertex Cover:
  The matching needs to be covered and we can assume that it is
  covered by H (makes no sense to use vertices of C)
Crown Reduction

  Definition: A crown decomposition is a partition C ∪ H ∪ B of
  the vertices such that
                                                             C
      C is an independent set,
      there is no edge between C and                         H
      B,
                                                              B
      there is a matching between C
      and H that covers H.


  Crown rule for Vertex Cover:
  The matching needs to be covered and we can assume that it is
  covered by H (makes no sense to use vertices of C)
  ⇒ (G  (H ∪ C), k − |H|).
Crown Reduction



  Key lemma:
  Lemma: Given a graph G without isolated vertices and an integer
  k, in polynomial time we can either
      find a matching of size k + 1, ⇒ No solution!
Crown Reduction



  Key lemma:
  Lemma: Given a graph G without isolated vertices and an integer
  k, in polynomial time we can either
      find a matching of size k + 1, ⇒ No solution!
      find a crown decomposition, ⇒ Reduce!
Crown Reduction



  Key lemma:
  Lemma: Given a graph G without isolated vertices and an integer
  k, in polynomial time we can either
      find a matching of size k + 1, ⇒ No solution!
      find a crown decomposition, ⇒ Reduce!
      or conclude that the graph has at most 3k vertices.
Crown Reduction



  Key lemma:
  Lemma: Given a graph G without isolated vertices and an integer
  k, in polynomial time we can either
      find a matching of size k + 1, ⇒ No solution!
      find a crown decomposition, ⇒ Reduce!
      or conclude that the graph has at most 3k vertices.
      ⇒ 3k vertex kernel!
Crown Reduction



  Key lemma:
  Lemma: Given a graph G without isolated vertices and an integer
  k, in polynomial time we can either
      find a matching of size k + 1, ⇒ No solution!
      find a crown decomposition, ⇒ Reduce!
      or conclude that the graph has at most 3k vertices.
      ⇒ 3k vertex kernel!

  This gives a 3k vertex kernel for Vertex Cover.
Proof
Lemma: Given a graph G without isolated vertices and an integer k, in polynomial time
we can either
   find a matching of size k + 1,
   find a crown decomposition,
   or conclude that the graph has at most 3k vertices.




    For the proof, we need the classical K˝nig’s Theorem.
                                          o
      τ (G) : size of the minimum vertex cover
      ν(G) : size of the maximum matching (independent set of
    edges)
    Theorem: [K˝nig, 1931] If G is bipartite, then
               o

                                    τ (G) = ν(G)
Proof
                                                                             Proof
Lemma: Given a graph G without isolated vertices and an integer k, in polynomial time
we can either
   find a matching of size k + 1,
            Lemma: Given a graph G without isolated vertices and an integer k , in polynomial
   find a crown decomposition,
            time we can either
   or conclude that the graph has at most 3k vertices.
               find a matching of size k + 1,

               find a crown decomposition,

               or conclude that the graph has at most 3k vertices.
     Proof:
     Find (greedily) a (greedily) a matching; if
            Proof: Find maximal maximal matching; if its
     its size is atat least k + 11,then wewe are The rest
            size is least     + , then are done.                     X                I
     done. of the graph of an independent set I .
             The rest is the graph is an
     independent set I.




                                                                            Fixed Parameter Algorithms – p.23/98
Proof                                                                                  Proof
Lemma: Given a graph G without isolated vertices and an integer k, in polynomial time
we can either
   find a matching of size k + 1,
       Lemma: Given a graph G without isolated vertices and an integer k , in polynomial
   find a crown can either
       time we decomposition,
   or conclude that the graph has at most 3k vertices.
            find a matching of size k + 1,

           find a crown decomposition,

           or conclude that the graph has at most 3k vertices.
     Proof:
     Find (greedily) a maximal matching; if if its
         Proof: Find (greedily) a maximal matching;
     its size isis at least+k1+thenthen we are The rest
          size at least k     , 1, we are done.
                                                                 I
     done. The restan independent set an
         of the graph is of the graph is I .
     independent set I.
         Find a maximum matching/minimum vertex cover in     X
       the bipartite graph between X and I .
     Find a maximum matching/minimum
     vertex cover in the bipartite graph
     between X and I.
                                                                       Fixed Parameter Algorithms – p.23/98
Proof
                                                                            Proof
Lemma: Given a graph G without isolated vertices and an integer k, in polynomial time
we can either
   find a matching of size k + 1,
   find a crown decomposition, G without isolated vertices and an integer k , in polynomial
          Lemma: Given a graph
          time we can either
   or conclude that the graph has at most 3k vertices.
              find a matching of size k + 1,

              find a crown decomposition,

     Proof: or conclude that the graph has at most 3k vertices.
     CaseProof: minimum vertex cover
          1: The
     contains at The minimumvertexcover contains at least
         Case 1: least one vertex of X
                                                                I   C
     ⇒ There is a of X
         one vertex crown decomposition.
          ⇒ There is a crown decomposition.
                                                               X H




                                                                         Fixed Parameter Algorithms – p.23/98
Proof                                                                                   Proof
Lemma: Given a graph G without isolated vertices and an integer k, in polynomial time
we can either
   find a matching of size k + 1,
        Lemma: Given a graph G without isolated vertices and an integer k , in polynomial
   find a crown decomposition,
        time we can either
   or conclude that the graph has at most 3k vertices.
            find a matching of size k + 1,

            find a crown decomposition,

            or conclude that the graph has at most 3k vertices.
     Proof:
     Case 1: The minimum vertex cover
        Proof:
     contains1: The minimum vertexcoverX
        Case at least one vertex of contains at least
                                                                  I
     ⇒ There is a crown decomposition.
        one vertex of X
        ⇒ There is a crown decomposition.
     Case 2: The minimum vertex cover                          X
     contains 2: Thevertices of I ⇒cover contains
        Case only minimum vertex It                     only
        vertices of I ⇒ It contains every vertex of I
     contains every vertex of I
        ⇒ There are at most 2k k k vertices.
     ⇒ There are at most 2k + +vertices.
                                                                        Fixed Parameter Algorithms – p.23/98
Dual of Vertex Coloring OF V ERTEX C OLORING
                  D UAL
   Parameteric dual of k-Coloring. Also known as Saving k
   Colors.
 Parameteric dual of k -C OLORING. Also known as S AVING k C OLORS.
   Task: Given a graph G and an integer k, find a vertex coloring
 Task: Given a graph G and an integer k , find a vertex coloring with |V (G )| − k
   with |V (G)| − k colors.
 colors.
   Crown rule for Dual of Vertex Coloring:
 Crown rule for D UAL   OF   V ERTEX C OLORING:
   Suppose there is a crown decomposition for the complement
 Suppose there is a crown decomposition for the complement graph G .
   graph G.
     C isC clique in G : each vertex needs a distinct
         a is a clique in G: each vertex
                                                                                       C
         needs
     color.      a distinct color.
        Because of the matching, it is
     Because of the matching, it is possible to color                           H
        possible to color H using only these
     H using only these |C | colors.
        |C| colors.
     These colors cannot be used for B .                                            B
           These colors cannot be used for B.
     (G  (H ∪ C ), k − |H|)
           (G  (H ∪ C), k − |H|)
                                                                   Fixed Parameter Algorithms – p.24/98
Dual of Vertex Coloring OF V ERTEX C OLORING
                  D UAL
   Parameteric dual of k-Coloring. Also known as Saving k
   Colors.
 Parameteric dual of k -C OLORING. Also known as S AVING k C OLORS.
   Task: Given a graph G and an integer k, find a vertex coloring
 Task: Given a graph G and an integer k , find a vertex coloring with |V (G )| − k
   with |V (G)| − k colors.
 colors.
   Crown rule for Dual of Vertex Coloring:
 Crown rule for D UAL   OF   V ERTEX C OLORING:
   Suppose there is a crown decomposition for the complement
 Suppose there is a crown decomposition for the complement graph G .
   graph G.
     C isC clique in G : each vertex needs a distinct
         a is a clique in G: each vertex
         needs   a distinct color.                                                     C
     color.
        Because of the matching, it is
     Because of the matching, it is possible to color                           H
        possible to color H using only these
     H using only these |C | colors.
        |C| colors.
     These colors cannot be used for B .                                            B
           These colors cannot be used for B.
     (G  (H ∪ C ), k − |H|)
           (G  (H ∪ C), k − |H|)
                                                                   Fixed Parameter Algorithms – p.24/98
Dual of Vertex Coloring OF V ERTEX C OLORING
                   D UAL
  Parameteric dual of k-Coloring. Also known as Saving k
  Colors.
  Parameteric dual of k -C OLORING. Also known as S AVING k C OLORS.
  Task: Given a graph G and an integer k, find a vertex coloring
   with |V (G)| − k G and an
  Task: Given a graph colors. integer k , find a vertex coloring with |V (G )| − k
  colors.
  Crown rule for Dual of Vertex Coloring:
  Crown rule for D UAL   OF   V ERTEX C OLORING:
   Suppose there is a crown decomposition for the complement
  Suppose G. is a crown decomposition for the complement graph G .
   graph there
        C is a clique in G: each vertex
      C is a clique in G : each vertex needs a distinct
        needs a distinct color.                                                        C
      color.
        Because of the matching, it is
      Because of the matching, it is possible to color                          H
      H using onlyto color| H using only these
        possible these |C colors.
        |C| colors.
      These colors cannot be used for B .                                           B
        These colors cannot be used for B.
      (G  (H ∪ C ), k − |H|)
        (G  (H ∪ C), k − |H|)
                                                                   Fixed Parameter Algorithms – p.24/98
Crown Reduction for Dual of Vertex Coloring



  Use the key lemma for the complement G of G:
  Lemma: Given a graph G without isolated vertices and an integer
  k, in polynomial time we can either
      find a matching of size k + 1, ⇒ YES: we can save k colors!
      find a crown decomposition, ⇒ Reduce!
      or conclude that the graph has at most 3k vertices.
                   ⇒ 3k vertex kernel!

  This gives a 3k vertex kernel for Dual of Vertex Coloring.
Sunflower Lemma
Sunflower lemma
                                                           Sunflower lemma
  Definition: Sets S1 , S2 , . . . , Sk form a sunflower if the sets
  Si Definition:S2 ∩S·1 ,· S2∩... , k ) form a sunflower if the sets
      (S1 ∩ Sets · , S Sk are disjoint.
    Si  (S1 ∩ S2 ∩ · · · ∩ Sk ) are disjoint.




                                                            petals
                               center


               ˝
    Lemma: [Erdos and Rado, 1960] If the size of a set system is greater than
    (p − 1)d · d! and it contains only sets of size at most d , then the system contains a
  Lemma: [Erd˝petals. Furthermore, in thisIf the size sunflower can be foundis
     sunflower with p
                    os and Rado, 1960] case such a of a set system in
  greater than (p − 1)d · d! and it contains only sets of size at most d,
     polynomial time.
  then the system contains a sunflower with p petals. Furthermore,
  in this case such a sunflower can be found in polynomial time.         Fixed Parameter Algorithms – p.27/98
Sunflowers and d-Hitting Set
  d-Hitting Set: Given a collection S of sets of size at most d  Sunflower lemma
  and an integer k, find a set S of k elements that intersects every
  set of S. Definition: Sets S , S , ... , S form a sunflower if the sets
                                   1   2        k
              Si  (S1 ∩ S2 ∩ · · · ∩ Sk ) are disjoint.




                                                                      petals
                                           center


                         ˝
              Lemma: [Erdos and Rado, 1960] If the size of a set system is greater than
              (p − 1)d · d! and it contains only sets of size at most d , then the system contains a
  Reduction Rule: p petals. Furthermore, inform a sunflower, be found in
             sunflower with If k + 1 sets this case such a sunflower can then remove

  these sets polynomialS and add the center C to S (S does not hit one
             from time.
  of the petals, thus it has to hit the center).                                  Fixed Parameter Algorithms – p.27/98




  Note: if the center is empty (the sets are disjoint), then there is no
  solution.
  If the rule cannot be applied, then there are at most O(k d ) sets.
Sunflowers and d-Hitting Set
  d-Hitting Set: Given a collection S of sets of size at most d  Sunflower lemma
  and an integer k, find a set S of k elements that intersects every
  set of S. Definition: Sets S , S , ... , S form a sunflower if the sets
                                   1   2        k
              Si  (S1 ∩ S2 ∩ · · · ∩ Sk ) are disjoint.




                                                                      petals
                                           center


                         ˝
              Lemma: [Erdos and Rado, 1960] If the size of a set system is greater than
              (p − 1)d · d! and it contains only sets of size at most d , then the system contains a
  Reduction Rule (variant): Suppose such a sunflower cank + 1insets form a
            sunflower with p petals. Furthermore, in this case more than be found

  sunflower. polynomial time.
       If the sets are disjoint ⇒ No solution.                                    Fixed Parameter Algorithms – p.27/98




       Otherwise, keep only k + 1 of the sets.

  If the rule cannot be applied, then there are at most O(k d ) sets.
Branching and bounded search trees
                                      FPT algorithmic techniques


      Significant advances in the past 20 years or so (especially in recent years).

      Powerful toolbox for designing FPT algorithms:



            Bounded Search Tree



                      Kernelization




                      Color coding
                                                             Graph Minors Theorem



                       Treewidth                       Iterative compression


                                                                      Fixed Parameter Algorithms – p.8/98
EE
       H   TR
   ARC
SE




                  Part I: Branching Vectors
                  Part II: Forbidden Subgraphs
                  Part III: Hereditary Properties
Bounded search tree method
                      Bounded search tree method


 Algorithm for M INIMUM V ERTEX C OVER :
   Recall how we solved Minimum Vertex Cover:
                              e1 = x1 y1

                             x1            y1

           e2 = x2 y2
                 x2               y2
                                                           height:   k




 Height of the search tree is          k ⇒ number of leaves is   2k ⇒ complete search
 requires 2k · poly steps.

                                                                         Fixed Parameter Algorithms – p.5/98
Bounded search tree method


   We solve the problem by one or more branching rules.
   Each rule makes a “guess” in such a way that at least one guess
   will lead to a correct solution.

    If we have branching rules such that
         each rule branches into at most b(k) directions, and
         applying a rule decreases the parameter,
    then the problem can be solved in time O∗ (b(k)k ).

   In many cases, this crude upper bound can be improved by better
   analysis.
Vertex Cover

  Improved algorithm for Vertex Cover.
      If every vertex has degree ≤ 2, then the problem can be
      solved in polynomial time.
      Branching rule: If there is a vertex v with at least 3
      neighbors, then
           either v is in the solution,
           or every neighbor of v is in the solution.



  Crude upper bound: O∗ (2k ), since the branching rule decreases the
  parameter.
Vertex Cover

  Improved algorithm for Vertex Cover.
      If every vertex has degree ≤ 2, then the problem can be
      solved in polynomial time.
      Branching rule: If there is a vertex v with at least 3
      neighbors, then
           either v is in the solution, ⇒ k decreases by 1
           or every neighbor of v is in the solution. ⇒ k decreases by at
           least 3

  Crude upper bound: O∗ (2k ), since the branching rule decreases the
  parameter.
  But it is somewhat better than that, since in the second branch,
  the parameter decreases by at least 3.
Better analysis
   Let t(k) be the maximum number of leaves of the search tree if
   the parameter is at most k (let t(k) = 1 for k ≤ 0).

                       t(k) ≤ t(k − 1) + t(k − 3)

   There is a standard technique for bounding such functions
   asymptotically.
   We prove by induction that t(k) ≤ ck for some c > 1 as small as
   possible.
   What values of c are good? We need:

                            ck ≥ck−1 + ck−3
                            c3 − c2 − 1 ≥ 0

   We need to find the roots of the characteristic equation
   c3 − c2 − 1 = 0.
   Note: it is always true that such an equation has a unique positive
   root.
Better analysis                                               Better analysis


                      3
                                                        x3 − x2 − 1


                      2



                      1



                      0
                                                             1.4656


                     -1



                     -2



                     -3
                          -1   -0.5   0       0.5   1           1.5       2


      c = 1.4656 is a good value ⇒ t(k)   1.4656k
   c= ⇒ We haveis O ∗good kvalue ⇒ for V ERTEX1.4656k
      1.4656 a a (1.4656 ) algorithm t(k) ≤ C OVER.
   ⇒ We have a O∗ (1.4656k ) algorithm for Vertex Cover.              Fixed Parameter Algorithms – p.34/98
Better analysis



   We showed that if t(k) ≤ t(k − 1) + t(k − 3), then t(k) ≤ 1.4656k
   holds.
   Is this bound tight? There are two questions:
       Can the function t(k) be that large?
       Yes (ignoring rounding problems).
       Can the search tree of the Vertex Cover algorithm be that
       large?
       Difficult question, hard to answer in general.
Branching vectors

   The branching vector of our O∗ (1.4656k ) Vertex Cover
   algoritm was (1, 3).
   Example: Let us bound the search tree for the branching vector
   (2, 5, 6, 6, 7, 7).
   (2 out of the 6 branches decrease the parameter by 7, etc.).
   The value c > 1 has to satisfy:

                   ck ≥ ck−2 + ck−5 + 2ck−6 + 2ck−7
                        c7 − c5 − c2 − 2c − 2 ≥ 0

   Unique positive root of the characteristic equation: 1.4483 ⇒
   t(k) ≤ 1.4483k .
   It is hard to compare branching vectors intuitively.
Branching vectors

   Example: The roots for branching vector (i, j) (1 ≤ i, j ≤ 6).

             t(k) ≤ t(k − i) + t(k − j)⇒ck ≥ ck−i + ck−j
                           cj − cj−i − 1 ≥ 0

   We compute the unique positive root.

               1        2        3        4        5         6
        1   2.0000   1.6181   1.4656   1.3803   1.3248    1.2852
        2   1.6181   1.4143   1.3248   1.2721   1.2366    1.2107
        3   1.4656   1.3248   1.2560   1.2208   1.1939    1.1740
        4   1.3803   1.2721   1.2208   1.1893   1.1674    1.1510
        5   1.3248   1.2366   1.1939   1.1674   1.1487    1.1348
        6   1.2852   1.2107   1.1740   1.1510   1.1348    1.1225
Forbidden subgraphs
Forbidden subgraphs


   General problem class: Given a graph G and an integer k,
   transform G with at most k modifications (add/remove
   vertices/edges) into a graph having property P.
   Example:
   Triangle deletion: make the graph triangle-free by deleting at
   most k vertices.
   Branching algorithm:
       If the graph is triangle-free, then we are done.
       Branching rule: If there is a triangle v1 v2 v3 , then at least one
       of v1 , v2 , v3 has to be deleted ⇒ We branch into 3 directions.
Triangle deletion
                                                  T RIANGLE       DELETION
  Search tree:
 Search tree:
                                      T


                          v1          v2     v3
                                                    height   k +1




 The search tree has at most 3k leaves and the work to be done is polynomial at
 each step ⇒ O ∗treetime algorithm.
  The search (3k ) has at most        3k leaves and the work to be done                           is
                                    ∗ k
 Note: If the answer each step ⇒ O (3 tree has exactly 3k leaves.
  polynomial at is “NO”, then the search ) time algorithm.
  Note: If the answer is “NO”, then the search tree has exactly 3k
  leaves.

                                                               Fixed Parameter Algorithms – p.40/98
Hereditary properties


   Definition: A graph property P is hereditary if for every G ∈ P
   and induced subgraph G of G, we have G ∈ P as well.
   Examples: triangle-free, bipartite, interval graph, planar
   Observation: Every hereditary property P can be characterized by
   a (finite or infinite) set F of forbidden induced subgraphs:

                     G ∈ P ⇐⇒ ∀H ∈ F, H ⊆ind G
Hereditary properties


   Definition: A graph property P is hereditary if for every G ∈ P
   and induced subgraph G of G, we have G ∈ P as well.
   Examples: triangle-free, bipartite, interval graph, planar
   Observation: Every hereditary property P can be characterized by
   a (finite or infinite) set F of forbidden induced subgraphs:

                     G ∈ P ⇐⇒ ∀H ∈ F, H ⊆ind G

   Theorem: If P is hereditary and can be characterized by a finite
   set F of forbidden induced subgraphs, then the graph modification
   problems corresponding to P are FPT.
Hereditary properties

   Theorem: If P is hereditary and can be characterized by a finite
   set F of forbidden induced subgraphs, then the graph modification
   problems corresponding to P are FPT.
   Proof:
       Suppose that every graph in F has at most r vertices. Using
       brute force, we can find in time O(nr ) a forbidden subgraph
       (if exists).
       If a forbidden subgraph exists, then we have to delete one of
                                                                 r
       the at most r vertices or add/delete one of the at most 2
       edges
       ⇒ Branching factor is a constant c depending on F.
       The search tree has at most ck leaves and the work to be
       done at each node is O(nr ).
Cluster Editing


  Task: Given a graph G and an integer k, add/remove at most k
  edges such that every component is a clique in the resulting graph.
Cluster Editing
  Task: Given a graph G and an integer k, add/remove at most k
  edges such that every component is a clique in the resulting graph.




  Property P: every component is a clique.
  Forbidden induced subgraph:




  O∗ (3k ) time algorithm.
Chordal Completion
  Definition: A graph is chordal if it does not contain an induced
  cycle of length greater than 3.
  Chordal Completion: Given a graph G and an integer k, add
  at most k edges to G to make it a chordal graph.
Chordal Completion
  Definition: A graph is chordal if it does not contain an induced
  cycle of length greater than 3.
  Chordal Completion: Given a graph G and an integer k, add
  at most k edges to G to make it a chordal graph.
  The forbidden induced subgraphs are the cycles of length greater 3
  ⇒ Not a finite set!
C HORDAL CCompletionGiven a graph G and an integer k
Chordal OMPLETION :
    Definition: A graph is chordal if it does not contain an induced
to Gcyclemake it greater than 3.
     to of length a chordal graph.
    Chordal Completion: Given a graph G and an integer k, add
The at most k edges to G to make it a chordal graph. cycles of length g
     forbidden induced subgraphs are the
⇒ Not a finite set! subgraphs are the cycles of length greater 3
   The forbidden induced
    ⇒ Not a finite set!
Lemma: AtAt least k − 3 3 edgesneededneededato make a k -cyc
   Lemma: least k − edges are are to make k-cycle
   chordal.
Proof: By induction. k = 3 is trivial.
    Proof: By induction. k = 3 is trivial.




     Ck
C HORDAL CCompletion
Chordal OMPLETION : Given a graph G and an integer k ,
    Definition: A graph is chordal if it does not contain an induced
to Gcycle make it a chordal graph.
      to of length greater than 3.
    Chordal Completion: Given a graph G and an integer k, add
Theat most k edges to G to make it a chordal graph. cycles of length gr
    forbidden induced subgraphs are the
⇒ Not a finite set! subgraphs are the cycles of length greater 3
  The forbidden induced
    ⇒ Not a finite set!
Lemma: AtAt least k − 33 edges needed to make tok-cycle a k -cycle
   Lemma: least k − edges are are needed a make
   chordal.
Proof: By induction. k = 3 is trivial.
    Proof: By induction. k = 3 is trivial.

                                                     Cx : x − 3 edges
                 Cx                   Cx : x − 3 edges
                                      Ck−x+2 : k − x − 1k−x+2 : k − x −
                                                        C edges
     Ck                               Ck : (x − 3) + (k − x : (x +
                                                        Ck − 1) −3)+(k −x
                   Ck−x+2             1 = k − 3 edges
                                                     edges
Chordal Completion


  Algorithm:
       Find an induced cycle C of length at least 4 (can be done in
       polynomial time).
       If no such cycle exists ⇒ Done!
       If C has more than k + 3 vertices ⇒ No solution!
       Otherwise, one of the
                  |C|
                      − |C| ≤ (k + 3)(k + 2)/2 − k = O(k 2 )
                   2

       missing edges has to be added ⇒ Branch!
  Size of the search tree is k O(k) .
C HORDAL C OMPLETION – more efficiently
Chordal Completion – more efficiently
   Definition: Triangulation of a cycle.
 Definition: Triangulation of a cycle.




                                Ck




 Lemma: Every chordal supergraph of a cycle C contains a triangulation of the
   Lemma:
 cycle C .   Every chordal supergraph of a cycle C contains a
 Lemma: The number the cycle C.
   triangulation of of ways a cycle of length k can be triangulated is exactly the
    − 2)-nd Catalan number
 (k Lemma: Thenumber       of ways a cycle of length k can be
   triangulated is exactly the (k − 2)-nd Catalan number
                              1   2(k − 2)    k−3
                         Ck−2 =                      4    .
                                  k −1   k −2
                                      1  2(k − 2)
                        Ck−2 =                           ≤ 4k−3 .
                                     k−1 k−2                     Fixed Parameter Algorithms – p.46/98
Chordal Completion – more efficiently

  Algorithm:
      Find an induced cycle C of length at least 4 (can be done in
      polynomial time).
      If no such cycle exists ⇒ Done!
      If C has more than k + 3 vertices ⇒ No solution!
      Otherwise, one of the ≤ 4|C|−3 triangulations has to be in the
      solution ⇒ Branch!
  Claim: Search tree has at most Tk = 4k leaves.
  Proof: By induction. Number of leaves is at most

         Tk ≤ 4|C|−3 · Tk−(|C|−3) ≤ 4|C|−3 · 4k−(|C|−3) = 4k .
Iterative compression
                                  FPT algorithmic techniques


  Significant advances in the past 20 years or so (especially in recent years).

  Powerful toolbox for designing FPT algorithms:



        Bounded Search Tree



                  Kernelization




                  Color coding
                                                         Graph Minors Theorem



                   Treewidth                       Iterative compression


                                                                  Fixed Parameter Algorithms – p.8/98
Iterative compression



       A surprising small, but very powerful trick.
       Most useful for deletion problems: delete k things to achieve
       some property.
       Demonstration: Odd Cycle Transversal aka Bipartite
       Deletion aka Graph Bipartization: Given a graph G
       and an integer k, delete k vertices to make the graph bipartite.
       Forbidden induced subgraphs: odd cycles. There is no bound
       on the size of odd cycles.
Bipartite Deletion
  Solution based on iterative compression:
      Step 1:
      Solve the annotated problem for bipartite graphs:
               Given a bipartite graph G, two sets B, W ⊆ V (G),
               and an integer k, find a set S of at most k vertices
               such that G  S has a 2-coloring where B  S is
               black and W  S is white.
Bipartite Deletion
  Solution based on iterative compression:
      Step 1:
      Solve the annotated problem for bipartite graphs:
               Given a bipartite graph G, two sets B, W ⊆ V (G),
               and an integer k, find a set S of at most k vertices
               such that G  S has a 2-coloring where B  S is
               black and W  S is white.

      Step 2:
      Solve the compression problem for general graphs:
                Given a graph G, an integer k, and a set S of k + 1
                vertices such that G  S is bipartite, find a set S of
                k vertices such that G  S is bipartite.
Bipartite Deletion
  Solution based on iterative compression:
      Step 1:
      Solve the annotated problem for bipartite graphs:
               Given a bipartite graph G, two sets B, W ⊆ V (G),
               and an integer k, find a set S of at most k vertices
               such that G  S has a 2-coloring where B  S is
               black and W  S is white.

      Step 2:
      Solve the compression problem for general graphs:
                Given a graph G, an integer k, and a set S of k + 1
                vertices such that G  S is bipartite, find a set S of
                k vertices such that G  S is bipartite.

      Step 3:
      Apply the magic of iterative compression. . .
Step 1: The annotated problem The annotated problem
                    Step 1:

    Given a bipartite graph G, two sets B, W ⊆ V (G), and an integer
Given a bipartite graph G, two sets B, W ⊆ V (G ), and an integer k , find a set S of
    k, find a set S of at most k vertices such that G  S has a
at most k vertices such that G  S has a 2-coloring where B  S is black and W  S
    2-coloring where B  S is black and W  S is white.
is white.



                                               B

                                               W
Step 1: The annotatedStep 1: The annotated problem
                     problem


   Given a bipartite graph G, two sets B, W ⊆ V (G), and an integer
 Givenfind a set S of at mostsets B, W ⊆ V (Gthat G  S has a , find a set S of
   k, a bipartite graph G, two k vertices such ), and an integer k
 at most k vertices such that G  S hasand W  S is white.  S is black and W  S
    2-coloring where B  S is black a 2-coloring where B
 is white.
                                   B0             W0

                                                  B

                                                  W


 Find an arbitrary 2-coloring (B0 , W0 ) of G .
   Find an arbitrary 2-coloring (B0 , W0 ) of G.
Step 1: The annotated problem
Given Given a bipartite G, two G, two sets ⊆ V (G⊆, V (G), and an integer a set S
      a bipartite graph graph sets B, W B, W ) and an integer k , find
      k, find a set S of at most k vertices such that G  S has a
at most k vertices such that G  S has a 2-coloring where B  S is black and W 
      2-coloring where B  S is black and W  S is white.
is white.
                                  B0             W0

                                             C   B

                                       C         W


Find an arbitrary 2-coloring (B0 , W0 ) of G .
      Find an arbitrary 2-coloring (B0 , W0 ) of G.
C := (B0:= W ) ∪ (W) ∪ (W should should change while Rwhile 0 ∩ B) ∪ (W0 ∩ W
      C ∩ (B0 ∩ W 0 ∩ B) 0 ∩ B) change color, color, := (B
shouldR := (B0 ∩ B) ∪ (W0 ∩ W ) should remain the same color.
       remain the same color.
Step 1: The annotated problem
Given aGiven a bipartite G, two G, two sets ⊆ V (G ),V (G), and an integer a set
         bipartite graph graph sets B, W B, W ⊆ and an integer k , find
        k vertices such at G  k vertices such that G  S  S
 t mostk, find a set S ofthatmostS has a 2-coloring where Bhas ais black and W
       2-coloring where B  S is black and W  S is white.
s white.
                               B0             W0

                                    R     C    B

                                    C     R    W


Find an arbitrary 2-coloring (B0 , W0 ) of G .
       Find an arbitrary 2-coloring (B0 , W0 ) of G.
C := (B0 ∩ W ) ∪∩ W0) ∩ B) should should change while R := (B0 ∩ B) ∪ (W0 ∩
       C := (B0 (W ∪ (W0 ∩ B) change color, color, while
 hould remain the same (W0 ∩ W ) should remain the same color.
       R := (B0 ∩ B) ∪ color.

Lemma: G  S hasthehas the required 2-coloring only if only if S
      Lemma: G S required 2-coloring if and if and S separates C and R ,
      separates C and R, i.e., no component of G  S contains vertices
 o component of G  S contains vertices from both C  S and R  S .
      from both C  S and R  S.
Step 1: The annotated problem

   Lemma: G  S has the required 2-coloring if and only if S
   separates C and R, i.e., no component of G  S contains vertices
   from both C  S and R  S.
   Proof:
   ⇒ In a 2-coloring of G  S, each vertex either remained the same
   color or changed color. Adjacent vertices do the same, thus every
   component either changed or remained.
   ⇐ Flip the coloring of those components of G  S that contain
   vertices from C  S. No vertex of R is flipped.
   Algorithm: Using max-flow min-cut techniques, we can check if
   there is a set S that separates C and R. It can be done in time
   O(k|E(G)|) using k iterations of the Ford-Fulkerson algorithm.
Step 2: The compression problem
      Given a graph G, an integer k, and a set S of k + 1 vertices such
Given that G  S ,is bipartite, findand a S ofS vertices 1 vertices G  S that G 
      a graph G an integer k , a set set k of k + such that such is
bipartite, find a set S of k vertices such that G  S is bipartite.
       bipartite.




                                                     S
Step 2: The compression problem
    Given a graph G, an integer k, and a set S of k + 1 vertices such
Given a graph G , an integer k , and a set S of k + 1 vertices such that G 
    that G  S is bipartite, find a set S of k vertices such that G  S is
bipartite, find a set S of k vertices such that G  S is bipartite.
    bipartite.




                                                  S
                           black white deleted

     Branch 3k+1 k+1 cases: each vertex of is is either black, white, or
Branch intointo 3cases: each vertex of S S either black, white, or deleted.
     deleted.
Trivial check: no edge between two black or two white vertices.
     Trivial check: no edge between two black or two white vertices.
Step 2: The compression problem
   Given a graph G, an integer k, and a set S of k + 1 vertices such
Given a graph G , an integer k , and a set S of k + 1 vertices such that G  S
   that G  S is bipartite, find a set S of k vertices such that G  S is
bipartite, find a set S of k vertices such that G  S is bipartite.
   bipartite.

                             W




                                                  S
                           black white deleted

              k+1 k+1
Branch into into 3cases: each vertex of S of S is either black, white, or
   Branch 3           cases: each vertex is either black, white, or deleted.
Trivial check: no edge between two black or two white vertices.
    deleted.
Neighbors check: black vertices in S two black or two and the neighbors of the
   Trivial of the no edge between should be white white vertices.
white vertices in S should be black.in S should be white and the
   Neighbors of the black vertices
   neighbors of the white vertices in S should be black.
Step 2: The compression problem
Given a graph G , an integer k , and and a S of kof k + 1 vertices such G  S
    Given a graph G, an integer k, a set set S + 1 vertices such that
    that G  S is bipartite, find a set S of k vertices such that G  S is
bipartite, find a set S of k vertices such that G  S is bipartite.
    bipartite.

                             W      B




                                                 S
                          black white deleted
                   k+1 cases: each vertex
Branch into 3k+1 3
     Branch into cases: each vertex of Sofis either black, white, or deleted.
                                            S is either black, white, or
     deleted.
Trivial check: no edge between two black or two white vertices.
     Trivial check: no edge between two black or two white vertices.
Neighbors of the black vertices in Sinshould be white andand the
     Neighbors of the black vertices S should be white the neighbors of th
white vertices in S should vertices in S should be black.
     neighbors of the white be black.
Step 2: The compression problem
                                  Step 2: The compression problem
   Given a graph G, an integer k, and a set S of k + 1 vertices such
   that G  S is bipartite, find a set S of k vertices such that G  S is
   bipartite. a graph G , an integer k , and a set S of k + 1 vertices such that G  S is
       Given
        bipartite, find a set S of k vertices such that G  S is bipartite.


                                       W      B




   The vertices of S can be disregarded. Thus we need to solve the
   annotated problem can be disregarded. Thus we G  S .solve the annotated
       The vertices of S
                         on the bipartite graph need to
   Running time: O(3k · k|E(G)|) time.
      problem on the bipartite graph G  S .

        Running time: O(3k · k|E (G )|) time.

                                                                             Fixed Parameter Algorithms – p.53/98
Step 3: Iterative compression


   How do we get a solution of size k + 1?
Step 3: Iterative compression


   How do we get a solution of size k + 1?
   We get it for free!
Step 3: Iterative compression


   How do we get a solution of size k + 1?
   We get it for free!
   Let V (G) = {v1 , . . . , vn } and let Gi be the graph induced by
   {v1 , . . . , vi }.
   For every i, we find a set Si of size k such that Gi  Si is bipartite.
        For Gk , the set Sk = {v1 , . . . , vk } is a trivial solution.
        If Si−1 is known, then Si−1 ∪ {vi } is a set of size k + 1 whose
        deletion makes Gi bipartite ⇒ We can use the compression
        algorithm to find a suitable Si in time O(3k · k|E(Gi )|).
Step 3: Iterative Compression


   Bipartite-Deletion(G, k)
    1. Sk = {v1 , . . . , vk }
    2. for i := k + 1 to n
    3. Invariant: Gi−1  Si−1 is bipartite.
    4.     Call Compression(Gi , Si−1 ∪ {vi })
    5.         If the answer is “NO” ⇒ return “NO”
    6.         If the answer is a set X ⇒ Si := X
    7. Return the set Sn
   Running time: the compression algorithm is called n times and
   everything else can be done in linear time
   ⇒ O(3k · k|V (G)| · |E(G)|) time algorithm.
Color coding
                                  FPT algorithmic techniques


  Significant advances in the past 20 years or so (especially in recent years).

  Powerful toolbox for designing FPT algorithms:



        Bounded Search Tree



                  Kernelization




                  Color coding
                                                         Graph Minors Theorem



                   Treewidth                       Iterative compression


                                                                  Fixed Parameter Algorithms – p.8/98
Color coding



      Works best when we need to ensure that a small number of
      “things” are disjoint.
      We demonstrate it on the problem of finding an s-t path of
      length exactly k.
      Randomized algorithm, but can be derandomized using a
      standard technique.
      Very robust technique, we can use it as an “opening step”
      when investigating a new problem.
k-Path



  Task: Given a graph G, an integer k, two vertices s, t, find a
  simple s-t path with exactly k internal vertices.
  Note: Finding such a walk can be done easily in polynomial time.
  Note: The problem is clearly NP-hard, as it contains the s-t
  Hamiltonian Path problem.
  The k-Path algorithm can be used to check if there is a cycle of
  length exactly k in the graph.
k-Path
          Assign colors from [k] to vertices V (G)  {s, t} uniformly and
Assign colors from [k] to vertices V (G )  {s, t} uniformly and independently at
          independently at random.
random.


                           s                          t
k-Path
         Assign colors from [k] to vertices V t}  {s, t} uniformly and
Assign colors from [k] to vertices V (G )  {s,(G)uniformly and independently
random. independently at random.


                          s                          t
k-Path
Assign colors from [k]from [k] to V (G )  {s, (G)  {s, t} and independently at
       Assign colors to vertices vertices V t} uniformly uniformly and
        independently at random.
random.


                          s                           t



         there if there is a s -t path: a path: a path where appears exactly
Check ifCheck is a colorful colorful s-tpath where each coloreach color
once onappears exactly once output “YES” or vertices; output “YES”
        the internal vertices; on the internal “NO”.
        or “NO”.




                                                               Fixed Parameter Algorithms – p.69
k-Path
Assign colors from [k]from [k] to V (G )  {s, (G)  {s, t} and independently at
       Assign colors to vertices vertices V t} uniformly uniformly and
        independently at random.
random.


                          s                            t



         there if there is a s -t path: a path: a path where appears exactly
Check ifCheck is a colorful colorful s-tpath where each coloreach color
once onappears exactly once output “YES” or vertices; output “YES”
        the internal vertices; on the internal “NO”.
        or “NO”.
             If there is no s-t k-path: no such colorful path exists ⇒ “NO”.
             If there is an s-t k-path: the probability that such a path is
             colorful is
                                     k!    ( k )k
                                        > e k = e−k ,
                                     kk      k
             thus the algorithm outputs “YES” with at least that
             probability.
                                                                 Fixed Parameter Algorithms – p.69
Error probability

       Useful fact: If the probability of success is at least p, then
       the probability that the algorithm does not say “YES” after
       1/p repetitions is at most
                                        1/p
                    (1 − p)1/p < e−p          = 1/e ≈ 0.38

       Thus if p > e−k , then error probability is at most 1/e after ek
       repetitions.
       Repeating the whole algorithm a constant number of times
       can make the error probability an arbitrary small constant.
       For example, by trying 100 · ek random colorings, the
       probability of a wrong answer is at most 1/e100 .
Error probability

       Useful fact: If the probability of success is at least p, then
       the probability that the algorithm does not say “YES” after
       1/p repetitions is at most
                                        1/p
                    (1 − p)1/p < e−p          = 1/e ≈ 0.38

       Thus if p > e−k , then error probability is at most 1/e after ek
       repetitions.
       Repeating the whole algorithm a constant number of times
       can make the error probability an arbitrary small constant.
       For example, by trying 100 · ek random colorings, the
       probability of a wrong answer is at most 1/e100 .
   It remains to see how a colorful s-t path can be found.
   Method 1: Trying all permutations.
   Method 2: Dynamic programming.
Method 1: Trying all permutations


                             Method 1: Trying all permutations
   The colors encountered on a colorful s-t path form a permutation
   π of {1, 2, . . . , k}:
   The colors encountered on a colorful s -t path form a permutation π of {1, 2, ... , k}:
                      s                                              t

                              π(1)     π(2)       ...     π(k)

   We try all possible k! permutations. For a fixed π, it is easy to check if there is a
   We try all possiblecolors.
   path with this order of k! permutations. For a fixed π, it is easy to
   check if there is a path with this order of colors.
Method 1: Trying all permutations
Method 1: Trying all permutations
   We try all possible k! permutations. For a fixed π, it is easy to
   check if there is k! permutations.this a fixed π, it colors.to check if there is a
    We try all possible a path with For order of is easy
    path with this order of colors.




                       s                                            t




                              π(1)      π(2)        ...      π(k)

        Edges connecting nonadjacent color classes are removed.

        The remaining edges are directed.
         Edges connecting nonadjacent color classes are removed.
        All we need to check if there is a directed s -t path.

        Running time is O(k! · |E (G )|).
                                                                        Fixed Parameter Algorithms – p.72/98
Method 1: Trying all permutations all permutations
                  Method 1: Trying

   We try all possible k! permutations. For a fixed π, it is easy to
   check ifall possible k! path with this a fixed πof colors.to check if there is a
     We try there is a permutations. For order , it is easy
     path with this order of colors.




                        s                                          t




                               π(1)      π(2)   ...     π(k)

         Edges connecting nonadjacent color classes are removed.

         Edges connectingare directed.
         The remaining edges
                             nonadjacent color classes are removed.
         The remaining edges area directed.t path.
         All we need to check if there is directed s -

         Running time is O(k! · |E (G )|).
                                                                       Fixed Parameter Algorithms – p.72/98
Method 1: Trying all permutations
Method 1: Trying all permutations
   We try all possible k! permutations. For a fixed π, it is easy to
   We try all possible k! permutations. For a fixed π, it is easy to check if there is a
   check if there is a path with this order of colors.
   path with this order of colors.




                      s                                              t




                             π(1)      π(2)       ...      π(k)

       Edges connecting nonadjacent color classes are removed.

       The remaining edges are directed.
         Edges connecting nonadjacent            color classes are removed.
       AllThe remaining edges are directed s -t path.
          we need to check if there is a directed.

       Running time is O(k!check )|). there
         All we need to · |E (G if             is a directed s-t path.
                                                                         Fixed Parameter Algorithms – p.72/98
         Running time is O(k! · |E(G)|).
Method 2: Dynamic Programming
  We introduce 2k · |V (G)| Boolean variables:


          x(v, C) = TRUE for some v ∈ V (G) and C ⊆ [k]

         There is an s-v path where each color in C appears
              exactly once and no other color appears.
Method 2: Dynamic Programming
  We introduce 2k · |V (G)| Boolean variables:


          x(v, C) = TRUE for some v ∈ V (G) and C ⊆ [k]

         There is an s-v path where each color in C appears
              exactly once and no other color appears.


  Clearly, x(s, ∅) = TRUE. Recurrence for vertex v with color r:
                   x(v, C) =             x(u, C  {r})
                               uv∈E(G)
Method 2: Dynamic Programming
  We introduce 2k · |V (G)| Boolean variables:


          x(v, C) = TRUE for some v ∈ V (G) and C ⊆ [k]

         There is an s-v path where each color in C appears
              exactly once and no other color appears.


  Clearly, x(s, ∅) = TRUE. Recurrence for vertex v with color r:
                   x(v, C) =             x(u, C  {r})
                               uv∈E(G)

  If we know every x(v, C) with |C| = i, then we can determine
  every x(v, C) with |C| = i + 1 ⇒ All the values can be determined
  in time O(2k · |E(G)|).
  There is a colorful s-t path ⇐⇒ x(v, [k]) = TRUE for some
  neighbor of t.
Derandomization
   Using Method 2, we obtain a O∗ ((2e)k ) time algorithm with
   constant error probability. How to make it deterministic?
   Definition: A family H of functions [n] → [k] is a k-perfect
   family of hash functions if for every S ⊆ [n] with |S| = k, there is
   a h ∈ H such that h(x) = h(y) for any x, y ∈ S, x = y.
Derandomization
   Using Method 2, we obtain a O∗ ((2e)k ) time algorithm with
   constant error probability. How to make it deterministic?
   Definition: A family H of functions [n] → [k] is a k-perfect
   family of hash functions if for every S ⊆ [n] with |S| = k, there is
   a h ∈ H such that h(x) = h(y) for any x, y ∈ S, x = y.
   Instead of trying O(ek ) random colorings, we go through a
   k-perfect family H of functions V (G) → [k]. If there is a solution
   ⇒ The internal vertices S are colorful for at least one h ∈ H ⇒
   Algorithm outputs “YES”.
Derandomization
   Using Method 2, we obtain a O∗ ((2e)k ) time algorithm with
   constant error probability. How to make it deterministic?
   Definition: A family H of functions [n] → [k] is a k-perfect
   family of hash functions if for every S ⊆ [n] with |S| = k, there is
   a h ∈ H such that h(x) = h(y) for any x, y ∈ S, x = y.
   Instead of trying O(ek ) random colorings, we go through a
   k-perfect family H of functions V (G) → [k]. If there is a solution
   ⇒ The internal vertices S are colorful for at least one h ∈ H ⇒
   Algorithm outputs “YES”.
   Theorem: There is a k-perfect family of functions [n] → [k]
   having size 2O(k) log n
   (and can be constructed in time polynomial in the size of the
   family).
   ⇒ There is a deterministic 2O(k) · nO(1) time algorithm for the
   k-Path problem.
k-Disjoint Triangles
  Task: Given a graph G and an integer k, find k vertex disjoint
  triangles.
  Step 1: Choose a random coloring V (G) → [3k].
k-Disjoint Triangles
  Task: Given a graph G and an integer k, find k vertex disjoint
  triangles.
  Step 1: Choose a random coloring V (G) → [3k].
  Step 2: Check if there is a colorful solution, where the 3k vertices
  of the k triangles use distinct colors.
      Method 1: Try every permutation π of [3k] and check if
      there are triangles with colors (π(1), π(2), π(3)),
      (π(4), π(5), π(6)), . . .
      Method 2: Dynamic programming. For C ⊆ [3k] and
      |C| = 3i, let x(C) = TRUE if and only if there are |C|/3
      disjoint triangles using exactly the colors in C.

      x(C) =                     (x(C  {c1 , c2 , c3 }) ∧ ∃   with colors c1 , c2 , c3 )
               {c1 ,c2 ,c3 }⊆C
k-Disjoint Triangles




  Step 3: Colorful solution exists with probability at least e−3k ,
  which is a lower bound on the probability of a correct answer.
  Running time: constant error probability after e3k repetitions ⇒
  running time is O∗ ((2e)3k ) (using Method 2).
  Derandomization: 3k-perfect family of functions instead of
  random coloring. Running time is 2O(k) · nO(1) .
Color coding


   We have seen that color coding can be used to find paths, cycles
   of length k, or a set of k disjoint triangles.
   What other structures can be found efficiently with this technique?


   The key is treewidth:
   Theorem: Given two graph H, G, it can be decided if H is a
   subgraph of G in time 2O(|V (H)|) · |V (G)|O(w) , where w is the
   treewidth of G.
   Thus if H belongs to a class of graphs with bounded treewidth,
   then the subgraph problem is FPT.

More Related Content

What's hot

Artificial Intelligence (AI) Interview Questions and Answers | Edureka
Artificial Intelligence (AI) Interview Questions and Answers | EdurekaArtificial Intelligence (AI) Interview Questions and Answers | Edureka
Artificial Intelligence (AI) Interview Questions and Answers | Edureka
Edureka!
 
The fundamentals of Machine Learning
The fundamentals of Machine LearningThe fundamentals of Machine Learning
The fundamentals of Machine Learning
Hichem Felouat
 
Algorithmic Impact Assessment: Fairness, Robustness and Explainability in Aut...
Algorithmic Impact Assessment: Fairness, Robustness and Explainability in Aut...Algorithmic Impact Assessment: Fairness, Robustness and Explainability in Aut...
Algorithmic Impact Assessment: Fairness, Robustness and Explainability in Aut...
Adriano Soares Koshiyama
 
Explainable AI in Industry (FAT* 2020 Tutorial)
Explainable AI in Industry (FAT* 2020 Tutorial)Explainable AI in Industry (FAT* 2020 Tutorial)
Explainable AI in Industry (FAT* 2020 Tutorial)
Krishnaram Kenthapadi
 
Introduction to Linear Discriminant Analysis
Introduction to Linear Discriminant AnalysisIntroduction to Linear Discriminant Analysis
Introduction to Linear Discriminant Analysis
Jaclyn Kokx
 
AI in Business: Opportunities & Challenges
AI in Business: Opportunities & ChallengesAI in Business: Opportunities & Challenges
AI in Business: Opportunities & Challenges
Tathagat Varma
 
Generative AI - Responsible Path Forward.pdf
Generative AI - Responsible Path Forward.pdfGenerative AI - Responsible Path Forward.pdf
Generative AI - Responsible Path Forward.pdf
Saeed Al Dhaheri
 
Ai 02 intelligent_agents(1)
Ai 02 intelligent_agents(1)Ai 02 intelligent_agents(1)
Ai 02 intelligent_agents(1)
Mohammed Romi
 
AIML_Unit1.pptx
AIML_Unit1.pptxAIML_Unit1.pptx
AIML_Unit1.pptx
Somnath Kolgiri
 
The Ethics of AI
The Ethics of AIThe Ethics of AI
The Ethics of AI
Mark S. Steed
 
Explainable AI
Explainable AIExplainable AI
Explainable AI
Arithmer Inc.
 
Introduction to Deep Learning
Introduction to Deep LearningIntroduction to Deep Learning
Introduction to Deep Learning
Oswald Campesato
 
Artificial Intelligence And Machine Learning PowerPoint Presentation Slides C...
Artificial Intelligence And Machine Learning PowerPoint Presentation Slides C...Artificial Intelligence And Machine Learning PowerPoint Presentation Slides C...
Artificial Intelligence And Machine Learning PowerPoint Presentation Slides C...
SlideTeam
 
Generative AI
Generative AIGenerative AI
Generative AI
Carlos J. Costa
 
Explainable AI: Building trustworthy AI models?
Explainable AI: Building trustworthy AI models? Explainable AI: Building trustworthy AI models?
Explainable AI: Building trustworthy AI models?
Raheel Ahmad
 
Fairness and Ethics in A
Fairness and Ethics in AFairness and Ethics in A
Fairness and Ethics in A
Daniel Chan
 
Internet of Things(IoT) Applications | IoT Tutorial for Beginners | IoT Train...
Internet of Things(IoT) Applications | IoT Tutorial for Beginners | IoT Train...Internet of Things(IoT) Applications | IoT Tutorial for Beginners | IoT Train...
Internet of Things(IoT) Applications | IoT Tutorial for Beginners | IoT Train...
Edureka!
 
Explainability and bias in AI
Explainability and bias in AIExplainability and bias in AI
Explainability and bias in AI
Bill Liu
 
What really is Artificial Intelligence about?
What really is Artificial Intelligence about? What really is Artificial Intelligence about?
What really is Artificial Intelligence about?
Harmony Kwawu
 

What's hot (20)

Artificial Intelligence (AI) Interview Questions and Answers | Edureka
Artificial Intelligence (AI) Interview Questions and Answers | EdurekaArtificial Intelligence (AI) Interview Questions and Answers | Edureka
Artificial Intelligence (AI) Interview Questions and Answers | Edureka
 
The fundamentals of Machine Learning
The fundamentals of Machine LearningThe fundamentals of Machine Learning
The fundamentals of Machine Learning
 
Algorithmic Impact Assessment: Fairness, Robustness and Explainability in Aut...
Algorithmic Impact Assessment: Fairness, Robustness and Explainability in Aut...Algorithmic Impact Assessment: Fairness, Robustness and Explainability in Aut...
Algorithmic Impact Assessment: Fairness, Robustness and Explainability in Aut...
 
Explainable AI in Industry (FAT* 2020 Tutorial)
Explainable AI in Industry (FAT* 2020 Tutorial)Explainable AI in Industry (FAT* 2020 Tutorial)
Explainable AI in Industry (FAT* 2020 Tutorial)
 
Machine learning
Machine learningMachine learning
Machine learning
 
Introduction to Linear Discriminant Analysis
Introduction to Linear Discriminant AnalysisIntroduction to Linear Discriminant Analysis
Introduction to Linear Discriminant Analysis
 
AI in Business: Opportunities & Challenges
AI in Business: Opportunities & ChallengesAI in Business: Opportunities & Challenges
AI in Business: Opportunities & Challenges
 
Generative AI - Responsible Path Forward.pdf
Generative AI - Responsible Path Forward.pdfGenerative AI - Responsible Path Forward.pdf
Generative AI - Responsible Path Forward.pdf
 
Ai 02 intelligent_agents(1)
Ai 02 intelligent_agents(1)Ai 02 intelligent_agents(1)
Ai 02 intelligent_agents(1)
 
AIML_Unit1.pptx
AIML_Unit1.pptxAIML_Unit1.pptx
AIML_Unit1.pptx
 
The Ethics of AI
The Ethics of AIThe Ethics of AI
The Ethics of AI
 
Explainable AI
Explainable AIExplainable AI
Explainable AI
 
Introduction to Deep Learning
Introduction to Deep LearningIntroduction to Deep Learning
Introduction to Deep Learning
 
Artificial Intelligence And Machine Learning PowerPoint Presentation Slides C...
Artificial Intelligence And Machine Learning PowerPoint Presentation Slides C...Artificial Intelligence And Machine Learning PowerPoint Presentation Slides C...
Artificial Intelligence And Machine Learning PowerPoint Presentation Slides C...
 
Generative AI
Generative AIGenerative AI
Generative AI
 
Explainable AI: Building trustworthy AI models?
Explainable AI: Building trustworthy AI models? Explainable AI: Building trustworthy AI models?
Explainable AI: Building trustworthy AI models?
 
Fairness and Ethics in A
Fairness and Ethics in AFairness and Ethics in A
Fairness and Ethics in A
 
Internet of Things(IoT) Applications | IoT Tutorial for Beginners | IoT Train...
Internet of Things(IoT) Applications | IoT Tutorial for Beginners | IoT Train...Internet of Things(IoT) Applications | IoT Tutorial for Beginners | IoT Train...
Internet of Things(IoT) Applications | IoT Tutorial for Beginners | IoT Train...
 
Explainability and bias in AI
Explainability and bias in AIExplainability and bias in AI
Explainability and bias in AI
 
What really is Artificial Intelligence about?
What really is Artificial Intelligence about? What really is Artificial Intelligence about?
What really is Artificial Intelligence about?
 

Viewers also liked

20101028 reals and_integers_matiyasevich_ekb_lecture01-02
20101028 reals and_integers_matiyasevich_ekb_lecture01-0220101028 reals and_integers_matiyasevich_ekb_lecture01-02
20101028 reals and_integers_matiyasevich_ekb_lecture01-02Computer Science Club
 
20110306 csseminar cg_illustrations_vyatkina
20110306 csseminar cg_illustrations_vyatkina20110306 csseminar cg_illustrations_vyatkina
20110306 csseminar cg_illustrations_vyatkinaComputer Science Club
 
20101028 proof complexity_hirsch_lecture06
20101028 proof complexity_hirsch_lecture0620101028 proof complexity_hirsch_lecture06
20101028 proof complexity_hirsch_lecture06Computer Science Club
 
20101021 proof complexity_hirsch_lecture05
20101021 proof complexity_hirsch_lecture0520101021 proof complexity_hirsch_lecture05
20101021 proof complexity_hirsch_lecture05Computer Science Club
 
20101219 search query_analysis_braslavski_lecture03-04
20101219 search query_analysis_braslavski_lecture03-0420101219 search query_analysis_braslavski_lecture03-04
20101219 search query_analysis_braslavski_lecture03-04Computer Science Club
 
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...Computer Science Club
 
20080420 machine learning_nikolenko_lecture11
20080420 machine learning_nikolenko_lecture1120080420 machine learning_nikolenko_lecture11
20080420 machine learning_nikolenko_lecture11Computer Science Club
 
20080330 cryptography hirsch_lecture07
20080330 cryptography hirsch_lecture0720080330 cryptography hirsch_lecture07
20080330 cryptography hirsch_lecture07Computer Science Club
 
20090426 hardnessvsrandomness itsykson_lecture09
20090426 hardnessvsrandomness itsykson_lecture0920090426 hardnessvsrandomness itsykson_lecture09
20090426 hardnessvsrandomness itsykson_lecture09Computer Science Club
 
Н. Иготти. Виртуализация и виртуальные машины. Лекция 11
Н. Иготти. Виртуализация и виртуальные машины. Лекция 11Н. Иготти. Виртуализация и виртуальные машины. Лекция 11
Н. Иготти. Виртуализация и виртуальные машины. Лекция 11Computer Science Club
 
Д. М. Ицыксон. Вводный курс. Лекция 2
Д. М. Ицыксон. Вводный курс. Лекция 2Д. М. Ицыксон. Вводный курс. Лекция 2
Д. М. Ицыксон. Вводный курс. Лекция 2Computer Science Club
 
20100228 virtualization igotti_lecture03
20100228 virtualization igotti_lecture0320100228 virtualization igotti_lecture03
20100228 virtualization igotti_lecture03Computer Science Club
 
20090222 hardnessvsrandomness itsykson_lecture02
20090222 hardnessvsrandomness itsykson_lecture0220090222 hardnessvsrandomness itsykson_lecture02
20090222 hardnessvsrandomness itsykson_lecture02Computer Science Club
 
20080323 machine learning_nikolenko_lecture04
20080323 machine learning_nikolenko_lecture0420080323 machine learning_nikolenko_lecture04
20080323 machine learning_nikolenko_lecture04Computer Science Club
 
20080224 cryptography hirsch_lecture02
20080224 cryptography hirsch_lecture0220080224 cryptography hirsch_lecture02
20080224 cryptography hirsch_lecture02Computer Science Club
 
20100923 proof complexity_hirsch_lecture02
20100923 proof complexity_hirsch_lecture0220100923 proof complexity_hirsch_lecture02
20100923 proof complexity_hirsch_lecture02Computer Science Club
 
20110224 systems of_typed_lambda_calculi_moskvin_lecture02
20110224 systems of_typed_lambda_calculi_moskvin_lecture0220110224 systems of_typed_lambda_calculi_moskvin_lecture02
20110224 systems of_typed_lambda_calculi_moskvin_lecture02Computer Science Club
 
20110409 quantum algorithms_vyali_lecture09
20110409 quantum algorithms_vyali_lecture0920110409 quantum algorithms_vyali_lecture09
20110409 quantum algorithms_vyali_lecture09Computer Science Club
 

Viewers also liked (19)

20101028 reals and_integers_matiyasevich_ekb_lecture01-02
20101028 reals and_integers_matiyasevich_ekb_lecture01-0220101028 reals and_integers_matiyasevich_ekb_lecture01-02
20101028 reals and_integers_matiyasevich_ekb_lecture01-02
 
20110306 csseminar cg_illustrations_vyatkina
20110306 csseminar cg_illustrations_vyatkina20110306 csseminar cg_illustrations_vyatkina
20110306 csseminar cg_illustrations_vyatkina
 
20101028 proof complexity_hirsch_lecture06
20101028 proof complexity_hirsch_lecture0620101028 proof complexity_hirsch_lecture06
20101028 proof complexity_hirsch_lecture06
 
20101021 proof complexity_hirsch_lecture05
20101021 proof complexity_hirsch_lecture0520101021 proof complexity_hirsch_lecture05
20101021 proof complexity_hirsch_lecture05
 
20101219 search query_analysis_braslavski_lecture03-04
20101219 search query_analysis_braslavski_lecture03-0420101219 search query_analysis_braslavski_lecture03-04
20101219 search query_analysis_braslavski_lecture03-04
 
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...
Юрий Владимирович Матиясевич. Десятая проблема Гильберта. Решение и применени...
 
20080420 machine learning_nikolenko_lecture11
20080420 machine learning_nikolenko_lecture1120080420 machine learning_nikolenko_lecture11
20080420 machine learning_nikolenko_lecture11
 
20080330 cryptography hirsch_lecture07
20080330 cryptography hirsch_lecture0720080330 cryptography hirsch_lecture07
20080330 cryptography hirsch_lecture07
 
20090426 hardnessvsrandomness itsykson_lecture09
20090426 hardnessvsrandomness itsykson_lecture0920090426 hardnessvsrandomness itsykson_lecture09
20090426 hardnessvsrandomness itsykson_lecture09
 
Н. Иготти. Виртуализация и виртуальные машины. Лекция 11
Н. Иготти. Виртуализация и виртуальные машины. Лекция 11Н. Иготти. Виртуализация и виртуальные машины. Лекция 11
Н. Иготти. Виртуализация и виртуальные машины. Лекция 11
 
Д. М. Ицыксон. Вводный курс. Лекция 2
Д. М. Ицыксон. Вводный курс. Лекция 2Д. М. Ицыксон. Вводный курс. Лекция 2
Д. М. Ицыксон. Вводный курс. Лекция 2
 
20100228 virtualization igotti_lecture03
20100228 virtualization igotti_lecture0320100228 virtualization igotti_lecture03
20100228 virtualization igotti_lecture03
 
20090222 hardnessvsrandomness itsykson_lecture02
20090222 hardnessvsrandomness itsykson_lecture0220090222 hardnessvsrandomness itsykson_lecture02
20090222 hardnessvsrandomness itsykson_lecture02
 
20080323 machine learning_nikolenko_lecture04
20080323 machine learning_nikolenko_lecture0420080323 machine learning_nikolenko_lecture04
20080323 machine learning_nikolenko_lecture04
 
20080224 cryptography hirsch_lecture02
20080224 cryptography hirsch_lecture0220080224 cryptography hirsch_lecture02
20080224 cryptography hirsch_lecture02
 
20100923 proof complexity_hirsch_lecture02
20100923 proof complexity_hirsch_lecture0220100923 proof complexity_hirsch_lecture02
20100923 proof complexity_hirsch_lecture02
 
20100925 ontology konev_lecture01
20100925 ontology konev_lecture0120100925 ontology konev_lecture01
20100925 ontology konev_lecture01
 
20110224 systems of_typed_lambda_calculi_moskvin_lecture02
20110224 systems of_typed_lambda_calculi_moskvin_lecture0220110224 systems of_typed_lambda_calculi_moskvin_lecture02
20110224 systems of_typed_lambda_calculi_moskvin_lecture02
 
20110409 quantum algorithms_vyali_lecture09
20110409 quantum algorithms_vyali_lecture0920110409 quantum algorithms_vyali_lecture09
20110409 quantum algorithms_vyali_lecture09
 

Similar to 20110319 parameterized algorithms_fomin_lecture01-02

Kernelization algorithms for graph and other structure modification problems
Kernelization algorithms for graph and other structure modification problemsKernelization algorithms for graph and other structure modification problems
Kernelization algorithms for graph and other structure modification problems
Anthony Perez
 
Graph Modification: Beyond the known Boundaries
Graph Modification: Beyond the known BoundariesGraph Modification: Beyond the known Boundaries
Graph Modification: Beyond the known Boundaries
AkankshaAgrawal55
 
Split Contraction: The Untold Story
Split Contraction: The Untold StorySplit Contraction: The Untold Story
Split Contraction: The Untold Story
AkankshaAgrawal55
 
20110319 parameterized algorithms_fomin_lecture03-04
20110319 parameterized algorithms_fomin_lecture03-0420110319 parameterized algorithms_fomin_lecture03-04
20110319 parameterized algorithms_fomin_lecture03-04Computer Science Club
 
ECE 565 FInal Project
ECE 565 FInal ProjectECE 565 FInal Project
ECE 565 FInal Project
Lakshmi Yasaswi Kamireddy
 
A Linear-Time Algorithm For Thek-Fixed-Endpoint Path Cover Problem On Cographs
A Linear-Time Algorithm For Thek-Fixed-Endpoint Path Cover Problem On CographsA Linear-Time Algorithm For Thek-Fixed-Endpoint Path Cover Problem On Cographs
A Linear-Time Algorithm For Thek-Fixed-Endpoint Path Cover Problem On Cographs
Tina Gabel
 
Fine Grained Complexity
Fine Grained ComplexityFine Grained Complexity
Fine Grained Complexity
AkankshaAgrawal55
 
Time and space complexity
Time and space complexityTime and space complexity
Time and space complexityAnkit Katiyar
 
Kernel for Chordal Vertex Deletion
Kernel for Chordal Vertex DeletionKernel for Chordal Vertex Deletion
Kernel for Chordal Vertex Deletion
AkankshaAgrawal55
 
Unit 5
Unit 5Unit 5
Unit 5
guna287176
 
Chap12 slides
Chap12 slidesChap12 slides
Chap12 slides
BaliThorat1
 
Cheat Sheets for Hard Problems
Cheat Sheets for Hard ProblemsCheat Sheets for Hard Problems
Cheat Sheets for Hard Problems
Neeldhara Misra
 
Confidence interval two tail tests-lower bounds upperbounds
Confidence interval two tail tests-lower bounds upperboundsConfidence interval two tail tests-lower bounds upperbounds
Confidence interval two tail tests-lower bounds upperbounds
ssuser3c3f88
 
Unit 3
Unit 3Unit 3
Unit 3
guna287176
 
Mit203 analysis and design of algorithms
Mit203  analysis and design of algorithmsMit203  analysis and design of algorithms
Mit203 analysis and design of algorithms
smumbahelp
 
Anlysis and design of algorithms part 1
Anlysis and design of algorithms part 1Anlysis and design of algorithms part 1
Anlysis and design of algorithms part 1
Deepak John
 

Similar to 20110319 parameterized algorithms_fomin_lecture01-02 (20)

Kernelization algorithms for graph and other structure modification problems
Kernelization algorithms for graph and other structure modification problemsKernelization algorithms for graph and other structure modification problems
Kernelization algorithms for graph and other structure modification problems
 
Graph Modification: Beyond the known Boundaries
Graph Modification: Beyond the known BoundariesGraph Modification: Beyond the known Boundaries
Graph Modification: Beyond the known Boundaries
 
Split Contraction: The Untold Story
Split Contraction: The Untold StorySplit Contraction: The Untold Story
Split Contraction: The Untold Story
 
20110319 parameterized algorithms_fomin_lecture03-04
20110319 parameterized algorithms_fomin_lecture03-0420110319 parameterized algorithms_fomin_lecture03-04
20110319 parameterized algorithms_fomin_lecture03-04
 
ECE 565 FInal Project
ECE 565 FInal ProjectECE 565 FInal Project
ECE 565 FInal Project
 
A Linear-Time Algorithm For Thek-Fixed-Endpoint Path Cover Problem On Cographs
A Linear-Time Algorithm For Thek-Fixed-Endpoint Path Cover Problem On CographsA Linear-Time Algorithm For Thek-Fixed-Endpoint Path Cover Problem On Cographs
A Linear-Time Algorithm For Thek-Fixed-Endpoint Path Cover Problem On Cographs
 
Fine Grained Complexity
Fine Grained ComplexityFine Grained Complexity
Fine Grained Complexity
 
Time and space complexity
Time and space complexityTime and space complexity
Time and space complexity
 
Kernel for Chordal Vertex Deletion
Kernel for Chordal Vertex DeletionKernel for Chordal Vertex Deletion
Kernel for Chordal Vertex Deletion
 
Unit 5
Unit 5Unit 5
Unit 5
 
Unit 5
Unit 5Unit 5
Unit 5
 
Approx
ApproxApprox
Approx
 
Chap12 slides
Chap12 slidesChap12 slides
Chap12 slides
 
Cheat Sheets for Hard Problems
Cheat Sheets for Hard ProblemsCheat Sheets for Hard Problems
Cheat Sheets for Hard Problems
 
Confidence interval two tail tests-lower bounds upperbounds
Confidence interval two tail tests-lower bounds upperboundsConfidence interval two tail tests-lower bounds upperbounds
Confidence interval two tail tests-lower bounds upperbounds
 
Unit 3
Unit 3Unit 3
Unit 3
 
Unit 3
Unit 3Unit 3
Unit 3
 
defense
defensedefense
defense
 
Mit203 analysis and design of algorithms
Mit203  analysis and design of algorithmsMit203  analysis and design of algorithms
Mit203 analysis and design of algorithms
 
Anlysis and design of algorithms part 1
Anlysis and design of algorithms part 1Anlysis and design of algorithms part 1
Anlysis and design of algorithms part 1
 

More from Computer Science Club

20141223 kuznetsov distributed
20141223 kuznetsov distributed20141223 kuznetsov distributed
20141223 kuznetsov distributed
Computer Science Club
 
Computer Vision
Computer VisionComputer Vision
Computer Vision
Computer Science Club
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugsComputer Science Club
 
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugsComputer Science Club
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugsComputer Science Club
 
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture1220140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12Computer Science Club
 
20140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture1120140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture11Computer Science Club
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10Computer Science Club
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09Computer Science Club
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02Computer Science Club
 
20140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture0120140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture01Computer Science Club
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04Computer Science Club
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01Computer Science Club
 

More from Computer Science Club (20)

20141223 kuznetsov distributed
20141223 kuznetsov distributed20141223 kuznetsov distributed
20141223 kuznetsov distributed
 
Computer Vision
Computer VisionComputer Vision
Computer Vision
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
 
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
 
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture1220140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12
 
20140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture1120140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture11
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02
 
20140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture0120140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture01
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04
 
20140223-SuffixTrees-lecture01-03
20140223-SuffixTrees-lecture01-0320140223-SuffixTrees-lecture01-03
20140223-SuffixTrees-lecture01-03
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01
 
20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich
 
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
 
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
 
20131013 h10 lecture4_matiyasevich
20131013 h10 lecture4_matiyasevich20131013 h10 lecture4_matiyasevich
20131013 h10 lecture4_matiyasevich
 
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich
 
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich
 

Recently uploaded

Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 

Recently uploaded (20)

Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 

20110319 parameterized algorithms_fomin_lecture01-02

  • 1. IN OM .F O RV D FE Parameterized Algorithms I PART I St. Petersburg, 2011
  • 2. Classical complexity A brief review: We usually aim for polynomial-time algorithms: the running time is O(nc ), where n is the input size. Classical polynomial-time algorithms: shortest path, mathching, minimum spanning tree, 2SAT, convext hull, planar drawing, linear programming, etc. It is unlikely that polynomial-time algorithms exist for NP-hard problems.
  • 3. Classical complexity Unfortunately, many problems of interest are NP-hard: Hamiltonian cycle, 3-coloring, 3SAT, etc. We expect that these problems can be solved only in exponential time (i.e., cn ). Can we say anything nontrivial about NP-hard problems?
  • 4. Parameterized complexity Main idea: Instead of expressing the running time as a function T (n) of n, we express it as a function T (n, k) of the input size n and some parameter k of the input. In other words: we do not want to be efficient on all inputs of size n, only for those where k is small.
  • 5. Parameterized complexity What can be the parameter k? The size k of the solution we are looking for. The maximum degree of the input graph. The diameter of the input graph. The length of clauses in the input Boolean formula. ...
  • 6. Parameterized complexity Problem: Min Vertex Cover Max Independent Set Input: Graph G, integer k Graph G, integer k Question: Is it possible to cover Is it possible to find the edges with k vertices? k independent vertices?
  • 7. Parameterized complexity Problem: Min Vertex Cover Max Independent Set Input: Graph G, integer k Graph G, integer k Question: Is it possible to cover Is it possible to find the edges with k vertices? k independent vertices? Complexity: NP-complete NP-complete
  • 8. Parameterized complexity Problem: Min Vertex Cover Max Independent Set Input: Graph G, integer k Graph G, integer k Question: Is it possible to cover Is it possible to find the edges with k vertices? k independent vertices? Complexity: NP-complete NP-complete Complete O(nk ) possibilities O(nk ) possibilities enumeration: O(2k n2 ) algorithm exists No no(k) algorithm known
  • 9. Bounded search tree method Bounded search tree method Algorithm for M INIMUM V ERTEX C OVER : Algorithm for Minimum Vertex Cover: e1 = x1 y1 x1 y1 e2 = x2 y2 x2 y2 height: k k Height of of the search tree k ⇒ number of leavesof leaves is ≤ 2k ⇒ Height the search tree is is ≤ k ⇒ number is 2 ⇒ complete search requires 2k ·search requires complete poly steps. 2k · poly steps. Fixed Parameter Algorithms – p.5/98
  • 10. Exercise Problem: Minimum Dominating Set Input: Graph G, integer k Question: Is it possible to cover all vertices with k vertices?
  • 11. Exercise Problem: Minimum Dominating Set Input: Graph G, integer k Question: Is it possible to cover all vertices with k vertices?
  • 12. Fixed-parameter tractability Definition: A parameterization of a decision problem is a function that assigns an integer parameter k to each input instance x. The parameter can be explicit in the input (for example, if the parameter is the integer k appearing in the input (G, k) of Vertex Cover), or implicit in the input (for example, if the parameter is the diameter d of the input graph G).
  • 13. Fixed-parameter tractability Definition: A parameterization of a decision problem is a function that assigns an integer parameter k to each input instance x. The parameter can be explicit in the input (for example, if the parameter is the integer k appearing in the input (G, k) of Vertex Cover), or implicit in the input (for example, if the parameter is the diameter d of the input graph G). Main definition: A parameterized problem is fixed-parameter tractable (FPT) if there is an f (k)nc time algorithm for some constant c.
  • 14. Fixed-parameter tractability Example: Minimum Vertex Cover parameterized by the required size k is FPT: we have seen that it can be solved in time O(2k + n2 ). Better algorithms are known: e.g, O(1.2832k k + k|V |). Main goal of parameterized complexity: to find FPT problems.
  • 15. FPT problems Examples of NP-hard problems that are FPT: Finding a vertex cover of size k. Finding a path of length k. Finding k disjoint triangles. Drawing the graph in the plane with k edge crossings. Finding disjoint paths that connect k pairs of points. ...
  • 16. FPT algorithmic techniques FPT algorithmic techniques Significant advances in the past 20 years or so (especially in Significantyears). in the past 20 years or so (especially in recent years). recent advances Powerful toolbox for designing FPT algorithms: Powerful toolbox for designing FPT algorithms: Bounded Search Tree Kernelization Color coding Graph Minors Theorem Treewidth Iterative compression Fixed Parameter Algorithms – p.8/98
  • 17. Books Downey-Fellows: Parameterized Com- plexity, Springer, 1999 Flum-Grohe: Parameterized Complexity Theory, Springer, 2006 Niedermeier: Invitation to Fixed- Parameter Algorithms, Oxford University Press, 2006.
  • 18. Goals of the course Demonstrate techniques that were successfully used in the analysis of parameterized problems. Determine quickly if a problem is FPT. Design fast algorithms (improve the function f (k)).
  • 19. Notes This course and slides are based on D´niel Marx’s lectures on parameterized a complexity http://www.cs.bme.hu/~dmarx/
  • 20. What is missing but worth to discuss Complexity: W-hierarchy, reductions, Exponential Time Hypothesis and lower bounds for FPT algorithms ETH and parameterized complexity Polynomial Time Hierarchy and lower bounds on the sizes of kernels Algorithms: Integer programming Meta theorems: First Order Logic, Finite Integer Index Multi-cut algorithms and Directed FVS
  • 21. Notes Warning: The results presented for particular problems are not necessarily the best known results or the most useful approaches for these problems. Conventions: Unless noted otherwise, k is the parameter. O∗ notation: O∗ (f (k)) means O(f (k) · nc ) for some constant c. Citations are mostly omitted (only for classical results). We gloss over the difference between decision and search problems.
  • 22. Kernelization FPT algorithmic techniques Significant advances in the past 20 years or so (especially in recent years). Powerful toolbox for designing FPT algorithms: Bounded Search Tree Kernelization Color coding Graph Minors Theorem Treewidth Iterative compression Fixed Parameter Algorithms – p.8/98
  • 23. N TIO L IZA RNE KE Introduction and definition Part I: Crown Decomposition Part II: Sunflower Lemma
  • 24. Kernelization Definition: Kernelization is a polynomial-time transformation that maps an instance (I, k) to an instance (I , k ) such that (I, k) is a yes-instance if and only if (I , k ) is a yes-instance, k ≤ k, and |I | ≤ f (k) for some function f (k).
  • 25. Kernelization Definition: Kernelization is a polynomial-time transformation that maps an instance (I, k) to an instance (I , k ) such that (I, k) is a yes-instance if and only if (I , k ) is a yes-instance, k ≤ k, and |I | ≤ f (k) for some function f (k). Simple fact: If a problem has a kernelization algorithm, then it is FPT. Proof: Solve the instance (I , k ) by brute force.
  • 26. Kernelization Definition: Kernelization is a polynomial-time transformation that maps an instance (I, k) to an instance (I , k ) such that (I, k) is a yes-instance if and only if (I , k ) is a yes-instance, k ≤ k, and |I | ≤ f (k) for some function f (k). Simple fact: If a problem has a kernelization algorithm, then it is FPT. Proof: Solve the instance (I , k ) by brute force. Converse: Every FPT problem has a kernelization algorithm. Proof: Suppose there is an f (k)nc algorithm for the problem. If f (k) ≤ n, then solve the instance in time f (k)nc ≤ nc+1 , and output a trivial yes- or no-instance. If n < f (k), then we are done: a kernel of size f (k) is obtained.
  • 27. Kernelization for Vertex Cover General strategy: We devise a list of reduction rules, and show that if none of the rules can be applied and the size of the instance is still larger than f (k), then the answer is trivial. Reduction rules for Vertex Cover instance (G, k): Rule 1: If v is an isolated vertex ⇒ (G v, k) Rule 2: If d(v) > k ⇒ (G v, k − 1)
  • 28. Kernelization for Vertex Cover General strategy: We devise a list of reduction rules, and show that if none of the rules can be applied and the size of the instance is still larger than f (k), then the answer is trivial. Reduction rules for Vertex Cover instance (G, k): Rule 1: If v is an isolated vertex ⇒ (G v, k) Rule 2: If d(v) > k ⇒ (G v, k − 1) If neither Rule 1 nor Rule 2 can be applied: If |V (G)| > k(k + 1) ⇒ There is no solution (every vertex should be the neighbor of at least one vertex of the cover). Otherwise, |V (G)| ≤ k(k + 1) and we have a k(k + 1) vertex kernel.
  • 29. Kernelization for Vertex Cover Let us add a third rule: Rule 1: If v is an isolated vertex ⇒ (G v, k) Rule 2: If d(v) > k ⇒ (G v, k − 1) Rule 3: If d(v) = 1, then we can assume that its neighbor u is in the solution ⇒ (G (u ∪ v), k − 1). If none of the rules can be applied, then every vertex has degree at least 2. ⇒ |V (G)| ≤ |E(G)| If |E(G)| > k 2 ⇒ There is no solution (each vertex of the solution can cover at most k edges). Otherwise, |V (G)| ≤ |E(G)| ≤ k 2 and we have a k 2 vertex kernel.
  • 30. Kernelization for Vertex for V ERTEX C OVER Kernelization Cover Let us add a fourth rule: urth rule: Rule 4a: If v has degree 2, and its neighbors u1 and u2 are v has degree 2, and its neighbors u1 that u21 , u2 adjacent, then we ⇒ adjacent, then we can assume and u are are in the solution n assumethat1 , u, uv}, k − 2). solution ⇒ (G {u1 , u2 , v }, k − 2). (G {u u1 2 , 2 are in the u1 v u2 G
  • 31. Kernelization for Vertex Cover Kernelization for V ERTEX C OVER s add a fourth rule: Rule 4b: If v has degree 2, then G is obtained by identifying ule 4b: If v has degree 2, then G is obtained by identifying the two neighbors of v and deleting v ⇒ (G , k − 1). the two neighbors of v and deleting v ⇒ (G , k − 1). u1 v ⇒ u u2 G G Fixed Parameter Algorithms – p.16/98
  • 32. Kernelization for V ERTEX C OVER Kernelization for Vertex Cover s add a fourth rule: Rule 4b: If v has degree 2, then G is obtained by identifying ule 4b: If v has degree 2, then G is obtained by identifying the two neighbors of v and deleting v ⇒ (G , k − 1). the two neighbors of v and deleting v ⇒ (G , k − 1). u1 v ⇒ u u2 G G Correctness: Let S be a vertex cover of size k − 1 for G . If u ∈ S ⇒ (S u) ∪ {u1 , u2 } is a vertex cover of size k for G. Fixed Parameter Algorithms – p.16/98 If u ∈ S ⇒ S ∪ v is a vertex cover of size k for G.
  • 33. Kernelization for Vertex Cover s add a fourth rule: Rule 4b: If v has degree 2, then G is obtained by identifying ule 4b: If v has degree 2, then G is obtained by identifying the two neighborsand deleting v ⇒ (G , k v 1). (G , k − 1). the two neighbors of v of v and deleting − ⇒ u1 v ⇒ u u2 G G Correctness: Let S be a vertex cover of size k for G. If u1 , u2 ∈ S ⇒ (S {u1 , u2 , v}) ∪ u is a vertex cover of size k − 1 for G . Fixed Parameter Algorithms – p.16/98 If exactly one of u1 and u2 is in S, then v ∈ S ⇒ (S {u1 , u2 , v}) ∪ u is a vertex cover of size k − 1 for G . If u1 , u2 ∈ S, then v ∈ S ⇒ (S v) is a vertex cover of size k − 1 for G .
  • 34. Kernelization for V ERTEX C OVER Kernelization for Vertex Cover s add a fourth rule: Rule 4b: If v has degree 2, then G is obtained by identifying ule 4b: If v has degree 2, then G is obtained by identifying the two neighborsand deleting v ⇒ (G , k v 1). (G , k − 1). the two neighbors of v of v and deleting − ⇒ u1 v ⇒ u u2 G G Kernel size: If |E(G)| > k 2 ⇒ There is no solution (each vertex of the solution can cover at most k edges). Otherwise, |V (G)| ≤ 2|E(G)|/3 ≤ 2 k 2 and we have a 2 k 2 3 Fixed Parameter Algorithms – p.16/98 3 vertex kernel.
  • 35. Covering Points with Lines Task: Given a set P of n points in the plane and an integer k, find k lines that cover all the points.
  • 36. Covering Points with Lines Task: Given a set P of n points in the plane and an integer k, find k lines that cover all the points. Note: We can assume that every line of the solution covers at least 2 points, thus there are at most n2 candidate lines.
  • 37. Covering Points with Lines Task: Given a set P of n points in the plane and an integer k, find k lines that cover all the points. Note: We can assume that every line of the solution covers at least 2 points, thus there are at most n2 candidate lines. Reduction Rule: If a candidate line covers a set S of more than k points ⇒ (P S, k − 1). If this rule cannot be applied and there are still more than k 2 points, then there is no solution ⇒ Kernel with at most k 2 points.
  • 38. Kernelization Kernelization can be thought of as a polynomial-time preprocessing before attacking the problem with whatever method we have. “It does no harm” to try kernelization. Some kernelizations use lots of simple reduction rules and require a complicated analysis to bound the kernel size. . . . . . while other kernelizations are based on surprising nice tricks (Next: Crown Reduction and the Sunflower Lemma). Possibility to prove lower bounds.
  • 40. Crown Reduction Definition: A crown decomposition is a partition C ∪ H ∪ B of the vertices such that C C is an independent set, there is no edge between C and H B, B there is a matching between C and H that covers H.
  • 41. Crown Reduction Definition: A crown decomposition is a partition C ∪ H ∪ B of the vertices such that C C is an independent set, there is no edge between C and H B, B there is a matching between C and H that covers H. Crown rule for Vertex Cover: The matching needs to be covered and we can assume that it is covered by H (makes no sense to use vertices of C)
  • 42. Crown Reduction Definition: A crown decomposition is a partition C ∪ H ∪ B of the vertices such that C C is an independent set, there is no edge between C and H B, B there is a matching between C and H that covers H. Crown rule for Vertex Cover: The matching needs to be covered and we can assume that it is covered by H (makes no sense to use vertices of C) ⇒ (G (H ∪ C), k − |H|).
  • 43. Crown Reduction Key lemma: Lemma: Given a graph G without isolated vertices and an integer k, in polynomial time we can either find a matching of size k + 1, ⇒ No solution!
  • 44. Crown Reduction Key lemma: Lemma: Given a graph G without isolated vertices and an integer k, in polynomial time we can either find a matching of size k + 1, ⇒ No solution! find a crown decomposition, ⇒ Reduce!
  • 45. Crown Reduction Key lemma: Lemma: Given a graph G without isolated vertices and an integer k, in polynomial time we can either find a matching of size k + 1, ⇒ No solution! find a crown decomposition, ⇒ Reduce! or conclude that the graph has at most 3k vertices.
  • 46. Crown Reduction Key lemma: Lemma: Given a graph G without isolated vertices and an integer k, in polynomial time we can either find a matching of size k + 1, ⇒ No solution! find a crown decomposition, ⇒ Reduce! or conclude that the graph has at most 3k vertices. ⇒ 3k vertex kernel!
  • 47. Crown Reduction Key lemma: Lemma: Given a graph G without isolated vertices and an integer k, in polynomial time we can either find a matching of size k + 1, ⇒ No solution! find a crown decomposition, ⇒ Reduce! or conclude that the graph has at most 3k vertices. ⇒ 3k vertex kernel! This gives a 3k vertex kernel for Vertex Cover.
  • 48. Proof Lemma: Given a graph G without isolated vertices and an integer k, in polynomial time we can either find a matching of size k + 1, find a crown decomposition, or conclude that the graph has at most 3k vertices. For the proof, we need the classical K˝nig’s Theorem. o τ (G) : size of the minimum vertex cover ν(G) : size of the maximum matching (independent set of edges) Theorem: [K˝nig, 1931] If G is bipartite, then o τ (G) = ν(G)
  • 49. Proof Proof Lemma: Given a graph G without isolated vertices and an integer k, in polynomial time we can either find a matching of size k + 1, Lemma: Given a graph G without isolated vertices and an integer k , in polynomial find a crown decomposition, time we can either or conclude that the graph has at most 3k vertices. find a matching of size k + 1, find a crown decomposition, or conclude that the graph has at most 3k vertices. Proof: Find (greedily) a (greedily) a matching; if Proof: Find maximal maximal matching; if its its size is atat least k + 11,then wewe are The rest size is least + , then are done. X I done. of the graph of an independent set I . The rest is the graph is an independent set I. Fixed Parameter Algorithms – p.23/98
  • 50. Proof Proof Lemma: Given a graph G without isolated vertices and an integer k, in polynomial time we can either find a matching of size k + 1, Lemma: Given a graph G without isolated vertices and an integer k , in polynomial find a crown can either time we decomposition, or conclude that the graph has at most 3k vertices. find a matching of size k + 1, find a crown decomposition, or conclude that the graph has at most 3k vertices. Proof: Find (greedily) a maximal matching; if if its Proof: Find (greedily) a maximal matching; its size isis at least+k1+thenthen we are The rest size at least k , 1, we are done. I done. The restan independent set an of the graph is of the graph is I . independent set I. Find a maximum matching/minimum vertex cover in X the bipartite graph between X and I . Find a maximum matching/minimum vertex cover in the bipartite graph between X and I. Fixed Parameter Algorithms – p.23/98
  • 51. Proof Proof Lemma: Given a graph G without isolated vertices and an integer k, in polynomial time we can either find a matching of size k + 1, find a crown decomposition, G without isolated vertices and an integer k , in polynomial Lemma: Given a graph time we can either or conclude that the graph has at most 3k vertices. find a matching of size k + 1, find a crown decomposition, Proof: or conclude that the graph has at most 3k vertices. CaseProof: minimum vertex cover 1: The contains at The minimumvertexcover contains at least Case 1: least one vertex of X I C ⇒ There is a of X one vertex crown decomposition. ⇒ There is a crown decomposition. X H Fixed Parameter Algorithms – p.23/98
  • 52. Proof Proof Lemma: Given a graph G without isolated vertices and an integer k, in polynomial time we can either find a matching of size k + 1, Lemma: Given a graph G without isolated vertices and an integer k , in polynomial find a crown decomposition, time we can either or conclude that the graph has at most 3k vertices. find a matching of size k + 1, find a crown decomposition, or conclude that the graph has at most 3k vertices. Proof: Case 1: The minimum vertex cover Proof: contains1: The minimum vertexcoverX Case at least one vertex of contains at least I ⇒ There is a crown decomposition. one vertex of X ⇒ There is a crown decomposition. Case 2: The minimum vertex cover X contains 2: Thevertices of I ⇒cover contains Case only minimum vertex It only vertices of I ⇒ It contains every vertex of I contains every vertex of I ⇒ There are at most 2k k k vertices. ⇒ There are at most 2k + +vertices. Fixed Parameter Algorithms – p.23/98
  • 53. Dual of Vertex Coloring OF V ERTEX C OLORING D UAL Parameteric dual of k-Coloring. Also known as Saving k Colors. Parameteric dual of k -C OLORING. Also known as S AVING k C OLORS. Task: Given a graph G and an integer k, find a vertex coloring Task: Given a graph G and an integer k , find a vertex coloring with |V (G )| − k with |V (G)| − k colors. colors. Crown rule for Dual of Vertex Coloring: Crown rule for D UAL OF V ERTEX C OLORING: Suppose there is a crown decomposition for the complement Suppose there is a crown decomposition for the complement graph G . graph G. C isC clique in G : each vertex needs a distinct a is a clique in G: each vertex C needs color. a distinct color. Because of the matching, it is Because of the matching, it is possible to color H possible to color H using only these H using only these |C | colors. |C| colors. These colors cannot be used for B . B These colors cannot be used for B. (G (H ∪ C ), k − |H|) (G (H ∪ C), k − |H|) Fixed Parameter Algorithms – p.24/98
  • 54. Dual of Vertex Coloring OF V ERTEX C OLORING D UAL Parameteric dual of k-Coloring. Also known as Saving k Colors. Parameteric dual of k -C OLORING. Also known as S AVING k C OLORS. Task: Given a graph G and an integer k, find a vertex coloring Task: Given a graph G and an integer k , find a vertex coloring with |V (G )| − k with |V (G)| − k colors. colors. Crown rule for Dual of Vertex Coloring: Crown rule for D UAL OF V ERTEX C OLORING: Suppose there is a crown decomposition for the complement Suppose there is a crown decomposition for the complement graph G . graph G. C isC clique in G : each vertex needs a distinct a is a clique in G: each vertex needs a distinct color. C color. Because of the matching, it is Because of the matching, it is possible to color H possible to color H using only these H using only these |C | colors. |C| colors. These colors cannot be used for B . B These colors cannot be used for B. (G (H ∪ C ), k − |H|) (G (H ∪ C), k − |H|) Fixed Parameter Algorithms – p.24/98
  • 55. Dual of Vertex Coloring OF V ERTEX C OLORING D UAL Parameteric dual of k-Coloring. Also known as Saving k Colors. Parameteric dual of k -C OLORING. Also known as S AVING k C OLORS. Task: Given a graph G and an integer k, find a vertex coloring with |V (G)| − k G and an Task: Given a graph colors. integer k , find a vertex coloring with |V (G )| − k colors. Crown rule for Dual of Vertex Coloring: Crown rule for D UAL OF V ERTEX C OLORING: Suppose there is a crown decomposition for the complement Suppose G. is a crown decomposition for the complement graph G . graph there C is a clique in G: each vertex C is a clique in G : each vertex needs a distinct needs a distinct color. C color. Because of the matching, it is Because of the matching, it is possible to color H H using onlyto color| H using only these possible these |C colors. |C| colors. These colors cannot be used for B . B These colors cannot be used for B. (G (H ∪ C ), k − |H|) (G (H ∪ C), k − |H|) Fixed Parameter Algorithms – p.24/98
  • 56. Crown Reduction for Dual of Vertex Coloring Use the key lemma for the complement G of G: Lemma: Given a graph G without isolated vertices and an integer k, in polynomial time we can either find a matching of size k + 1, ⇒ YES: we can save k colors! find a crown decomposition, ⇒ Reduce! or conclude that the graph has at most 3k vertices. ⇒ 3k vertex kernel! This gives a 3k vertex kernel for Dual of Vertex Coloring.
  • 58. Sunflower lemma Sunflower lemma Definition: Sets S1 , S2 , . . . , Sk form a sunflower if the sets Si Definition:S2 ∩S·1 ,· S2∩... , k ) form a sunflower if the sets (S1 ∩ Sets · , S Sk are disjoint. Si (S1 ∩ S2 ∩ · · · ∩ Sk ) are disjoint. petals center ˝ Lemma: [Erdos and Rado, 1960] If the size of a set system is greater than (p − 1)d · d! and it contains only sets of size at most d , then the system contains a Lemma: [Erd˝petals. Furthermore, in thisIf the size sunflower can be foundis sunflower with p os and Rado, 1960] case such a of a set system in greater than (p − 1)d · d! and it contains only sets of size at most d, polynomial time. then the system contains a sunflower with p petals. Furthermore, in this case such a sunflower can be found in polynomial time. Fixed Parameter Algorithms – p.27/98
  • 59. Sunflowers and d-Hitting Set d-Hitting Set: Given a collection S of sets of size at most d Sunflower lemma and an integer k, find a set S of k elements that intersects every set of S. Definition: Sets S , S , ... , S form a sunflower if the sets 1 2 k Si (S1 ∩ S2 ∩ · · · ∩ Sk ) are disjoint. petals center ˝ Lemma: [Erdos and Rado, 1960] If the size of a set system is greater than (p − 1)d · d! and it contains only sets of size at most d , then the system contains a Reduction Rule: p petals. Furthermore, inform a sunflower, be found in sunflower with If k + 1 sets this case such a sunflower can then remove these sets polynomialS and add the center C to S (S does not hit one from time. of the petals, thus it has to hit the center). Fixed Parameter Algorithms – p.27/98 Note: if the center is empty (the sets are disjoint), then there is no solution. If the rule cannot be applied, then there are at most O(k d ) sets.
  • 60. Sunflowers and d-Hitting Set d-Hitting Set: Given a collection S of sets of size at most d Sunflower lemma and an integer k, find a set S of k elements that intersects every set of S. Definition: Sets S , S , ... , S form a sunflower if the sets 1 2 k Si (S1 ∩ S2 ∩ · · · ∩ Sk ) are disjoint. petals center ˝ Lemma: [Erdos and Rado, 1960] If the size of a set system is greater than (p − 1)d · d! and it contains only sets of size at most d , then the system contains a Reduction Rule (variant): Suppose such a sunflower cank + 1insets form a sunflower with p petals. Furthermore, in this case more than be found sunflower. polynomial time. If the sets are disjoint ⇒ No solution. Fixed Parameter Algorithms – p.27/98 Otherwise, keep only k + 1 of the sets. If the rule cannot be applied, then there are at most O(k d ) sets.
  • 61. Branching and bounded search trees FPT algorithmic techniques Significant advances in the past 20 years or so (especially in recent years). Powerful toolbox for designing FPT algorithms: Bounded Search Tree Kernelization Color coding Graph Minors Theorem Treewidth Iterative compression Fixed Parameter Algorithms – p.8/98
  • 62. EE H TR ARC SE Part I: Branching Vectors Part II: Forbidden Subgraphs Part III: Hereditary Properties
  • 63. Bounded search tree method Bounded search tree method Algorithm for M INIMUM V ERTEX C OVER : Recall how we solved Minimum Vertex Cover: e1 = x1 y1 x1 y1 e2 = x2 y2 x2 y2 height: k Height of the search tree is k ⇒ number of leaves is 2k ⇒ complete search requires 2k · poly steps. Fixed Parameter Algorithms – p.5/98
  • 64. Bounded search tree method We solve the problem by one or more branching rules. Each rule makes a “guess” in such a way that at least one guess will lead to a correct solution. If we have branching rules such that each rule branches into at most b(k) directions, and applying a rule decreases the parameter, then the problem can be solved in time O∗ (b(k)k ). In many cases, this crude upper bound can be improved by better analysis.
  • 65. Vertex Cover Improved algorithm for Vertex Cover. If every vertex has degree ≤ 2, then the problem can be solved in polynomial time. Branching rule: If there is a vertex v with at least 3 neighbors, then either v is in the solution, or every neighbor of v is in the solution. Crude upper bound: O∗ (2k ), since the branching rule decreases the parameter.
  • 66. Vertex Cover Improved algorithm for Vertex Cover. If every vertex has degree ≤ 2, then the problem can be solved in polynomial time. Branching rule: If there is a vertex v with at least 3 neighbors, then either v is in the solution, ⇒ k decreases by 1 or every neighbor of v is in the solution. ⇒ k decreases by at least 3 Crude upper bound: O∗ (2k ), since the branching rule decreases the parameter. But it is somewhat better than that, since in the second branch, the parameter decreases by at least 3.
  • 67. Better analysis Let t(k) be the maximum number of leaves of the search tree if the parameter is at most k (let t(k) = 1 for k ≤ 0). t(k) ≤ t(k − 1) + t(k − 3) There is a standard technique for bounding such functions asymptotically. We prove by induction that t(k) ≤ ck for some c > 1 as small as possible. What values of c are good? We need: ck ≥ck−1 + ck−3 c3 − c2 − 1 ≥ 0 We need to find the roots of the characteristic equation c3 − c2 − 1 = 0. Note: it is always true that such an equation has a unique positive root.
  • 68. Better analysis Better analysis 3 x3 − x2 − 1 2 1 0 1.4656 -1 -2 -3 -1 -0.5 0 0.5 1 1.5 2 c = 1.4656 is a good value ⇒ t(k) 1.4656k c= ⇒ We haveis O ∗good kvalue ⇒ for V ERTEX1.4656k 1.4656 a a (1.4656 ) algorithm t(k) ≤ C OVER. ⇒ We have a O∗ (1.4656k ) algorithm for Vertex Cover. Fixed Parameter Algorithms – p.34/98
  • 69. Better analysis We showed that if t(k) ≤ t(k − 1) + t(k − 3), then t(k) ≤ 1.4656k holds. Is this bound tight? There are two questions: Can the function t(k) be that large? Yes (ignoring rounding problems). Can the search tree of the Vertex Cover algorithm be that large? Difficult question, hard to answer in general.
  • 70. Branching vectors The branching vector of our O∗ (1.4656k ) Vertex Cover algoritm was (1, 3). Example: Let us bound the search tree for the branching vector (2, 5, 6, 6, 7, 7). (2 out of the 6 branches decrease the parameter by 7, etc.). The value c > 1 has to satisfy: ck ≥ ck−2 + ck−5 + 2ck−6 + 2ck−7 c7 − c5 − c2 − 2c − 2 ≥ 0 Unique positive root of the characteristic equation: 1.4483 ⇒ t(k) ≤ 1.4483k . It is hard to compare branching vectors intuitively.
  • 71. Branching vectors Example: The roots for branching vector (i, j) (1 ≤ i, j ≤ 6). t(k) ≤ t(k − i) + t(k − j)⇒ck ≥ ck−i + ck−j cj − cj−i − 1 ≥ 0 We compute the unique positive root. 1 2 3 4 5 6 1 2.0000 1.6181 1.4656 1.3803 1.3248 1.2852 2 1.6181 1.4143 1.3248 1.2721 1.2366 1.2107 3 1.4656 1.3248 1.2560 1.2208 1.1939 1.1740 4 1.3803 1.2721 1.2208 1.1893 1.1674 1.1510 5 1.3248 1.2366 1.1939 1.1674 1.1487 1.1348 6 1.2852 1.2107 1.1740 1.1510 1.1348 1.1225
  • 73. Forbidden subgraphs General problem class: Given a graph G and an integer k, transform G with at most k modifications (add/remove vertices/edges) into a graph having property P. Example: Triangle deletion: make the graph triangle-free by deleting at most k vertices. Branching algorithm: If the graph is triangle-free, then we are done. Branching rule: If there is a triangle v1 v2 v3 , then at least one of v1 , v2 , v3 has to be deleted ⇒ We branch into 3 directions.
  • 74. Triangle deletion T RIANGLE DELETION Search tree: Search tree: T v1 v2 v3 height k +1 The search tree has at most 3k leaves and the work to be done is polynomial at each step ⇒ O ∗treetime algorithm. The search (3k ) has at most 3k leaves and the work to be done is ∗ k Note: If the answer each step ⇒ O (3 tree has exactly 3k leaves. polynomial at is “NO”, then the search ) time algorithm. Note: If the answer is “NO”, then the search tree has exactly 3k leaves. Fixed Parameter Algorithms – p.40/98
  • 75. Hereditary properties Definition: A graph property P is hereditary if for every G ∈ P and induced subgraph G of G, we have G ∈ P as well. Examples: triangle-free, bipartite, interval graph, planar Observation: Every hereditary property P can be characterized by a (finite or infinite) set F of forbidden induced subgraphs: G ∈ P ⇐⇒ ∀H ∈ F, H ⊆ind G
  • 76. Hereditary properties Definition: A graph property P is hereditary if for every G ∈ P and induced subgraph G of G, we have G ∈ P as well. Examples: triangle-free, bipartite, interval graph, planar Observation: Every hereditary property P can be characterized by a (finite or infinite) set F of forbidden induced subgraphs: G ∈ P ⇐⇒ ∀H ∈ F, H ⊆ind G Theorem: If P is hereditary and can be characterized by a finite set F of forbidden induced subgraphs, then the graph modification problems corresponding to P are FPT.
  • 77. Hereditary properties Theorem: If P is hereditary and can be characterized by a finite set F of forbidden induced subgraphs, then the graph modification problems corresponding to P are FPT. Proof: Suppose that every graph in F has at most r vertices. Using brute force, we can find in time O(nr ) a forbidden subgraph (if exists). If a forbidden subgraph exists, then we have to delete one of r the at most r vertices or add/delete one of the at most 2 edges ⇒ Branching factor is a constant c depending on F. The search tree has at most ck leaves and the work to be done at each node is O(nr ).
  • 78. Cluster Editing Task: Given a graph G and an integer k, add/remove at most k edges such that every component is a clique in the resulting graph.
  • 79. Cluster Editing Task: Given a graph G and an integer k, add/remove at most k edges such that every component is a clique in the resulting graph. Property P: every component is a clique. Forbidden induced subgraph: O∗ (3k ) time algorithm.
  • 80. Chordal Completion Definition: A graph is chordal if it does not contain an induced cycle of length greater than 3. Chordal Completion: Given a graph G and an integer k, add at most k edges to G to make it a chordal graph.
  • 81. Chordal Completion Definition: A graph is chordal if it does not contain an induced cycle of length greater than 3. Chordal Completion: Given a graph G and an integer k, add at most k edges to G to make it a chordal graph. The forbidden induced subgraphs are the cycles of length greater 3 ⇒ Not a finite set!
  • 82. C HORDAL CCompletionGiven a graph G and an integer k Chordal OMPLETION : Definition: A graph is chordal if it does not contain an induced to Gcyclemake it greater than 3. to of length a chordal graph. Chordal Completion: Given a graph G and an integer k, add The at most k edges to G to make it a chordal graph. cycles of length g forbidden induced subgraphs are the ⇒ Not a finite set! subgraphs are the cycles of length greater 3 The forbidden induced ⇒ Not a finite set! Lemma: AtAt least k − 3 3 edgesneededneededato make a k -cyc Lemma: least k − edges are are to make k-cycle chordal. Proof: By induction. k = 3 is trivial. Proof: By induction. k = 3 is trivial. Ck
  • 83. C HORDAL CCompletion Chordal OMPLETION : Given a graph G and an integer k , Definition: A graph is chordal if it does not contain an induced to Gcycle make it a chordal graph. to of length greater than 3. Chordal Completion: Given a graph G and an integer k, add Theat most k edges to G to make it a chordal graph. cycles of length gr forbidden induced subgraphs are the ⇒ Not a finite set! subgraphs are the cycles of length greater 3 The forbidden induced ⇒ Not a finite set! Lemma: AtAt least k − 33 edges needed to make tok-cycle a k -cycle Lemma: least k − edges are are needed a make chordal. Proof: By induction. k = 3 is trivial. Proof: By induction. k = 3 is trivial. Cx : x − 3 edges Cx Cx : x − 3 edges Ck−x+2 : k − x − 1k−x+2 : k − x − C edges Ck Ck : (x − 3) + (k − x : (x + Ck − 1) −3)+(k −x Ck−x+2 1 = k − 3 edges edges
  • 84. Chordal Completion Algorithm: Find an induced cycle C of length at least 4 (can be done in polynomial time). If no such cycle exists ⇒ Done! If C has more than k + 3 vertices ⇒ No solution! Otherwise, one of the |C| − |C| ≤ (k + 3)(k + 2)/2 − k = O(k 2 ) 2 missing edges has to be added ⇒ Branch! Size of the search tree is k O(k) .
  • 85. C HORDAL C OMPLETION – more efficiently Chordal Completion – more efficiently Definition: Triangulation of a cycle. Definition: Triangulation of a cycle. Ck Lemma: Every chordal supergraph of a cycle C contains a triangulation of the Lemma: cycle C . Every chordal supergraph of a cycle C contains a Lemma: The number the cycle C. triangulation of of ways a cycle of length k can be triangulated is exactly the − 2)-nd Catalan number (k Lemma: Thenumber of ways a cycle of length k can be triangulated is exactly the (k − 2)-nd Catalan number 1 2(k − 2) k−3 Ck−2 = 4 . k −1 k −2 1 2(k − 2) Ck−2 = ≤ 4k−3 . k−1 k−2 Fixed Parameter Algorithms – p.46/98
  • 86. Chordal Completion – more efficiently Algorithm: Find an induced cycle C of length at least 4 (can be done in polynomial time). If no such cycle exists ⇒ Done! If C has more than k + 3 vertices ⇒ No solution! Otherwise, one of the ≤ 4|C|−3 triangulations has to be in the solution ⇒ Branch! Claim: Search tree has at most Tk = 4k leaves. Proof: By induction. Number of leaves is at most Tk ≤ 4|C|−3 · Tk−(|C|−3) ≤ 4|C|−3 · 4k−(|C|−3) = 4k .
  • 87. Iterative compression FPT algorithmic techniques Significant advances in the past 20 years or so (especially in recent years). Powerful toolbox for designing FPT algorithms: Bounded Search Tree Kernelization Color coding Graph Minors Theorem Treewidth Iterative compression Fixed Parameter Algorithms – p.8/98
  • 88. Iterative compression A surprising small, but very powerful trick. Most useful for deletion problems: delete k things to achieve some property. Demonstration: Odd Cycle Transversal aka Bipartite Deletion aka Graph Bipartization: Given a graph G and an integer k, delete k vertices to make the graph bipartite. Forbidden induced subgraphs: odd cycles. There is no bound on the size of odd cycles.
  • 89. Bipartite Deletion Solution based on iterative compression: Step 1: Solve the annotated problem for bipartite graphs: Given a bipartite graph G, two sets B, W ⊆ V (G), and an integer k, find a set S of at most k vertices such that G S has a 2-coloring where B S is black and W S is white.
  • 90. Bipartite Deletion Solution based on iterative compression: Step 1: Solve the annotated problem for bipartite graphs: Given a bipartite graph G, two sets B, W ⊆ V (G), and an integer k, find a set S of at most k vertices such that G S has a 2-coloring where B S is black and W S is white. Step 2: Solve the compression problem for general graphs: Given a graph G, an integer k, and a set S of k + 1 vertices such that G S is bipartite, find a set S of k vertices such that G S is bipartite.
  • 91. Bipartite Deletion Solution based on iterative compression: Step 1: Solve the annotated problem for bipartite graphs: Given a bipartite graph G, two sets B, W ⊆ V (G), and an integer k, find a set S of at most k vertices such that G S has a 2-coloring where B S is black and W S is white. Step 2: Solve the compression problem for general graphs: Given a graph G, an integer k, and a set S of k + 1 vertices such that G S is bipartite, find a set S of k vertices such that G S is bipartite. Step 3: Apply the magic of iterative compression. . .
  • 92. Step 1: The annotated problem The annotated problem Step 1: Given a bipartite graph G, two sets B, W ⊆ V (G), and an integer Given a bipartite graph G, two sets B, W ⊆ V (G ), and an integer k , find a set S of k, find a set S of at most k vertices such that G S has a at most k vertices such that G S has a 2-coloring where B S is black and W S 2-coloring where B S is black and W S is white. is white. B W
  • 93. Step 1: The annotatedStep 1: The annotated problem problem Given a bipartite graph G, two sets B, W ⊆ V (G), and an integer Givenfind a set S of at mostsets B, W ⊆ V (Gthat G S has a , find a set S of k, a bipartite graph G, two k vertices such ), and an integer k at most k vertices such that G S hasand W S is white. S is black and W S 2-coloring where B S is black a 2-coloring where B is white. B0 W0 B W Find an arbitrary 2-coloring (B0 , W0 ) of G . Find an arbitrary 2-coloring (B0 , W0 ) of G.
  • 94. Step 1: The annotated problem Given Given a bipartite G, two G, two sets ⊆ V (G⊆, V (G), and an integer a set S a bipartite graph graph sets B, W B, W ) and an integer k , find k, find a set S of at most k vertices such that G S has a at most k vertices such that G S has a 2-coloring where B S is black and W 2-coloring where B S is black and W S is white. is white. B0 W0 C B C W Find an arbitrary 2-coloring (B0 , W0 ) of G . Find an arbitrary 2-coloring (B0 , W0 ) of G. C := (B0:= W ) ∪ (W) ∪ (W should should change while Rwhile 0 ∩ B) ∪ (W0 ∩ W C ∩ (B0 ∩ W 0 ∩ B) 0 ∩ B) change color, color, := (B shouldR := (B0 ∩ B) ∪ (W0 ∩ W ) should remain the same color. remain the same color.
  • 95. Step 1: The annotated problem Given aGiven a bipartite G, two G, two sets ⊆ V (G ),V (G), and an integer a set bipartite graph graph sets B, W B, W ⊆ and an integer k , find k vertices such at G k vertices such that G S S t mostk, find a set S ofthatmostS has a 2-coloring where Bhas ais black and W 2-coloring where B S is black and W S is white. s white. B0 W0 R C B C R W Find an arbitrary 2-coloring (B0 , W0 ) of G . Find an arbitrary 2-coloring (B0 , W0 ) of G. C := (B0 ∩ W ) ∪∩ W0) ∩ B) should should change while R := (B0 ∩ B) ∪ (W0 ∩ C := (B0 (W ∪ (W0 ∩ B) change color, color, while hould remain the same (W0 ∩ W ) should remain the same color. R := (B0 ∩ B) ∪ color. Lemma: G S hasthehas the required 2-coloring only if only if S Lemma: G S required 2-coloring if and if and S separates C and R , separates C and R, i.e., no component of G S contains vertices o component of G S contains vertices from both C S and R S . from both C S and R S.
  • 96. Step 1: The annotated problem Lemma: G S has the required 2-coloring if and only if S separates C and R, i.e., no component of G S contains vertices from both C S and R S. Proof: ⇒ In a 2-coloring of G S, each vertex either remained the same color or changed color. Adjacent vertices do the same, thus every component either changed or remained. ⇐ Flip the coloring of those components of G S that contain vertices from C S. No vertex of R is flipped. Algorithm: Using max-flow min-cut techniques, we can check if there is a set S that separates C and R. It can be done in time O(k|E(G)|) using k iterations of the Ford-Fulkerson algorithm.
  • 97. Step 2: The compression problem Given a graph G, an integer k, and a set S of k + 1 vertices such Given that G S ,is bipartite, findand a S ofS vertices 1 vertices G S that G a graph G an integer k , a set set k of k + such that such is bipartite, find a set S of k vertices such that G S is bipartite. bipartite. S
  • 98. Step 2: The compression problem Given a graph G, an integer k, and a set S of k + 1 vertices such Given a graph G , an integer k , and a set S of k + 1 vertices such that G that G S is bipartite, find a set S of k vertices such that G S is bipartite, find a set S of k vertices such that G S is bipartite. bipartite. S black white deleted Branch 3k+1 k+1 cases: each vertex of is is either black, white, or Branch intointo 3cases: each vertex of S S either black, white, or deleted. deleted. Trivial check: no edge between two black or two white vertices. Trivial check: no edge between two black or two white vertices.
  • 99. Step 2: The compression problem Given a graph G, an integer k, and a set S of k + 1 vertices such Given a graph G , an integer k , and a set S of k + 1 vertices such that G S that G S is bipartite, find a set S of k vertices such that G S is bipartite, find a set S of k vertices such that G S is bipartite. bipartite. W S black white deleted k+1 k+1 Branch into into 3cases: each vertex of S of S is either black, white, or Branch 3 cases: each vertex is either black, white, or deleted. Trivial check: no edge between two black or two white vertices. deleted. Neighbors check: black vertices in S two black or two and the neighbors of the Trivial of the no edge between should be white white vertices. white vertices in S should be black.in S should be white and the Neighbors of the black vertices neighbors of the white vertices in S should be black.
  • 100. Step 2: The compression problem Given a graph G , an integer k , and and a S of kof k + 1 vertices such G S Given a graph G, an integer k, a set set S + 1 vertices such that that G S is bipartite, find a set S of k vertices such that G S is bipartite, find a set S of k vertices such that G S is bipartite. bipartite. W B S black white deleted k+1 cases: each vertex Branch into 3k+1 3 Branch into cases: each vertex of Sofis either black, white, or deleted. S is either black, white, or deleted. Trivial check: no edge between two black or two white vertices. Trivial check: no edge between two black or two white vertices. Neighbors of the black vertices in Sinshould be white andand the Neighbors of the black vertices S should be white the neighbors of th white vertices in S should vertices in S should be black. neighbors of the white be black.
  • 101. Step 2: The compression problem Step 2: The compression problem Given a graph G, an integer k, and a set S of k + 1 vertices such that G S is bipartite, find a set S of k vertices such that G S is bipartite. a graph G , an integer k , and a set S of k + 1 vertices such that G S is Given bipartite, find a set S of k vertices such that G S is bipartite. W B The vertices of S can be disregarded. Thus we need to solve the annotated problem can be disregarded. Thus we G S .solve the annotated The vertices of S on the bipartite graph need to Running time: O(3k · k|E(G)|) time. problem on the bipartite graph G S . Running time: O(3k · k|E (G )|) time. Fixed Parameter Algorithms – p.53/98
  • 102. Step 3: Iterative compression How do we get a solution of size k + 1?
  • 103. Step 3: Iterative compression How do we get a solution of size k + 1? We get it for free!
  • 104. Step 3: Iterative compression How do we get a solution of size k + 1? We get it for free! Let V (G) = {v1 , . . . , vn } and let Gi be the graph induced by {v1 , . . . , vi }. For every i, we find a set Si of size k such that Gi Si is bipartite. For Gk , the set Sk = {v1 , . . . , vk } is a trivial solution. If Si−1 is known, then Si−1 ∪ {vi } is a set of size k + 1 whose deletion makes Gi bipartite ⇒ We can use the compression algorithm to find a suitable Si in time O(3k · k|E(Gi )|).
  • 105. Step 3: Iterative Compression Bipartite-Deletion(G, k) 1. Sk = {v1 , . . . , vk } 2. for i := k + 1 to n 3. Invariant: Gi−1 Si−1 is bipartite. 4. Call Compression(Gi , Si−1 ∪ {vi }) 5. If the answer is “NO” ⇒ return “NO” 6. If the answer is a set X ⇒ Si := X 7. Return the set Sn Running time: the compression algorithm is called n times and everything else can be done in linear time ⇒ O(3k · k|V (G)| · |E(G)|) time algorithm.
  • 106. Color coding FPT algorithmic techniques Significant advances in the past 20 years or so (especially in recent years). Powerful toolbox for designing FPT algorithms: Bounded Search Tree Kernelization Color coding Graph Minors Theorem Treewidth Iterative compression Fixed Parameter Algorithms – p.8/98
  • 107. Color coding Works best when we need to ensure that a small number of “things” are disjoint. We demonstrate it on the problem of finding an s-t path of length exactly k. Randomized algorithm, but can be derandomized using a standard technique. Very robust technique, we can use it as an “opening step” when investigating a new problem.
  • 108. k-Path Task: Given a graph G, an integer k, two vertices s, t, find a simple s-t path with exactly k internal vertices. Note: Finding such a walk can be done easily in polynomial time. Note: The problem is clearly NP-hard, as it contains the s-t Hamiltonian Path problem. The k-Path algorithm can be used to check if there is a cycle of length exactly k in the graph.
  • 109. k-Path Assign colors from [k] to vertices V (G) {s, t} uniformly and Assign colors from [k] to vertices V (G ) {s, t} uniformly and independently at independently at random. random. s t
  • 110. k-Path Assign colors from [k] to vertices V t} {s, t} uniformly and Assign colors from [k] to vertices V (G ) {s,(G)uniformly and independently random. independently at random. s t
  • 111. k-Path Assign colors from [k]from [k] to V (G ) {s, (G) {s, t} and independently at Assign colors to vertices vertices V t} uniformly uniformly and independently at random. random. s t there if there is a s -t path: a path: a path where appears exactly Check ifCheck is a colorful colorful s-tpath where each coloreach color once onappears exactly once output “YES” or vertices; output “YES” the internal vertices; on the internal “NO”. or “NO”. Fixed Parameter Algorithms – p.69
  • 112. k-Path Assign colors from [k]from [k] to V (G ) {s, (G) {s, t} and independently at Assign colors to vertices vertices V t} uniformly uniformly and independently at random. random. s t there if there is a s -t path: a path: a path where appears exactly Check ifCheck is a colorful colorful s-tpath where each coloreach color once onappears exactly once output “YES” or vertices; output “YES” the internal vertices; on the internal “NO”. or “NO”. If there is no s-t k-path: no such colorful path exists ⇒ “NO”. If there is an s-t k-path: the probability that such a path is colorful is k! ( k )k > e k = e−k , kk k thus the algorithm outputs “YES” with at least that probability. Fixed Parameter Algorithms – p.69
  • 113. Error probability Useful fact: If the probability of success is at least p, then the probability that the algorithm does not say “YES” after 1/p repetitions is at most 1/p (1 − p)1/p < e−p = 1/e ≈ 0.38 Thus if p > e−k , then error probability is at most 1/e after ek repetitions. Repeating the whole algorithm a constant number of times can make the error probability an arbitrary small constant. For example, by trying 100 · ek random colorings, the probability of a wrong answer is at most 1/e100 .
  • 114. Error probability Useful fact: If the probability of success is at least p, then the probability that the algorithm does not say “YES” after 1/p repetitions is at most 1/p (1 − p)1/p < e−p = 1/e ≈ 0.38 Thus if p > e−k , then error probability is at most 1/e after ek repetitions. Repeating the whole algorithm a constant number of times can make the error probability an arbitrary small constant. For example, by trying 100 · ek random colorings, the probability of a wrong answer is at most 1/e100 . It remains to see how a colorful s-t path can be found. Method 1: Trying all permutations. Method 2: Dynamic programming.
  • 115. Method 1: Trying all permutations Method 1: Trying all permutations The colors encountered on a colorful s-t path form a permutation π of {1, 2, . . . , k}: The colors encountered on a colorful s -t path form a permutation π of {1, 2, ... , k}: s t π(1) π(2) ... π(k) We try all possible k! permutations. For a fixed π, it is easy to check if there is a We try all possiblecolors. path with this order of k! permutations. For a fixed π, it is easy to check if there is a path with this order of colors.
  • 116. Method 1: Trying all permutations Method 1: Trying all permutations We try all possible k! permutations. For a fixed π, it is easy to check if there is k! permutations.this a fixed π, it colors.to check if there is a We try all possible a path with For order of is easy path with this order of colors. s t π(1) π(2) ... π(k) Edges connecting nonadjacent color classes are removed. The remaining edges are directed. Edges connecting nonadjacent color classes are removed. All we need to check if there is a directed s -t path. Running time is O(k! · |E (G )|). Fixed Parameter Algorithms – p.72/98
  • 117. Method 1: Trying all permutations all permutations Method 1: Trying We try all possible k! permutations. For a fixed π, it is easy to check ifall possible k! path with this a fixed πof colors.to check if there is a We try there is a permutations. For order , it is easy path with this order of colors. s t π(1) π(2) ... π(k) Edges connecting nonadjacent color classes are removed. Edges connectingare directed. The remaining edges nonadjacent color classes are removed. The remaining edges area directed.t path. All we need to check if there is directed s - Running time is O(k! · |E (G )|). Fixed Parameter Algorithms – p.72/98
  • 118. Method 1: Trying all permutations Method 1: Trying all permutations We try all possible k! permutations. For a fixed π, it is easy to We try all possible k! permutations. For a fixed π, it is easy to check if there is a check if there is a path with this order of colors. path with this order of colors. s t π(1) π(2) ... π(k) Edges connecting nonadjacent color classes are removed. The remaining edges are directed. Edges connecting nonadjacent color classes are removed. AllThe remaining edges are directed s -t path. we need to check if there is a directed. Running time is O(k!check )|). there All we need to · |E (G if is a directed s-t path. Fixed Parameter Algorithms – p.72/98 Running time is O(k! · |E(G)|).
  • 119. Method 2: Dynamic Programming We introduce 2k · |V (G)| Boolean variables: x(v, C) = TRUE for some v ∈ V (G) and C ⊆ [k] There is an s-v path where each color in C appears exactly once and no other color appears.
  • 120. Method 2: Dynamic Programming We introduce 2k · |V (G)| Boolean variables: x(v, C) = TRUE for some v ∈ V (G) and C ⊆ [k] There is an s-v path where each color in C appears exactly once and no other color appears. Clearly, x(s, ∅) = TRUE. Recurrence for vertex v with color r: x(v, C) = x(u, C {r}) uv∈E(G)
  • 121. Method 2: Dynamic Programming We introduce 2k · |V (G)| Boolean variables: x(v, C) = TRUE for some v ∈ V (G) and C ⊆ [k] There is an s-v path where each color in C appears exactly once and no other color appears. Clearly, x(s, ∅) = TRUE. Recurrence for vertex v with color r: x(v, C) = x(u, C {r}) uv∈E(G) If we know every x(v, C) with |C| = i, then we can determine every x(v, C) with |C| = i + 1 ⇒ All the values can be determined in time O(2k · |E(G)|). There is a colorful s-t path ⇐⇒ x(v, [k]) = TRUE for some neighbor of t.
  • 122. Derandomization Using Method 2, we obtain a O∗ ((2e)k ) time algorithm with constant error probability. How to make it deterministic? Definition: A family H of functions [n] → [k] is a k-perfect family of hash functions if for every S ⊆ [n] with |S| = k, there is a h ∈ H such that h(x) = h(y) for any x, y ∈ S, x = y.
  • 123. Derandomization Using Method 2, we obtain a O∗ ((2e)k ) time algorithm with constant error probability. How to make it deterministic? Definition: A family H of functions [n] → [k] is a k-perfect family of hash functions if for every S ⊆ [n] with |S| = k, there is a h ∈ H such that h(x) = h(y) for any x, y ∈ S, x = y. Instead of trying O(ek ) random colorings, we go through a k-perfect family H of functions V (G) → [k]. If there is a solution ⇒ The internal vertices S are colorful for at least one h ∈ H ⇒ Algorithm outputs “YES”.
  • 124. Derandomization Using Method 2, we obtain a O∗ ((2e)k ) time algorithm with constant error probability. How to make it deterministic? Definition: A family H of functions [n] → [k] is a k-perfect family of hash functions if for every S ⊆ [n] with |S| = k, there is a h ∈ H such that h(x) = h(y) for any x, y ∈ S, x = y. Instead of trying O(ek ) random colorings, we go through a k-perfect family H of functions V (G) → [k]. If there is a solution ⇒ The internal vertices S are colorful for at least one h ∈ H ⇒ Algorithm outputs “YES”. Theorem: There is a k-perfect family of functions [n] → [k] having size 2O(k) log n (and can be constructed in time polynomial in the size of the family). ⇒ There is a deterministic 2O(k) · nO(1) time algorithm for the k-Path problem.
  • 125. k-Disjoint Triangles Task: Given a graph G and an integer k, find k vertex disjoint triangles. Step 1: Choose a random coloring V (G) → [3k].
  • 126. k-Disjoint Triangles Task: Given a graph G and an integer k, find k vertex disjoint triangles. Step 1: Choose a random coloring V (G) → [3k]. Step 2: Check if there is a colorful solution, where the 3k vertices of the k triangles use distinct colors. Method 1: Try every permutation π of [3k] and check if there are triangles with colors (π(1), π(2), π(3)), (π(4), π(5), π(6)), . . . Method 2: Dynamic programming. For C ⊆ [3k] and |C| = 3i, let x(C) = TRUE if and only if there are |C|/3 disjoint triangles using exactly the colors in C. x(C) = (x(C {c1 , c2 , c3 }) ∧ ∃ with colors c1 , c2 , c3 ) {c1 ,c2 ,c3 }⊆C
  • 127. k-Disjoint Triangles Step 3: Colorful solution exists with probability at least e−3k , which is a lower bound on the probability of a correct answer. Running time: constant error probability after e3k repetitions ⇒ running time is O∗ ((2e)3k ) (using Method 2). Derandomization: 3k-perfect family of functions instead of random coloring. Running time is 2O(k) · nO(1) .
  • 128. Color coding We have seen that color coding can be used to find paths, cycles of length k, or a set of k disjoint triangles. What other structures can be found efficiently with this technique? The key is treewidth: Theorem: Given two graph H, G, it can be decided if H is a subgraph of G in time 2O(|V (H)|) · |V (G)|O(w) , where w is the treewidth of G. Thus if H belongs to a class of graphs with bounded treewidth, then the subgraph problem is FPT.