12.07.2015 Views

Fast Exponential-Time Algorithms to solve NP-complete ... - Lita

Fast Exponential-Time Algorithms to solve NP-complete ... - Lita

Fast Exponential-Time Algorithms to solve NP-complete ... - Lita

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong><strong>to</strong> <strong>solve</strong> <strong>NP</strong>-<strong>complete</strong> problems exactlyDieter KratschLabora<strong>to</strong>ire d’Informatique Théorique et AppliquéeUniversité Paul Verlaine - Metz57000 Metz Cedex 01FranceCIRM workshop on graph decompositions - Marseille, FranceApril 7–11, 2008


2/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>IntroductionMotivationHow <strong>to</strong> attack <strong>NP</strong>-hard problemsVarious techniques have been developped <strong>to</strong> attack <strong>NP</strong>-hardproblems :approximation algorithmsparameterized algorithmsrandomized algorithmsrestricted inputsexponential-time algorithms


3/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>IntroductionMotivationExact <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>one of the oldest methodsdating back <strong>to</strong> the early sixtiesDavis, Putnam (1960) and Held, Karp (1962)tries <strong>to</strong> cope with <strong>NP</strong>-<strong>complete</strong>ness in the strongest senseanalysis of worst-case running time


52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>IntroductionMotivationHow good can exponential algorithms be ?For all inputs of size n, can we reach worst-case running timeO(n!)O(2 n2 )O(10 n )O(2 n )O(c n ) for some constant c ≥ 1 sufficiently close <strong>to</strong> 1or even a subexponential algorithm ? ?


52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>IntroductionMotivationWhy Studying <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong> ?certain applications require exact solutions of <strong>NP</strong>-hardproblemsapproximation algorithms and fixed parameter algorithms arenot always satisfac<strong>to</strong>ryreduction of the base of the exponential running time, sayfrom O(2 n ) <strong>to</strong> O(1.4 n ), increases the size of the instancessolvable within a given amount of time by a constantmultiplicative fac<strong>to</strong>rrunning a given exponential algorithm on a faster computercan enlarge the mentioned size only by an additive fac<strong>to</strong>rleads <strong>to</strong> a better understanding of <strong>NP</strong>-hard problemsinitiates interesting new combina<strong>to</strong>rial and algorithmicchallenges


6/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>IntroductionHis<strong>to</strong>rySome Old <strong>Algorithms</strong>Before 1990TSP O ∗ (2 n ) Held, Karp (1962)COLORING O(2.4422 n ) Lawler (1976)3-COLORING O(1.4422 n ) Lawler (1976)3-SAT O(1.6181 n ) Speckenmeyer,Monien (1985)INDEPEDENT SET O(1.2108 n ) Robson (1986)


7/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>IntroductionHis<strong>to</strong>rySome New <strong>Algorithms</strong>Last DecadeBANDWIDTH O ∗ (10 n ) Feige, Kilian (2000)3-SAT O(1.4802 n ) Dantsin et al. (2002)MAXIMUM CUT O(1.7315 n ) Williams (ICALP 2004)TREEWIDTH O(1.9601 n ) Fomin et al. (ICALP 2004)3-COLORING O(1.3289 n ) Beigel, Eppstein (2005)DOMINATING SET O(1.5137 n ) Fomin et al. (ICALP 2005)COLORING O ∗ (2 n ) Björklund, Husfeldt (FOCS 2006)


8/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>IntroductionHis<strong>to</strong>ryOutline1 Introduction2 Independence and Coloring3 Dynamic Programming4 Iterative Compression5 Inclusion Exclusion6 Branching7 Conclusions


9/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>Independence and ColoringIndependent sets in graphsIndependent SetsDefinition (Independent Set)Let G = (V , E) be a graph. A subset I ⊆ V of vertices of G is anindependent set of G if no two vertices in I are adjacent.Definition (Maximum Independent Set (MIS))Given a graph G = (V , E), compute an maximum independent se<strong>to</strong>f G.abdcfe


9/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>Independence and ColoringIndependent sets in graphsIndependent SetsDefinition (Independent Set)Let G = (V , E) be a graph. A subset I ⊆ V of vertices of G is anindependent set of G if no two vertices in I are adjacent.Definition (Maximum Independent Set (MIS))Given a graph G = (V , E), compute an maximum independent se<strong>to</strong>f G.abdcfe


