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