Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parJacqueline Dumas Modifié depuis plus de 10 années
1
IFT-66975 Au delà de NP: hiérarchie polynomiale, EXP, NEXP
2
Vers des problèmes plus difficiles On croit quil nexiste pas dalgorithme de temps polynomial pour SAT. Mais supposons que nous avons accès à un algorithme efficace pour SAT. Quels sont les problèmes qui demeurent difficiles?
3
Machines à oracle Une machine de Turing avec oracle L est une m.t. qui peut recevoir en temps unitaire une réponse à toute question x L?. On dénote P L (NP L ) la classe des langages qui sont acceptés en temps polynomial (non-déterministe) par une machine avec oracle L. Pour une classe de complexité C, on définit P C = L C P L et NP C = L C NP L.
4
Exemple: Problème du circuit booléen minimal (MC). Entrée: un circuit booléen C (avec portes binaires) avec variables booléennes x 1,..., x n et une porte de sortie. Entier k |C|. Question: existe-t-il un circuit C de taille k qui calcule la même fonction que C?
5
Est-ce que MC P? Probablement pas. Appelons SAT CIR la variante de SAT où lon cherche à satisfaire un circuit C plutôt quune formule. On a SAT p SAT CIR. On a aussi SAT CIR T MC c. En effet, un circuit est insatisfiable ssil calcule une fonction qui peut être calculé avec une porte qui est la constante 0.
6
Meilleure borne connue: MC NP NP. Algorithme: Entrée C; Choisir non déterministement un circuit C de taille k ou moins. Former le circuit C C. Poser à loracle la question C C SAT CIR ? Si la réponse est NON alors C et C calculent la même fonction, donc on conclut que C MC et lalgorithme accepte. Il existe un choix non-déterministe de C qui amène lalgo à accepter ssi C, k MC.
7
Hiérarchie polynomiale La hiérarchie polynomiale est une suite de classes de complexité définies par récurrence: 0 = 0 = 0 = 1 = P 1 = NP, 1 = co-NP; k = P k ; k = co- k ; k+1 = NP k ; PH = k k.
8
Quelques observations utiles k = co- k = P k k+1 k+1 k+1 k+1 k+1. k = NP k = NP k k = co-NP k = co-NP k. k k k = k.
9
0 = 0 = 0 = 1 = P 1 1 = NP co-NP 2 2 1 = NP 1 = co-NP 1 1 = NP co-NP 2 = P NP 2 2 2 2 3
10
Définition plus pratique de ces classes grâce à une généralisation des systèmes de preuve utiles pour définir NP. Théorème: Un langage L est dans k si et seulement sil existe un langage V P et un polynôme p, tel que L = {x : y 1 y 2 y 3... Q k y k : |y i | p(|x|) et (x,y 1,...,y k ) V}. (à noter que Q k est si k est impair et si k est pair.)
11
Exemple de SAT. On sait que SAT 1 = NP. On peut effectivement voir SAT sous la forme voulue. est satisfiable si et seulement sil existe des valeurs x 1,..., x n telles que (x 1,...,x n ) = 1. Étant donné et les valeurs x i on peut vérifier en temps polynomial que (x 1,...,x n ) = 1. Point de vue système de preuve sur la classe NP. (cf Chapitre 5 de Wegener)
12
Exemple de MC: On a démontré que MC 2. C, k MC si et seulement si: il existe un circuit C avec |C| k tel que pour tout choix de valeurs pour les variables booléennes x 1,..., x n on a C(x 1,..., x n ) = C(x 1,...,x n ). Étant donné C, C et des valeurs x i, on peut en temps polynomial vérifier cette dernière condition.
13
Démonstration: Par récurrence sur k. Pour k = 1, on retrouve la caractérisation de NP grâce aux systèmes de preuve. Supposons que le théorème est vrai pour un certain k-1 et montrons le pour k. Donc montrons quil existe un algorithme NP k pour L ssi L = {x: y 1... Q k y k |y i | p(|x|) V(x,y 1,...,y k )
14
Supposons dabord L NP k. Il existe pour un algo non-déterministe A L avec temps dexécution polynomial q utilisant un oracle L k. Donc, par récurrence on peut représenter L par L = {x: y 2... Q k y k : V(x,y 2,...,y k )} avec |y i | p(|x|) et V P. Toutes les questions à loracle sont de tailles r(n). Modifions L et A L pour que chaque branche non- déterministe pose exactement q(n) questions toutes de longueur r(n).
15
On a x L ssi A L accepte x. Donc ssi il existe un choix non- déterministe w qui mène à lacceptation. Sur cette branche, soit b 1,..., b q(n) les questions posées et a 1,..., a q(n) les réponses reçues. On veut donc exprimer quun tel w existe avec notre alternation de quantificateurs. Soit C* lensemble des (w,b 1,..., b q(n), a 1,..., a q(n) ) tels que 1. la ième question posée est b i lorsque x est lentrée, w est le choix non-déterministe et les premières questions/réponses sont b 1 /a 1,..., b i-1 /a i-1. 2. x est accepté sur le chemin w.
16
On a donc que x L ssi il existe c C* tel que les a i sont effectivement les réponses des b i. De plus, C* P car les réponses sont fournies. On a donc L = {x: c =(w,b 1,...,b q,a 1,...,a q ): c C* L(b i ) = a i } On sait que L(b i ) = 1 si y i 2... Q k y i k : V(b i,y i 2,...,y i k ) et que L(b i ) = 0 si y i 2... Q k y i k : V(b i,,y i 2,...,y i k )
17
On peut combiner ces deux cas. Soit V* le langage qui contient (b i,1, y i 1,...,y i k-1 ) si (b i,y i 1,...,y i k-1 ) V et (b i,0, y i 2,...,y i k ) si (b i,y i 2,...,y i k ) V. On a alors L(b i ) = a i y i 1... Q k y i k : V*(b i, a i, y i 1, y i 2,..., y i k )
18
On peut maintenant exprimer L sous la forme désirée. x L Il existe un c C* avec des couples questions/réponses valables. (w,b 1,..., b q, a 1,...,a q ) L(b i ) = a i A L (x,w) = 1. (w,b 1,..., b q, a 1,...,a q,,y i 1,..., y i k ) y 1 i... Q k y k: V*(b i, a i, y i 1, y i 2,..., y i k ) A L (x,w) = 1.
19
Supposons maintenant L = {x: y 1... Q k y k V(x,y 1,..., y k )} Soit L le langage suivant L = {(x,y 1 ): y 2... Q k (y k ) V(x,y 1,...,y k )} Notez que V est calculable en temps polynomial donc par récurrence, L k-1. Reste à montrer que L NP L.
20
Algo NP L pour L: Entrée x; Choisir non-déterministement y 1 tel que |y 1 | p(|x|). Poser à loracle la question (x,y 1 ) L? Si loracle répond non alors accepter x. Si loracle répond oui alors rejeter x. Lalgorithme accepte x sil existe un y 1 tel que (x,y 1 ) L. Donc sil y 1 ( y 2... Q k V (x, y 1,..., y k )) y 1 y 2... Q k y k V(x,y 1,..., y k ) Donc si et seulement si x L.
21
Corollaire: Un langage L est dans k ssi il existe un polynôme p et un langage V P tel que L = {x : y 1 y 2... Q k y k : |y i | p(|x|) et (x,y 1,...,y k ) V}. (Ici Q est si k est pair et si k est impair)
22
Conjecture(s): Pour tout k 1: k k ; k k+1 ; k k k ; k k k+1. En particulier, on croit P NP co-NP et aussi P NP 2 2.
23
0 = 0 = 0 = 1 = P 1 1 = NP co-NP 2 2 1 = NP 1 = co-NP 1 1 = NP co-NP 2 = P NP 2 2 2 2 3
24
Théorème: Sil existe un k tel que k = k alors PH = k. Démonstration: Il suffit de montrer que si k = k alors k+1 = k+1 = k. Prenons un langage L dans k+1. Donc L = {x: y 1... Q k+1 y k+1 : V(x,y 1,..., y k+1 )} Considérons le langage L = {(x,y 1 ): y 2... Q k+1 : V(x,y 1,...,y k+1 )}
25
Puisque L k, on a aussi L k. Donc il existe V P et un polynôme q tel que L = {(x,y 1 ): v 2... Q k+1 v k+1 : V(x,y 1,v 2,..., v k+1 )} pour des |v i | q(|x,y 1 |). Donc L = {x : y 1 v 2... Q k+1 v k+1 : V(x,y 1,v 2,...,v k+1 )} Les deux premiers quantificateurs peuvent être fondus en un seul! L = {x : y 1,v 2 )... Q k+1 v k+1 : V(x,y 1,v 2,...,v k+1 )} Donc on a L k et donc k+1 k.
26
Problèmes complets dans PH On définit le langage SAT k CIR pour chaque k 1 ainsi: Entrée: Circuit booléen C avec k groupes de n variables X 1,..., X k. Question: Soit A = {0,1} n. Est-il vrai que X 1 A X 2 A... Q k X k A : C(X) = 1?
27
Par définition on a SAT k CIR k car lévaluation du circuit C se fait en temps polynomial. Notez aussi que SAT 1 CIR = SAT CIR. Théorème: Pour tout k 1, SAT k CIR est k - complet. La démonstration est une variante du théorème de Cook. Tout instance dun problème dans k peut être converti en une instance de SAT k CIR, en faisant correspondre les k quantificateurs de lalgo k avec les k quantificateurs du problème SAT k CIR.
28
Comparaison de NP et BPP Théorème: Si NP BPP alors NP RP et donc NP = RP. Démonstration: (devoir #2) À noter que ce théorème nous dit que qqch dimprobable implique quelque chose dencore plus improbable.
29
Se pourrait-il que BPP NP? En fait, beaucoup croient que P = BPP (ou presque) et donc que BPP NP. Comment le démontrer? Il faudrait trouver une preuve succinte quune grande majorité des choix probabilistes mènent lalgo BPP à accepter. Aucune façon connue de le faire.
30
Théorème: BPP 2 2. Donc BPP ne peut pas être une classe si grande. Il nexiste pas de meilleure borne connue que celle que lon va montrer ici. On a BPP = co-BPP. Donc si on montre BPP 2 on a BPP = co-BPP co- 2 = 2 et donc BPP 2 2.
31
Démonstration: Soit L BPP. Il existe un algo polynomial probabiliste sexécutant en temps p, avec prob. derreur 2 -n. On suppose que toutes les exécutions sur x avec |x| ont une longueur p(n). On a donc 2 p(n) exécutions possibles et au plus 2 p(n) – n donnent un mauvais résulat. Soit A(x) {0,1} p(n) lensemble des chemins qui acceptent x. Si x L alors A(x) est très grand (au moins 2 p(n)-1 ) mais si x L alors A(x) est très petit (au plus 2 p(n) – n ). Cest ce que lon cherche à distinguer.
32
Idée: si A(x) est très grand dans lensemble des chemins C = {0,1} p(n), alors il devrait y avoir moyen de couvrir lensemble C avec un petit nombre de copies de A(x). Cela est impossible si A(x) est très petit. x L A(x) très grand. copies de A(x) qui couvrent C. copies c C; c est couvert. Doù un algorithme 2.
33
Pour deux chemins a,b C, soit a b le ou exclusif bit-à-bit de a et b. Notez: a b = c a c = b (a b) b = a. Pour tout b, la fonction f b : C C définie par f b (a) = a b est une bijection car f b -1 = f b. Définissons la translation de A(x) par b comme A(x) b = {a b: a A(x)}. On a |A(x)| = |A(x) b|. Lintuition est que 1. si A(x) est très grand alors lensemble C peut être couvert par un petit nombre de translations de A(x). 2. Si A(x) est très petit, un petit nombre de translations de A(x) ne peut couvrir C.
34
Supposons que x L et choisissons au hasard des translations t 1,..., t p(n). Quelle est alors la probabilité quun chemin donné b C nappartienne à aucun des A(x) t i ? b A(x) t i b t i A(x). Puisque t i est aléatoire, b t i est aussi aléatoire Pr[b A(x) t i ] = Pr [b t i A(x)] 2 -n Valide pour tout t i donc pour chaque b Pr[ i b A(x) t i ] 2 -np(n) Par la borne de lunion, la probabilité quil existe un b C nappartenant à aucun A(x) t i est donc au plus 2 -(n-1)p(n) < 1.
35
Donc, une immense majorité des choix de t i font en sorte que (A(x) t i ) = C. En particulier, il existe des t i qui ont cette propriété. Supposons maintenant que x L. Alors |A(x)| 2 p(n) – n. Donc (A(x) t i ) est de taille au plus p(n) 2 p(n) – n car il ny a que p(n) translations t i. Pour n suffisamment grand p(n) 2 p(n) – n < 2 p(n) donc les translations ne peuvent couvrir C.
36
On a donc L = {x: T {0,1} p(n) 2 b {0,1} p(n) il existe j p(n) tel que b A(x) t j } La dernière ligne peut être évaluée en temps polynomial. En effet le il existe est simplement un OU de taille p(n). La vérification que b A(x) t j est équivalente à b t j A(x), ce qui est vérifié en exécutant lalgo BPP avec les bits probabilistes b t j.
37
En fait, on a montré un résultat plus fort. La probabilité de choisir des t j qui couvrent C est écrasante si x L mais est nulle si x L. Donc BPP RP NP et BPP RP NP co-RP NP. BPP ZPP NP.
38
Problèmes encore plus durs EXP = c 1 DTIME (2 n c ). NEXP c 1 NTIME (2 n c ). Ces classes sont certainement hors de portée pour lalgorithmique.
39
Rappel: on peut démontrer que P EXP. Considérons le langage L reconnu par lalgorithme suivant. Entrée x; On considère x comme la description dun algorithme M x. Simuler le programme M x sur lentrée x pendant |x| log |x| étapes. Si M x accepte x alors rejeter x. Sinon accepter x. Cet algorithme a un temps dexécution O(n log n ) donc L EXP.
40
Par contre, on ne peut avoir L P. Supposons que L est reconnu par un algorithme M avec temps de calcul polynomial p. Alors il existe un x tel que M = M x. Que se passe-t-il lorsquon exécute M sur x? Si M accepte x, alors il le fait en temps p(|x|) < |x| log |x| donc lalgorithme précédent rejette x! Si M rejette x, alors il le fait en temps p(|x|) < |x| log |x| donc lalgorithme précédent accepte x! (Note: il se peut que pour |x| petit cette dernière inégalité ne soit pas vérifié. On peut régler le problème comme cela est fait à la fin du chapitre.)
41
Si un problème est EXP-complet ou NEXP- complet, alors on est certain que ce problème nadmet pas dalgorithme polynomial car il existe des problèmes dans EXP – P. Contrairement à la NP-complétude, on obtient donc une garantie que le problème est au dessus de nos forces.
42
Les problèmes complets pour EXP les plus courants sont des variantes succintes de problèmes dans P. Évaluation de circuit succint (SCV). Entrée: Description succinte dun circuit booléen sans variables. Question: Le circuit retourne-t-il 1? SCV est EXP-complet.
43
De la même façon, les variantes succintes de problèmes P-complets sont généralement EXP-complètes. Les problèmes comme HP succint, TSP succint, 3-COL succint etc. sont NEXP- complets.
44
Relativisation Lorsquon a deux classes de complexité C, et D avec C D, on pourrait sattendre à ce que pour tout langage L utilisable comme oracle C L D L. Une démonstration que C D (ou démonstration que C D ) est dite relativisable si elle démontre que C L D L (ou que C L D L ) pour tout L.
45
Une machine de Turing déterministe peut être simulée par une m.t. non déterministe ou probabiliste et ce peu importe loracle. Donc P NP ou P BPP sont relativisables. De même ZPP = RP co-RP est aussi relativisable Les preuves de diagonalisation sont également relativisables. On peut démontrer que EXP P de façon relativisable. La simulation et la diagonalisation sont deux des méthodes les plus utiles en complexité de calcul.
46
Théorème: Il existe des langages K et L tels que P L = NP L et P K NP K. !!! Donc toute preuve que P = NP ou P NP doit être non-relativisable. Démonstration: Pour L, on peut prendre tout problème EXP- complet. On a alors P L = NP L = EXP.
47
Démonstration (suite): K est plus délicat à trouver. On va montrer que le langage S = {0 n : x K avec |x| = n} est dans NP K – P K. Facile de montrer S NP K. Il faut construire K pour que S P K. Cela est fait par diagonalisation contre toutes les m.t. avec oracle.
48
Soit M 1 ?, M 2 ?,... une énumération des m.t. avec oracle telle que chaque machine est énumérée infiniment souvent. On définit K par étapes. À chaque étape i, on a lensemble K i-1 des mots de K avec longueur < i et un ensemble X dexceptions, cest à dire de mots de longueur i quon ne veut pas mettre dans K.
49
À létape i, on veut définir K i. On simule M i K (0 i ) pendant i log i étapes. On peut sans problème simuler les réponses de loracle si les questions ont une longueur < i. Par contre, si une question plus longue est posée, on répond non et on rajoute cette question à X. Si M K i rejette 0 i en i log i étapes, alors on choisit K i = K i-1 {x: x {0,1} i x X}. Note importante: {x: x {0,1} i x X} {0,1} i car les étapes 1,2,..., i, ont créé au plus i j=1 j log j < 2 i exceptions de longueur i. Donc si M i rejette 0 i en i log i étapes, K i est non vide. Cela force chaque machine qui veut accepter S à accepter 0 i ! Donc cette machine ne peut être M K i.
50
Inversement, si M K i accepte 0 i en i étapes, on choisit K i = K i-1. Cela veut dire que K ne contient pas de mot de longueur i et donc une machine acceptant S doit rejeter 0 i. Ainsi cette machine ne peut être M i. Que fait-on si M i ne termine pas son calcul en i log i étapes? Alors on choisit K i = K i-1. Cela ne permet pas immédiatement de conclure que L(M K i ) S. Mais la machine M K i apparaît infiniment souvent dans notre énumération alors il existe une description M K I de cette même machine telle que I log I p(I) pour nimporte quel polynôme I. Donc toute machine avec temps dexécution borné par un polynôme fini par tomber dans notre piège.
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.