Complexité paramétrée

publicité
Complexité paramétrée (1)
Introduction
(Méthodes Exactes - GMIN30C)
Christophe PAUL
(CNRS - LIRMM)
21 Septembre 2012
Bibliographie
I
Parameterized Complexity, R. Downey and M. Fellows, 1999.
I
Invitation to Fixed-Parameter Algorithms, R. Niedermeier,
2006.
I
Parameterized Complexity Theory, J. Flum and M. Grohe,
2006.
Inroduction - influence des paramètres
Problèmes, algorithmes paramétrés
Définitions alternatives de la complexité paramétrée
“Mesurer la complexité seulement en fonction de la taille de la
donnée signifie ignorer tout information structurelle sur l’instance
donnée. . . ”
J. Flum and M. Grohe
“Mesurer la complexité seulement en fonction de la taille de la
donnée signifie ignorer tout information structurelle sur l’instance
donnée. . . ”
J. Flum and M. Grohe
“L’idée fondamentale est de restreindre l’explosion combinatoire,
semble-t-il inévitable, qui est responsable de la croissance
exponentielle du temps de calcul, à un paramètre spécifique au
problème. . . ”
R. Niedermeier
L’exemple de sat
Mesure de la complexité en fonction de différents paramètres:
1. taille des clauses : k = nombre max. de littéraux par clause
k = 2: sat ∈ P
k > 3: sat ∈ NP-complet
L’exemple de sat
Mesure de la complexité en fonction de différents paramètres:
1. taille des clauses : k = nombre max. de littéraux par clause
k = 2: sat ∈ P
k > 3: sat ∈ NP-complet
2. nombre de variables : n = nombre de variables
Il y a 2n affectations possibles
Si on se restreint à 3-sat, la complexité tombe à O(1, 49n )
L’exemple de sat
Mesure de la complexité en fonction de différents paramètres:
1. taille des clauses : k = nombre max. de littéraux par clause
k = 2: sat ∈ P
k > 3: sat ∈ NP-complet
2. nombre de variables : n = nombre de variables
Il y a 2n affectations possibles
Si on se restreint à 3-sat, la complexité tombe à O(1, 49n )
3. nombre de clauses : m = nombre de clauses
On obtient une complexité en O(1, 24m )
L’exemple de sat
Mesure de la complexité en fonction de différents paramètres:
1. taille des clauses : k = nombre max. de littéraux par clause
k = 2: sat ∈ P
k > 3: sat ∈ NP-complet
2. nombre de variables : n = nombre de variables
Il y a 2n affectations possibles
Si on se restreint à 3-sat, la complexité tombe à O(1, 49n )
3. nombre de clauses : m = nombre de clauses
On obtient une complexité en O(1, 24m )
4. longueur de la formule : l = nombre total de littéraux
On obtient une complexité en O(1, 08l )
L’exemple de sat
Mesure de la complexité en fonction de différents paramètres:
1. taille des clauses : k = nombre max. de littéraux par clause
k = 2: sat ∈ P
k > 3: sat ∈ NP-complet
2. nombre de variables : n = nombre de variables
Il y a 2n affectations possibles
Si on se restreint à 3-sat, la complexité tombe à O(1, 49n )
3. nombre de clauses : m = nombre de clauses
On obtient une complexité en O(1, 24m )
4. longueur de la formule : l = nombre total de littéraux
On obtient une complexité en O(1, 08l )
5. structure de la formule : paramètres basés par exemple sur
la structure du graphe de dépendances. . .
L’exemple de Vertex Cover
I
Données : Un graphe G = (V , E ) et un entier positif k
I
Question : ∃ ? k sommets tels que toute arête est incidente
à au moins un de ces k sommets
L’exemple de Vertex Cover
I
Données : Un graphe G = (V , E ) et un entier positif k
I
Question : ∃ ? k sommets tels que toute arête est incidente
à au moins un de ces k sommets
Paramètre naturel : la taille de la solution k
L’exemple de Vertex Cover
I
Données : Un graphe G = (V , E ) et un entier positif k
I
Question : ∃ ? k sommets tels que toute arête est incidente
à au moins un de ces k sommets
Paramètre naturel : la taille de la solution k
Observation
Si S ⊆ V est une couverture et e = (u, v ) une arête de G , alors
u ∈ S ou v ∈ S
L’exemple de Vertex Cover
I
Données : Un graphe G = (V , E ) et un entier positif k
I
Question : ∃ ? k sommets tels que toute arête est incidente
à au moins un de ces k sommets
Paramètre naturel : la taille de la solution k
Observation
Si S ⊆ V est une couverture et e = (u, v ) une arête de G , alors
u ∈ S ou v ∈ S
Preuve : Si {u, v } ∩ S 6= ∅, l’arêtre e ne peut être couverte.
Un arbre de recherche pour Vertex Cover
VC(G , S) : Soit e = (u, v ) une arête de G ,
1. S = S ∪ {u}
Si S ne couvre pas E et si |S| < k, VC(G − u, S)
2. S = S ∪ {v }
Si S ne couvre pas E et si |S| < k, VC(G − v , S)
u
s
< k+1
x
v
t
y
e’=(s,t)
u
e=(u,v)
w
t
e"=(u,w)
z
Un arbre de recherche pour Vertex Cover
VC(G , S) : Soit e = (u, v ) une arête de G ,
1. S = S ∪ {u}
Si S ne couvre pas E et si |S| < k, VC(G − u, S)
2. S = S ∪ {v }
Si S ne couvre pas E et si |S| < k, VC(G − v , S)
u
v
e=(u,v)
Complexité : 2k .nO(1)
s
< k+1
x
t
y
e’=(s,t)
u
w
t
e"=(u,w)
z
L’exemple de Ensemble Indépendant
I
Données : Un graphe G = (V , E ) et un entier positif k
I
Question : ∃ ? k sommets deux à deux non-adjacents
L’exemple de Ensemble Indépendant
I
Données : Un graphe G = (V , E ) et un entier positif k
I
Question : ∃ ? k sommets deux à deux non-adjacents
Observation
I
Algorithme ”brut-force”: O(nk )
MAIS l’exposant n’est pas une
constante!
L’exemple de Ensemble Indépendant
I
Données : Un graphe G = (V , E ) et un entier positif k
I
Question : ∃ ? k sommets deux à deux non-adjacents
Observation
G possède un Ensemble Indépendant de taille k ssi G possède
un Vertex Cover de taille n − k.
I
Algorithme ”brut-force”: O(nk )
MAIS l’exposant n’est pas une
constante!
L’exemple de Ensemble Indépendant
I
Données : Un graphe G = (V , E ) et un entier positif k
I
Question : ∃ ? k sommets deux à deux non-adjacents
Observation
G possède un Ensemble Indépendant de taille k ssi G possède
un Vertex Cover de taille n − k.
I
I
Algorithme ”brut-force”: O(nk )
MAIS l’exposant n’est pas une
constante!
L’arbre de recherche ”à la Vertex
Cover” donne 2(n−k) .nO(1)
MAIS l’explosion combinatoire est
fonction de n
VC
1
2
i
n!k
IS
On recherche des problèmes qui
I
sont NP;
I
admettent un paramètre ”naturel” k; et
I
peuvent se résoudre par un algorithme A de complexité
f (k).nO(1) .
On recherche des problèmes qui
I
sont NP;
I
admettent un paramètre ”naturel” k; et
I
peuvent se résoudre par un algorithme A de complexité
f (k).nO(1) .
Remarque
La fonction f est quelconque et ne dépend que du paramètre k.
La fonction suivante est donc valide:
22
f (k) = 22
22
22
22
22
2k
Inroduction - influence des paramètres
Problèmes, algorithmes paramétrés
Définitions alternatives de la complexité paramétrée
Définition
Soit Σ un alphabet fini.
1. Une paramétrisation de Σ∗ est une fonction κ : Σ∗ → N
calculable en temps polynomial.
Définition
Soit Σ un alphabet fini.
1. Une paramétrisation de Σ∗ est une fonction κ : Σ∗ → N
calculable en temps polynomial.
2. Un problème paramétré (sur Σ) est une paire (Q, κ) tel que
Q ⊆ Σ∗ et κ est une paramétrisation de Σ∗ .
x ∈ Σ∗ est une instance de Q et κ(x) est le paramètre
correspondant.
Définition
Soit Σ un alphabet fini.
1. Une paramétrisation de Σ∗ est une fonction κ : Σ∗ → N
calculable en temps polynomial.
2. Un problème paramétré (sur Σ) est une paire (Q, κ) tel que
Q ⊆ Σ∗ et κ est une paramétrisation de Σ∗ .
x ∈ Σ∗ est une instance de Q et κ(x) est le paramètre
correspondant.
Exemple : Vertex Cover
I
Données : Un graphe G = (V , E )
I
Paramètre : Un entier κ(G )
I
Question : G admet-il un Vertex Cover de taille κ(G ) ?
Définition
Soit Σ un alphabet fini et κ : Σ∗ → N une paramétrisation.
1. Un algorithme A sur Σ est un algorithme paramétré par κ
s’il existe une fonction calculable f : N → N tel que ∀x ∈ Σ∗ ,
la complexité de A est:
f (κ(x)).nO(1)
Définition
Soit Σ un alphabet fini et κ : Σ∗ → N une paramétrisation.
1. Un algorithme A sur Σ est un algorithme paramétré par κ
s’il existe une fonction calculable f : N → N tel que ∀x ∈ Σ∗ ,
la complexité de A est:
f (κ(x)).nO(1)
2. Un problème (Q, κ) est FPT (Fixed Parameterized
Tractable) s’il existe un algorithme A paramétré par κ qui
décide Q.
Définition
Soit Σ un alphabet fini et κ : Σ∗ → N une paramétrisation.
1. Un algorithme A sur Σ est un algorithme paramétré par κ
s’il existe une fonction calculable f : N → N tel que ∀x ∈ Σ∗ ,
la complexité de A est:
f (κ(x)).nO(1)
2. Un problème (Q, κ) est FPT (Fixed Parameterized
Tractable) s’il existe un algorithme A paramétré par κ qui
décide Q.
Observation
Tout problème Π ∈ P est FPT.
Définition
Soit (Q, κ) un problème paramétré et l ∈ N. Le niveau t de
(Q, κ) est le problème:
(Q, κ)t = {x ∈ Q | κ(x) = t}
Définition
Soit (Q, κ) un problème paramétré et l ∈ N. Le niveau t de
(Q, κ) est le problème:
(Q, κ)t = {x ∈ Q | κ(x) = t}
Observation
Soit (Q, κ) un problème paramétré et t ∈ N. Si (Q, κ) est FPT,
alors (Q, κ)t ∈ P .
Définition
Soit (Q, κ) un problème paramétré et l ∈ N. Le niveau t de
(Q, κ) est le problème:
(Q, κ)t = {x ∈ Q | κ(x) = t}
Observation
Soit (Q, κ) un problème paramétré et t ∈ N. Si (Q, κ) est FPT,
alors (Q, κ)t ∈ P .
k-coloration ∈ FPT ?
Définition
Soit (Q, κ) un problème paramétré et l ∈ N. Le niveau t de
(Q, κ) est le problème:
(Q, κ)t = {x ∈ Q | κ(x) = t}
Observation
Soit (Q, κ) un problème paramétré et t ∈ N. Si (Q, κ) est FPT,
alors (Q, κ)t ∈ P .
k-coloration ∈ FPT ?
Le problème 3-coloration= (coloration, κ)3 est NP-complet
⇒ k-coloration n’est pas FPT.
Une formule booléenne Φ est sous forme normale 3-disjonctive
(3-dnf) si
W
Φ = i∈I (λi,1 ∧ λi,2 ∧ λi,3 )
1. max-3-dnf-sat (problème d’optimisation)
I
I
Donnée : une formule 3-dnf Φ.
Objectif : maximiser 1 + t, avec t le nbre de termes satisfaits.
Une formule booléenne Φ est sous forme normale 3-disjonctive
(3-dnf) si
W
Φ = i∈I (λi,1 ∧ λi,2 ∧ λi,3 )
1. max-3-dnf-sat (problème d’optimisation)
I
I
Donnée : une formule 3-dnf Φ.
Objectif : maximiser 1 + t, avec t le nbre de termes satisfaits.
2. (max-3-dnf-sat, k) (paramétrisation standard)
I
Existe-t-il une affectation des variables satisfaisant au moins k
termes ?
Une formule booléenne Φ est sous forme normale 3-disjonctive
(3-dnf) si
W
Φ = i∈I (λi,1 ∧ λi,2 ∧ λi,3 )
1. max-3-dnf-sat (problème d’optimisation)
I
I
Donnée : une formule 3-dnf Φ.
Objectif : maximiser 1 + t, avec t le nbre de termes satisfaits.
2. (max-3-dnf-sat, k) (paramétrisation standard)
I
Existe-t-il une affectation des variables satisfaisant au moins k
termes ?
3. (exact-max-3-dnf-sat, k)
I
Existe-t-il une affectation des variables satisfaisant exactement
k − 1 termes ?
Exercice :
1. Montrer que (max-3-dnf-sat, k) est FPT.
Exercice :
1. Montrer que (max-3-dnf-sat, k) est FPT.
I
Montrer que le nombre moyen de termes satisfaits dans une
affectation aléatoire est au moins m8 où m est le nombre total
de termes
Exercice :
1. Montrer que (max-3-dnf-sat, k) est FPT.
I
Montrer que le nombre moyen de termes satisfaits dans une
affectation aléatoire est au moins m8 où m est le nombre total
de termes
Soit Xi v.a. binaire telle que Xi = 1 ssi le terme λi est vrai
m
m
X
X
m
Xi ] =
E [Xi ] =
P(Xi = 1) = 18 ⇒ E [X =
8
i=1
i=1
Exercice :
1. Montrer que (max-3-dnf-sat, k) est FPT.
I
I
Montrer que le nombre moyen de termes satisfaits dans une
affectation aléatoire est au moins m8 où m est le nombre total
de termes
Soit Xi v.a. binaire telle que Xi = 1 ssi le terme λi est vrai
m
m
X
X
m
Xi ] =
E [Xi ] =
P(Xi = 1) = 18 ⇒ E [X =
8
i=1
i=1
Conclure que pour m > 8k, il existe une affectation qui
satisfisait au moins k termes.
Exercice :
1. Montrer que (max-3-dnf-sat, k) est FPT.
I
I
Montrer que le nombre moyen de termes satisfaits dans une
affectation aléatoire est au moins m8 où m est le nombre total
de termes
Soit Xi v.a. binaire telle que Xi = 1 ssi le terme λi est vrai
m
m
X
X
m
P(Xi = 1) = 18 ⇒ E [X =
Xi ] =
E [Xi ] =
8
i=1
i=1
Conclure que pour m > 8k, il existe une affectation qui
satisfisait au moins k termes.
Si m > 8k alors E [X ] > k. Donc il existe affectation qui
satisfait au moins k termes.
Exercice :
1. Montrer que (max-3-dnf-sat, k) est FPT.
I
I
I
Montrer que le nombre moyen de termes satisfaits dans une
affectation aléatoire est au moins m8 où m est le nombre total
de termes
Soit Xi v.a. binaire telle que Xi = 1 ssi le terme λi est vrai
m
m
X
X
m
P(Xi = 1) = 18 ⇒ E [X =
Xi ] =
E [Xi ] =
8
i=1
i=1
Conclure que pour m > 8k, il existe une affectation qui
satisfisait au moins k termes.
Si m > 8k alors E [X ] > k. Donc il existe affectation qui
satisfait au moins k termes.
On peut donc supposer que m < 8k.
Un arbre de recherche comme dans Vertex Cover permet
de répondre à la question en temps 88k .nO(1) .
Exercice :
1. Montrer que (max-3-dnf-sat, k) est FPT.
2. Montrer que sauf si P = NP alors
(exact-max-3-dnf-sat, k) n’est pas FPT
Exercice :
1. Montrer que (max-3-dnf-sat, k) est FPT.
2. Montrer que sauf si P = NP alors
(exact-max-3-dnf-sat, k) n’est pas FPT
I
Montrer que c’est NP-complet de décider s’il existe une
affectation ne satisfaisant aucun terme
Exercice :
1. Montrer que (max-3-dnf-sat, k) est FPT.
2. Montrer que sauf si P = NP alors
(exact-max-3-dnf-sat, k) n’est pas FPT
I
Montrer que c’est NP-complet de décider s’il existe une
affectation ne satisfaisant aucun terme
Aucun terme satisfait ⇔ tout les termes satistaits dans ¬Φ
Réduction à 3-sat
Minimum Fill-In
I
Données : Un graphe G = (V , E )
I
Paramètre : Un entier k (taille de la solution)
I
Question : Existe-t’il E 0 ⊆ V 2 \ E tel que H = (V , E ∪ E 0 )
ne contient pas de cycle sans corde de longueur 6 4 ? (H est
triangulé)
Minimum Fill-In
I
Données : Un graphe G = (V , E )
I
Paramètre : Un entier k (taille de la solution)
I
Question : Existe-t’il E 0 ⊆ V 2 \ E tel que H = (V , E ∪ E 0 )
ne contient pas de cycle sans corde de longueur 6 4 ? (H est
triangulé)
Lemme
Un cycle de longueur k > 4 admet 2k−2 complétions minimales.
1
2
2 k!2
Algorithme Minimum Fill-In
Minimum Fill-In(G , k)
I S’il existe un cycle C de longueur t > 4, alors
I
I
I
Si t − 2 > k, alors retourner faux
Sinon, pour chaque completion minimale E 0 de C ,
Minimum Fill-In(G + E 0 , k − t + 2)
Sinon retourner vrai
Algorithme Minimum Fill-In
Minimum Fill-In(G , k)
I S’il existe un cycle C de longueur t > 4, alors
I
I
I
Si t − 2 > k, alors retourner faux
Sinon, pour chaque completion minimale E 0 de C ,
Minimum Fill-In(G + E 0 , k − t + 2)
Sinon retourner vrai
Analyse de complexité
1. A chaque appel, k décroit
strictement
⇒ profondeur au plus k
C1
C2
Ci
t
C 2 !2
Cycle C
< f(k)
<k
< f(k)
Algorithme Minimum Fill-In
Minimum Fill-In(G , k)
I S’il existe un cycle C de longueur t > 4, alors
I
I
I
Si t − 2 > k, alors retourner faux
Sinon, pour chaque completion minimale E 0 de C ,
Minimum Fill-In(G + E 0 , k − t + 2)
Sinon retourner vrai
Analyse de complexité
1. A chaque appel, k décroit
strictement
⇒ profondeur au plus k
C1
2. Le degré borné par
g (k) = 2k
C2
Ci
t
C 2 !2
Cycle C
< f(k)
<k
< f(k)
Algorithme Minimum Fill-In
Minimum Fill-In(G , k)
I S’il existe un cycle C de longueur t > 4, alors
I
I
I
Si t − 2 > k, alors retourner faux
Sinon, pour chaque completion minimale E 0 de C ,
Minimum Fill-In(G + E 0 , k − t + 2)
Sinon retourner vrai
Analyse de complexité
1. A chaque appel, k décroit
strictement
⇒ profondeur au plus k
C1
2. Le degré borné par
g (k) = 2k
3. ⇒ taille de l’arbre au plus
k
f (k) = 2k
C2
Ci
t
C 2 !2
Cycle C
< f(k)
<k
< f(k)
Algorithme Minimum Fill-In
Minimum Fill-In(G , k)
I S’il existe un cycle C de longueur t > 4, alors
I
I
I
Si t − 2 > k, alors retourner faux
Sinon, pour chaque completion minimale E 0 de C ,
Minimum Fill-In(G + E 0 , k − t + 2)
Sinon retourner vrai
Analyse de complexité
1. Recherche d’un cycle sans
corde: O(n + m)
C1
C2
Ci
t
C 2 !2
Cycle C
< f(k)
<k
< f(k)
Algorithme Minimum Fill-In
Minimum Fill-In(G , k)
I S’il existe un cycle C de longueur t > 4, alors
I
I
I
Si t − 2 > k, alors retourner faux
Sinon, pour chaque completion minimale E 0 de C ,
Minimum Fill-In(G + E 0 , k − t + 2)
Sinon retourner vrai
Analyse de complexité
1. Recherche d’un cycle sans
corde: O(n + m)
C1
C2
Ci
t
C 2 !2
2. Complexité totale :
O(f (k).(n + m))
Cycle C
< f(k)
<k
< f(k)
Inroduction - influence des paramètres
Problèmes, algorithmes paramétrés
Définitions alternatives de la complexité paramétrée
Soit (Q, κ) un problème paramétré. Les assertions suivantes sont
équivalentes
1. (Q, κ) ∈ FPT
2. Il existe un algorithme de décision pour x ∈ Q de complexité
(g (κ(x) + f (κ(x)) · p(|x| + κ(x))
f (.) et g (.) des fonctions calculables et p(.) un polynôme
3. Il existe un algorithme de décision pour x ∈ Q de complexité
g (κ(x)) + p(|x|)
g (.) une fonction calculable et p(.) un polynôme
Preuve
Soit (Q, κ) un problème paramétré. Les assertions suivantes sont
équivalentes
1. (Q, κ) ∈ FPT
2. Il existe un algorithme de décision pour x ∈ Q de complexité
(g (κ(x) + f (κ(x)) · p(|x| + κ(x))
f (.) et g (.) des fonctions calculables et p(.) un polynôme
3. Il existe un algorithme de décision pour x ∈ Q de complexité
g (κ(x)) + p(|x|)
g (.) une fonction calculable et p(.) un polynôme
Preuve
3 ⇒ 2 est trivial
Soit (Q, κ) un problème paramétré. Les assertions suivantes sont
équivalentes
1. (Q, κ) ∈ FPT
2. Il existe un algorithme de décision pour x ∈ Q de complexité
(g (κ(x) + f (κ(x)) · p(|x| + κ(x))
f (.) et g (.) des fonctions calculables et p(.) un polynôme
3. Il existe un algorithme de décision pour x ∈ Q de complexité
g (κ(x)) + p(|x|)
g (.) une fonction calculable et p(.) un polynôme
Preuve
2 ⇒ 1 Soit p(n) = nd
g (k) + f (k).(n + k)d 6 (g (k) + f (k).(k + 1)d ).(n + 1)d 6 h(k).q(n)
Soit (Q, κ) un problème paramétré. Les assertions suivantes sont
équivalentes
1. (Q, κ) ∈ FPT
2. Il existe un algorithme de décision pour x ∈ Q de complexité
(g (κ(x) + f (κ(x)) · p(|x| + κ(x))
f (.) et g (.) des fonctions calculables et p(.) un polynôme
3. Il existe un algorithme de décision pour x ∈ Q de complexité
g (κ(x)) + p(|x|)
g (.) une fonction calculable et p(.) un polynôme
Preuve
1 ⇒ 3 Il suffit d’observer que f (k).p(n) 6 f (k)2 + p(n)2
Téléchargement