1 / 15

S tructures D e D onnées

S tructures D e D onnées. Introduction à l’algorithmique et aux structures de données. I. Introduction.  A propos du sujet L’organisation du cours. Plan de séance. De quoi est-il question ? Algorithme & SDD : dualité Culture G : histoire et anecdotes

rance
Download Presentation

S tructures D e D onnées

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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

  3. Plan de séance • De quoi est-il question ? • Algorithme & SDD : dualité • Culture G : histoire et anecdotes • Enjeux et principes de l’algorithmique • Session SDD 2011 • 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

  4. Algorithme • 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 !

  5. Structure de donnée • 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

  6. Etude de cas • 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

  7. A retenir • 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

  8. Algorithme : origine étymologique • 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

  9. Algorithme : l’archétype antique • 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.

  10. Algorithme : l’archétype antique 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; }

  11. Et bien avant Euclide • 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

  12. Et bien avant Euclide • Os d’Ishango • ~20000 av. JC • De nature arithmétique • Associé à un procédé • Lequel ?

  13. L’art d’opérer avec efficacité • Rappel de la motivation historique • Le calcul : astronomie, économie, mathématique • Ishango, les babyloniens, Euclide et les autres • Enjeu : la performance (minimiser la complexité) • 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 • Mais un art scientifique • A rapprocher des arts tactiques en général • Astuce et sagacité : une anecdote : Karatsuba

  14. Une anecdote contemporaine • Kolmogorov, 1903-1987 • Monstre sacré • Conjecture de 1952 • Multiplication ≥O(n2) • Conférence de 1960 • Karatsuba, 1937-2008 • Simple étudiant • Réfutation : O(n1,58) • Nouveau paradigme • « diviser pour régner »

  15. Une anecdote contemporaine • Multiplication de deux nombres en numération de position • Nombres de 2n chiffres • Décomposition en deux moitiés • Représentation algébrique de la multiplication naïve • Les multiplications sont plus coûteuses que les additions • Version naïve : 4 multiplications intermédiaires • Forme équivalente de Karatsuba • Complexification • 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)

More Related