Ce cours porte sur des techniques avancées dans la conception et l'analyse des algorithmes. Le cours commence par un parcours rapide de quelques uns des paradigmes principaux de l'algorithmique, notamment flots et couplages et programmation linéaire. Il revient ensuite rapidement sur la NP-complétude et notamment sur l'importance des réductions polynomiales. Au delà de l'analyse de pire cas, on envisage plusieurs approches possibles de l'analyse d'algorithmes, d'une part au travers des notions de complexités: pire-cas, en moyenne, amortie, lissée, ou paramétrique, et d'autre part au travers de mesures de qualités de sortie: optimalité, facteur d'approximation pour l'optimisation, de compétitivité pour l'algorithmique on-line. Ce sera l'occasion de présenter entre autres les notions de potentiel, de noyau, de largeur arborescente.

Niveau requis : Les prérequis minimaux sont quelques éléments d'algorithmique (manipulations de tableaux, listes, arbres; tris et parcours fondamentaux) et de complexité des algorithmes (bornes supérieures et inférieures à la complexité dans le pire cas pour les tris), et une bonne familiarité avec l'outil mathématique (preuve par induction, etc).

Avoir suivi INF423, INF431 ou des cours d'informatique de niveau équivalent est utile.

Modalités d'évaluation : Examen sur table à l'issue du cours.

Langue du cours : Français

Ressources pédagogiques : La page de l'an dernier permet de se faire une idée du cours.


Credits ECTS : 4