Descriptif
Ce cours s'appuie sur les problèmes de graphes pour présenter la Théorie de la Complexité. La complexité algorithmique étudie la difficulté intrinsèque des problèmes, en particulier vis-à-vis du temps nécessaire à leur résolution.
Nous faisons une introduction à l'étude des classes de complexité, en s'appuyant sur divers problèmes d'optimisation combinatoire, principalement de graphes.
A la fin du cours les élèves sauront évaluer la difficulté d'un problème de recherche opérationnelle et déterminer le type de résolution approprié: une méthode exacte pour un problème "facile" et, en général, une méthode approchée pour un problème "difficile".
Nous ferons une étude détaillée des classes P et NP.
Les problèmes calculables en temps polynomial déterministe forment la classe P. La classe NP contient la classe P et est constituée de problèmes dont la solution est vérifiable en temps polynomial, mais la trouver peut demander un temps exponentiel. Ces deux classes contiennent des milliers de problèmes de la théorie des graphes, de logique, des automates et d'autres domaines.
Nous faisons une introduction à l'étude des classes de complexité, en s'appuyant sur divers problèmes d'optimisation combinatoire, principalement de graphes.
A la fin du cours les élèves sauront évaluer la difficulté d'un problème de recherche opérationnelle et déterminer le type de résolution approprié: une méthode exacte pour un problème "facile" et, en général, une méthode approchée pour un problème "difficile".
Nous ferons une étude détaillée des classes P et NP.
Les problèmes calculables en temps polynomial déterministe forment la classe P. La classe NP contient la classe P et est constituée de problèmes dont la solution est vérifiable en temps polynomial, mais la trouver peut demander un temps exponentiel. Ces deux classes contiennent des milliers de problèmes de la théorie des graphes, de logique, des automates et d'autres domaines.
Objectifs pédagogiques
A la fin du cours les élèves sauront évaluer la difficulté d'un problème de recherche opérationnelle et distinguer les problèmes faciles qu'on peut résoudre en temps polynomial des problèmes NP-difficiles. Cette classification les aide à déterminer l'approche de résolution appropriée : une méthode exacte pour un problème polynomial et, en général, une méthode approchée pour un problème NP-difficile.
21 heures en présentiel
Diplôme(s) concerné(s)
Parcours de rattachement
Format des notes
Numérique sur 20Littérale/grade réduitPour les étudiants du diplôme M2 DS - Data Science
Le rattrapage est autorisé (Note de rattrapage conservée)- Crédits ECTS acquis : 2.5 ECTS
Programme détaillé
1. Bloc de module:
Séance 1
Introduction générale à la complexité des algorithmes. Mesure de l’efficacité d’un algorithme. Problèmes de décision. Transformation polynomiale. Définition des classes P, NP, NP-C, Co-NP. Exemples.
2. Bloc de module:
Séance 2
Problèmes d'optimisation combinatoire, problèmes NP-difficiles.
3. Bloc de module:
Séance 3
Transformation de problèmes.
Preuves de NP-complétude de plusieurs problèmes de RO et de graphes
4. Bloc de module:
Séance 4
Suite: Preuves de NP-complétude de plusieurs problèmes de RO et de graphes.
Algorithmes pseudo-polynomiaux.
5. Bloc de module:
Séance 5
Algorithmes approchés
6. Bloc de module:
Examen écrit