Cours d’Algorithmique

Slides:



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

« 1.5. Les fonctions logiques »
Algorithmes et structures de données avancés
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 9 - Intranet 1 12 décembre 2006 Cours dAlgorithmique Logique de Hoare (début) : Principes et constructions élémentaires.
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.
Quelques applications.
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 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude.
Cours d'algorithmique 5 - Intranet 1 17/21 novembre 2006 Cours dAlgorithmique Divide and Conquer : principes et applications. Calculabilité.Complexité.
Cours de compilation 2 - Intranet
Cours de graphes Les plus courts chemins,
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 :
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
Cours d'algorithmique 2 - Intranet 1 8 novembre 2006 Cours dAlgorithmique Listes, piles et files. Arbres. Types de données abstraits. Implantations.
Cours d’Algorithmique
Génération de colonnes
Cours d’Algorithmique
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.
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
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.
Transcription de la présentation:

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