10/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>Independence and ColoringColoring a graphColoringDefinition (Coloring)A function c : V → {1, 2, ..., k} is a proper coloring of a graphG = (V , E) if uv ∈ E implies c(u) ≠ c(v)Definition (Minimum Coloring)Given a graph G = (V , E), compute a coloring of G with thesmallest number of colors.abdcfe


10/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>Independence and ColoringColoring a graphColoringDefinition (Coloring)A function c : V → {1, 2, ..., k} is a proper coloring of a graphG = (V , E) if uv ∈ E implies c(u) ≠ c(v)Definition (Minimum Coloring)Given a graph G = (V , E), compute a coloring of G with thesmallest number of colors.abdcfe


11/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>Dynamic ProgrammingDynamic ProgrammingClassical algorithm design techniqueO(n 2 2 n ) time algorithm for TSP [Held,Karp ; 1962]O(2.4422 n ) time algorithm for Coloring [Lawler ; 1967]


2/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>Dynamic ProgrammingLawler’s Coloring AlgorithmLet G = (V , E). For every X ⊆ V , compute col(G, X ) := χ(G[X ])by increasing cardinality of X .col(G, ∅) = 0col(G, X ) = 1 + min{col(G, X − S) :S maximal independent set of G[X ]}Thus χ(G) = col(G, V ).


13/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>Dynamic ProgrammingAnalysis of Running <strong>Time</strong>A graph on i vertices has at most 3 i/3 maximal independent setsand they can be listed in time O ∗ (3 i/3 ).Thus up <strong>to</strong> a polynomial fac<strong>to</strong>r the running time isn∑i=0( ni)3 i/3 = (1 + 3√ 3) nThe running time of Lawler’s coloring algorithm is O(2.4422 n ).


14/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>Iterative CompressionIterative CompressionNew algorithm design techniqueincremental algorithmIntroduced for parameterized algorithmsReed, Smith, Vetta [2004] : Odd cycle transversal


5/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>Iterative CompressionNotationinput graph G = (V , E)v 1 , v 2 , . . . , v n sequence of the vertices of Gfor all i = 1, 2, . . . , n, V i = {v 1 , v 2 , . . . , v i } and G i = G[V i ]B i maximum independent set of G i , i.e. |B i | = α(G i )A i = V i \ B i


6/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>Iterative CompressionBasic ApproachFor i = 1, 2, . . . , n, compute α(G i ) and a maximum independentset B i of G i . Thus B n is a maximum independent set of G n = G.Compression (Expansion) : Given a maximum independent set B iof G i , compute a maximum independent set of G i+1 = G i + v i+1 .How are we making use of the maximum independent set B i ?


6/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>Iterative CompressionBasic ApproachFor i = 1, 2, . . . , n, compute α(G i ) and a maximum independentset B i of G i . Thus B n is a maximum independent set of G n = G.Compression (Expansion) : Given a maximum independent set B iof G i , compute a maximum independent set of G i+1 = G i + v i+1 .How are we making use of the maximum independent set B i ?


7/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>Iterative CompressionCompression (Expansion)Two possible cases1. α(G i+1 ) = α(G i ) and B i+1 = B i .2. α(G i+1 ) = α(G i ) + 1, v i+1 ∈ B i+1 . ThusB i+1 = {v i+1 } ∪ A ′ ∪ B ′ , where A ′ ⊆ A i , B ′ ⊆ B i and A ′independent set.To find out whether α(G i+1 ) = α(G i ) + 1, compute for everymaximal independent set A ′ of G[A i − N[v i+1 ]] in time O(n 2.5 ) amaximum independent set of the bipartite graphG[(A ′ ∪ B i ) − N[v i+1 ]].


8/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>Iterative CompressionSpeed up the CompressionLet |A i | = an and |B i | ≤ (1 − a)n. Depending on the value of a :1. Either check all at most 3 an/3 maximal independent sets A ′ ofG[A i ]2. Or check all independent sets A ′ ⊆ A i − N[v i+1 ] with |A ′ | ≤ |B i |Running times (up <strong>to</strong> polynomial fac<strong>to</strong>r) :1. (3 a/3 ) n2. ( )an(1−a)nBalancing with a ≈ 0.8 : MAXIMUM INDEPENDENT SET can be<strong>solve</strong>d without Branching in time O(1.3196 n ).


