1.68k likes | 2.09k Views
Cours d’Algorithmique. N P - complétude. Les grandes lignes du cours. Trier et chercher, recherche textuelle Listes et arbres Le back-track Arbres équilibrés Récursivité et induction sur la structure Divide and conquer, algorithmes gloutons Minimax, alpha-beta Dérécursion NP-complétude
E N D
Cours d’Algorithmique N P-complétude. Cours d'algorithmique 11 / Intranet
Les grandes lignes du cours • Trier et chercher, recherche textuelle • Listes et arbres • Le back-track • Arbres équilibrés • Récursivité et induction sur la structure • Divide and conquer, algorithmes gloutons • Minimax, alpha-beta • Dérécursion • NP-complétude • Logique de Hoare • Programmation dynamique • Complexité et calculabilité Cours d'algorithmique 11 / Intranet
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. 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 » : 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 » : • en back-track avec une complexité exponentielle, (équivalant au parcours de la table de vérité), 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 » : • en back-track avec une complexité exponentielle, (équivalant au parcours de la table de vérité), • et puis … ? 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 » : • en back-track avec une complexité exponentielle, (équivalant au parcours de la table de vérité), • et puis … ? • Rien ! ! ! 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 » : • en back-track avec une complexité exponentielle, (équivalant au parcours de la table de vérité), • et puis … ? • Rien ! ! ! Personne n'a trouvé mieux ! ! ! Cours d'algorithmique 11 / Intranet
Le problème----------------------------------------------------------------- • La question : • Y aurait-il par hasard des problèmes dont la complexité intrinsèque est exponentielle ? 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 ! 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 ! 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 ! ! ! 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 ! ! ! • On ne sait rien de définitif ! ! ! 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 ! ! ! • On ne sait rien de définitif ! ! ! / P = N P ou bien P = N P 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 ! ! ! • On ne sait rien de définitif ! ! ! / P = N P ou bien P = N P Cours d'algorithmique 11 / Intranet
Le problème----------------------------------------------------------------- • La question de la « N P – complétude » : / P = N P ou bien P = N P Cours d'algorithmique 11 / Intranet
Le problème----------------------------------------------------------------- • On connaît des centaines et des centaines de problèmes « N P – complets » : 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 ! / 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 ! / 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 ! ! ! / Cours d'algorithmique 11 / Intranet
Le problème----------------------------------------------------------------- Les problèmes « N P – complets » sont aussi appelés : INTRACTABLES !!! 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 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 Evitez-les quand vous le pouvez ! Cours d'algorithmique 11 / Intranet
Le problème----------------------------------------------------------------- • Un problème « N P – complet » est, • de manière informelle, • mais correspondant à la pratique : 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 ) 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é). 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é). 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 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. 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 ? 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 ! Cours d'algorithmique 11 / Intranet
Des exemples----------------------------------------------------------------- • Attention : • Parfois c’est simple ! ! ! Cours d'algorithmique 11 / Intranet
Des exemples----------------------------------------------------------------- • Attention : • Parfois c’est simple ! ! ! • a b . . . z a v ( . . . ) v v v 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 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, 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 ? 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 ! Cours d'algorithmique 11 / Intranet
N P – complétude ----------------------------------------------------------------- P L U S • R E C I S E M E N T . . . Cours d'algorithmique 11 / Intranet
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. Cours d'algorithmique 11 / Intranet
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. Cours d'algorithmique 11 / Intranet
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. Cours d'algorithmique 11 / Intranet
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. Cours d'algorithmique 11 / Intranet
N P – complétude ----------------------------------------------------------------- • La classe de problèmes « P » ! • Ce sont les problèmes qui acceptent un algorithme : • polynômial, • déterministe, • qui résout toutes les instances. La complexité est un polynôme en termes de la taille du problème. Il n’y a aucun élément de chance ou d’indication venant de l’extérieur. Aucune instance n’est trop difficile. La plupart des problèmes ! Cours d'algorithmique 11 / Intranet
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. Cours d'algorithmique 11 / Intranet
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. Cours d'algorithmique 11 / Intranet
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. Cours d'algorithmique 11 / Intranet
N P – complétude ----------------------------------------------------------------- • La classe de problèmes « N P » ! • Ce sont les problèmes qui acceptent un algorithme : • polynômial, • non-déterministe, • qui résout toutes les instances. Il peut y a avoir des éléments de chance ou des indications venant de l’extérieur. Oracle ! Boule de cristal ! La Pythie ! Cours d'algorithmique 11 / Intranet
N P – complétude ----------------------------------------------------------------- • La classe de problèmes « NP » ! • Il est clair que : P N P U Cours d'algorithmique 11 / Intranet
N P – complétude ----------------------------------------------------------------- • La classe de problèmes « NP » ! • Il est clair que : P N P • Mais ? P = N P ou P = N P U / Cours d'algorithmique 11 / Intranet
N P – complétude ----------------------------------------------------------------- • La classe de problèmes « NP » ! • Il est clair que : P N P • Mais ? P = N P ou P = N P U / Est-ce que l'oracle apporte un plus ? ? ? Cours d'algorithmique 11 / Intranet