ift 66975 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
IFT-66975 PowerPoint Presentation
Download Presentation
IFT-66975

Loading in 2 Seconds...

play fullscreen
1 / 46
jesse

IFT-66975 - PowerPoint PPT Presentation

123 Views
Download Presentation
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. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - - 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|)?