19/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>Inclusion ExclusionInclusion Exclusion MethodOld method <strong>to</strong> design exponential-time algorithmsIntroduced by Karp 1982 (or earlier)Based on inclusion-exclusion principle of countingSolving optimization or decision problems by counting


0/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>Inclusion ExclusionBjörklund-Husfeldt-Koivis<strong>to</strong> AlgorithmU set of size nS family of subsets of U, enumerable in time O ∗ (2 n )S[X ] = {S ∈ S : S ∩ X = ∅}s[X ] = |S[X ]|S (i) = {S ∈ S : |S| = i} subfamily of i-setss (i) [X ] = |S (i) [X ]| number of i-sets avoiding X


21/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>Inclusion ExclusionInclusion Exclusion FormulaFor a positive integer k, let c k = c k (S) denote the number of(possibly overlapping) k-covers, that is the number of ways <strong>to</strong>choose S 1 , S 2 , . . . , S k ∈ S with replacement such thatS 1 ∪ S 2 ∪ · · · ∪ S k = U.The number of k-covers c k can be computed as followsInclusion Exclusion Formulac k = ∑ (−1) |X | s[X ] kX ⊆U


2/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>Inclusion ExclusionComputing all s[X ]’s in time and space O ∗ (2 n )Build a table with 2 n entries containing s[X ] for all X ⊆ U. Thenevaluate the inclusion-exclusion formula in time O ∗ (2 n ).For instance, for every subset W ⊆ U disjoint from X , lets W [X ] denote the number of sets S ∈ S such that W ⊆ Sand S ∩ X = ∅.s W [X ] = s W [X ∪ {v}] + s W ∪{v} [X ] holds for all mutuallydisjoint X , W , and vcompute s[X ] = s ∅ [X ] recursively in time O ∗ (2 n ) and spaceO ∗ (2 n )


23/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>BranchingBranching <strong>Algorithms</strong>one of the major techniques <strong>to</strong> design exponential-timealgorithmstypically polynomial space algorithmDavis, Putnam (1960) ; Tarjan, Trojanowski (1977)difficult <strong>to</strong> analyse the worst case running time


4/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>BranchingBranch & ReduceBranch & Reduce <strong>Algorithms</strong>Branch & Reduce algorithms(also called backtracking or search tree algorithms) :recursively applied <strong>to</strong> problem instances using Branching rulesand Reduction rules.Branching rules : solving the problem by recursively solvingsmaller instancesReduction rules :- simplify the instance- (typically) reduce the size of the instance


5/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>BranchingSearch TreesSearch TreesSearch Tree :used <strong>to</strong> illustrate and analyse an execution of a Branch &Reduce algorithmnodes : assigns <strong>to</strong> each node a <strong>solve</strong>d problem instanceroot : assigns the input <strong>to</strong> the rootchild : each instance (subproblem) reached by a branching ruleis assigned <strong>to</strong> a child (of the node of the original problem)


6/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>BranchingSearch TreesA search treeV1SelectDiscardV2V4SDSDV3V5SDSD


7/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>Branching<strong>Time</strong> AnalysisAnalysisAnalysing Branch & Reduce algorithms :Correctness and (Worst Case) Running <strong>Time</strong>Analysis of the Running <strong>Time</strong> :To obtain an Upper Bound on the maximum number of nodesof the search tree (for an input of size n) :1 Define a Measure for a problem instance.2 Lower bound the progress made by the algorithm at eachbranching step.3 Compute the collection of recurrences for all branching andreduction rules.4 Solve all those recurrences (<strong>to</strong> obtain a running time of theform O(αi n ) for each).5 Take the worst case over all solutions.See the surveys [Woeginger (2003), Fomin et al. (2005)].


7/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>Branching<strong>Time</strong> AnalysisAnalysisAnalysing Branch & Reduce algorithms :Correctness and (Worst Case) Running <strong>Time</strong>Analysis of the Running <strong>Time</strong> :To obtain an Upper Bound on the maximum number of nodesof the search tree (for an input of size n) :1 Define a Measure for a problem instance.2 Lower bound the progress made by the algorithm at eachbranching step.3 Compute the collection of recurrences for all branching andreduction rules.4 Solve all those recurrences (<strong>to</strong> obtain a running time of theform O(αi n ) for each).5 Take the worst case over all solutions.See the surveys [Woeginger (2003), Fomin et al. (2005)].


