Title: Efficacit
1Efficacité des algorithmes
- Comment choisir parmi les différentes approches
pour résoudre un problème? - 2 objectifs à atteindre
- Concevoir un algorithme facile à comprendre,
coder et déboguer. - Concevoir un algorithme qui utilise de façon
efficace les ressources de lordinateur.
2Efficacité des algorithmes(suite)
- Objectif (1) concerne le génie logiciel
- Objectif (2) Algorithmes et structures de
données. - Lorsque lobjectif (2) est important, comment
peut-on mesurer lefficacité dun algorithme?
3Comment mesurer lefficacité?
- Comparaison empirique coder et exécuter le
programme - Analyse théorique (asymptotique)
- Ressources critiques temps, espace mémoire,...
- Facteurs affectant le temps dexécution
- machine, langage, programmeur, compilateur,
algorithme et structure de données. - En général, le temps dexécution dépend de la
longueur de lentrée. - Ce temps est une fonction positive T(n) où n est
la longueur de lentrée.
4Analyse théorique
- On compte le nombre dopérations élémentaires en
fonction de la longueur de lentrée. - Exemple
Problème Op. élémentaire
Trouver x dans un tableau Comparaison de x avec les éléments du tableau
Multiplier 2 matrices Multiplication scalaire
Trier un tableau Comparaison entre deux éléments du tableau
Parcourir un arbre Visiter un noeud
5Analyse théorique
- La longueur de lentrée dépend du problème.
- Exemple
Problème Longueur
Trier un tableau Nombre déléments dans le tableau
Multiplier deux matrices Dimension des matrices
Parcourir un arbre binaire Nombre de noeuds
Résoudre un système déquations linéaires Nombre dinconnues ou déquations
Résoudre un problème de graphe Nombre de nœuds et/ou nombre darêtes
6Exemples
- Exemple 1.
- // Retourne lindice du plus grand élément
- int PlusGrand(int T, int n)
- int max 0
- for (int i1 iltn i)
- if (Tmax lt Ti)
- max i
- return max
-
7Exemples (suite)
- Exemple 2 int médiane(int T, int n)
- return T(n/2)
-
-
- Exemple 3
- sum 0
- for (i1 iltn i)
- for (j1 jltn j)
- sum
-
8Meilleur algorithme ou ordinateur?
On suppose que lordinateur utilisé peut
effectuer 106 opérations à la seconde
9Taux de croissance
10Pire cas, meilleur cas et cas moyen
- Toutes les entrées dune longueur donnée ne
nécessitent pas le même temps dexécution. - Exemple
- Recherche séquentielle dans un tableau de taille
n On commence au début du tableau et regarde
chaque élément jusquà ce que lélément cherché
soit trouvé. - Meilleur cas 1 comparaison
- Pire cas n comparaisons
- Cas moyen n/2 comparaisons
11(No Transcript)
12Compromis espace-temps
- Deux situations
- Lorsqu'on peut réduire le temps de calcul en
utilisant plus d'espace mémoire - Exemple table de conversion (look-up table).
- Lorsqu'on peut réduire l'espace mémoire au prix
d'un temps d'exécution plus long - Exemple compression de données