1 STRUCTURES DE DONNÉES Introduction à l’algorithmique et aux structures de données 2 I. Introduction A propos du sujet L’organisation du cours Plan de séance 3 De quoi est-il question ? Session SDD 2011 Algorithme & SDD : dualité Culture G : histoire et anecdotes Enjeux et principes de l’algorithmique Programme Méthode pédagogique Quelques repères : cours, TD, TP, … Evaluation, coefficients Ce qui change par rapport à 2010 Equipe pédagogique Pour approfondir : bibliographie Algorithme 4 But : effectuer une opération complexe Données en entrée Production d’un résultat : données en sortie Moyen : succession d’opérations élémentaires Méthode systématique, déterministe Implique une façon de structurer les données à manipuler Equifinalité Plusieurs méthodes possibles Elles ne se valent pas toutes ENJEU : la performance ! Intro Sujet Algo & SDD Structure de donnée 5 Organisation des données à manipuler Deux grandes familles élémentaires Structures séquentielles Structures arborescentes Plus généralement… les graphes La structure appelle la méthode de traitement SDD séquentielles : traitement naturellement itératif SDD arborescentes : traitement naturellement récursif Intro Sujet Algo & SDD Etude de cas 6 Deux exemples issus de l’algorithmique numérique Arithmétique But : addition et multiplication SDD : Numération de position vs. TFA A vous de jouer avec 23.32 = 72 et 22.33 = 108 Polynômes But : Evaluer un polynôme SDD : Polynôme développé vs. factorisé Problème : factoriser est difficile Solution : Algorithme de Horner Intro Sujet Algo & SDD A retenir 7 Algorithme et SDD sont indissociables Se conçoivent ensemble Répondent à un même but Réaliser une opération complexe De la manière la plus performante possible Pour approfondir (niveau ontologique) http://www.scriptol.fr/programmation/algorithme- definition.php Intro Sujet Algo & SDD Algorithme : origine étymologique 8 Al Khawarizmi, 783-850 Le Diophante perse Chiffres indiens Œuvre : ..Al-jabr.. (825) Résolution d’équations Méthode systématique Condition d’arrêt Structure algébrique Intro Sujet Culture G Algorithme : l’archétype antique 9 Euclide, 325-265 av. JC Les Eléments (livre 7) Algorithme d’Euclide Calcul du PGCD Intuition géométrique Simplicité : 1 ligne Efficacité : O(n) Généricité : entiers, polynômes, etc. Intro Sujet Culture G Algorithme : l’archétype antique 10 En langage algorithmique Exemple de traduction en C unsigned gcd(unsigned a, unsigned b) { if (b == 0) return a; else return gcd(b, a % b); // ou // return b ? gcd(b, a % b) : a; } Elaborer (schématiser, tâtonner, intuiter) Intro Sujet Spécifier (langage algorithmique) Méthode Implémenter (langage de programmation) Et bien avant Euclide 11 Babyloniens 2000 à 500 av. JC Algorithmes pratiques Astronomie Economie Mathématiques Numération sexagésimale Triplets pythagoriciens 1000 ans avant Pythagore Résolution d’équations Elévation à la puissance Intro Sujet Culture G Et bien avant Euclide 12 Intro Sujet Os d’Ishango ~20000 av. JC De nature arithmétique Associé à un procédé Lequel ? Culture G L’art d’opérer avec efficacité 13 Rappel de la motivation historique Enjeu : la performance (minimiser la complexité) Le calcul : astronomie, économie, mathématique Ishango, les babyloniens, Euclide et les autres Temporelle, spatiale Equifinalité, optimalité difficile à prouver Nombreux problèmes ouverts L’algorithmique est un domaine de recherche très actif Plutôt un art qu’une science Intro Mais un art scientifique A rapprocher des arts tactiques en général Astuce et sagacité : une anecdote : Karatsuba Sujet Enjeu Une anecdote contemporaine 14 Kolmogorov, 1903-1987 Monstre sacré Conjecture de 1952 Muliplication ≥ O(n2) Conférence de 1960 Karatsuba, 1937-2008 Simple étudiant Réfutation : O(n1,58) Nouveau paradigme « Intro Sujet Culture G diviser pour régner » Une anecdote contemporaine 15 Multiplication de deux nombres en numération de position Nombres de 2n chiffres Décomposition en deux moitiés A AM b n Am n B BM b Bm Représentation algébrique de la multiplication naïve AB AM b n Am BM b n Bm AM BM b 2 n AM Bm Am BM b n Am Bm Les multiplications sont plus coûteuses que les additions Version naïve : 4 multiplications intermédiaires Forme équivalente de Karatsuba Complexification AB AM BM b2n AM Am BM Bm AM BM Am Bm bn Am Bm Mémorisation et réutilisation de résultats intermédiaires Ajout de 3 opérations additives supplémentaires On tombe à 3 multiplications ! Application récursive du procédé : O(n2) O(n1,58) Intro Sujet Culture G