Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude.
9 janvier 2006Cours d'algorithmique 11 / Intranet2 Trier et chercher, recherche textuelle Trier et chercher, recherche textuelle Listes et arbres Listes et arbres Le back-track Le back-track Arbres équilibrés Arbres équilibrés Récursivité et induction sur la structure Récursivité et induction sur la structure Divide and conquer, algorithmes gloutons Divide and conquer, algorithmes gloutons Minimax, alpha-beta Minimax, alpha-beta Dérécursion Dérécursion NP-complétude NP-complétude Logique de Hoare Logique de Hoare Programmation dynamique Programmation dynamique Complexité et calculabilité Complexité et calculabilité Les grandes lignes du cours
9 janvier 2006Cours d'algorithmique 11 / Intranet3 Le problème Nous avons vu le « action selection problem » : 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 dune formule logique » : Nous avons vu la « satisfaction dune formule logique » : – en back-track avec une complexité exponentielle, (équivalant au parcours de la table de vérité), (équivalant au parcours de la table de vérité), – et puis … ? – Rien ! ! !
9 janvier 2006Cours d'algorithmique 11 / Intranet4 Le problème La question : La question : Y aurait-il par hasard des problèmes dont la complexité intrinsèque est exponentielle ? 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 ! Pour un tel problème, tout algorithme pour le résoudre serait exponentiel en temps ! La réponse : La réponse : Probablement OUI ! Probablement OUI ! Malheureusement ! ! ! Malheureusement ! ! ! On ne sait rien de définitif ! ! ! On ne sait rien de définitif ! ! ! P = N P ou bien P = N P /
9 janvier 2006Cours d'algorithmique 11 / Intranet5 Le problème La question de la « N P – complétude » : La question de la « N P – complétude » : P = N P ou bien P = N P /
9 janvier 2006Cours d'algorithmique 11 / Intranet6 Le problème On connaît des centaines et des centaines de problèmes « N P – complets » : On connaît des centaines et des centaines de problèmes « N P – complets » : – Si P = N P (probable) : Tous ont une complexité exponentielle ! Tous ont une complexité exponentielle ! – Si P = N P (peu probable) : Tous ont une complexité polynômiale ! Tous ont une complexité polynômiale ! Cest sans doute le problème informatique non résolu le plus important ! ! ! Cest sans doute le problème informatique non résolu le plus important ! ! ! /
9 janvier 2006Cours d'algorithmique 11 / Intranet7 Le problème Les problèmes « N P – complets » sont aussi appelés : INTRACTABLES !!! INTRACTABLES !!! Parce que : 2^10 = ^20 = ^20 = ^30 = ^30 = ^50 = ^50 =
9 janvier 2006Cours d'algorithmique 11 / Intranet8 Le problème Un problème « N P – complet » est, Un problème « N P – complet » est, – de manière informelle, – mais correspondant à la pratique : un problème de décision ( OUI – NON ) un problème de décision ( OUI – NON ) qui se résout (pour lheure) par back-track qui se résout (pour lheure) par back-track (ou équivalent en complexité). (ou équivalent en complexité).
9 janvier 2006Cours d'algorithmique 11 / Intranet9 Le problème Un problème « N P – complet » est, Un problème « N P – complet » est, – de manière informelle, – mais correspondant à la pratique : un problème de décision ( OUI – NON ) un problème de décision ( OUI – NON ) qui se résout (pour lheure) par back-track qui se résout (pour lheure) par back-track (ou équivalent en complexité). (ou équivalent en complexité). Plus difficile : difficile doptimisation ( le meilleur, … ) complet
9 janvier 2006Cours d'algorithmique 11 / Intranet10 Des exemples « SAT » est « N P –complet » : « SAT » est « N P –complet » : « n » variables logiques, « n » variables logiques, une formule logique construite sur ces variables à laide de et, ou et not. une formule logique construite sur ces variables à laide de et, ou et not. La question ( toute simple ) : La question ( toute simple ) : Est-il possible de donner des valeurs Est-il possible de donner des valeurs aux variables logiques de manière à aux variables logiques de manière à rendre vraie la formule ? rendre vraie la formule ? La solution : La solution : Essayez tout !
9 janvier 2006Cours d'algorithmique 11 / Intranet11 Des exemples Attention : Attention : Parfois cest simple ! ! ! Parfois cest simple ! ! ! a b... z a b... z a v (... ) a v (... ) Mais, dans le cas général (cest-à-dire le plus souvent), Mais, dans le cas général (cest-à-dire le plus souvent), cest difficile ! ! ! vvv
9 janvier 2006Cours d'algorithmique 11 / Intranet12 Des exemples Le « Voyageur de Commerce », en anglais « Traveling Salesman Problem » ( TSP ), est « N P –difficile » : Le « Voyageur de Commerce », en anglais « Traveling Salesman Problem » ( TSP ), est « N P –difficile » : « n » villes, « n » villes, un réseau routier entre ces villes avec les distances, un réseau routier entre ces villes avec les distances, La question : La question : Quel est le coût du circuit (point de départ Quel est le coût du circuit (point de départ = point darrivée) le moins cher qui visite = point darrivée) le moins cher qui visite chaque ville une et une seule fois ? chaque ville une et une seule fois ? La solution : La solution : Essayez tout !
9 janvier 2006Cours d'algorithmique 11 / Intranet13 N P – complétude La classe de problèmes « P » ! La classe de problèmes « P » ! Ce sont les problèmes qui acceptent un algorithme : 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 ny a aucun élément de chance ou dindication venant de lextérieur. Aucune instance nest trop difficile.
9 janvier 2006Cours d'algorithmique 11 / Intranet14 N P – complétude La classe de problèmes « N P » ! La classe de problèmes « N P » ! Ce sont les problèmes qui acceptent un algorithme : 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 lextérieur.
9 janvier 2006Cours d'algorithmique 11 / Intranet15 N P – complétude La classe de problèmes « N P » ! La classe de problèmes « N P » ! Il est clair que : Il est clair que : P N P Mais ? Mais ? P = N P ou P = N P U /
9 janvier 2006Cours d'algorithmique 11 / Intranet16 N P – complétude La classe de problèmes « N P » ! La classe de problèmes « N P » ! ICI !
9 janvier 2006Cours d'algorithmique 11 / Intranet17 N P – complétude La classe de problèmes « N P » ! La classe de problèmes « N P » ! ICI !
9 janvier 2006Cours d'algorithmique 11 / Intranet18 N P – complétude La classe de problèmes « N P » ! La classe de problèmes « N P » ! ICI !
9 janvier 2006Cours d'algorithmique 11 / Intranet19 N P – complétude La classe de problèmes « N P » ! La classe de problèmes « N P » ! ICI !
9 janvier 2006Cours d'algorithmique 11 / Intranet20 N P – complétude Nous remplaçons une exploration à laide du back-track Nous remplaçons une exploration à laide du back-track – par un appel à loracle. Loracle répond au bout de... ? Loracle répond au bout de... ? – La complexité de loracle est bien-sûr en O ( 1 ). Je sais réaliser un oracle en temps exponentiel ! Je sais réaliser un oracle en temps exponentiel ! – Il suffit de faire un back-track en cachette ! ! !
9 janvier 2006Cours d'algorithmique 11 / Intranet21 N P – complétude Une autre façon de voir les choses : Une autre façon de voir les choses : Si Si P = N P alors alors loracle, cest-à-dire le choix loracle, cest-à-dire le choix peut toujours être calculé en temps polynômial !
9 janvier 2006Cours d'algorithmique 11 / Intranet22 N P – complétude Autre formulation de la classe de problèmes « N P » ! Autre formulation de la classe de problèmes « N P » ! Ce sont les problèmes qui : Ce sont les problèmes qui : – acceptent, pour chaque instance, un nombre borné de candidats à être la solution, – pour lesquels, la vérification quun candidat quelconque est solution appartient à « P ».
9 janvier 2006Cours d'algorithmique 11 / Intranet23 N P – complétude Théorème : Théorème : P N P P N P U N P P P = N P cest-à-dire N P \ P = o | ? ? ? ? ? ? ?
9 janvier 2006Cours d'algorithmique 11 / Intranet24 N P – complétude Définissons la classe « N P C », cest-à-dire les problèmes « N - P - complets » : Définissons la classe « N P C », cest-à-dire les problèmes « N - P - complets » : N P P N P C Ce seront les problèmes les plus difficiles de « N P » ! Lidée : Si eux sont dans « P », alors « P = N P » ! ! ! Facile. Difficile.
9 janvier 2006Cours d'algorithmique 11 / Intranet25 N P – complétude Il nous faut une notion de traduction ! Il nous faut une notion de traduction ! – Soit un problème P : D - > BOOL P se réduit en P, noté P <= P, si et seulement si : P se réduit en P, noté P <= P, si et seulement si : – il existe f : D - > D – telle que pour tout x D : P ( x ) = P ( f ( x ) ) P ( x ) = P ( f ( x ) )
9 janvier 2006Cours d'algorithmique 11 / Intranet26 N P – complétude Lidée derrière la traduction : Lidée derrière la traduction : P 1 x Vrai ou Faux Calcul ! P 2 f ( x ) Traduction ! Vrai ou Faux Calcul ! Le même résultat !
9 janvier 2006Cours d'algorithmique 11 / Intranet27 N P – complétude Un exemple : Un exemple : – Les booléens : Vrai Faux et ou not – Les entiers : 1 0 * max ( 1 - _ ) Théorème : Théorème : – F = Vrai si et seulement si f ( F ) = 1 f : BOOL BOOL Vrai et ( Faux ou not ( Faux ) ) = Vrai 1 * ( 0 max ( ) ) = 1
9 janvier 2006Cours d'algorithmique 11 / Intranet28 N P – complétude Si P <= P et que A résout P : Si P <= P et que A résout P : y P ( y ) 2 A 2 x f f ( x ) P ( f ( x ) ) 2 x P ( x ) 1
9 janvier 2006Cours d'algorithmique 11 / Intranet29 N P – complétude Il nous faut une réduction en temps raisonnable ! Il nous faut une réduction en temps raisonnable ! P se réduit polynômialement en P, noté P <= P, si et seulement si : P se réduit polynômialement en P, noté P <= P, si et seulement si : – il existe f : D - > D avec f P – telle que pour tout x D : P ( x ) = P ( f ( x ) ) P ( x ) = P ( f ( x ) ) <= est un pré-ordre : <= est un pré-ordre : – réflexitivité, transitivité, OK. – Non anti-symétrique : P <= P et P <= P, mais P = P mais P = P P P 1 2 P 2 1 P 21 /
9 janvier 2006Cours d'algorithmique 11 / Intranet30 N P – complétude Théorème : Théorème : Soient P et P avec P <= P : Soient P et P avec P <= P : – Si P P alors P P. Donc, P est au moins aussi difficile que P. Donc, P est au moins aussi difficile que P. Preuve (première condition) : Preuve (première condition) : – Si P P alors il existe A pour le résoudre de manière déterministe et en temps déterministe et en temps polynômial ! polynômial ! – Il suffit de composer A avec la fonction de traduction f / 1 P / 22 2
9 janvier 2006Cours d'algorithmique 11 / Intranet31 N P – complétude Théorème : Théorème : Soient P et P avec P <= P : Soient P et P avec P <= P : – Si P P alors P P. Donc, P est au moins aussi difficile que P. Donc, P est au moins aussi difficile que P. Preuve (seconde condition) : Preuve (seconde condition) : – Par absurde : Il nest pas possible que P P et que P P. – Il existerait A dans P pour résoudre P et il suffirait de composer A avec la fonction de traduction f... composer A avec la fonction de traduction f / 1 P / / 1
9 janvier 2006Cours d'algorithmique 11 / Intranet32 N P – complétude Définition : Définition : La classe « N P C » est la classe des problèmes P tels que : La classe « N P C » est la classe des problèmes P tels que : – P N P. – Pour tout Q N P on a : Q <= P. Tout le monde se réduit vers P. Tout le monde se réduit vers P. P est donc le plus difficile ! ! ! P est donc le plus difficile ! ! ! Si P, P N P C, alors il sont « ex aequo » en difficulté : Si P, P N P C, alors il sont « ex aequo » en difficulté : P <= P et P <= P. P <= P et P <= P. P P P
9 janvier 2006Cours d'algorithmique 11 / Intranet33 N P – complétude Schématiquement : Schématiquement : Globalement, Globalement, – il suffit de savoir résoudre un seul problème, P par exemple, – et de traduire tous les autres vers P. N P N P C PP <= P >= P <= P A >= P B <= P C
9 janvier 2006Cours d'algorithmique 11 / Intranet34 N P – complétude Et si « N P C » était vide ? ? ? Et si « N P C » était vide ? ? ? – Cest-à-dire, un tel problème universel nexiste pas ! ! ! Théorème (Cook, 1971) : Théorème (Cook, 1971) : – SAT N P C. Il ny a pas plus difficile (dans N P C) que la logique. Il ny a pas plus difficile (dans N P C) que la logique. Principe de la preuve : 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.
9 janvier 2006Cours d'algorithmique 11 / Intranet35 N P – complétude Conséquences : Conséquences : Sil existe un seul problème P N P C Sil existe un seul problème P N P C – pour lequel on trouve un algorithme en temps polynômial et déterministe, – alors P = N P ! Sil existe un seul problème P N P C Sil existe un seul problème P N P C – pour lequel on prouve quun algorithme en temps polynômial et déterministe ne peut pas exister, – alors P = N P ! /
9 janvier 2006Cours d'algorithmique 11 / Intranet36 N P – complétude Concrètement : Concrètement : Vous avez un problème qui vous résiste ! Vous avez un problème qui vous résiste ! Essayez de savoir sil est N - P - complet ! Essayez de savoir sil est N - P - complet ! – le Garey and Johnson, – ou Internet, – ou prouvez-le vous-même. Comment faire ? 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
9 janvier 2006Cours d'algorithmique 11 / Intranet37 N P – complétude Concrètement : Concrètement : Si, par malheur, il lest... Si, par malheur, il lest... – Est-ce que jai vraiment besoin de ce résultat ? – Si oui... Est-ce que mon instance est par chance suffisamment petite ? Est-ce que mon instance est par chance suffisamment petite ? – Est-ce que je peux me contenter dun résultat approché ? Lidée derrière le résultat approché : Lidée derrière le résultat approché : Il est peut-être pas loin dêtre optimal ( par exemple à 5% de Il est peut-être pas loin dêtre optimal ( par exemple à 5% de loptimum ), mais il est dans « P » ( par exemple en n^2 ). loptimum ), mais il est dans « P » ( par exemple en n^2 ).
9 janvier 2006Cours d'algorithmique 11 / Intranet38 N P – complétude Quelques problèmes de « N P C » ! Quelques problèmes de « N P C » ! SAT SAT – « n » variables logiques et une formule « F » construite sur ces variables à laide 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 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 ) Exemple : ( x v x v x ) ( x v x v x ) – Même question ! 2-SAT P 2-SAT P v
9 janvier 2006Cours d'algorithmique 11 / Intranet39 N P – complétude Quelques problèmes de « N P C » ! Quelques problèmes de « N P C » ! Circuit-SAT 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 : 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 » !
9 janvier 2006Cours d'algorithmique 11 / Intranet40 N P – complétude La réduction : La réduction : – Variable 3-SAT - > variable Circuit-SAT. – x - > x – ( a v b v c ) - > a b b c c – ( a b... z ) - > a b z vvv... La réduction est dans P !
9 janvier 2006Cours d'algorithmique 11 / Intranet41 N P – complétude Quelques problèmes de « N P C » ! Quelques problèmes de « N P C » ! Subset-Sum 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 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 lensemble complémentaire ?
9 janvier 2006Cours d'algorithmique 11 / Intranet42 N P – complétude Quelques problèmes de « N P C » ! Quelques problèmes de « N P C » ! Programmation entière 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 Programmation entière en – 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 dautres... Et des milliers dautres...