
enumeration algorithms Arnaud Mary October 7, 2015 1 Decision problem: decide whether A(X) = • ; Optimisation problem: find y A(X) with optimal cost !(y) for • 2 a given cost function ! Counting problem: compute A(X) • j j Enumeration problem: Output A(X) • zoo of problems For a problem A and an instance X of A we denote by A(X) the set of solutions of A on X. 2 Optimisation problem: find y A(X) with optimal cost !(y) for • 2 a given cost function ! Counting problem: compute A(X) • j j Enumeration problem: Output A(X) • zoo of problems For a problem A and an instance X of A we denote by A(X) the set of solutions of A on X. Decision problem: decide whether A(X) = • ; 2 Counting problem: compute A(X) • j j Enumeration problem: Output A(X) • zoo of problems For a problem A and an instance X of A we denote by A(X) the set of solutions of A on X. Decision problem: decide whether A(X) = • ; Optimisation problem: find y A(X) with optimal cost !(y) for • 2 a given cost function ! 2 Enumeration problem: Output A(X) • zoo of problems For a problem A and an instance X of A we denote by A(X) the set of solutions of A on X. Decision problem: decide whether A(X) = • ; Optimisation problem: find y A(X) with optimal cost !(y) for • 2 a given cost function ! Counting problem: compute A(X) • j j 2 zoo of problems For a problem A and an instance X of A we denote by A(X) the set of solutions of A on X. Decision problem: decide whether A(X) = • ; Optimisation problem: find y A(X) with optimal cost !(y) for • 2 a given cost function ! Counting problem: compute A(X) • j j Enumeration problem: Output A(X) • 2 Problem: Maximal Cliques Enumeration Input: A graph G Output: All maximal cliques of G example A clique C of a graph is said to be maximal if it is not included in any other clique. 3 example A clique C of a graph is said to be maximal if it is not included in any other clique. Problem: Maximal Cliques Enumeration Input: A graph G Output: All maximal cliques of G 3 example 4 example 4 example 4 example 4 example 4 example 4 For instance: the number of maximal cliques of a graph can be • exponential on n (a graph can have 3n=3 maximal cliques) We cannot hope to have a algorithm whose running time is • polynomial in the input (you need at least one operation per output). complexity The number of outputs of an enumeration problem may be • exponential in the size of the input. 5 We cannot hope to have a algorithm whose running time is • polynomial in the input (you need at least one operation per output). complexity The number of outputs of an enumeration problem may be • exponential in the size of the input. For instance: the number of maximal cliques of a graph can be • exponential on n (a graph can have 3n=3 maximal cliques) 5 complexity The number of outputs of an enumeration problem may be • exponential in the size of the input. For instance: the number of maximal cliques of a graph can be • exponential on n (a graph can have 3n=3 maximal cliques) We cannot hope to have a algorithm whose running time is • polynomial in the input (you need at least one operation per output). 5 How to define tractability for enumeration problems? • How to measure the complexity of an enumeration algorithm. • dilemma What is an efficient enumeration algorithm? • 6 How to measure the complexity of an enumeration algorithm. • dilemma What is an efficient enumeration algorithm? • How to define tractability for enumeration problems? • 6 dilemma What is an efficient enumeration algorithm? • How to define tractability for enumeration problems? • How to measure the complexity of an enumeration algorithm. • 6 two schools 7 The complexity is measured in • term of the input size and the For most of problems the output size. • complexity are exponential. We then can talk about • "polynomial" algorithm even if the number of solutions can be exponentially large in the input size. two schools Two points of view Input sensitive Output sensitive The complexity is measured in • term of the input size only. 8 The complexity is measured in • term of the input size and the output size. We then can talk about • "polynomial" algorithm even if the number of solutions can be exponentially large in the input size. two schools Two points of view Input sensitive Output sensitive The complexity is measured in • term of the input size only. For most of problems the • complexity are exponential. 8 We then can talk about • "polynomial" algorithm even if the number of solutions can be exponentially large in the input size. two schools Two points of view Input sensitive Output sensitive The complexity is measured in The complexity is measured in • • term of the input size only. term of the input size and the For most of problems the output size. • complexity are exponential. 8 two schools Two points of view Input sensitive Output sensitive The complexity is measured in The complexity is measured in • • term of the input size only. term of the input size and the For most of problems the output size. • complexity are exponential. We then can talk about • "polynomial" algorithm even if the number of solutions can be exponentially large in the input size. 8 We try to find an algorithm • polynomial in the input size and output size Typical example is to find an ideally we want a complexity • • algorithm of complexity αn linear in the output size. with alpha as small as possible (usually smaller than 2) two schools Two points of view Input sensitive Output sensitive The goal is to find an • exponential algorithm with the smallest complexity 9 We try to find an algorithm • polynomial in the input size and output size ideally we want a complexity • linear in the output size. two schools Two points of view Input sensitive Output sensitive The goal is to find an • exponential algorithm with the smallest complexity Typical example is to find an • algorithm of complexity αn with alpha as small as possible (usually smaller than 2) 9 ideally we want a complexity • linear in the output size. two schools Two points of view Input sensitive Output sensitive The goal is to find an We try to find an algorithm • • exponential algorithm with the polynomial in the input size smallest complexity and output size Typical example is to find an • algorithm of complexity αn with alpha as small as possible (usually smaller than 2) 9 two schools Two points of view Input sensitive Output sensitive The goal is to find an We try to find an algorithm • • exponential algorithm with the polynomial in the input size smallest complexity and output size Typical example is to find an ideally we want a complexity • • algorithm of complexity αn linear in the output size. with alpha as small as possible (usually smaller than 2) 9 Given a graph G with n vertices, there exists an algorithm that enumerates all maximal cliques in O(n3 ) where denotes the jCj jCj number of maximal cliques of G. exemple Exemple Input sensitive Output sensitive Given a graph G with n vertices, there exists an algorithm that enumerates all maximal cliques in n n O(3 3 ) O(1:442 ). ∼ 10 exemple Exemple Input sensitive Output sensitive Given a graph G with n vertices, Given a graph G with n vertices, there exists an algorithm that there exists an algorithm that enumerates all maximal cliques in enumerates all maximal cliques in n n 3 O(3 3 ) O(1:442 ). O(n ) where denotes the ∼ jCj jCj number of maximal cliques of G. 10 We don't know the relative • efficiency of the algorithm. Is The complexity of the it far to be optimal or not? • algorithm gives a combinatorial The complexity measure • bound on the number of depends on the number of possible solutions solutions that one instance can The algorithm gives an exact have. • exponential algorithm for the We don't know the behavior of • optimisation problem the algorithm on instances with few solutions. input sensitive Input sensitive Pros Cons We know in advance the • running time of the algorithm. 11 We don't know the relative • efficiency of the algorithm. Is it far to be optimal or not? The complexity measure • depends on the number of solutions that one instance can The algorithm gives an exact have. • exponential algorithm for the We don't know the behavior of • optimisation problem the algorithm on instances with few solutions. input sensitive Input sensitive Pros Cons We know in advance the • running time of the algorithm. The complexity of the • algorithm gives a combinatorial bound on the number of possible solutions 11 We don't know the relative • efficiency of the algorithm. Is it far to be optimal or not? The complexity measure • depends on the number of solutions that one instance can have. We don't know the behavior of • the algorithm on instances with few solutions. input sensitive Input sensitive Pros Cons We know in advance the • running time of the algorithm. The complexity of the • algorithm gives a combinatorial bound on the number of possible solutions The algorithm gives an exact • exponential algorithm for the optimisation problem 11 The complexity measure • depends on the number of solutions that one instance can have.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages139 Page
-
File Size-