1 / 159

Cours d’Algorithmique

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

hogan
Télécharger la présentation

Cours d’Algorithmique

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Cours d’Algorithmique N P-complétude. Cours d'algorithmique 11 / Intranet

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  16. Le problème----------------------------------------------------------------- • La question de la « N P – complétude » : / P = N P ou bien P = N P Cours d'algorithmique 11 / Intranet

  17. Le problème----------------------------------------------------------------- • On connaît des centaines et des centaines de problèmes « N P – complets » : Cours d'algorithmique 11 / Intranet

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

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

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

  21. Le problème----------------------------------------------------------------- Les problèmes « N P – complets » sont aussi appelés : INTRACTABLES !!! Cours d'algorithmique 11 / Intranet

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

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

  24. Le problème----------------------------------------------------------------- • Un problème « N P – complet » est, • de manière informelle, • mais correspondant à la pratique : Cours d'algorithmique 11 / Intranet

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

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

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

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

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

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

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

  32. Des exemples----------------------------------------------------------------- • Attention : • Parfois c’est simple ! ! ! Cours d'algorithmique 11 / Intranet

  33. Des exemples----------------------------------------------------------------- • Attention : • Parfois c’est simple ! ! ! • a b . . . z a v ( . . . ) v v v Cours d'algorithmique 11 / Intranet

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

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

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

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

  38. N P – complétude ----------------------------------------------------------------- P L U S • R E C I S E M E N T . . . Cours d'algorithmique 11 / Intranet

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

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

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

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

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

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

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

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

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

  48. N P – complétude ----------------------------------------------------------------- • La classe de problèmes « NP » ! • Il est clair que : P N P U Cours d'algorithmique 11 / Intranet

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

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

More Related