Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude.

Slides:



Advertisements
Présentations similaires
Présentation générale Marc Gengler
Advertisements

Notions de fonction Initiation.
« 1.5. Les fonctions logiques »
Algorithmes et structures de données avancés
Cours d’Algorithmique
Cours d’Algorithmique
Cours d'algorithmique 10 / Intranet 1 19 décembre 2006 Cours dAlgorithmique Logique de Hoare (fin) : Les boucles et les invariants.
Cours d’Algorithmique
Cours d’Algorithmique
Problème des 4 couleurs, graphes planaires.
Cours d'algorithmique 7 - Intranet 1 27 novembre 2006 Cours dAlgorithmique Dérécursion (début) : Équivalences entre programmes récursifs et programmes.
18 octobre 2007Cours de compilation 7 - Intranet1 Cours de compilation Génération de code Optimisation de code.
Cours de graphes Problèmes de flots. Théorème du Max-flow – Min-cut.
Cours d’Algorithmique
Cours d’Algorithmique
Cours d'algorithmique 9 - Intranet 1 12 décembre 2006 Cours dAlgorithmique Logique de Hoare (début) : Principes et constructions élémentaires.
Cours d'algorithmique 7 - Intranet 1 27 novembre 2006 Cours dAlgorithmique Dérécursion (début) : Équivalences entre programmes récursifs et programmes.
Cours d'algorithmique 4 - Intranet 1 16 novembre 2006 Cours dAlgorithmique Lalgorithme alpha-beta. Sous-arbres alpha et beta dun arbre minimax et propriétés.
Cours d’Algorithmique
Cours d'algorithmique 5 - Intranet 1 17/21 novembre 2006 Cours dAlgorithmique Divide and Conquer : principes et applications. Calculabilité.Complexité.
21 septembre 2007Cours de compilation 2 - Intranet1 Cours de compilation Evaluation partielle etcompilation.
Analyse syntaxique (intro)
Cours d'algorithmique 8 - Intranet 1 4 décembre 2006 Cours dAlgorithmique Dérécursion (fin) : Équivalences entre programmes récursifs et programmes itératifs.
24 septembre 2007Cours de compilation 4 - Intranet1 Cours de compilation Techniques danalyse descendantes.
Cours d’Algorithmique
16 mars 2007Cours de graphes 7 - Intranet1 Cours de graphes Problèmes NP-complets. Réductions polynômiales.
Algèbre de Boole Définitions :
Calcul propositionnel
Système formel Nous avons introduit : signes de variables (x, y, z, …), de constantes (0, 1), d’opérations (+, ), de relations (=, ) Axiomes : ce sont.
Séminaire Florin Périer Alain Gély LIMOS
Cours d’Algorithmique
Génération de colonnes
Cours d’Algorithmique
Heuristiques A. Introduction B. Recherche d ’une branche
Chapitre 2 Réductions: exemples et méthodes
Problème des 4 couleurs, graphes planaires.
Quelques applications.
Quelques graphes particuliers.
Cours de graphes Les arbres et arborescences.
16 mars 2007Cours de graphes 7 - Intranet1 Cours de graphes Problèmes NP-complets. Réductions polynômiales.
FRACTIONS PARTIELLES cours 13.
IFT Complexité et NP-complétude
IFT Chapitre 1 Classes de complexité fondamentales:
IFT Au delà de NP: hiérarchie polynomiale, EXP, NEXP.
1.2 FONCTIONS Cours 2.
Algorithmes d ’approximation
Cours de graphes Marc Gengler Alexandra Bac Sébastien Fournier
21 février 2006Cours de graphes 2 - Intranet1 Cours de graphes Les plus courts chemins, les chemins les plus légers : à laide de la vague, à laide de la.
Cours de graphes 6 - Intranet
23 février 2007Cours de graphes 4 - Intranet1 Cours de graphes Problèmes de flots. Théorème du Max-flow – Min-cut. Algos de Ford-Fulkerson et Edmonds-Karp.
Programmation dynamique
Tutorat en bio-informatique Le 21 novembre Exercices 2 et 3 (MAT1400) - solutions Chapitre 11.7, Analyse - concepts et contextes vol. 2 27) Cherchez.
8.3 THÉORÈME FONDAMENTAL DE LALGÈBRE cours 27. Au dernier cours nous avons vus La définition des nombres complexes Les opérations sur les nombres complexes.
Structures de données IFT-2000 Abder Alikacem La récursivité Semaine 5 Département dinformatique et de génie logiciel Édition Septembre 2009.
8INF8061 Conception et analyse des algorithmes Comment comparer deux problèmes?
Structures de données IFT-2000 Abder Alikacem La récursivité Département d’informatique et de génie logiciel Édition Septembre 2009.
IFT Complexité et NP-complétude Chapitre 0 Rappels.
Conception et analyse des algorithmes
IFT Complexité et NP-complétude
Graphes 1. Introduction 2. Définition 3. Représentation mémoire
D.E ZEGOUR Ecole Supérieure d’Informatique
D.E ZEGOUR Ecole Supérieure d’Informatique
Programmation linéaire en nombres entiers
D.E ZEGOUR Ecole Supérieure d’Informatique. Problèmes de décision Concepts de base Expressions régulières Notation particulière pour exprimer certaines.
2008/ Plan du cours 1.Introduction –Contenu du cours 2.Logique mathématique –Calcul propositionnel –Calcul des prédicats –Logique floue et aide à.
Cours d'algorithmique 10 / Intranet 1 19 décembre 2006 Cours d’Algorithmique Logique de Hoare (fin) : Les boucles et les invariants.
Problème de voyageur de commerce
Chap. 3 Récursion et induction. Les définitions par récurrence consistent à construire des objets finis, à partir d'autres, selon certaines règles. Les.
Programmation par contraintes Réalisé par: WETCHA Chaima MOKDED Mohamed Ali FIA3-GL-AL 1 1.
Algorithmes Branch & Bound Module IAD/RP/RO Master d ’informatique Paris 6 Philippe Chrétienne.
Transcription de la présentation:

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...