La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Efficacité des algorithmes Comment choisir parmi les différentes approches pour résoudre un problème? 2 objectifs à atteindre: 1.Concevoir un algorithme.

Présentations similaires


Présentation au sujet: "Efficacité des algorithmes Comment choisir parmi les différentes approches pour résoudre un problème? 2 objectifs à atteindre: 1.Concevoir un algorithme."— Transcription de la présentation:

1 Efficacité des algorithmes Comment choisir parmi les différentes approches pour résoudre un problème? 2 objectifs à atteindre: 1.Concevoir un algorithme facile à comprendre, coder et déboguer. 2.Concevoir un algorithme qui utilise de façon efficace les ressources de lordinateur.

2 Efficacité 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?

3 Comment mesurer lefficacité? 1.Comparaison empirique:coder et exécuter le programme 2.Analyse théorique (asymptotique) Ressources critiques : temps, espace mémoire,... Facteurs affectant le temps dexécution : machine, language, 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.

4 Analyse théorique On compte le nombre dopérations élémentaires en fonction de la longueur de lentrée. Exemple: ProblèmeOp. élémentaire Trouver x dans un tableauComparaison de x avec les éléments du tableau Multiplier 2 matricesMultiplication scalaire Trier un tableauComparaison entre deux éléments du tableau Parcourir un arbreVisiter un noeud

5 Analyse théorique La longueur de lentrée dépend du problème. Exemple: ProblèmeLongueur Trier un tableauNombre déléments dans le tableau Multiplier deux matricesDimension des matrices Parcourir un arbre binaireNombre 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

6 Exemples Exemple 1. // Retourne lindice du plus grand élément int PlusGrand(int T[], int n) { int max = 0; for (int i=1; i

7 Exemples (suite) Exemple 2: int médiane(int T[], int n) { return T(n/2); } Exemple 3: sum = 0; for (i=1; i<=n; i++) for (j=1; j<=n; j++) sum++;

8 Meilleur algorithme ou ordinateur? On suppose que lordinateur utilisé peut effectuer 10 6 opérations à la seconde

9 Taux de croissance

10 Pire 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

12 Compromis espace-temps Deux situations: 1)Lorsqu'on peut réduire le temps de calcul en utilisant plus d'espace mémoire: Exemple: table de conversion (look-up table). 1)Lorsqu'on peut réduire l'espace mémoire au prix d'un temps d'exécution plus long: Exemple: compression de données


Télécharger ppt "Efficacité des algorithmes Comment choisir parmi les différentes approches pour résoudre un problème? 2 objectifs à atteindre: 1.Concevoir un algorithme."

Présentations similaires


Annonces Google