1 / 42

Cours d’Algorithmique

Cours d’Algorithmique. N P - complétude. Les grandes lignes du cours. Trier et chercher, recherche textuelle Listes et arbres Le back-track Arbres équilibrés Récursivité et induction sur la structure Divide and conquer, algorithmes gloutons Minimax, alpha-beta Dérécursion NP-complétude

dmitri
Télécharger la présentation

Cours d’Algorithmique

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. Cours d’Algorithmique N P-complétude. Cours d'algorithmique 11 / Intranet

  2. Les grandes lignes du cours • Trier et chercher, recherche textuelle • Listes et arbres • Le back-track • Arbres équilibrés • Récursivité et induction sur la structure • Divide and conquer, algorithmes gloutons • Minimax, alpha-beta • Dérécursion • NP-complétude • Logique de Hoare • Programmation dynamique • Complexité et calculabilité Cours d'algorithmique 11 / Intranet

  3. Le problème----------------------------------------------------------------- • Nous avons vu le « action selection problem » : • en back-track avec une complexité exponentielle, • en programmation dynamique avec une complexité quadratique, • comme algorithme glouton avec une complexité linéaire. • Nous avons vu la « satisfaction d’une formule logique » : • en back-track avec une complexité exponentielle, (équivalant au parcours de la table de vérité), • et puis … ? • Rien ! ! ! Personne n'a trouvé mieux ! ! ! Cours d'algorithmique 11 / Intranet

  4. Le problème----------------------------------------------------------------- • La question : • Y aurait-il par hasard des problèmes dont la complexité intrinsèque est exponentielle ? • Pour un tel problème, tout algorithme pour le résoudre serait exponentiel en temps ! • La réponse : • Probablement OUI ! • Malheureusement ! ! ! • On ne sait rien de définitif ! ! ! / P = N P ou bien P = N P Cours d'algorithmique 11 / Intranet

  5. Le problème----------------------------------------------------------------- • La question de la « N P – complétude » : / P = N P ou bien P = N P Cours d'algorithmique 11 / Intranet

  6. Le problème----------------------------------------------------------------- • On connaît des centaines et des centaines de problèmes « N P – complets » : • Si P = N P (probable) : Tous ont une complexité exponentielle ! • Si P = N P (peu probable) : Tous ont une complexité polynômiale ! • C’est sans doute le problème informatique non résolu le plus important ! ! ! / Cours d'algorithmique 11 / Intranet

  7. Le problème----------------------------------------------------------------- Les problèmes « N P – complets » sont aussi appelés : INTRACTABLES !!! Parce que : 2^10 = 1024 2^20 = 1048576 2^30 = 1073741824 2^50 = 1125899906842624 Evitez-les quand vous le pouvez ! Cours d'algorithmique 11 / Intranet

  8. Le problème----------------------------------------------------------------- • Un problème « N P – complet » est, • de manière informelle, • mais correspondant à la pratique : • un problème de décision ( OUI – NON ) • qui se résout (pour l’heure) par back-track (ou équivalent en complexité). Cours d'algorithmique 11 / Intranet

  9. Le problème----------------------------------------------------------------- Plus difficile : difficile • Un problème « N P – complet » est, • de manière informelle, • mais correspondant à la pratique : • un problème de décision ( OUI – NON ) • qui se résout (pour l’heure) par back-track (ou équivalent en complexité). d’optimisation ( le meilleur, … ) complet Cours d'algorithmique 11 / Intranet

  10. Des exemples----------------------------------------------------------------- • « SAT » est « N P –complet » : • « n » variables logiques, • une formule logique construite sur ces variables à l’aide de et, ou et not. • La question ( toute simple ) : Est-il possible de donner des valeurs aux variables logiques de manière à rendre vraie la formule ? • La solution : Essayez tout ! Cours d'algorithmique 11 / Intranet

  11. Des exemples----------------------------------------------------------------- • Attention : • Parfois c’est simple ! ! ! • a b . . . z a v ( . . . ) • Mais, dans le cas général (c’est-à-dire le plus souvent), c’est difficile ! ! ! v v v Cours d'algorithmique 11 / Intranet

  12. Des exemples----------------------------------------------------------------- • Le « Voyageur de Commerce », en anglais « Traveling Salesman Problem » ( TSP ), est « N P –difficile » : • « n » villes, • un réseau routier entre ces villes avec les distances, • La question : Quel est le coût du circuit (point de départ = point d’arrivée) le moins cher qui visite chaque ville une et une seule fois ? • La solution : Essayez tout ! Cours d'algorithmique 11 / Intranet

  13. N P – complétude ----------------------------------------------------------------- • La classe de problèmes « P » ! • Ce sont les problèmes qui acceptent un algorithme : • polynômial, • déterministe, • qui résout toutes les instances. La complexité est un polynôme en termes de la taille du problème. Il n’y a aucun élément de chance ou d’indication venant de l’extérieur. Aucune instance n’est trop difficile. La plupart des problèmes ! Cours d'algorithmique 11 / Intranet

  14. N P – complétude ----------------------------------------------------------------- • La classe de problèmes « N P » ! • Ce sont les problèmes qui acceptent un algorithme : • polynômial, • non-déterministe, • qui résout toutes les instances. Il peut y a avoir des éléments de chance ou des indications venant de l’extérieur. Oracle ! Boule de cristal ! La Pythie ! Cours d'algorithmique 11 / Intranet

  15. N P – complétude ----------------------------------------------------------------- • La classe de problèmes « NP » ! • Il est clair que : P N P • Mais ? P = N P ou P = N P U / Est-ce que l'oracle apporte un plus ? ? ? Cours d'algorithmique 11 / Intranet

  16. N P – complétude ----------------------------------------------------------------- • La classe de problèmes « N P » ! ICI ! On voit ou est la solution ! Cours d'algorithmique 11 / Intranet

  17. N P – complétude ----------------------------------------------------------------- Ou alors poser la question à l'oracle ! • La classe de problèmes « N P » ! Oracle ? E t m a i n t e n a n t ? ICI ! Cours d'algorithmique 11 / Intranet

  18. N P – complétude ----------------------------------------------------------------- Ou alors poser la question à l'oracle ! • La classe de problèmes « N P » ! Oracle ? A gauche ! E t m a i n t e n a n t ? ICI ! Cours d'algorithmique 11 / Intranet

  19. N P – complétude ----------------------------------------------------------------- Ou alors poser la question à l'oracle ! • La classe de problèmes « N P » ! Oracle ? A droite ! ICI ! L'oracle ne se trompe jamais ! Cours d'algorithmique 11 / Intranet

  20. N P – complétude ----------------------------------------------------------------- • Nous remplaçons une exploration à l’aide du back-track • par un appel à l’oracle. • L’oracle répond au bout de . . . ? • La complexité de l’oracle est bien-sûr en O ( 1 ) . • Je sais réaliser un oracle en temps exponentiel ! • Il suffit de faire un back-track en cachette ! ! ! Cours d'algorithmique 11 / Intranet

  21. N P – complétude ----------------------------------------------------------------- • Une autre façon de voir les choses : • Si P = N P • alors l’oracle, c’est-à-dire le choix peut toujours être calculé en temps polynômial ! Cours d'algorithmique 11 / Intranet

  22. N P – complétude ----------------------------------------------------------------- • Autre formulation de la classe de problèmes « N P » ! • Ce sont les problèmes qui : • acceptent, pour chaque instance, un nombre borné de candidats à être la solution, • pour lesquels, la vérification qu’un candidat quelconque est solution appartient à « P  ». L'oracle choisit une solution parmi tous les candidats ! ! ! En temps raisonnable : Vous vérifiez qu'il n'y a pas arnaque ! Cours d'algorithmique 11 / Intranet

  23. N P – complétude ----------------------------------------------------------------- • Théorème : P N P U N P ? ? ? ? ? P ? ? P = N Pc’est-à-dire N P \ P = o | Cours d'algorithmique 11 / Intranet

  24. N P – complétude ----------------------------------------------------------------- • Définissons la classe « N P C  », c’est-à-dire les problèmes « N-P-complets » : Difficile. N P C N P P Facile. Ce seront les problèmes les plus difficiles de « N P » ! L’idée : Si eux sont dans « P », alors « P = N P » ! ! ! Cours d'algorithmique 11 / Intranet

  25. N P – complétude ----------------------------------------------------------------- • Il nous faut une notion de traduction ! • Soit un problème P : D -> BOOL • Soit un problème P : D -> BOOL • P se réduit en P , noté P <= P , si et seulement si : • il existe f : D -> D • telle que pour tout x e D : P ( x ) = P ( f ( x ) ) 1 1 2 2 1 2 1 2 1 2 1 1 2 Cours d'algorithmique 11 / Intranet

  26. N P – complétude ----------------------------------------------------------------- • L’idée derrière la traduction : P Calcul ! 1 x Vrai ou Faux Le même résultat ! Traduction ! P Calcul ! 2 f ( x ) Vrai ou Faux Cours d'algorithmique 11 / Intranet

  27. N P – complétude ----------------------------------------------------------------- Vrai et ( Faux ounot ( Faux ) ) = Vrai • Un exemple : • Les booléens : Vrai Faux et ou not • Les entiers : 1 0 * max ( 1 - _ ) • Théorème : • F = Vrai si et seulement si f ( F ) = 1 f : 1 * ( 0 max ( 1 - 0 ) ) = 1 BOOL BOOL Cours d'algorithmique 11 / Intranet

  28. N P – complétude ----------------------------------------------------------------- • Si P <= P et que A résout P : 1 2 2 2 P ( f ( x ) ) P ( x ) x x f ( x ) 2 1 A f 2 y P ( y ) 2 Cours d'algorithmique 11 / Intranet

  29. N P – complétude ----------------------------------------------------------------- • Il nous faut une réduction en temps raisonnable ! • P se réduit polynômialement en P , noté P <= P , si et seulement si : • il existe f : D -> D avec f eP • telle que pour tout x e D : P ( x ) = P ( f ( x ) ) • <= est un pré-ordre : • réflexitivité, transitivité, OK. • Non anti-symétrique : P <= P et P <= P , mais P = P 1 2 1 2 P 1 2 1 1 2 P P P 1 2 2 1 / Cours d'algorithmique 11 / Intranet 1 2

  30. N P – complétude ----------------------------------------------------------------- • Théorème : • Soient P et P avec P <= P : • Si P eP alors P eP . • Si P eP alors P eP . • Donc, P est au moins aussi difficile que P . • Preuve (première condition) : • Si P eP alors il existe A pour le résoudre de manière déterministe et en temps polynômial ! • Il suffit de composer A avec la fonction de traduction f . 1 2 1 2 P 2 1 / / 1 2 2 1 2 2 2 Cours d'algorithmique 11 / Intranet

  31. N P – complétude ----------------------------------------------------------------- • Théorème : • Soient P et P avec P <= P : • Si P eP alors P eP . • Si P eP alors P eP . • Donc, P est au moins aussi difficile que P . • Preuve (seconde condition) : • Par absurde : Il n’est pas possible que P eP et que P eP . • Il existerait A dans P pour résoudre P et il suffirait de composer A avec la fonction de traduction f . . . 1 2 1 2 P 2 1 / / 1 2 2 1 / 1 2 2 2 2 Cours d'algorithmique 11 / Intranet

  32. N P – complétude ----------------------------------------------------------------- • Définition : • La classe « N P C » est la classe des problèmes P tels que : • P eN P . • Pour tout Q eN P on a : Q <= P . • Tout le monde se réduit vers P . • P est donc le plus difficile ! ! ! • Si P , P’ eN P C , alors il sont « ex aequo » en difficulté : P <= P’ et P’ <= P . P P P Cours d'algorithmique 11 / Intranet

  33. <= <= P P >= P N P – complétude ----------------------------------------------------------------- • Schématiquement : • Globalement, • il suffit de savoir résoudre un seul problème, P par exemple, • et de traduire tous les autres vers P . <= P N P C P P’ N P >= P A B C Cours d'algorithmique 11 / Intranet

  34. N P – complétude ----------------------------------------------------------------- • Et si « N P C » était vide ? ? ? • C’est-à-dire, un tel problème universel n’existe pas ! ! ! • Théorème (Cook, 1971) : • SAT eN P C . • Il n’y a pas plus difficile (dans N P C) que la logique. • Principe de la preuve : • Tout problème dans « N P » peut être traduit en une formule logique. • Analogie : Tout texte peut être traduit en une formule alphabétique. Cours d'algorithmique 11 / Intranet

  35. N P – complétude ----------------------------------------------------------------- • Conséquences : • S’il existe un seul problème PeN P C • pour lequel on trouve un algorithme en temps polynômial et déterministe, • alors P = N P ! • S’il existe un seul problème PeN P C • pour lequel on prouve qu’un algorithme en temps polynômial et déterministe ne peut pas exister, • alors P = N P ! Le problème universel est facile ! Personne n'a trouvé ! ! ! Personne n'a prouvé ! ! ! / Le problème universel est difficile ! Cours d'algorithmique 11 / Intranet

  36. N P – complétude ----------------------------------------------------------------- • Concrètement : • Vous avez un problème qui vous résiste ! • Essayez de savoir s’il est N-P-complet ! • le Garey and Johnson, • ou Internet, • ou prouvez-le vous-même. • Comment faire ? • Prouvez que votre problème P est dans N P et • prenez un problème A de N P C et montrez que A <= P P Cours d'algorithmique 11 / Intranet

  37. N P – complétude ----------------------------------------------------------------- • Concrètement : • Si, par malheur, il l’est . . . • Est-ce que j’ai vraiment besoin de ce résultat ? • Si oui . . . • Est-ce que mon instance est par chance suffisamment petite ? • Est-ce que je peux me contenter d’un résultat approché ? • L’idée derrière le résultat approché : • Il est peut-être pas loin d’être optimal ( par exemple à 5% de l’optimum ), mais il est dans « P » ( par exemple en n^2 ) . Cours d'algorithmique 11 / Intranet

  38. N P – complétude ----------------------------------------------------------------- • Quelques problèmes de « N P C » ! • SAT • « n » variables logiques et une formule « F » construite sur ces variables à l’aide de et , ou ou not . • La question : F peut-elle prendre la valeur Vrai pour un choix adéquat des valeurs des variables ? • 3-SAT • « n » variables logiques et une formule « F » en forme normale conjonctive avec 3 littéraux par disjonction. Exemple : ( x v x v ù x ) ( x v ù x v ù x ) • Même question ! • 2-SAT eP v 1 3 5 3 2 4 Cours d'algorithmique 11 / Intranet

  39. N P – complétude ----------------------------------------------------------------- • Quelques problèmes de « N P C » ! • Circuit-SAT • « n » variables logiques et un circuit logique construit à partir des circuits de base et , ou ou not . • La question : Le circuit peut-il rendre la valeur Vrai pour un choix adéquat des valeurs des variables ? • Exemple de réduction : • Admettons que 3-SAT soit connu pour appartenir à « N P C ». • Démontrons que Circuit-SAT appartient aussi à « N P C » ! Cours d'algorithmique 11 / Intranet

  40. N P – complétude ----------------------------------------------------------------- • La réduction : • Variable 3-SAT -> variable Circuit-SAT. • ù x -> x • ( a v b v c ) -> a b c • ( a b . . . z ) -> a b . . . . . . z L'équivalence est évidente ! La réduction est dans P ! v v v . . . Cours d'algorithmique 11 / Intranet

  41. N P – complétude ----------------------------------------------------------------- • Quelques problèmes de « N P C » ! • Subset-Sum • Un ensemble E de « n » entiers naturels et une constante s. • La question : Existe-il un sous-ensemble I de E tel que la somme des éléments de I soit égale à s ? • Set-Partition • Un ensemble E de « n » entiers naturels. • La question : Existe-il un sous-ensemble I de E tel que la somme des éléments de I soit égale à la somme des éléments de l’ensemble complémentaire ? Cours d'algorithmique 11 / Intranet

  42. N P – complétude ----------------------------------------------------------------- • Quelques problèmes de « N P C » ! • Programmation entière • Une matrice entière M et un vecteur entier b . • La question : Existe-il un vecteur x tel que M * x <= b ? • Programmation entière en 0 - 1 • Une matrice entière M et un vecteur entier b . • La question : Existe-il un vecteur x avec des valeurs 0 ou 1 tel que M * x <= b ? • Et des milliers d’autres . . . Cours d'algorithmique 11 / Intranet

More Related