IFT 436 - Algorithmes et structures de données Introduction

publicité
Introduction
IFT 436 - Algorithmes et structures de données
Introduction
Rachid Kadouche
Université de Sherbrooke
30 avril 2013
1
Introduction
Les origines de l’algorithmique
Abu Ja’far Mohammed Ben Mussa Al-Khwarismi
(783-850)
12e siècle, Adelard de Bath introduit le mot algorismus dérivé
de Al Kwarizmi.
Premiers algorithmes connues :
- Euclide : PGCD
- Archimède : approximer π
- Grec et égyptiens : Calcules d’aires
- ...
2
Introduction
Qu’est-ce qu’un algorithme ?
3
Introduction
Qu’est-ce qu’un algorithme ?
Algorithme : Suite finie, séquentielle de règles que l’on
applique à un nombre fini de données, permettant de résoudre
des classes de problèmes semblables.(Le Petit Robert)
entrées -> algo -> sorties
4
Introduction
Qu’est-ce qu’un algorithme ?
Algorithme : Suite finie, séquentielle de règles que l’on
applique à un nombre fini de données, permettant de résoudre
des classes de problèmes semblables.(Le Petit Robert)
entrées -> algo -> sorties
Algorithmique : Science qui étudie l’application des
algorithmes à l’informatique.(Le Petit Robert)
5
Introduction
Qu’est-ce qu’un algorithme ?
Algorithme : Suite finie, séquentielle de règles que l’on
applique à un nombre fini de données, permettant de résoudre
des classes de problèmes semblables.(Le Petit Robert)
entrées -> algo -> sorties
Algorithmique : Science qui étudie l’application des
algorithmes à l’informatique.(Le Petit Robert)
Algorithmique et programmation :
1
2
3
4
6
Analyse du problème
Conception d’une solution : algorithmique
choix de la représentation des données
choix de la méthode utilisée
Développement : programmation
choix du langage de programmation
choix de la machine utilisée
Tests
Introduction
Le rôle de l’algorithmique
Tri : permet de réarranger et de classer des données.
Exemple : Trier une liste
Entrée : Une séquence de n nombre a1, a2, ..., an
Sortie : Une permutation a10 , a20 , ..., an0 de la séquence
d’entrée tel que : a10 6 a20 6 · · · 6 an0 .
Recherche :chercher des données.
Exemple :localiser des données dans un fichier.
Traitement de chaines : manipulation de chaines de caractères.
Exemple : recherche de motifs dans des chaines (pattern
matching), compression de fichiers, cryptographie.
Algorithmes sur graphes : résolution de problèmes complexes
pouvant être représentés par une structure de données
particulière (par exemple le problème du voyageur de
commerce).
Algorithmes mathématiques : Problèmes traitant de
l’arithmétique des entiers, des polynômes, des matrices.
7
Introduction
Applications pratiques de l’algorithmique
Séquençage du génome humain
Internet
Chemin le plus court
Table de Hachage
Filtrage de chaı̂ne de caractère
Commerce électronique
Cryptographie
Télécommunications
Routage
Domotique
Assistance aux personnes âgées ou dépendantes .
Minimisation des coûts
8
Introduction
Avec quelles conventions écrit-on un algorithme ?
Organigrammes : représentation graphique, avec des carrés,
des losanges, etc.
La fonction EstPremier (n) :
9
Introduction
Avec quelles conventions écrit-on un algorithme ?
Organigrammes : représentation graphique, avec des carrés,
des losanges, etc.
La fonction EstPremier (n) :
Dès que l’algorithme commence à grossir, il devient illisible.
10
Introduction
Avec quelles conventions écrit-on un algorithme ?
Pseudo-code (langage de description d’algorithme :
LDA) :plus rapide à écrire et plus facile à traduire en un
langage de programmation.
Algorithme : EstPremier( n :entier) :booléen
if (n=1)or (n=2)or (n=3)or (n=5) then
return true ;
if ((n mod 2)= 0)or ((n mod 3)= 0) then
return false ;
div ← 3;
while div ≤ rac(n) do
if ((n mod div)= 0) then
return false
else
div ← div + 2;
return true ;
11
Introduction
Coût des algorithmes
Plusieurs algorithmes peuvent faire la même chose
mais en effectuant un nombre d’opérations différent.
Différencier leurs coûts :
12
Introduction
Coût des algorithmes
Plusieurs algorithmes peuvent faire la même chose
mais en effectuant un nombre d’opérations différent.
Différencier leurs coûts :
coût en temps d’exécution
13
Introduction
Coût des algorithmes
Plusieurs algorithmes peuvent faire la même chose
mais en effectuant un nombre d’opérations différent.
Différencier leurs coûts :
coût en temps d’exécution
coût en place mémoire
14
Introduction
Coût des algorithmes
Plusieurs algorithmes peuvent faire la même chose
mais en effectuant un nombre d’opérations différent.
Différencier leurs coûts :
coût en temps d’exécution
coût en place mémoire
nombre de transferts mémoire
15
Introduction
L’efficacité
Le tri insertion : c1 n2 opérations pour trier n
nombres,
Le tri fusion : c2 n lg (n) opérations pour trier n
nombres,
Ordinateur A : 1 milliard d’op/sec (1 Ghz)
Ordinateur B : 10 millions d’op/sec (10 Mhz)
16
Introduction
L’efficacité
Le tri insertion : c1 n2 opérations pour trier n
nombres, 2n2
Le tri fusion : c2 n lg (n) opérations pour trier n
nombres, 50n lg (n)
Ordinateur A : 1 milliard d’op/sec (1 Ghz)
Ordinateur B : 10 millions d’op/sec (10 Mhz)
17
Introduction
Références
Thomas H. Cormen, Charles E. Leiserson et Ronald L. Rivest,
Introduction à l’algorithmique, 2e edition
18
Téléchargement