Informatique
1 Notion d’algorithme et d’espace mémoire L’objectif initial de l’informatique est de fournir des algorithmes permettant de résoudre un problème donné. • Algorithme : ensemble de règles opératoires dont l’application permet de résoudre le problème au moyen d’un nombre fini d’opérations → problème : temps d’exécution des traitements à minimiser • Espace mémoire : taille des données utilisées dans le traitement et la représentation du problème → problème : espace mémoire occupé à minimiser Les notions de traitements et d’espace mémoire sont liés. Ces deux critères doivent servir de guide au choix d'une représentation de donnée. 2 Approche intuitive de la complexité Exemple de problème: le voyageur de commerce. Ce voyageur doit trouver le chemin le plus court pour visiter tous ses clients, localisés chacun dans une ville différente, et en passant une et une seule fois par chaque ville. On peut imaginer un algorithme naïf : 1. on envisage tous les chemins possibles, 2. on calcule la longueur pour chacun d'eux, 3. on conserve celui donnant la plus petite longueur. Cette méthode « brutale » conduit à calculer un nombre de chemin «exponentiel» par rapport au nombre de villes. Il existe des algoritmes plus « fins » permettant de réduire le nombre de chemins à calculer et l’espace mémoire utilisé. Mais on ne connaît pas d'algorithme exact qui ait une complexité (temps de résolution) acceptable pour ce problème. Pour les problèmes qui sont aussi «difficile», on cherche des méthodes approchées, appelées heuristiques.
1
3 Complexité en temps (et mémoire) Si l’on souhaite comparer les performances d’algorithmes, on peut considérer une mesure basée sur leur temps d’exécution. Cette mesure est appelée la complexité en temps de l’algorithme. On utilise la notion dite « de Landau » qui traite de l’ordre de grandeur du nombre d’opérations effectuées par un algorithme donné. → on utilise la notation « O » qui donne