7/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>Branching<strong>Time</strong> AnalysisAnalysisAnalysing Branch & Reduce algorithms :Correctness and (Worst Case) Running <strong>Time</strong>Analysis of the Running <strong>Time</strong> :To obtain an Upper Bound on the maximum number of nodesof the search tree (for an input of size n) :1 Define a Measure for a problem instance.2 Lower bound the progress made by the algorithm at eachbranching step.3 Compute the collection of recurrences for all branching andreduction rules.4 Solve all those recurrences (<strong>to</strong> obtain a running time of theform O(αi n ) for each).5 Take the worst case over all solutions.See the surveys [Woeginger (2003), Fomin et al. (2005)].


7/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>Branching<strong>Time</strong> AnalysisAnalysisAnalysing Branch & Reduce algorithms :Correctness and (Worst Case) Running <strong>Time</strong>Analysis of the Running <strong>Time</strong> :To obtain an Upper Bound on the maximum number of nodesof the search tree (for an input of size n) :1 Define a Measure for a problem instance.2 Lower bound the progress made by the algorithm at eachbranching step.3 Compute the collection of recurrences for all branching andreduction rules.4 Solve all those recurrences (<strong>to</strong> obtain a running time of theform O(αi n ) for each).5 Take the worst case over all solutions.See the surveys [Woeginger (2003), Fomin et al. (2005)].


7/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>Branching<strong>Time</strong> AnalysisAnalysisAnalysing Branch & Reduce algorithms :Correctness and (Worst Case) Running <strong>Time</strong>Analysis of the Running <strong>Time</strong> :To obtain an Upper Bound on the maximum number of nodesof the search tree (for an input of size n) :1 Define a Measure for a problem instance.2 Lower bound the progress made by the algorithm at eachbranching step.3 Compute the collection of recurrences for all branching andreduction rules.4 Solve all those recurrences (<strong>to</strong> obtain a running time of theform O(αi n ) for each).5 Take the worst case over all solutions.See the surveys [Woeginger (2003), Fomin et al. (2005)].


7/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>Branching<strong>Time</strong> AnalysisAnalysisAnalysing Branch & Reduce algorithms :Correctness and (Worst Case) Running <strong>Time</strong>Analysis of the Running <strong>Time</strong> :To obtain an Upper Bound on the maximum number of nodesof the search tree (for an input of size n) :1 Define a Measure for a problem instance.2 Lower bound the progress made by the algorithm at eachbranching step.3 Compute the collection of recurrences for all branching andreduction rules.4 Solve all those recurrences (<strong>to</strong> obtain a running time of theform O(αi n ) for each).5 Take the worst case over all solutions.See the surveys [Woeginger (2003), Fomin et al. (2005)].


8/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>BranchingA Simple Branching AlgorithmThe Algorithm sis1 int sis(G = (V , E)) {2 if(|V | = 0) return 0 ;3 choose a vertex v of minimum degree in G4 return 1 + max{sis(G − N[y]) : y ∈ N[v]} ;5 }


9/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>BranchingA Simple Branching AlgorithmAnalysis of the worst case running timeClassical Analysis and Standard Measure(i.e. the measure of the input size is the number of vertices ofthe input graph).Recurrence :T (n) ≤ (d + 1) · T (n − d − 1),where d is the degree of the chosen vertex v.Solution of recurrence : O((d + 1) n/(d+1) ), being maximumfor d = 2,Running time of sis : O(3 n/3 ).


30/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>BranchingHis<strong>to</strong>ryBranching <strong>Algorithms</strong> for Maximum Independent SetPolynomial Space <strong>Algorithms</strong>O(1.2600 n ) Tarjan, Trojanowski (1977)O(1.2346 n ) Jian (1986)O(1.2278 n ) Robson (1986)<strong>Exponential</strong> Space <strong>Algorithms</strong>O(1.2109 n ) Robson (1986)O(1.1893 n ) Robson (2001) unpublished


