s tructures d e d onn es n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
S tructures D e D onnées PowerPoint Presentation
Download Presentation
S tructures D e D onnées

Loading in 2 Seconds...

play fullscreen
1 / 15

S tructures D e D onnées - PowerPoint PPT Presentation


  • 119 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'S tructures D e D onnées' - rance


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
s tructures d e d onn es

Structures De Données

Introduction à l’algorithmique et aux structures de données

i introduction
I. Introduction

 A propos du sujet

L’organisation du cours

plan de s ance
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
algorithme
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 !
structure de donn e
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
etude de cas
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
a retenir
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
algorithme origine tymologique
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
algorithme l arch type antique
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.
algorithme l arch type antique1
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;

}

et bien avant euclide
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
et bien avant euclide1
Et bien avant Euclide
  • Os d’Ishango
  • ~20000 av. JC
  • De nature arithmétique
  • Associé à un procédé
  • Lequel ?
l art d op rer avec efficacit
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
une anecdote contemporaine
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 »
une anecdote contemporaine1
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)