2013-14.cours.chapitre1.A.introduction.histoire-et

publicité
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
Téléchargement