1/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>BranchingThe Algorithm of Fomin et al.The Maximum Independent Set Algorithm of Fomin et al.Maximum Independent Setsimple Branch & Reduce algorithmrunning time O(1.2202 n )polynomial spacetime analysis based on Measure and Conquerlower bound of Ω(1.1224 n ) for the (unknown) worst caserunning time of the algorithmthe (known) running time of such Branch & Reduce algorithmmight be “far” from the (unknown) worst case running time of thealgorithm


31/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>BranchingThe Algorithm of Fomin et al.The Maximum Independent Set Algorithm of Fomin et al.Maximum Independent Setsimple Branch & Reduce algorithmrunning time O(1.2202 n )polynomial spacetime analysis based on Measure and Conquerlower bound of Ω(1.1224 n ) for the (unknown) worst caserunning time of the algorithmthe (known) running time of such Branch & Reduce algorithmmight be “far” from the (unknown) worst case running time of thealgorithm


2/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>BranchingThe Algorithm of Fomin et al.The simple Branch & Reduce algorithm of Fomin et al.int mis(G) {(0) if (|V (G)| ≤ 1) return |V (G)| ;(1) if (∃ component C ⊂ G)return mis(C)+mis(G − C) ;(2) if (∃ nodes v and w : N[w] ⊆ N[v])return mis(G − {v}) ;(3) if (∃ a node v with d(v) = 2)return 1+mis(˜G(v)) ;(4) select a node v of maximum degree, which minimizes |E(N(v))| ;return max{mis(G − {v} − M(v)), 1+mis(G − N[v])} ;}


33/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>BranchingThe Algorithm of Fomin et al.Folding a vertex of degree twoSuppose v has degree two and its neighbors u 1 and u 2 arenon-adjacent. Folding the node v of G is the process oftransforming G in<strong>to</strong> a new graph ˜G = ˜G(v) by :(1) adding a new node u 12 ;(2) adding edges between u 12 and the nodes in N(u 1 ) ∪ N(u 2 ) ;(3) removing N[v].Lemma (Folding)For any graph G and for any node v of G with degree two and twonon-adjacent neighbors :α(G) = 1 + α(˜G(v)).


33/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>BranchingThe Algorithm of Fomin et al.Folding a vertex of degree twoSuppose v has degree two and its neighbors u 1 and u 2 arenon-adjacent. Folding the node v of G is the process oftransforming G in<strong>to</strong> a new graph ˜G = ˜G(v) by :(1) adding a new node u 12 ;(2) adding edges between u 12 and the nodes in N(u 1 ) ∪ N(u 2 ) ;(3) removing N[v].Lemma (Folding)For any graph G and for any node v of G with degree two and twonon-adjacent neighbors :α(G) = 1 + α(˜G(v)).


4/52ertices of degree at most two are alw<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>BranchingAlgorithm of Fomin et al.The following simple property holdsAn Exampleolding of a vertex v.v1 23 4 5⇒ 123 4 5


5/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>BranchingThe Algorithm of Fomin et al.Advantages and Disadvantages of FoldingWhy using folding ?The domination rule (2) and Folding (3) guarantee that thecurrent graph has minimum degree 3 whenever the only branchingrule (4) is applied.Disadvantages of foldingFolding may increase the degree of the graph, and thus cannot beused for algorithms on graphs of bounded degree.Folding makes it impossible <strong>to</strong> use Memorization.


36/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>BranchingThe Algorithm of Fomin et al.MirroringDefinitionGiven a node v, a mirror of v is a node u ∈ N 2 (v) such thatN(v) \ N(u) is a (possibly empty) clique. We denote by M(v) theset of mirrors of v.When discarding a node v, one can also discard its mirrors as wellwithout modifying the maximum independent set size.Lemma (Mirroring)For any graph G and for any node v of G :α(G) = max{α(G − {v} − M(v)), 1 + α(G − N[v])}.


36/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>BranchingThe Algorithm of Fomin et al.MirroringDefinitionGiven a node v, a mirror of v is a node u ∈ N 2 (v) such thatN(v) \ N(u) is a (possibly empty) clique. We denote by M(v) theset of mirrors of v.When discarding a node v, one can also discard its mirrors as wellwithout modifying the maximum independent set size.Lemma (Mirroring)For any graph G and for any node v of G :α(G) = max{α(G − {v} − M(v)), 1 + α(G − N[v])}.


