Faire comprendre la notion de complexité du traitement informatique. Étudier les différentes techniques permettant d'analyser l'efficacité des algorithmes. Rendre apte à concevoir et implanter des algorithmes efficaces.
Analyse: Complexité de temps et d'espace, notation asymptotique, résolution d'équations de récurrence. Conception: Algorithmes voraces, méthode diviser-pour-régner, programmation dynamique, algorithmes probabilistes et parallèles. Problèmes indécidables et intraitables. NP-complétude.
Préalable(s): ((8INF259 et 8MAP107) ou (8MAT122 et 8SIF109))
Ce cours n'est dans aucun programme ouvert aux admissions.