Cours d’Algorithmique N P-complétude. 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Présentation générale 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é 9 janvier 2006 Cours d'algorithmique 11 / Intranet Cours d'algorithmique
Cours d'algorithmique 11 / Intranet 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. 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 » : 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 » : (équivalant au parcours de la table de vérité), 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 » : (équivalant au parcours de la table de vérité), et puis … ? 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 » : (équivalant au parcours de la table de vérité), et puis … ? Rien ! ! ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Personne n'a trouvé mieux ! ! ! 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 » : (équivalant au parcours de la table de vérité), et puis … ? Rien ! ! ! Personne n'a trouvé mieux ! ! ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet Le problème ----------------------------------------------------------------- La question : Y aurait-il par hasard des problèmes dont la complexité intrinsèque est exponentielle ? 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 ! ! ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
On ne sait rien de définitif ! ! ! 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 ! ! ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
On ne sait rien de définitif ! ! ! 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 / 9 janvier 2006 Cours d'algorithmique 11 / Intranet
On ne sait rien de définitif ! ! ! 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 / 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet Le problème ----------------------------------------------------------------- La question de la « N P – complétude » : P = N P ou bien / 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet Le problème ----------------------------------------------------------------- On connaît des centaines et des centaines de problèmes « N P – complets » : 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 ! / 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 ! / 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 ! ! ! / 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet Le problème ----------------------------------------------------------------- Les problèmes « N P – complets » sont aussi appelés : INTRACTABLES !!! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Evitez-les quand vous le pouvez ! 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 ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet Le problème ----------------------------------------------------------------- Un problème « N P – complet » est, de manière informelle, mais correspondant à la pratique : 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 ) 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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é). 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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é). 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet Des exemples ----------------------------------------------------------------- « SAT » est « N P –complet » : « n » variables logiques, une formule logique construite sur ces variables à l’aide de et, ou et not. 9 janvier 2006 Cours d'algorithmique 11 / Intranet
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 ? 9 janvier 2006 Cours d'algorithmique 11 / Intranet
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 ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet Des exemples ----------------------------------------------------------------- Attention : Parfois c’est simple ! ! ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet Des exemples ----------------------------------------------------------------- Attention : Parfois c’est simple ! ! ! a b . . . z a v ( . . . ) v v v 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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, 9 janvier 2006 Cours d'algorithmique 11 / Intranet
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 ? 9 janvier 2006 Cours d'algorithmique 11 / Intranet
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 ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- P L U S P R E C I S E M E N T . . . 9 janvier 2006 Cours d'algorithmique 11 / Intranet
La classe de problèmes « P » ! 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. 9 janvier 2006 Cours d'algorithmique 11 / Intranet
La classe de problèmes « P » ! 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. 9 janvier 2006 Cours d'algorithmique 11 / Intranet
La classe de problèmes « P » ! 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. 9 janvier 2006 Cours d'algorithmique 11 / Intranet
La classe de problèmes « P » ! 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. 9 janvier 2006 Cours d'algorithmique 11 / Intranet
La classe de problèmes « P » ! La plupart des problèmes ! 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 ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
La classe de problèmes « N P » ! 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. 9 janvier 2006 Cours d'algorithmique 11 / Intranet
La classe de problèmes « N P » ! 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. 9 janvier 2006 Cours d'algorithmique 11 / Intranet
La classe de problèmes « N P » ! 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. 9 janvier 2006 Cours d'algorithmique 11 / Intranet
La classe de problèmes « N P » ! 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 ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
La classe de problèmes « N P » ! N P – complétude ----------------------------------------------------------------- La classe de problèmes « N P » ! Il est clair que : P N P U 9 janvier 2006 Cours d'algorithmique 11 / Intranet
La classe de problèmes « N P » ! N P – complétude ----------------------------------------------------------------- La classe de problèmes « N P » ! Il est clair que : P N P Mais ? P = N P ou P = N P U / 9 janvier 2006 Cours d'algorithmique 11 / Intranet
La classe de problèmes « N P » ! N P – complétude ----------------------------------------------------------------- La classe de problèmes « N P » ! Il est clair que : P N P Mais ? P = N P ou P = N P U / Est-ce que l'oracle apporte un plus ? ? ? 9 janvier 2006 Cours d'algorithmique 11 / Intranet
La classe de problèmes « N P » ! N P – complétude ----------------------------------------------------------------- La classe de problèmes « N P » ! ICI ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
La classe de problèmes « N P » ! On voit ou est la solution ! N P – complétude ----------------------------------------------------------------- La classe de problèmes « N P » ! ICI ! On voit ou est la solution ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
La classe de problèmes « N P » ! N P – complétude ----------------------------------------------------------------- La classe de problèmes « N P » ! E t m a i n t e n a n t ? ICI ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
La classe de problèmes « N P » ! N P – complétude ----------------------------------------------------------------- La classe de problèmes « N P » ! Vous pouvez bien-sûr faire du back-track ! Mais, c’est très, très coûteux ! ! ! ! ! ! E t m a i n t e n a n t ? ICI ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
La classe de problèmes « N P » ! N P – complétude ----------------------------------------------------------------- Ou alors poser la question à l'oracle ! La classe de problèmes « N P » ! E t m a i n t e n a n t ? ICI ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
La classe de problèmes « N P » ! 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 ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
La classe de problèmes « N P » ! 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 ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
La classe de problèmes « N P » ! 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 ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
La classe de problèmes « N P » ! N P – complétude ----------------------------------------------------------------- Ou alors poser la question à l'oracle ! La classe de problèmes « N P » ! Oracle ? A droite ! E t m a i n t e n a n t ? ICI ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
La classe de problèmes « N P » ! 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 ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
La classe de problèmes « N P » ! N P – complétude ----------------------------------------------------------------- Ou alors poser la question à l'oracle ! La classe de problèmes « N P » ! Oracle ? A droite ! E t m a i n t e n a n t ? ICI ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
La classe de problèmes « N P » ! L'oracle ne se trompe jamais ! 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 ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- Nous remplaçons une exploration à l’aide du back-track par un appel à l’oracle. 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 . . . ? 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 ) . 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 ! ! ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Une autre façon de voir les choses : 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 ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Autre formulation de la classe de problèmes « N P » ! N P – complétude ----------------------------------------------------------------- Autre formulation de la classe de problèmes « N P » ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Autre formulation de la classe de problèmes « N P » ! 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 ». 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Autre formulation de la classe de problèmes « N P » ! 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 ! ! ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Autre formulation de la classe de problèmes « N P » ! 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 : 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Vous vérifiez qu'il n'y a pas arnaque ! 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 ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- Théorème : P N P U 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- Théorème : P N P U N P P 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- Théorème : P N P U N P P ? ? P = N P c’est-à-dire N P \ P = o | 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- Théorème : P N P U N P ? ? ? ? ? P ? ? P = N P c’est-à-dire N P \ P = o | 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- Théorème : P N P U N P TSP SAT SAT P TSP Où sont SAT et TSP ? 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- Définissons la classe « N P C », c’est-à-dire les problèmes « N-P-complets » : N P P 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- Définissons la classe « N P C », c’est-à-dire les problèmes « N-P-complets » : N P C N P P 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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. 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 » ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 » ! ! ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 N P C » ! ! ! U 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- Il nous faut une notion de traduction ! Soit un problème P : D -> BOOL 1 1 2 2 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- 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 : 1 1 2 2 1 2 1 2 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- 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 : il existe f : D -> D 1 1 2 2 1 2 1 2 1 2 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- 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 : 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 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- L’idée derrière la traduction : P 1 x 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- L’idée derrière la traduction : P 1 Calcul ! x Vrai ou Faux 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- L’idée derrière la traduction : P 1 Calcul ! x Vrai ou Faux Traduction ! P 2 f ( x ) 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- L’idée derrière la traduction : P 1 Calcul ! x Vrai ou Faux Traduction ! P 2 Calcul ! f ( x ) Vrai ou Faux 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- L’idée derrière la traduction : P 1 Calcul ! x Vrai ou Faux Le même résultat ! Traduction ! P 2 Calcul ! f ( x ) Vrai ou Faux 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- Un exemple : Les booléens : Vrai Faux et ou not Les entiers : 1 0 * max ( 1 - _ ) 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- Un exemple : Les booléens : Vrai Faux et ou not Les entiers : 1 0 * max ( 1 - _ ) f : 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- 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 : BOOL BOOL 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Vrai et ( Faux ou not ( Faux ) ) = Vrai N P – complétude ----------------------------------------------------------------- Vrai et ( Faux ou not ( 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 : BOOL BOOL 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Vrai et ( Faux ou not ( Faux ) ) = Vrai N P – complétude ----------------------------------------------------------------- Vrai et ( Faux ou not ( 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 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- Si P <= P et que A résout P : 1 2 2 2 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- Si P <= P et que A résout P : 1 2 2 2 A 2 y P ( y ) 2 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- Si P <= P et que A résout P : 1 2 2 2 x f ( x ) P ( f ( x ) ) 2 A f 2 y P ( y ) 2 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- Si P <= P et que A résout P : 1 2 2 2 Par définition ! x x f ( x ) P ( f ( x ) ) = P ( x ) 2 1 A f 2 y P ( y ) 2 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- Si P <= P et que A résout P : 1 2 2 2 x x f ( x ) P ( f ( x ) ) P ( x ) 2 1 A f 2 y P ( y ) 2 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- Si P <= P et que A résout P : 1 2 2 2 x x f ( x ) P ( f ( x ) ) P ( x ) 2 1 A f 2 y P ( y ) 2 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- Si P <= P et que A résout P : 1 2 2 2 x x f ( x ) P ( f ( x ) ) P ( x ) 2 1 A 2 A f 1 y P ( y ) 2 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- Si P <= P et que A résout P : Complexité : Si f e P et A e P , alors A e P ! 1 2 2 2 x x f ( x ) P ( f ( x ) ) P ( x ) 2 1 A 2 A f 1 y P ( y ) 2 2 1 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 e P telle que pour tout x e D : P ( x ) = P ( f ( x ) ) 1 2 1 2 P 1 2 1 1 2 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 e P 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 / 9 janvier 2006 Cours d'algorithmique 11 / Intranet 1 2
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- Théorème : Soient P et P avec P <= P : Si P e P alors P e P . 1 2 1 2 P 2 1 / / 1 2 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- Théorème : Soient P et P avec P <= P : Si P e P alors P e P . Donc, P est au moins aussi difficile que P . 1 2 1 2 P 2 1 / / 1 2 2 1 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- Théorème : Soient P et P avec P <= P : Si P e P alors P e P . Donc, P est au moins aussi difficile que P . Preuve (première condition) : Si P e P 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 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- Théorème : Soient P et P avec P <= P : Si P e P alors P e P . Donc, P est au moins aussi difficile que P . Preuve (seconde condition) : Par absurde : Il n’est pas possible que P e P et que P e P . 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 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- Définition : La classe « N P C » est la classe des problèmes P tels que : P e N P . Pour tout Q e N P on a : Q <= P . P 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- Définition : La classe « N P C » est la classe des problèmes P tels que : P e N P . Pour tout Q e N P on a : Q <= P . Tout le monde se réduit vers P . P 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- Définition : La classe « N P C » est la classe des problèmes P tels que : P e N P . Pour tout Q e N P on a : Q <= P . Tout le monde se réduit vers P . P est donc le plus difficile ! ! ! P 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- Définition : La classe « N P C » est la classe des problèmes P tels que : P e N P . Pour tout Q e N P on a : Q <= P . Tout le monde se réduit vers P . P est donc le plus difficile ! ! ! Si P , P’ e N P C , alors il sont « ex aequo » en difficulté : P <= P’ et P’ <= P . P P P 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- Schématiquement : N P C P P’ N P 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- Schématiquement : <= P N P C P P’ N P >= P 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- Schématiquement : <= P N P C P P’ N P >= P <= P A 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- Schématiquement : <= P N P C P P’ N P >= P >= P <= P A B 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- Schématiquement : <= P N P C P P’ N P >= P >= P <= P A B <= P C 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 >= P <= P A B <= P C 9 janvier 2006 Cours d'algorithmique 11 / Intranet
"P" est un problème universel ! ! ! 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 >= Autrement dit, "P" est un problème universel ! ! ! P >= P <= P A B <= P C 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- Et si « N P C » était vide ? ? ? C’est-à-dire, un tel problème universel n’existe pas ! ! ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 e N P C . 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 e N P C . Il n’y a pas plus difficile (dans N P C) que la logique. 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 e N 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. 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 e N 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. 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- Conséquences : S’il existe un seul problème P e N P C pour lequel on trouve un algorithme en temps polynômial et déterministe, alors P = N P ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Le problème universel est facile ! N P – complétude ----------------------------------------------------------------- Conséquences : S’il existe un seul problème P e N P C pour lequel on trouve un algorithme en temps polynômial et déterministe, alors P = N P ! Le problème universel est facile ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Le problème universel est facile ! N P – complétude ----------------------------------------------------------------- Conséquences : S’il existe un seul problème P e N P C pour lequel on trouve un algorithme en temps polynômial et déterministe, alors P = N P ! Le problème universel est facile ! Personne n'a trouvé ! ! ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Le problème universel est facile ! N P – complétude ----------------------------------------------------------------- Conséquences : S’il existe un seul problème P e N P C pour lequel on trouve un algorithme en temps polynômial et déterministe, alors P = N P ! pour lequel on prouve qu’un algorithme en temps polynômial et déterministe ne peut pas exister, Le problème universel est facile ! Personne n'a trouvé ! ! ! / 9 janvier 2006 Cours d'algorithmique 11 / Intranet
N P – complétude ----------------------------------------------------------------- Conséquences : S’il existe un seul problème P e N P C pour lequel on trouve un algorithme en temps polynômial et déterministe, alors P = N P ! pour lequel on prouve qu’un algorithme en temps polynômial et déterministe ne peut pas exister, Le problème universel est facile ! Personne n'a trouvé ! ! ! / Le problème universel est difficile ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Personne n'a trouvé ! ! ! Personne n'a prouvé ! ! ! N P – complétude ----------------------------------------------------------------- Conséquences : S’il existe un seul problème P e N P C pour lequel on trouve un algorithme en temps polynômial et déterministe, alors P = N P ! pour lequel on prouve qu’un algorithme en temps polynômial et déterministe ne peut pas exister, Le problème universel est facile ! Personne n'a trouvé ! ! ! Personne n'a prouvé ! ! ! / Le problème universel est difficile ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- Concrètement : Vous avez un problème qui vous résiste ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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. 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 ? 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- Concrètement : Si, par malheur, il l’est . . . 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- Concrètement : Si, par malheur, il l’est . . . Est-ce que j’ai vraiment besoin de ce résultat ? 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 ? 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 ) . 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 ? 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 ! v 1 3 5 3 2 4 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 e P v 1 3 5 3 2 4 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 e P v 1 3 5 3 2 4 Attention ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 ? 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 » ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- La réduction : Variable 3-SAT -> variable Circuit-SAT. 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- La réduction : Variable 3-SAT -> variable Circuit-SAT. ù x -> x 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet N P – complétude ----------------------------------------------------------------- La réduction : Variable 3-SAT -> variable Circuit-SAT. ù x -> x ( a v b v c ) -> a b c 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 . . . . . . z v v v . . . 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 . . . . . . z L'équivalence est évidente ! v v v . . . 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 . . . . . . z L'équivalence est évidente ! La réduction est dans P ! v v v . . . 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 ? 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 ? 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 ? 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 La question : Existe-il un vecteur x avec des valeurs 0 ou 1 tel que M * x <= b ? 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet 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 La question : Existe-il un vecteur x avec des valeurs 0 ou 1 tel que M * x <= b ? Et des milliers d’autres . . . 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet Synthèse ----------------------------------------------------------------- N P-complétude : 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Très probablement P = N P ! ! ! Malheureusement ! ! ! / Synthèse ----------------------------------------------------------------- N P-complétude : Très probablement P = N P ! ! ! Malheureusement ! ! ! / 9 janvier 2006 Cours d'algorithmique 11 / Intranet
Cours d'algorithmique 11 / Intranet m E r C i e T b O n N e J o U r N é E ! ! ! n ‘ O u B l I e Z p A s D e p R é P a R e R v O s T D ! ! ! 9 janvier 2006 Cours d'algorithmique 11 / Intranet