e discard a vertex v, we can discar7/52f v is a vertex u ∈ N (v) such that N<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>BranchingThe Algorithm of Fomin et al.(v) the set of mirrors of v. ExampSome Examplesigure 4 Example of mirrors: u is avvuu


x v, we can discard its mirrors as w7/52N (v) such that N(v) \ N(u) is a (p<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>BranchingThe Algorithm Fomin et al.irrors of v. Examples of mirrors areSome Examplesof mirrors: u is a mirror of v.vvvuuu


d its mirrors as well without modif7/52N(v) \ N(u) is a (possibly empty) cl<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>BranchingThe Algorithm Fomin et al.ples of mirrors are given in Figure 4Some Examplesmirror of v.vvvuu


well without modifying the maximum7/52possibly empty) clique. We denote b<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>BranchingThe Algorithm of Fomin et al.e given in Figure 4. Intuitively, wheSome Examplesvvu


8/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>BranchingThe Algorithm of Fomin et al.Measure & ConquerA standard analysis of the worst case running time would establishrunning time O(1.3251 n ) for the algorithm. [Tarjan, TrojanowskiO(1.2600 n ) ! !]A better choice of the measure of a problem instance mayallow <strong>to</strong> obtain a better upper bound on the worst caserunning time of the same algorithm.Thus a nonstandard measure is a <strong>to</strong>ol <strong>to</strong> improve theanalysis of the worst case running time of Branch & Reducealgorithms.


38/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>BranchingThe Algorithm of Fomin et al.Measure & ConquerA standard analysis of the worst case running time would establishrunning time O(1.3251 n ) for the algorithm. [Tarjan, TrojanowskiO(1.2600 n ) ! !]A better choice of the measure of a problem instance mayallow <strong>to</strong> obtain a better upper bound on the worst caserunning time of the same algorithm.Thus a nonstandard measure is a <strong>to</strong>ol <strong>to</strong> improve theanalysis of the worst case running time of Branch & Reducealgorithms.


39/52Note that k = k(G) ≤ |V |, hence α k ≤ α n .<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>BranchingThe Algorithm of Fomin et al.Choice of the Measuren i := number of nodes of degree i in Gn ≥i := number of nodes of degree at least i in GTo analyze the maximum number of nodes of the search treegenerated for an instance G = (V , E), the following measurek = k(G) is used :Measurek(G) = ∑ i≥0w i n i ≤ nThe weights w i ∈ (0, 1] will be fixed such that the base of theexponential upper bound of the running time is minimized.[A computer is needed <strong>to</strong> do this.]


40/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>BranchingThe Algorithm of Fomin et al.Constraints and Linear RecurrencesAnalyzing the reduction rules (2) and (3)leads <strong>to</strong> constraints for the choice of the w i ’sDue <strong>to</strong> the domination rule (2) and the folding rule (3), when webranch, we can assume that, for every node w :(i) deg(w) ≥ 3 ;(ii) w is not dominated and does not dominate any other node.Analyzing the main branching rule (4)establishes a system of linear recurrences for any fixed choice ofthe w i ’s


1/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>BranchingThe Algorithm of Fomin et al.Analyzing the Main Branching Rule ISuppose we branch at a given node v, withN(v) = {u 1 , u 2 , . . . , u d } and d i = d(u i ).We denote by m i = m i (v) the number of nodes of degree i inN(v) :m i = |{u ∈ N(v) : d(u) = i}|.Let p h = p h (v) be the number of nodes in N 2 (v) which haveexactly h neighbors in N(v) :p h = |{w ∈ N 2 (v) : |N(w) ∩ N(v)| = h}|.Note that (at least) the nodes corresponding <strong>to</strong> p d−1 and p d aremirrors of v. Additionally, the number of edges between N(v) andN 2 (v) is p = p(v) = ∑ dh=1 h p h.We also define m ≥i = ∑ j≥i m j and p ≥h = ∑ j≥h p j.


2/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>BranchingThe Algorithm of Fomin et al.Analyzing the Main Branching Rule IILet P[k] be the maximum number of subproblems generated for aninstance of measure k.Reduction of the measure of the problem when discarding a vertexv :∆ OUT = ∆ OUT (v) ≥w d + p d w d + p d−1 w max{3, d−1} +d∑m i ∆ w i .Reduction of the measure of a problem when selecting a vertex v :w d +∆ IN = ∆ IN (v) ≥d∑m i w i + p 1 ∆ w d +i=3i=3d∑p h w max{3,h} .h=2


