Académique Documents
Professionnel Documents
Culture Documents
Benjamin Wack
2017- 2018
1 / 41
Algorithmique et Analyse d’Algorithmes
Objectifs du cours
Objectifs détaillés
Plan
Présentation du cours
Problématique
Complexité
Méthodologie
Ordres de grandeur
Algorithme de Horner
3 / 41
Algorithmique et Analyse d’Algorithmes
Présentation du cours
Structure du cours
Cours (Benjamin Wack)
Une partie synthétique sur les concepts et schémas algorithmiques
Un algorithme classique afin de se constituer une culture de référence
Ressources
Bibliographie
Page Web
Planning, documents, annales
http://www-verimag.imag.fr/~wack/ALGO5/
Moodle de l’UFR
Sujets et rendus d’Apnées
https://im2ag-moodle.e.ujf-grenoble.fr/course/view.php?id=229
6 / 41
Algorithmique et Analyse d’Algorithmes
Présentation du cours
Évaluations
Note finale = 67 % Examen + 33 % CC
Examen terminal
I 2h30 sans documents ni calculatrice
I Session 2 en juin...
Challenge de programmation
I Semaine du 13 au 17 novembre
I En équipes
7 / 41
Algorithmique et Analyse d’Algorithmes
Présentation du cours
8 / 41
Algorithmique et Analyse d’Algorithmes
Problématique
10 / 41
Algorithmique et Analyse d’Algorithmes
Problématique
Problème concret
Problème formalisé / Algorithme
Programmation
Programme
Données Exécution
t )
Instance Solution
12 / 41
Algorithmique et Analyse d’Algorithmes
Problématique
13 / 41
Algorithmique et Analyse d’Algorithmes
Problématique
14 / 41
Algorithmique et Analyse d’Algorithmes
Problématique
15 / 41
Algorithmique et Analyse d’Algorithmes
Problématique
Programmation
Programme
5 @ ^ mesure
test
Données Exécution
t )
Instance Solution
15 / 41
Algorithmique et Analyse d’Algorithmes
Coût d’un algorithme
17 / 41
Algorithmique et Analyse d’Algorithmes
Coût d’un algorithme
Calcul
Un calcul est une séquence d’opérations qui, à partir d’une configuration
initiale de la mémoire, produit, en un temps fini, une configuration
terminale.
I coût en temps à partir d’une configuration initiale d
= nombre d’opérations dans la séquence
I coût en mémoire
= nombre maximal de variables utilisées simultanément
18 / 41
Algorithmique et Analyse d’Algorithmes
Coût d’un algorithme
Exemple (1)
Moyenne de 2 flottants
MOY(a,b)
Données : Deux flottants : a et b
Résultat : La moyenne de a et de b
s := a + b
m := s/2
Return (m)
Coût de l’algorithme
Coût temps ? 2 opérations
Coût en espace mémoire ? 2 variables
19 / 41
Algorithmique et Analyse d’Algorithmes
Coût d’un algorithme
Exemple (2)
Puissance : calcul de x n
PUISSANCE(x ,n)
Données : Un flottant x et un entier n
Résultat : La valeur de x n
p := 1
k := 0
while k 6= n
p := p × x
k := k + 1
Return (p)
20 / 41
Algorithmique et Analyse d’Algorithmes
Coût d’un algorithme
Exemple (3)
Maximum d’un tableau Coût de l’algorithme
MAXIMUM(T ,n) Modèle de coût ?
Données : T tableau de n entiers Supposons Traiter coûteux
Résultat : L’indice d’un élément maxi
I pour T=[1,2,...,n] ?
max := T [1] I pour T=[14,28,...,14n] ?
for i := 1 to n
if T [i] ≥ max I pour T=[n,1,2,...,n-1] ?
imax := i
max := T [i]
Dépend de la taille des données
Traiter (max )
Borné par une fonction linéaire
Return (imax )
Généralisation
Algorithme
Espace des données Espace des résultats
Machine
Taille de la donnée
Cout du calcul
Entier Entier
23 / 41
Algorithmique et Analyse d’Algorithmes
Complexité
Coût au mieux
min
CA (n) = min(coût(d)) pour toutes les données d de taille n
Instructions en séquence
Le coût de
Faire Truc
Faire Machin
est la somme des coûts de Truc et de Machin
26 / 41
Algorithmique et Analyse d’Algorithmes
Complexité
Méthodologie
Majoration du coût
Le coût au pire sera donc majoré par le maximum des coûts au pire de
chaque branche.
Appel de procédure
Le coût de l’appel d’une procédure est :
I le coût du corps de la procédure pour ses paramètres d’appel
I plus le coût de l’évaluation de ses paramètres.
I assemblage et reconstruction
I méthode par composition
I se fait à la conception de l’algorithme
28 / 41
Algorithmique et Analyse d’Algorithmes
Complexité
Méthodologie
Exemple
Calcul de la somme des entiers de 1 à n
i := 1
somme := 0
Tantque (i ≤ n) :
somme := somme + i
i := i + 1
29 / 41
Algorithmique et Analyse d’Algorithmes
Complexité
Ordres de grandeur
Ordres de grandeur
I La complexité est une prédiction du temps d’exécution du
programme codant l’algorithme.
I Mais dépend de l’architecture de la machine, donc c’est une
abstraction (approximation)
I Passage à l’échelle des algorithmes
1. l’ordre de grandeur ;
2. de pouvoir comparer les algorithmes
31 / 41
Algorithmique et Analyse d’Algorithmes
Complexité
Ordres de grandeur
32 / 41
Algorithmique et Analyse d’Algorithmes
Complexité
Ordres de grandeur
33 / 41
Algorithmique et Analyse d’Algorithmes
Complexité
Ordres de grandeur
I Si k ≤ l alors nk = O(nl )
Échelle logarithmique
I log(n) = O(n)
I log(log(n)) = O(log(n))
Échelle exponentielle
Autres encadrements
35 / 41
Algorithmique et Analyse d’Algorithmes
Algorithme de Horner
P = an X n + an−1 X n−1 + . . . + a1 X + a0
37 / 41
Algorithmique et Analyse d’Algorithmes
Algorithme de Horner
Évaluation droite-gauche
Idée : ne pas recalculer les puissances de x0 pour rien
Complexité en O(n)
39 / 41
Algorithmique et Analyse d’Algorithmes
Algorithme de Horner
Conclusion
La prochaine fois
I schémas récursifs
I analyse du coût en moyenne
I tri rapide
41 / 41