![Page 1: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/1.jpg)
enumeration algorithms
Arnaud Mary
October 7, 2015
1
![Page 2: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/2.jpg)
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
a given cost function ω
• Counting problem: compute |A(X)|• Enumeration problem: Output A(X)
2
![Page 3: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/3.jpg)
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
a given cost function ω
• Counting problem: compute |A(X)|• Enumeration problem: Output A(X)
2
![Page 4: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/4.jpg)
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
a given cost function ω
• Counting problem: compute |A(X)|• Enumeration problem: Output A(X)
2
![Page 5: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/5.jpg)
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
a given cost function ω
• Counting problem: compute |A(X)|
• Enumeration problem: Output A(X)
2
![Page 6: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/6.jpg)
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
a given cost function ω
• Counting problem: compute |A(X)|• Enumeration problem: Output A(X)
2
![Page 7: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/7.jpg)
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
![Page 8: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/8.jpg)
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
![Page 9: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/9.jpg)
example
4
![Page 10: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/10.jpg)
example
4
![Page 11: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/11.jpg)
example
4
![Page 12: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/12.jpg)
example
4
![Page 13: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/13.jpg)
example
4
![Page 14: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/14.jpg)
example
4
![Page 15: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/15.jpg)
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
![Page 16: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/16.jpg)
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
![Page 17: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/17.jpg)
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
![Page 18: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/18.jpg)
dilemma
• What is an efficient enumeration algorithm?
• How to define tractability for enumeration problems?
• How to measure the complexity of an enumeration algorithm.
6
![Page 19: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/19.jpg)
dilemma
• What is an efficient enumeration algorithm?
• How to define tractability for enumeration problems?
• How to measure the complexity of an enumeration algorithm.
6
![Page 20: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/20.jpg)
dilemma
• What is an efficient enumeration algorithm?
• How to define tractability for enumeration problems?
• How to measure the complexity of an enumeration algorithm.
6
![Page 21: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/21.jpg)
two schools
7
![Page 22: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/22.jpg)
two schools
Two points of view
Input sensitive
• The complexity is measured in
term of the input size only.
• For most of problems the
complexity are exponential.
Output sensitive
• 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.
8
![Page 23: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/23.jpg)
two schools
Two points of view
Input sensitive
• The complexity is measured in
term of the input size only.
• For most of problems the
complexity are exponential.
Output sensitive
• 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.
8
![Page 24: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/24.jpg)
two schools
Two points of view
Input sensitive
• The complexity is measured in
term of the input size only.
• For most of problems the
complexity are exponential.
Output sensitive
• 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.
8
![Page 25: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/25.jpg)
two schools
Two points of view
Input sensitive
• The complexity is measured in
term of the input size only.
• For most of problems the
complexity are exponential.
Output sensitive
• 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.
8
![Page 26: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/26.jpg)
two schools
Two points of view
Input 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)
Output sensitive
• We try to find an algorithm
polynomial in the input size
and output size
• ideally we want a complexity
linear in the output size.
9
![Page 27: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/27.jpg)
two schools
Two points of view
Input 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)
Output sensitive
• We try to find an algorithm
polynomial in the input size
and output size
• ideally we want a complexity
linear in the output size.
9
![Page 28: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/28.jpg)
two schools
Two points of view
Input 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)
Output sensitive
• We try to find an algorithm
polynomial in the input size
and output size
• ideally we want a complexity
linear in the output size.
9
![Page 29: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/29.jpg)
two schools
Two points of view
Input 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)
Output sensitive
• We try to find an algorithm
polynomial in the input size
and output size
• ideally we want a complexity
linear in the output size.
9
![Page 30: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/30.jpg)
exemple
Exemple
Input sensitive
Given a graph G with n vertices,
there exists an algorithm that
enumerates all maximal cliques in
O(3n3 ) ∼ O(1.442n).
Output sensitive
Given a graph G with n vertices,
there exists an algorithm that
enumerates all maximal cliques in
O(n3|C|) where |C| denotes the
number of maximal cliques of G.
10
![Page 31: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/31.jpg)
exemple
Exemple
Input sensitive
Given a graph G with n vertices,
there exists an algorithm that
enumerates all maximal cliques in
O(3n3 ) ∼ O(1.442n).
Output sensitive
Given a graph G with n vertices,
there exists an algorithm that
enumerates all maximal cliques in
O(n3|C|) where |C| denotes the
number of maximal cliques of G.
10
![Page 32: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/32.jpg)
input sensitive
Input sensitive
Pros
• 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
Cons
• 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.
11
![Page 33: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/33.jpg)
input sensitive
Input sensitive
Pros
• 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
Cons
• 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.
11
![Page 34: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/34.jpg)
input sensitive
Input sensitive
Pros
• 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
Cons
• 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.
11
![Page 35: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/35.jpg)
input sensitive
Input sensitive
Pros
• 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
Cons
• 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.
11
![Page 36: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/36.jpg)
input sensitive
Input sensitive
Pros
• 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
Cons
• 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.
11
![Page 37: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/37.jpg)
input sensitive
Input sensitive
Pros
• 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
Cons
• 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.11
![Page 38: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/38.jpg)
output sensitive
Output sensitive
Pros
• The efficiency does not depend
on the problem.
• We can see if an algorithm is
far from the (theoretical)
optimal complexity.
• We can classify enumeration
problems by their output
sensitive complexity.
Cons
• We don’t know in advance
how many times the algorithm
will run.
• Doesn’t give any information
on the maximal number of
solutions an instance can have.
12
![Page 39: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/39.jpg)
output sensitive
Output sensitive
Pros
• The efficiency does not depend
on the problem.
• We can see if an algorithm is
far from the (theoretical)
optimal complexity.
• We can classify enumeration
problems by their output
sensitive complexity.
Cons
• We don’t know in advance
how many times the algorithm
will run.
• Doesn’t give any information
on the maximal number of
solutions an instance can have.
12
![Page 40: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/40.jpg)
output sensitive
Output sensitive
Pros
• The efficiency does not depend
on the problem.
• We can see if an algorithm is
far from the (theoretical)
optimal complexity.
• We can classify enumeration
problems by their output
sensitive complexity.
Cons
• We don’t know in advance
how many times the algorithm
will run.
• Doesn’t give any information
on the maximal number of
solutions an instance can have.
12
![Page 41: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/41.jpg)
output sensitive
Output sensitive
Pros
• The efficiency does not depend
on the problem.
• We can see if an algorithm is
far from the (theoretical)
optimal complexity.
• We can classify enumeration
problems by their output
sensitive complexity.
Cons
• We don’t know in advance
how many times the algorithm
will run.
• Doesn’t give any information
on the maximal number of
solutions an instance can have.
12
![Page 42: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/42.jpg)
output sensitive
Output sensitive
Pros
• The efficiency does not depend
on the problem.
• We can see if an algorithm is
far from the (theoretical)
optimal complexity.
• We can classify enumeration
problems by their output
sensitive complexity.
Cons
• We don’t know in advance
how many times the algorithm
will run.
• Doesn’t give any information
on the maximal number of
solutions an instance can have.
12
![Page 43: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/43.jpg)
input sensitive enumeration
13
![Page 44: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/44.jpg)
input sensitive algorithm
Comes from exact exponential algorithm community
Methods used:
• Branch and reduce algorithm
• Measure and conquer algorithm
• Classical dynamic programming algorithm.
14
![Page 45: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/45.jpg)
branch and reduce algorithm
A branch and reduce algorithm is a recursive algorithm that divides
the instance in some smaller instances based on a set of rules.
There are two kinds of rules:
• Reduction rules: They just reduce the size of the instance.
They are usually based on easy observations.
• Branching rules: The rules that effectively divide the problem
in smaller sub-problems.
15
![Page 46: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/46.jpg)
toy example
Enumeration of maximal independent sets of a graph G of
maximum degree 2
• S: The current set of vertices taken in the solution.
• F : The set of ”free vertices”; the vertices that are allowed to be
taken in the solution.
16
![Page 47: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/47.jpg)
toy example
Enumeration of maximal independent sets of a graph G of
maximum degree 2
• S: The current set of vertices taken in the solution.
• F : The set of ”free vertices”; the vertices that are allowed to be
taken in the solution.
Reduction Rules:
• If F contains a degree 0 vertex, then add it to S and remove it
from F
16
![Page 48: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/48.jpg)
toy example
Enumeration of maximal independent sets of a graph G of
maximum degree 2
Branching Rules:
• If F contains a degree 1 vertex u with neighbour v, then branchin the following ways:
• Add u to S and remove u and v from F .
• Add v to S and remove u, v and all neighbours of v from F .
16
![Page 49: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/49.jpg)
toy example
Enumeration of maximal independent sets of a graph G of
maximum degree 2
Branching Rules:
• If F contains a degree 2 vertex u with neighbour v, w, thenbranch in the following ways:
• Add u to S and remove u, v and w from F .
• Add v to S and remove u, v and all neighbours of v from F .
• Add w to S and remove u,w and all neighbours of w from F .
16
![Page 50: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/50.jpg)
complexity analysis
• To determine the complexity of the previous algorithm, let us
analyse its recursion tree.
• We want to determine the number of leaves of the tree.
• In each internal node of the tree we count the number of
sub-problems we create and how the size of these sub-problems
decreases.
17
![Page 51: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/51.jpg)
complexity analysis
• To determine the complexity of the previous algorithm, let us
analyse its recursion tree.
• We want to determine the number of leaves of the tree.
• In each internal node of the tree we count the number of
sub-problems we create and how the size of these sub-problems
decreases.
17
![Page 52: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/52.jpg)
complexity analysis
• To determine the complexity of the previous algorithm, let us
analyse its recursion tree.
• We want to determine the number of leaves of the tree.
• In each internal node of the tree we count the number of
sub-problems we create and how the size of these sub-problems
decreases.
17
![Page 53: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/53.jpg)
branching vectors
Branching Rules:
• If F contains a degree 1 vertex u with neighbour v, then branchin the following ways:
• Add u to S and remove u and v from F . |F | decreases by 2
• Add v to S and remove u, v and all neighbours of v from F .
|F | decreases by 2
We branch in two sub-problems each whose sizes decrease by 2.
It is described by the Branching vector (2, 2)
18
![Page 54: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/54.jpg)
branching vectors
Branching Rules:
• If F contains a degree 2 vertex u with neighbour v, w, thenbranch in the following ways:
• Add u to S and remove u, v and w from F . |F | decreases by 3
• Add v to S and remove u, v and all neighbours of v from F .
|F | decreases by 3
• Add w to S and remove u,w and all neighbours of w from F .
|F | decreases by 3
We branch in three sub-problems each whose sizes decrease by 3.
Branching vector: (3, 3, 3)
18
![Page 55: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/55.jpg)
example of tree with branching vector (3, 3)
n
-3 -3
-3 -3 -3 -3
-3 -3 -3 -3 -3 -3 -3
n-3 n-3
n-6 n-6 n-6 n-6
0
Figure 1: Tree with branching vector (3, 3) at each node
19
![Page 56: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/56.jpg)
example of tree with branching vector (3, 3)
n
-3 -3
-3 -3 -3 -3
-3 -3 -3 -3 -3 -3 -3
n-3 n-3
n-6 n-6 n-6 n-6
0
Figure 2: Tree with branching vector (3, 3) at each node
How many leaves has this tree?
Satisfies the recurrence T (n) = T (n− 3) + T (n− 3)
T (n) = 2n/3 ∼ 1.259n
20
![Page 57: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/57.jpg)
example of tree with branching vector (3, 3)
n
-3 -3
-3 -3 -3 -3
-3 -3 -3 -3 -3 -3 -3
n-3 n-3
n-6 n-6 n-6 n-6
0
Figure 2: Tree with branching vector (3, 3) at each node
How many leaves has this tree?
Satisfies the recurrence T (n) = T (n− 3) + T (n− 3)
T (n) = 2n/3 ∼ 1.259n
20
![Page 58: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/58.jpg)
example of tree with branching vector (3, 3)
n
-3 -3
-3 -3 -3 -3
-3 -3 -3 -3 -3 -3 -3
n-3 n-3
n-6 n-6 n-6 n-6
0
Figure 2: Tree with branching vector (3, 3) at each node
How many leaves has this tree?
Satisfies the recurrence T (n) = T (n− 3) + T (n− 3)
T (n) = 2n/3 ∼ 1.259n
20
![Page 59: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/59.jpg)
analysis
Question: What is the number of leaves of a tree with a given
branching vector (x1, x2, ..., xk)
The number of leaves T (n) is the solution of the recurrence
T (n) = T (n− x1) + T (n− x2) + ...+ T (n− xk)
Theorem
A tree with branching vector (x1, x2, ..., xk) has αn leaves where
α is the unique real positive solution of the equation:
xn = xn−x1 + xn−x2 + ...+ xn−xk
21
![Page 60: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/60.jpg)
analysis
Question: What is the number of leaves of a tree with a given
branching vector (x1, x2, ..., xk)
The number of leaves T (n) is the solution of the recurrence
T (n) = T (n− x1) + T (n− x2) + ...+ T (n− xk)
Theorem
A tree with branching vector (x1, x2, ..., xk) has αn leaves where
α is the unique real positive solution of the equation:
xn = xn−x1 + xn−x2 + ...+ xn−xk
21
![Page 61: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/61.jpg)
analysis
Question: What is the number of leaves of a tree with a given
branching vector (x1, x2, ..., xk)
The number of leaves T (n) is the solution of the recurrence
T (n) = T (n− x1) + T (n− x2) + ...+ T (n− xk)
Theorem
A tree with branching vector (x1, x2, ..., xk) has αn leaves where
α is the unique real positive solution of the equation:
xn = xn−x1 + xn−x2 + ...+ xn−xk
21
![Page 62: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/62.jpg)
analysis
Theorem
A tree with branching vector (x1, x2, ..., xk) has αn leaves where
α is the unique real positive solution of the equation:
xn = xn−x1 + xn−x2 + ...+ xn−xk
α is called the branching factor of the branching vector
(x1, x2, ..., xk)
22
![Page 63: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/63.jpg)
back to our toy example
First Branching Rule:
• If F contains a degree 1 vertex u with neighbour v, then branchin the following ways:
• Add u to S and remove u and v from F . |F | decreases by 2
• Add v to S and remove u, v and all neighbours of v from F .
|F | decreases by 2
Branching vector: (2, 2)
Branching factor of (2, 2):√
2 ∼ 1.414
23
![Page 64: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/64.jpg)
back to our toy example
Second Branching Rule:
• If F contains a degree 2 vertex u with neighbour v, w, thenbranch in the following ways:
• Add u to S and remove u, v and w from F . |F | decreases by 3
• Add v to S and remove u, v and all neighbours of v from F .
|F | decreases by 3
• Add w to S and remove u,w and all neighbours of w from F .
|F | decreases by 3
Branching vector: (3, 3, 3)
Branching factor of (3, 3, 3): 3√
3 ∼ 1.442
23
![Page 65: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/65.jpg)
back to our toy example
To estimate the number of leaves T (n) of the recursion tree (and
then the complexity of the algorithm), we keep the worst branching
factor
• Branching vector: (2, 2) with branching factor√
2 ∼ 1.414
• Branching vector: (3, 3, 3) with branching factor 3√
3 ∼ 1.442
T (n) ≤ ( 3√
3)n = 3n/3 ∼ 1.442n
24
![Page 66: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/66.jpg)
back to our toy example
To estimate the number of leaves T (n) of the recursion tree (and
then the complexity of the algorithm), we keep the worst branching
factor
• Branching vector: (2, 2) with branching factor√
2 ∼ 1.414
• Branching vector: (3, 3, 3) with branching factor 3√
3 ∼ 1.442
T (n) ≤ ( 3√
3)n = 3n/3 ∼ 1.442n
24
![Page 67: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/67.jpg)
back to our toy example
To estimate the number of leaves T (n) of the recursion tree (and
then the complexity of the algorithm), we keep the worst branching
factor
• Branching vector: (2, 2) with branching factor√
2 ∼ 1.414
• Branching vector: (3, 3, 3) with branching factor 3√
3 ∼ 1.442
T (n) ≤ ( 3√
3)n = 3n/3 ∼ 1.442n
24
![Page 68: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/68.jpg)
exercise
Problem: Exact 3-Sat enumeration
Input: A 3-CNF formula with m clauses and n variables
Output: All satisfying assignments of variables with exactly one
true literal per clause
Try to find an algorithm to solve this problem.
25
![Page 69: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/69.jpg)
exercise
Problem: Exact 3-Sat enumeration
Input: A 3-CNF formula with m clauses and n variables
Output: All satisfying assignments of variables with exactly one
true literal per clause
Try to find an algorithm to solve this problem.
25
![Page 70: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/70.jpg)
output sensitive enumeration
26
![Page 71: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/71.jpg)
Total-Polynomial algorithm
27
![Page 72: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/72.jpg)
output sensitive enumeration
Here the goal is to find algorithms whose complexity in term of
input and output size is small.
Definition
An enumeration algorithm is said to be total-polynomial (or
output-polynomial) if its running time is
poly(m+ n)
where poly is a polynomial, n is the size of the input and m is the
size of the output.
28
![Page 73: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/73.jpg)
output sensitive enumeration
Here the goal is to find algorithms whose complexity in term of
input and output size is small.
Definition
An enumeration algorithm is said to be total-polynomial (or
output-polynomial) if its running time is
poly(m+ n)
where poly is a polynomial, n is the size of the input and m is the
size of the output.
28
![Page 74: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/74.jpg)
totalp
Definition
We call TotalP the class of enumeration problems that admit
a total-polynomial algorithm.
How to prove that a problem is not in TotalP?
29
![Page 75: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/75.jpg)
totalp
Definition
We call TotalP the class of enumeration problems that admit
a total-polynomial algorithm.
How to prove that a problem is not in TotalP?
29
![Page 76: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/76.jpg)
decision enumeration
To a given enumeration problem A, one can associate a decision
problem called the DecisionEnumeration problem.
DecisionEnumeration problem
input: A set of solutions S := {s1, ..., sk}Question: Is S the set of all solution?
Theorem
Let A be enumeration problem. If the DecisionEnumeration
problem associated to A is NP -hard, then P /∈ TotalP unless
P = NP .
30
![Page 77: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/77.jpg)
decision enumeration
To a given enumeration problem A, one can associate a decision
problem called the DecisionEnumeration problem.
DecisionEnumeration problem
input: A set of solutions S := {s1, ..., sk}Question: Is S the set of all solution?
Theorem
Let A be enumeration problem. If the DecisionEnumeration
problem associated to A is NP -hard, then P /∈ TotalP unless
P = NP .
30
![Page 78: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/78.jpg)
decision enumeration
To a given enumeration problem A, one can associate a decision
problem called the DecisionEnumeration problem.
DecisionEnumeration problem
input: A set of solutions S := {s1, ..., sk}Question: Is S the set of all solution?
Theorem
Let A be enumeration problem. If the DecisionEnumeration
problem associated to A is NP -hard, then P /∈ TotalP unless
P = NP .
30
![Page 79: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/79.jpg)
proof
• Assume that there exists a polynomial P such that A can be
solved in P (n+m). And let S := {s1, ..., sk} be a set of
solutions.
• Run the algorithm for P (n, k) + 1 times.
• If the algorithm stops during this period, answer ”Yes” to the
question, all solutions are in S.
• Otherwise, stop it and answer ”No”.
31
![Page 80: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/80.jpg)
proof
• Assume that there exists a polynomial P such that A can be
solved in P (n+m). And let S := {s1, ..., sk} be a set of
solutions.
• Run the algorithm for P (n, k) + 1 times.
• If the algorithm stops during this period, answer ”Yes” to the
question, all solutions are in S.
• Otherwise, stop it and answer ”No”.
31
![Page 81: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/81.jpg)
proof
• Assume that there exists a polynomial P such that A can be
solved in P (n+m). And let S := {s1, ..., sk} be a set of
solutions.
• Run the algorithm for P (n, k) + 1 times.
• If the algorithm stops during this period, answer ”Yes” to the
question, all solutions are in S.
• Otherwise, stop it and answer ”No”.
31
![Page 82: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/82.jpg)
proof
• Assume that there exists a polynomial P such that A can be
solved in P (n+m). And let S := {s1, ..., sk} be a set of
solutions.
• Run the algorithm for P (n, k) + 1 times.
• If the algorithm stops during this period, answer ”Yes” to the
question, all solutions are in S.
• Otherwise, stop it and answer ”No”.
31
![Page 83: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/83.jpg)
decision enumeration
Theorem
Let A be enumeration problem. If the DecisionEnumeration
problem associated to A is NP -hard, then P /∈ TotalP unless
P = NP .
By abuse of terminology, we say sometimes that an enumeration
problem is NP-hard when its associated DecisionEnumeration
problem is so.
32
![Page 84: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/84.jpg)
tractability?
Is the TotalP notion a good definition of tractable enumeration
problems?
Issue:
We may wait long time before the output of the first solution.
They may all be given at the end of the algorithm.
Can we refine the class TotalP to solve this issue ?
33
![Page 85: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/85.jpg)
tractability?
Is the TotalP notion a good definition of tractable enumeration
problems?
Issue:
We may wait long time before the output of the first solution.
They may all be given at the end of the algorithm.
Can we refine the class TotalP to solve this issue ?
33
![Page 86: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/86.jpg)
tractability?
Is the TotalP notion a good definition of tractable enumeration
problems?
Issue:
We may wait long time before the output of the first solution.
They may all be given at the end of the algorithm.
Can we refine the class TotalP to solve this issue ?
33
![Page 87: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/87.jpg)
Incremental-Polynomial algorithm
34
![Page 88: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/88.jpg)
incremental algorithm
An incremental-polynomial algorithm is a special case of
total-polynomial algorithm.
Definition
An enumeration algorithm is said to be incremental-polynomial if
the delay between the output of the kth solution and the (k+1)th
solution is bounded by poly(n + k) where poly is a polynomial
and n is the input size.
35
![Page 89: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/89.jpg)
incremental algorithm
Definition
We call IncP the class of enumeration problems that admit a
incremental-polynomial algorithm.
Proposition
IncP ⊆ TotalP
36
![Page 90: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/90.jpg)
incremental algorithm
Definition
We call IncP the class of enumeration problems that admit a
incremental-polynomial algorithm.
Proposition
IncP ⊆ TotalP
36
![Page 91: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/91.jpg)
proof of the proposition
• If A is an incremental-polynomial algorithm, there exists a
polynomial P such that the delay between the output of the kth
solution and the (k + 1)th solution is bounded by P (n+ k)
• If m is the total number of solutions, the total running time of
the algorithm is
m∑
i=1
P (n+ i) ≤ mP (n+m)
which is polynomial in n+m
37
![Page 92: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/92.jpg)
The classes IncP and TotalP are well separated
Some problems are known to be in TotalP but not in IncP.
Proposition
Unless P = NP , IncP ( TotalP ( IncP 6=TotalP).
38
![Page 93: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/93.jpg)
The classes IncP and TotalP are well separated
Some problems are known to be in TotalP but not in IncP.
Proposition
Unless P = NP , IncP ( TotalP ( IncP 6=TotalP).
38
![Page 94: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/94.jpg)
The classes IncP and TotalP are well separated
Some problems are known to be in TotalP but not in IncP.
Proposition
Unless P = NP , IncP ( TotalP ( IncP 6=TotalP).
38
![Page 95: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/95.jpg)
newsolution problem
A classical way to obtain an incremental-polynomial algorithm is to
be able to solve a slightly different version of the
DecisionEnumeration problem.
NewSolution problem
input: A set of solutions {s1, ..., sk}output: “No” if {s1, ..., sk} contains all solutions
A new solution s /∈ {s1, ..., sk} otherwise
39
![Page 96: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/96.jpg)
newsolution problem
A classical way to obtain an incremental-polynomial algorithm is to
be able to solve a slightly different version of the
DecisionEnumeration problem.
NewSolution problem
input: A set of solutions {s1, ..., sk}output: “No” if {s1, ..., sk} contains all solutions
A new solution s /∈ {s1, ..., sk} otherwise
39
![Page 97: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/97.jpg)
new solution problem
To obtain a incremental-polynomial algorithm, one can apply
successively the NewSolution problem by adding the new
solution found at each step to the set of already generated
solutions until the answer is ”No”.
Proposition
Let A be an enumeration problem. Then A ∈ IncP if and only if
the NewSolution problem associated to A is polynomial.
Proof: Left as exercise.
40
![Page 98: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/98.jpg)
new solution problem
To obtain a incremental-polynomial algorithm, one can apply
successively the NewSolution problem by adding the new
solution found at each step to the set of already generated
solutions until the answer is ”No”.
Proposition
Let A be an enumeration problem. Then A ∈ IncP if and only if
the NewSolution problem associated to A is polynomial.
Proof: Left as exercise.
40
![Page 99: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/99.jpg)
new solution problem
To obtain a incremental-polynomial algorithm, one can apply
successively the NewSolution problem by adding the new
solution found at each step to the set of already generated
solutions until the answer is ”No”.
Proposition
Let A be an enumeration problem. Then A ∈ IncP if and only if
the NewSolution problem associated to A is polynomial.
Proof: Left as exercise.
40
![Page 100: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/100.jpg)
summarize
NewSolution IncP∼
TotalP
DecisionEnumeration
Decision
Figure 3: caption
41
![Page 101: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/101.jpg)
example: spanning trees of a graph
Let G be a graph and let T be a spanning tree of G. The
fundamental cycle of T with respect to an edge e ∈ E(G) \ E(T ),
is the unique simple cycle F (T, e) of T ∪ {e}.
Let us denote by F (T ) the set of fundamental cycles of T .
Proposition
A set T is the set of the spanning trees of a graph G, if and only
if for all T ∈ T and for all edge e /∈ T , the tree (T ∪ {e}) \ {y}belongs to T for all y ∈ F (T, e).
42
![Page 102: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/102.jpg)
example: spanning trees of a graph
Let G be a graph and let T be a spanning tree of G. The
fundamental cycle of T with respect to an edge e ∈ E(G) \ E(T ),
is the unique simple cycle F (T, e) of T ∪ {e}.Let us denote by F (T ) the set of fundamental cycles of T .
Proposition
A set T is the set of the spanning trees of a graph G, if and only
if for all T ∈ T and for all edge e /∈ T , the tree (T ∪ {e}) \ {y}belongs to T for all y ∈ F (T, e).
42
![Page 103: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/103.jpg)
example: spanning trees of a graph
Let G be a graph and let T be a spanning tree of G. The
fundamental cycle of T with respect to an edge e ∈ E(G) \ E(T ),
is the unique simple cycle F (T, e) of T ∪ {e}.Let us denote by F (T ) the set of fundamental cycles of T .
Proposition
A set T is the set of the spanning trees of a graph G, if and only
if for all T ∈ T and for all edge e /∈ T , the tree (T ∪ {e}) \ {y}belongs to T for all y ∈ F (T, e).
42
![Page 104: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/104.jpg)
homework: cycles of a graph
Let G be a graph, T one of its spanning tree and let F (T ) be the
set of fundamental cycles of T .
Algorithm:
• output F (T )
• S = F (T )
• While ∃ C1, C2 ∈ S, C1 ∩ C2 6= ∅ and C1∆C2 /∈ S:
• output C1∆C2
• Add C1∆C2 to S
1. Does this algorithm enumerate all cycles of the graph?
2. Prove or disprove it.
3. Is it total-polynomial? Incremental-polynomial?
43
![Page 105: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/105.jpg)
homework: cycles of a graph
Let G be a graph, T one of its spanning tree and let F (T ) be the
set of fundamental cycles of T .
Algorithm:
• output F (T )
• S = F (T )
• While ∃ C1, C2 ∈ S, C1 ∩ C2 6= ∅ and C1∆C2 /∈ S:
• output C1∆C2
• Add C1∆C2 to S
1. Does this algorithm enumerate all cycles of the graph?
2. Prove or disprove it.
3. Is it total-polynomial? Incremental-polynomial?
43
![Page 106: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/106.jpg)
homework: cycles of a graph
Let G be a graph, T one of its spanning tree and let F (T ) be the
set of fundamental cycles of T .
Algorithm:
• output F (T )
• S = F (T )
• While ∃ C1, C2 ∈ S, C1 ∩ C2 6= ∅ and C1∆C2 /∈ S:
• output C1∆C2
• Add C1∆C2 to S
1. Does this algorithm enumerate all cycles of the graph?
2. Prove or disprove it.
3. Is it total-polynomial? Incremental-polynomial?
43
![Page 107: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/107.jpg)
homework: cycles of a graph
Let G be a graph, T one of its spanning tree and let F (T ) be the
set of fundamental cycles of T .
Algorithm:
• output F (T )
• S = F (T )
• While ∃ C1, C2 ∈ S, C1 ∩ C2 6= ∅ and C1∆C2 /∈ S:
• output C1∆C2
• Add C1∆C2 to S
1. Does this algorithm enumerate all cycles of the graph?
2. Prove or disprove it.
3. Is it total-polynomial? Incremental-polynomial?
43
![Page 108: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/108.jpg)
an open problem
• A hypergraph H := (V, E) is a set family E on a ground set V .
• A transversal (or hitting set) of H is a subset T of V that
intersects every E ∈ E . It is minimal, if it does not contain any
other transversal.
Transversal DecisionEnumeration problem
input: A hypergraph H and a set of minimal transversals of HS := {T1, ..., Tk}Question: Is S the set of all minimal transversals of H?
44
![Page 109: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/109.jpg)
an open problem
• A hypergraph H := (V, E) is a set family E on a ground set V .
• A transversal (or hitting set) of H is a subset T of V that
intersects every E ∈ E . It is minimal, if it does not contain any
other transversal.
Transversal DecisionEnumeration problem
input: A hypergraph H and a set of minimal transversals of HS := {T1, ..., Tk}Question: Is S the set of all minimal transversals of H?
44
![Page 110: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/110.jpg)
an open problem
• A hypergraph H := (V, E) is a set family E on a ground set V .
• A transversal (or hitting set) of H is a subset T of V that
intersects every E ∈ E . It is minimal, if it does not contain any
other transversal.
Transversal DecisionEnumeration problem
input: A hypergraph H and a set of minimal transversals of HS := {T1, ..., Tk}Question: Is S the set of all minimal transversals of H?
44
![Page 111: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/111.jpg)
an open problem
• A hypergraph H := (V, E) is a set family E on a ground set V .
• A transversal (or hitting set) of H is a subset T of V that
intersects every E ∈ E . It is minimal, if it does not contain any
other transversal.
Transversal DecisionEnumeration problem
input: A hypergraph H and a set of minimal transversals of HS := {T1, ..., Tk}Question: Is S the set of all minimal transversals of H?
44
![Page 112: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/112.jpg)
transversal problem
Transversal DecisionEnumeration problem
input: A hypergraph H and a set of minimal transversals of HS := {T1, ..., Tk}Question: Is S the set of all minimal transversals of H?
The complexity of the above problem is open.
But we know that the NewSolution problem is quasi-polynomial
(there is an algorithm of complexity N logN where N = k + |H|)
45
![Page 113: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/113.jpg)
transversal problem
Transversal DecisionEnumeration problem
input: A hypergraph H and a set of minimal transversals of HS := {T1, ..., Tk}Question: Is S the set of all minimal transversals of H?
The complexity of the above problem is open.
But we know that the NewSolution problem is quasi-polynomial
(there is an algorithm of complexity N logN where N = k + |H|)
45
![Page 114: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/114.jpg)
transversal decisionenumeration problem
Therefore :
• The minimal transversal of a hypergraph can be enumerated in
incremental quasi-polynomial time
• Unless every NP-complete problem can be solved in
quasi-polynomial time, the transversal DecisionEnumeration
problem is not Np-complete.
• Open: Is the transversal (DecisionEnumeration/
NewSolution) problem polynomial?
46
![Page 115: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/115.jpg)
example of problems in incp
The enumeration of
• Spanning trees
• (Simple) Cycles
• (maximal) Paths, induced paths ...
• (maximal/maximum) matching
• maximal Independent sets
• maximal cliques/bicliques
• minimal vertex covers
• minimal feedback vertex/arc set
• ...
47
![Page 116: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/116.jpg)
example np-hard enumeration problems
The enumeration of
• Minimal dicut of an oriented graph.
• Vertices of a polyhedron given by a set of inequalities.
• Maximal elements of an independent system given by an oracle.
• Any problem for which the (classical) decision problem is
NP-hard.
• ...
48
![Page 117: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/117.jpg)
equivalent to minimal transversals enumeration
The enumeration of
• Maximal stable sets of a hypergraph.
• All satisfying assignments of a monotone CNF.
• Minimal dominating sets of a graph.
• Minimal subsets that are not included in any set from a given
family of sets.
• ...
49
![Page 118: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/118.jpg)
Polynomial delay algorithm
50
![Page 119: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/119.jpg)
issues
Issues of the Incremental algorithms:
• The delay between two consecutive solutions is increasing as
more solutions are outputted.
• The space used by the algorithm is usually exponential in the
input size.
51
![Page 120: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/120.jpg)
polynomial delay algorithm
Definition
A polynomial delay algorithm is an enumeration algorithm such
that the delay between two consecutive outputs is bounded by
poly(n) where poly is a polynomial and n is the input size.
52
![Page 121: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/121.jpg)
Supergraph method
53
![Page 122: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/122.jpg)
supergraph method
A common way to obtain polynomial algorithms is the so called
supergraph method.
Idea:
• Make small modifications on solutions to obtain new ones.
• Prove that all solutions can be obtained in this way starting
from a special solution (or set of solutions).
• Try to avoid redundancy (output several times the same
solution) using only polynomial space.
54
![Page 123: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/123.jpg)
supergraph method
Let S be the set of solutions of a given enumeration problem.
The supergraph method consists on defining a transition function
t : S → 2S .
It defines the arcs of an oriented graph with vertex set S
S1
t(S1)
S2
S3
S4
S5
S6
55
![Page 124: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/124.jpg)
supergraph method
Let S be the set of solutions of a given enumeration problem.
The supergraph method consists on defining a transition function
t : S → 2S .
This function defines the arcs of an oriented graph with vertex set
S
S
S0
56
![Page 125: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/125.jpg)
supergraph method
Let S be the set of solutions of a given enumeration problem.
The supergraph method consists on defining a transition function
t : S → 2S .
This function defines the arcs of an oriented graph with vertex set
S
S
S0
57
![Page 126: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/126.jpg)
supergraph method
Assuming that the transition function is such that every solution is
accessible from the starting solution, we would like to explore the
graph (for instance with a DFS or a BFS) to find all solutions.
S
S0
58
![Page 127: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/127.jpg)
exemple: spanning trees
For a spanning tree T of a graph G, we define the following
transition function:
t(T ) := {(T ∪ {e}) \ {e′} : e /∈ T, e′ ∈ F (T, e)}
59
![Page 128: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/128.jpg)
issues
Issues:
• When you explore a graph, you have to store the set of already
visited vertices.
• Here the number of vertices of a supergraph corresponds to the
number of solutions which is huge in general.
60
![Page 129: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/129.jpg)
issues
Solution:
• Restrict the transition function so that it defines an
arborescence.
• The goal is to define a parent-child relation between solutions so
that each solution will be “produced” only by its father
S0
61
![Page 130: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/130.jpg)
reverse search
To define an arborescence, we usually use the reverse search
method.
• Define a total ordering over solutions.
• The father P (S) of a solution S is defined as the smallest
solution S′ such that S ∈ t(S′)
Then we restrict the transition function t to t′ :
t′(T ) := {T ′ ∈ t(T ) : P (T ′) = T}
62
![Page 131: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/131.jpg)
spanning trees
• Consider an ordering over the edges of G : (e1, ..., ek).
• The ordering over spanning trees is given by the lexicographic
order.
• The father P (T ) of a spanning tree T is the spanning tree
(T ∪ {e}) \ {e′} where e is smallest edge that does not belong to
T and e′ is the largest edge of F (T, e)
63
![Page 132: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/132.jpg)
algorithm
We call the algorithm with the starting solution S0.
ReverseSearch(S):
• Output S
• For all S′ ∈ t(S)
• If P (S′) = S
• ReverseSearch(S′)
64
![Page 133: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/133.jpg)
Backtracking method
65
![Page 134: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/134.jpg)
flashlight
Here we assume that the solutions of the problem are subsets of a
ground set E.
Steps
• The solutions corresponds to
leaves of the tree.
• Each level i corresponds to the
choice of the selection of ei in
the solution.
• All the solutions in the left tree
contain ei and the ones of the
right tree do not contain ei.
e1 e1
e2 e2 e2 e2
e3 e3 e3 e3 e3e3 e3 e3
66
![Page 135: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/135.jpg)
flashlight
Here we assume that the solutions of the problem are subsets of a
ground set E.
Steps
• The solutions corresponds to
leaves of the tree.
• Each level i corresponds to the
choice of the selection of ei in
the solution.
• All the solutions in the left tree
contain ei and the ones of the
right tree do not contain ei.
e1 e1
e2 e2 e2 e2
e3 e3 e3 e3 e3e3 e3 e3
66
![Page 136: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/136.jpg)
flashlight
Here we assume that the solutions of the problem are subsets of a
ground set E.
Steps
• The solutions corresponds to
leaves of the tree.
• Each level i corresponds to the
choice of the selection of ei in
the solution.
• All the solutions in the left tree
contain ei and the ones of the
right tree do not contain ei.
e1 e1
e2 e2 e2 e2
e3 e3 e3 e3 e3e3 e3 e3
66
![Page 137: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/137.jpg)
extension problem
To use the backtracking method, we need to be able to solve the
following problem.
Extension problem
Input: Two sets X,Y ⊆ EQuestion: Is there a solution S such that X ⊆ S and Y ∩S = ∅?
If the extension problem is polynomial, then the enumeration
problem can be solved with polynomial delay.
67
![Page 138: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/138.jpg)
algorithm
BacktrackAlgorithm(i,X, Y ):
• if i = n:
• output X
• if there is a solution S such that (X ∪ {ei}) ⊆ S and Y ∩ S = ∅:
• BacktrackAlgorithm(i+ 1, X ∪ {ei}, Y )
• if there is a solution S such that X ⊆ S and (Y ∪ {ei})∩ S = ∅:
• BacktrackAlgorithm(i+ 1, X, Y ∪ {ei})
68
![Page 139: Enumeration Algorithmspbil.univ-lyon1.fr/members/sagot/htdocs/coursesENS/enumeration.pdf · The number of outputs of an enumeration problem may be exponential in the size of the input](https://reader033.vdocuments.net/reader033/viewer/2022060309/5f0a5d1f7e708231d42b46e5/html5/thumbnails/139.jpg)
exercise
• Why the previous algorithm enumerates all solutions with
polynomial delay (Assuming that the extension problem is
polynomial)?
• Is the Extension problem is polynomial for spanning trees?
• Is it polynomial for the cycles of a graph?
69