43/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>BranchingThe Algorithm of Fomin et al.System of Recurrences for the Main Branching RuleSystem of RecurrencesFor all m i and p h such that ∑ di=3 m i = dand ∑ dh=1 h p h = d + m 3 :P[k] ≤ P[k − ∆ OUT ] + P[k − ∆ IN ].Fortunately this can be restricted <strong>to</strong> a finite number of recurrencesby arguing that we may assume d ≤ 7.


4/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>BranchingThe Algorithm of Fomin et al.Optimizing the WeightsConsider an assignment of the weights w 3 , w 4 , w 5 , and w 6 whichsatisfies the initial assumptions and the constraints.It turns out that the number of subproblems that need <strong>to</strong> be<strong>solve</strong>d for a problem of measure k is P[k] ≤ α k , where α > 1 isthe largest real root of the set of equationsα k = α k−∆ OUT+ α k−∆ IN.Thus the estimation of the running time reduces <strong>to</strong> choosing theweights w minimizing α = α(w) (we refer <strong>to</strong> Eppstein’s work onquasi-convex programming for a general treatment of such aproblem).


45/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>BranchingThe Algorithm of Fomin et al.Analysis of the Running <strong>Time</strong>ToolsMeasure & Conquer based analysis of the running timeprogram based on randomized local search <strong>to</strong> computeoptimal values of the w i ’ssophisticated analysisRunning <strong>Time</strong>The algorithm of Fomin et al. has running time O(1.2202 n ). Thisis the best known running time of a polynomial space algorithm <strong>to</strong>compute a maximum independent set.


46/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>Sort and SearchSort and SearchOld method <strong>to</strong> design exponential-time algorithmsIntroduced by Horowitz, Sahni 1974Typical running time O(2 n/2 ) = O(1.4142 n )


47/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>Split and ListSplit and ListNew method <strong>to</strong> design exponential-time algorithmsIntroduced by Williams 2004Typical running time O(2 2.376 n/3 ) = O(1.7315 n )Resembles Sort and Search


48/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>Treewidth BasedTreewidth Based <strong>Algorithms</strong>Technique for designing exponential-time algorithmsmainly for special graph classesplanar graphs, graphs of maximum degree 3Example : 2 n/6 time algorithm <strong>to</strong> compute a maximumindependent set in graphs of degree at most 3


49/52<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>ConclusionsOpen QuestionsFundamental open questions :polynomial vs. exponential spacefaster deterministic algorithms for 3-SATbetter <strong>to</strong>ols <strong>to</strong> analyze the running time ofbranching algorithmsapplications in enumerative combina<strong>to</strong>rics


<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>ConclusionsMerci !


<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>ConclusionsFor Further Reading IFomin, F.V., F. Grandoni, and D. Kratsch,Measure and conquer : Domination - A case study,Proc. of ICALP 2005, LNCS 3380, (2005), pp. 192–203.Fomin, F.V., F. Grandoni, and D. Kratsch,Some New Techniques in Design and Analysis of Exact (<strong>Exponential</strong>)<strong>Algorithms</strong>,Bulletin of the EATCS, 87, (2005), pp. 47–77.Moon, J. W., and L. Moser,On cliques in graphs,Israel J. Math., 3, (1965), pp. 23–28.Robson, J. M.,Finding a maximum independent set in time O(2 n/4 ),Tech. Rep. 1251-01, LaBRI, Université Bordeaux I, 2001.Tarjan, R.E., and A.E. Trojanowski,Finding a maximum independent set,SIAM Journal on Computing 6 (1977), pp. 537–546.


<strong>Fast</strong> <strong>Exponential</strong>-<strong>Time</strong> <strong>Algorithms</strong>ConclusionsFor Further Reading IIWilliams, R.,A new algorithm for optimal constraint 2-satisfaction and its implications,Theoretical Computer Science 348 (2005), pp. 357-365.Woeginger, G. J.,Exact algorithms for <strong>NP</strong>-hard problems : A survey,Combina<strong>to</strong>rial Optimization - Eureka, You Shrink !, LNCS 2570, (2003),pp. 185–207.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!