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.
On donne 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".
On fera 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 est constituée de problèmes dont la solution est vérifiable en temps polynomial, mais les 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.
La complexité algorithmique étudie la difficulté intrinsèque des problèmes, en particulier vis-à-vis du temps nécessaire à leur résolution.
On donne 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".
On fera 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 est constituée de problèmes dont la solution est vérifiable en temps polynomial, mais les 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 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".
19.5 heures en présentiel
Diplôme(s) concerné(s)
Parcours de rattachement
Format des notes
Numérique sur 20Littérale/grade européenProgramme 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