1 / 46

IFT-66975

IFT-66975. Chapitre 1 Classes de complexité fondamentales: P, BPP, RP, co-RP, ZPP, NP, co-NP, PP. Quatre exemples. 1- Problème du tri Entrée : une liste d’entiers a 1 , …, a n Sortie : Cette liste triée en ordre croissant. Algorithme classiquement utilisé:

jesse
Télécharger la présentation

IFT-66975

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. IFT-66975 Chapitre 1 Classes de complexité fondamentales: P, BPP, RP, co-RP, ZPP, NP, co-NP, PP

  2. Quatre exemples • 1- Problème du tri Entrée: une liste d’entiers a1, …, an Sortie: Cette liste triée en ordre croissant.

  3. Algorithme classiquement utilisé: Quicksort: «entrée a1, …, an • Comparer tous les entiers au pivot a1 pour obtenir les ensembles P et G des ai respectivement plus petits et plus grands que a1. • Retourner la liste Quicksort(P), a1, Quicksort(G). »

  4. Problème classique de l’analyse de Quicksort: sur une liste d’entrée aléatoire, Quicksort nécessite (n log n) comparaisons mais si la liste d’entrée est triée, le nombre de comparaisons est (n2). • Solution: exécuter l’algorithme sur une permutation aléatoire de la liste d’entrée ou choisir les pivots de façon aléatoire. Alors l’espérance du temps d’exécution est (n log n).

  5. 2- Problème du test de nullité d’un polynôme sur un corps fini. Entrée: Un polynôme p(x1, …, xn) factorisé a plusieurs variables sur un corps fini F (par exemple, les entiers modulo un nombre premier q, Zq). Question: Ce polynôme est-il égal au polynôme nul lorsque développé?

  6. Exemples: • Sur Z2, les polynômes x2 – x et x2 + x sont toujours 0. • Sur Z3, x2 – x est nul mais x2 + x n’est pas toujours nul car 12 + 1  2 (mod 3). • Sur Zp, xp-1 – x est nul. (Petit théorème de Fermat) • Sur Z5, le polynôme x2 + xy – 2yz + z3 n’est pas nul. Si on prend x = 1, y = 0 et z = 2, on a bien 1 + 0 – 0 + 8 = 9 et 9  0 (mod 5).

  7. Idée apparemment raisonnable pour un algorithme: • Choisir au hasard une valeur iF pour chaque variable xi et calculer p(1, …, n). • Si la valeur est non-nulle, arrêter et conclure que p est non-nul. Sinon, conclure que p est nul.

  8. Temps d’exécution polynomial. • Pas si bête! Si le polynôme est nul alors l’algorithme ne se trompe pas. • Si le polynôme est non-nul, il faudrait être malchanceux pour tomber précisément sur des i tels que p(1, …, n)  0. Peut-on formaliser ces intuitions?

  9. Lemme: [Schwartz, Zippel, deMillo, Lipton] Soit p(x1, …, xn) un polynôme non-nul de degré d sur Zq. Alors on a Pr[p(1, …, n)  0]  d/q où les i sont choisis uniformément aléatoirement et de façon indépendante dans S.

  10. Algorithme modifié: «  • Choisir au hasard une valeur iZq pour chaque variable xi et calculer p(1, …, n). • Si la valeur est non-nulle, arrêter et conclure que p est non-nul. Sinon, répéter 1 au plus n fois. » • Si p est nul alors la probabilité que l’algorithme retourne la bonne réponse est 1. • Si p est non-nul, alors chaque exécution de 1 a une probabilité d/q de nous induire en erreur. La probabilité de se tromper n fois de suite est seulement (d/q)n.

  11. 3- Test de graphe biparti (2-colorabilité d’un graphe) Entrée: Un graphe G = (V,E). Question: Le graphe est-il biparti? Peut-on colorier les nœuds du graphe avec 2 couleurs tel que deux nœuds adjacents ont des couleurs différentes?

  12. Idée simple: colorier un premier nœud et colorier tous ses voisins avec l’autre couleur. Il est clair que ce procédé nous permet de tester si le graphe est 2-coloriable en temps O(|G|)

  13. 4. 3-coloriage de graphe Entrée: Un graphe G = (V,E). Question: Le graphe est-il 3-coloriable? Peut-on colorier chaque nœud en bleu, rouge ou vert tel que deux nœuds adjacents aient des couleurs différentes?

  14. Algorithme: «  • Choisir un premier nœud et le colorier en rouge. • Choisir un noeud non-colorié d’un nœud colorié et le colorier d’une couleur possible choisie au hasard.  • Si tout le graphe a été colorié, répondre oui. Si un nœud n’a pas de couleur possible répondre non.»

  15. Si le graphe est impossible à 3-colorier, alors cet algorithme répond toujours non. • Si le graphe est 3-coloriable, alors il est possible que l’algorithme ne s’en rende pas compte. • La probabilité que l’algorithme trouve un 3-coloriage est peut-être très faible. Même un grand nombre de répétitions de l’algorithme pourrait ne pas suffire.

  16. Machines de Turing probabilistes Définition: Une machine de Turing probabiliste est un sextuplet M = (Q,,,q0,0, 1,Q’) • Q un ensemble fini d’états, q0 Q l’état initial, Q’  Q des états d’arrêt. •  un alphabet d’entrée. •  un alphabet de ruban qui contient  et au moins un symbole blanc b. • 0, 1: Q  Q  {-1,0,1} deux fonctions de transition.

  17. L’exécution se fait à l’aide d’une suite de bits aléatoires indépendants X1, X2, … tels que Pr[Xi = 0] = Pr[Xi = 1] = ½. À la ième étape du calcul, la fonction de transition Xi est utilisée. Formalisation naturelle du concept d’algorithme probabiliste.

  18. Deux notions de temps de calcul: • Le temps de calcul moyen de M sur w est l’espérance du nombre d’étapes avant l’arrêt lorsque l’entrée est w. • Le temps moyen de calcul de M est la fonction t: NN définie par t(n) = max{temps moyen de M sur w: |w| = n}. • Le temps de calcul de M sur w est le maximum (peut importe les bits aléatoires) du nombre d’étapes avant l’arrêt lorsque l’entrée est w. • Le temps de calcul de M est la fonction t: NN définie par t(n) = max{temps de M sur w: |w| = n}.

  19. Temps espéré polynomial • EP: classe des problèmes de calcul pour lesquels il existe un algorithme probabiliste dont le temps de calcul moyen est polynomial. • Note: Il est possible que P  EP, mais cela reste un problème ouvert.

  20. Algorithmes tolérant l’erreur Définition: Un algorithme probabiliste M calcule la fonction f avec une probabilité d’erreur (n) si Pr[M(w)  f(w)] (|w|) pour tous les mots w. Note: Différent d’un algorithme qui calcule f correctement sur une grande proportion d’entrées.

  21. Définition: BPP((n)) est la classe des fonctions f telles qu’il existe un algorithme probabiliste avec temps de calcul polynomial calculant f avec probabilité d’erreur (n) < ½. Si la probabilité d’erreur est très faible, on peut raisonnablement considérer ces problèmes comme ceux pour lesquels il existe un algorithme efficace.

  22. Définition: RP((n)) est la classe des problèmes de décision L tels qu’il existe un algorithme probabiliste M avec temps de calcul polynomial et tel que • Si w  L, alors Pr[M rejette w] (|w|) < 1. • Si w  L, alors Pr[M accepte w] = 0. L’erreur ne peut se produire que dans le cas où l’entrée devrait être acceptée.

  23. Définition: ZPP((n)) est la classe des problèmes de décision L tels qu’il existe un algorithme probabiliste M avec temps de calcul polynomial et tel que pour tout w, M(w)  {oui,non,?} et • Pr[M(w) = ?] (|w|) < 1. • Si M(w) = oui alors w  L. • Si M(w) = non alors w  L. L’algorithme ne se trompe jamais lorsqu’il répond mais il peut ne pas répondre.

  24. Théorème: pour toute fonction d’erreur (n), on a ZPP((n)) = RP((n))  co-RP((n)).

  25. Théorème: EP = ZPP(½). Dans une certaine mesure, cela permet d’ignorer la notion de temps de calcul moyen.

  26. Théorème: Pour tous polynômes p(n) et q(n) on a ZPP(1-1/p(n)) = ZPP(2-q(n)) RP(1-1/p(n)) = RP(2-q(n)) • Si un algorithme ZPP ou RP n’a pas une chance trop écrasante d’échec, alors on peut dramatiquement améliorer sa performance. (Souvent appelé amplification)

  27. Définitions: • Un problème de décision appartient à ZPP s’il appartient à ZPP(½). Donc tout L  ZPP(1-1/p(n)) fait partie de ZPP. • Un problème de décision appartient à ZPP* s’il appartient à ZPP((n)) pour un (n) < 1. • Un problème de décision appartient à RP s’il appartient à RP(½). Donc tout L  RP(1-1/p(n)) fait partie de RP. • Un problème de décision appartient à RP* s’il appartient à RP((n)) pour un (n) < 1.

  28. L’amplification des algorithmes BPP est problématique à cause de notre définition de BPP mais on peut démontrer: Théorème: Pour tous polynômes p(n) et q(n), on retrouve les mêmes problèmes de décision dans BPP(1/2 – 1/(p(n)) et BPP(2-q(n)). • Possible aussi d’étendre ce théorème à certains problèmes d’optimisation.

  29. Définitions: • Un problème de calcul appartient à BPP s’il appartient à BPP(1/3). • Un problème de calcul appartient à PP s’il appartient à BPP((n)) pour un (n) < ½.

  30. L’état du monde Pour les problèmes de décision, on a PP BPP RP* Co-RP* RP Co-RP ZPP* = RP*  co-RP* ZPP = EP = RP  co-RP P

  31. Pourquoi RP*? • À quoi bon définir RP* alors qu’un algorithme qui a une chance écrasante d’échec est inutile? • Parce que beaucoup de problèmes intéressants se retrouvent dans cette classe!

  32. Machines de Turing non-déterministes Définition: Une machine de Turing non-déterministe est un septuplet M = (Q,,,q0,0, 1,Q’0,Q’1) • Q un ensemble fini d’états, q0 Q l’état initial, Q’0, Q’1 Q des états d’arrêt. •  un alphabet d’entrée. •  un alphabet de ruban qui contient  et au moins un symbole blanc b. • 0, 1: Q  Q  {-1,0,1} deux fonctions de transition.

  33. Les états d’arrêts sont soit acceptants (Q’1) soit rejetants (Q’0). Les machines non-déterministes servent à accepter des langages. La machine M accepte l’entrée w s’il existe une séquence de bits X1, X2, … telle que l’exécution définie par ces bits mène à un état acceptant. Sinon, elle rejette w. Le temps d’exécution de M sur w est le maximum sur tous les choix de Xi du nombre d’étapes avant d’atteindre un état d’arrêt.

  34. Problème: les machines non-déterministes n’existent que conceptuellement! Pour les simuler il faut essayer tous les choix possibles de Xi ou alors « savoir » d’avance quels bits choisir. • Essayer tous les choix possibles requiert un temps exponentiellement plus grand.

  35. Définition: Un problème de décision (ou un langage L) appartient à NP s’il existe une m.t. non-déterministe avec un temps de calcul polynomial qui accepte L. Théorème: RP* = NP.

  36. L’état du monde (mis à jour) Pour les problèmes de décision, on a PP BPP NP Co-NP RP Co-RP NP  co-NP ZPP = EP = RP  co-RP P

  37. Système de preuves • Algorithme NP en deux étapes. On veut savoir si w  L. • Choix d’une « preuve » que w  L. • Vérification de cette preuve. • Quatre conditions: • la preuve est une chaîne de bits de longueur p(|w|) pour un certain polynôme p. • La vérification se fait en temps q(|w|) pour un certain polynôme q. • Si w  L alors il existe une preuve valide qui montre que w  L. • Si w  L alors il n’existe aucune preuve valide qui montre que w  L.

  38. Exemple • 3-coloriage d’un graphe. • Colorier chaque nœud avec une des 3 couleurs. • Vérifier que chaque nœud a bien une couleur différente de celle de ses voisins. • La preuve est bien de longueur polynomiale. • La vérification se fait clairement en temps polynomial. • Si le graphe est 3-coloriable alors par définition il existe une preuve valide. • S’il n’est pas 3-coloriable alors tous les essais de coloriage doivent contenir un conflit détecté à la vérification.

  39. Problèmes de NP (exemples) • Problème du commis-voyageur (TSP): Entrée: un ensemble de ville v1, …, vn, un coût de déplacement dij entre vi et vj et un objectif de coût C. Question: Existe-t-il un circuit qui passe par toutes les villes et dont le coût total est au plus C?

  40. Ce problème est dans NP. Choix non-déterministe d’un circuit. Calcul du coût de ce circuit et vérification que ce coût est  C. la « preuve » est de longueur nlog n. La vérification se fait en temps O(n).

  41. Primalité Entrée: Un entier q de n bits. Question: q est-il un nombre premier? • Entiers composés Entrée: Un entier q de n bits. Question: q est il un entier composé?

  42. Problèmes respectivement dans co-NP et NP. Algorithme NP pour entier composé: • Preuve: deux entiers 1 < s,t < q. • Preuve acceptée si st = q. Note: Depuis 2002, on sait en fait que Primalité et Entier composé sont dans P.

  43. Problème du sac à dos. (Fait partie de NP) Entrée: Un ensemble d’objets avec un poids p_i et une valeur v_i + une capacité de sac à dos C + un objectif de valeur V. Question: Peut-on choisir un ensemble d’objets dont le poids total est au plus C et la valeur totale au moins V. • Problème de démineur (Fait partie de co-NP) Entrée: une grille de démineur partiellement découverte et une case à découvrir. Question: Est-on certain que cette case peut-être découverte?

  44. Problème du mots-croisés. (Fait partie de NP) Entrée: Une grille de mots-croisés et un dictionnaire. Question: La grille peut-elle être complétée grâce à des mots du dictionnaire? Problème d’acceptation d’une machine non-déterministe (Fait partie de NP) Entrée: une machine de Turing non-déterministe M, un polynôme p et une entrée w. Question: La machine M accepte-t-elle l’entrée w en temps p(|w|)?

More Related