Séance 3 : coût d`un algorithme

Transcription

Séance 3 : coût d`un algorithme
Séance 3 : coût d'un algorithme
Plan :
1. rappel sur les séances précédentes
2. calcul d'une variance
3. coût de l'algorithme
4. le jeu du pendu
1. rappel
Au cours des séances précédentes, nous avons vu :
1. les calculs (+ - * / %)
2. les tests ( < > <= >= == != )
3. les boucles (boucle pour (for), boucle tant que (while))
4. les fonctions ou
comment découper un algorithme en tâches élémentaires
2. calcul de la variance
On dispose de n observations :
La moyenne est définie par :
La variance est définie par :
X 1, ... X n
n
 =1 ∑ X i
X
n i=1
n
1
 2
V = ∑  X i− X
n i =1
1. l'algorithme est définie par la formule de la variance
2. le découpage est fonction semble plutôt intuitif :
1. fonction moyenne
2. fonction variance
3. écriture des fonctions
2. fonction moyenne
fonction moyenne
entrées : un tableau de n variables réelles
sorties : un nombre réel
si n est nul alors retourne 0 sinon...
som = 0
pour i allant de 1 à n inclus
som = som + élément i
som = som / n
retourne som
Question subsidiaire : que se passe-t-il lorsque la fonction effectue
la moyenne de 0 élément ?
division zéro par zéro : faut-il prévoir ce cas ?
n
 =1 ∑ X i
X
n i=1
2. fonction variance
fonction variance
entrées : un tableau de n variables réelles
sorties : un nombre réel
n
1
 2
V = ∑  X i− X
n i =1
si n est nul alors retourne 0 sinon...
som = 0
pour i allant de 1 à n inclus
som = (élément i – moyenne (éléments)) * (élément i – moyenne (éléments))
som = som / n
retourne som
Question subsidiaire : que se passe-t-il lorsque la fonction effectue
la moyenne de 0 élément ?
division zéro par zéro : faut-il prévoir ce cas ?
2. récapitulatif
fonction moyenne
som = 0
pour i allant de 1 à n inclus
som = som + élément i
som = som / n
retourne som
fonction variance
n
 =1 ∑ X i
X
n i=1
n
1
 2
V = ∑  X i− X
n i =1
som = 0
pour i allant de 1 à n inclus
som = (élément i – moyenne (éléments)) * (élément i – moyenne (éléments))
som = som / n
retourne som
Coût de l'algorithme ?
3. coût de l'algorithme
Le coût d'un algorithme est une estimation du nombre d'opérations
élémentaires effectué par un algorithme. Cette estimation dépend du nombre
de ses entrées et de leurs dimensions.
Un opération élémentaires est une affection, un calcul, une comparaison.
Exemple : coût de la fonction moyenne ?
nombre d'entrée : 1 tableau
dimension des entrées : n
résultat : 2 n + 2
approximation : O(n)
fonction moyenne
som = 0
pour i allant de 1 à n inclus
som = som + élément i
som = som / n
retourne som
3. approximation ?
Le coût d'un algorithme est souvent une approximation. On est plus intéressé par savoir
ce qu'il se passe lorsque la taille des entrées évolue plutôt que d'avoir une estimation
précise.
coût : O(n)
si la taille double, le temps de calcul double
coût : O(n²)
si la taille double, le temps de calcul quadruple
Les estimations précises ne sont nécessaires que dans des cas extrêmes :
- décompression du signal sonore sur un téléphone mobile
- traitement d'image sur un missible à tête chercheuse
Un autre point : le temps d'exécution d'un algorithme dépend :
- du langage de programmation utilisé
assembleur > C++ > Python
- de la machine utilisée
Pour toutes ces raisons, le coût précis d'un algorithme n'est plus estimé, il est mesuré.
3. coût de la fonction variance
fonction moyenne
som = 0
pour i allant de 1 à n inclus
som = som + élément i
som = som / n
retourne som
O (n)
fonction variance
som = 0
pour i allant de 1 à n inclus
som = (élément i – moyenne (éléments)) *
(élément i – moyenne (éléments))
som = som / n
retourne som
4 n * 2 O (n) + 2 = O (n²)
Peut-on faire mieux ?
- O(n²)
- O(n log n)
- O(n)
3. coût de la fonction variance
fonction moyenne
som = 0
pour i allant de 1 à n inclus
som = som + élément i
som = som / n
retourne som
O (n)
fonction variance
som = 0
moy = moyenne (éléments)
pour i allant de 1 à n inclus
som = (élément i – moy) *
(élément i – moy)
som = som / n
retourne som
O(n)
3. coût de la fonction variance
La réduction du coût d'un algorithme est appelée une optimisation.
L'optimisation présentée est informatique : l'algorithme ne change pas, il est écrit
différemment.
L'optimisation peut être autre comme mathématique : l'algorithme change.
n
n
n
2
1
1
1
2
2
  = ∑ X i − ∑ X i 
V = ∑  X i− X
n i =1
n i=1
n i=1
4. le jeu du pendu
Règles :
- objectif : deviner un mot
- proposer une lettre
- montrer les lettres du mot qui correspondent à la lettre choisie
- au bout de 10 lettres proposées, le joueur est perdu à moins de donner le bon mot
1. algorithme
2. découpage en fonctions
3. écriture des fonctions
4. le jeu du pendu
1. tirer aléatoirement un mot
2. demander une lettre au joueur
3. passer en revue les lettres du mot et retourner celles égales à la lettre demandée
4. afficher les lettres dévoilées
5. vérifier que le jeu est fini, si oui arrêter, sinon, retourner à l'étape 2

Documents pareils