Efficacit - PowerPoint PPT Presentation

About This Presentation
Title:

Efficacit

Description:

2 objectifs atteindre: Concevoir un algorithme facile comprendre, coder et d boguer. ... T(n) est dans O(f(n)) s'il existe deux constantes positives c et n0 t.q. ... – PowerPoint PPT presentation

Number of Views:36
Avg rating:3.0/5.0
Slides: 36
Provided by: clif61
Category:

less

Transcript and Presenter's Notes

Title: Efficacit


1
Efficacité des algorithmes
  • Comment choisir parmi les différentes approches
    pour résoudre un problème?
  • Exemple Liste chaînée ou tableau?
  • 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.

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é?
  • Comparaison empirique (exécuter le programme)
  • Analyse assymptotique dalgorithmes
  • 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 T(n) où n est la
    longueur de lentrée.

4
Exemples
  • 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

5
Exemples (suite)
  • Exemple 2 x3
  • Exemple 3
  • sum 0
  • for (i1 iltn i)
  • for (j1 jltn j)
  • sum

6
Meilleur algorithme ou ordinateur?
On suppose que lordinateur utilisé peut
effectuer 106 opérations à la seconde
7
Taux de croissance
8
Analyse assymptotique Grand O
  • Définition T(n) est dans O(f(n)) sil existe
    deux constantes positives c et n0 t.q.
  • T(n) ? cf(n) pour tout n gt n0.
  • Utilité Simplifie l'analyse
  • Signification Pour toutes les grandes entrées
    (i.e., n?n0), on est assuré que lalgorithme ne
    prend pas plus de cf(n) étapes.
  • ? Borne supérieure.

9
Notation grand-O (suite)
  • La notation grand-O indique une borne supérieure
    sur le temps dexécution.
  • Exemple Si T(n) 3n2 2
  • alors T(n) ? O(n2).
  • On désire le plus de précision possible
  • Bien que T(n) 3n2 2 ? O(n3),
  • on préfère O(n2).

10
Grand-O Exemples
  • Exemple 1 Initialiser un tableau dentiers
  • for (int i0 iltn i) Tabi0
  • Il y a n itérations
  • Chaque itération nécessite un temps ? c,
  • où c est une constante.
  • Le temps est donc T(n) ? cn
  • Donc T(n) ? O(n)

11
Grand-O Exemples
  • Exemple 2 T(n) c2n2 c1n c0 .
  • c2n2 c1n c0 ? c2n2 c1n2 c0n2
  • (c2 c1 c0)n2
  • pour tout n ? 1.
  • T(n) ? cn2 où c c2 c1 c0
  • Donc, T(n) est dans O(n2).

12
Grand-O Exemples
  • Exemple 3
  • Lorsque T(n) c, où c est une constante,
  • on écrit T(n) ? O(1).

13
Grand-Omega
  • Definition On a T(n) ? ?(g(n)) s'il existe deux
    constantes positives c et n0 telles que T(n) ?
    cg(n) pour tout n gt n0.
  • Signification Pour de grandes entrées,
    lexécution de lalgorithme nécessite au moins
    cg(n) étapes.
  • ? Borne inférieure.

14
Grand-Omega Exemple
  • T(n) 3n2 2n 5
  • 3n2 2n 5 ? 3n2 pour tout n gt 0.
  • T(n) ? cn2 pour c 3 et ngt0.
  • Donc, T(n) ? ?(n2) par la définition.

15
La notation Theta
  • Lorsque le grand-O et le grand-omega dune
    fonction coïncident, on utilise alors la notation
    grand-theta.
  • Définition Le temps dexécution dun algorithme
    est dans ?(h(n)) sil est à la fois dans O(h(n))
    et dans ?(h(n)).

16
Exemple
?(n) ?(n2) ?(n3) ?(2n) ?(lg n)
?(lg n) ? ?(n) ? ?(n2) ? ?(n3) ? ?(2n)
17
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
  • Commencer au début du tableau et considérer
    chaque élément jusquà ce que lélément cherché
    soit trouvé.
  • Meilleur cas ?(1)
  • Pire cas ?(n)
  • Cas moyen ?(n)

18
(No Transcript)
19
Une erreur fréquente
  • Le meilleur cas pour mon algorithme est n1 car
    cest le plus rapide. FAUX!
  • On utilise la notation grand-O parce quon
    sintéresse au comportement de lalgorithme
    lorsque n augmente.
  • Meilleur cas on considère toutes les entrées de
    longueur n.

20
Règles de simplification 1
  • Si
  • f(n)? O(g(n))
  • et
  • g(n) ? O(h(n)),
  • alors
  • f(n) ? O(h(n)).

21
Règles de simplification 2
  • Si
  • f(n) ? O(kg(n))
  • où k gt0 est une constante
  • alors
  • f(n) ? O(g(n)).

22
Règles de simplification 3
  • Si
  • f1(n) ? O(g1(n))
  • et
  • f2(n) ? O(g2(n)),
  • alors
  • f1(n) f2(n) ? O(max(g1(n), g2(n))).
  • Exemple n nlog n ? O(nlog n)

23
Règles de simplification 4
  • Si
  • f1(n) ? O(g1(n))
  • et
  • f2(n) ? O(g2(n))
  • alors
  • f1(n)f2(n) ? O(g1(n) g2(n))
  • Exemple (3n2 3)(n25nlog n) ? O(n4)

24
Règles de simplification 5
  • Si p(n) est un polynôme de degré k
  • alors p(n) ? ?(nk)

25
Règles de simplification 6
  • logk n ? O(n?)
  • pour toutes constantes kgt0 et ?gt0

26
Exemples
  • Exemple 1 a b
  • Temps constant ?(1).
  • Exemple 2
  • somme 0
  • for (i1 iltn i)
  • somme n
  • Temps ?(n)

27
Exemples
  • Exemple 3
  • somme 0
  • for (i1 iltn i)
  • for (j1 jlti j)
  • somme
  • Temps ?(1) O(n2) O(n2)
  • On peut montrer ?(n2)

28
Exemples
  • Exemple 4
  • somme 0
  • for (j1 jltn j)
  • for (i1 iltn i)
  • somme
  • for (k0 kltn k)
  • Ak k
  • Temps ?(1) ?(n2) ?(n) ?(n2)

29
Exemples
  • Example 5
  • somme 0
  • for (k1 kltn k2)
  • for (j1 jltn j)
  • somme
  • Temps ?(nlog n)

30
Recherche dychotomique
  • // Retourne la position de lélément K
  • // dans un tableau trié de taille n
  • int dycho(int tab, int n, int K)
  • int l 0
  • int r n-1
  • while (l lt r)
  • int m (lr)/2
  • if (tabm lt K) lm1
  • else if (tabm gt K) rm-1
  • else return m
  • return n // K n'est pas dans tab

31
Recherche dychotomique
  • Combien déléments sont examinés dans le pire cas?

32
Autres exemples
  • Instruction if maximum entre le if et le then
  • switch maximum entre les différents cas
  • Appels de fonction Temps dexécution de la
    fonction

33
Analyse de problèmes
  • Borne supérieure Borne supérieur sur le meilleur
    algorithme connu.
  • Borne inférieure Borne inférieure sur tous les
    algorithmes possibles.
  • Exemple Trier un tableau de taille n nécessite
    O(n) étapes et peut se faire en O(nlog n) étapes.

34
Espace mémoire
  • La quantité despace mémoire utilisé peut aussi
    être étudiée à laide de lanalyse assymptotique.
  • En général
  • Temps Algorithme manipulant les
    structures de données.
  • Espace Structure de données

35
Le principe du compromis espace/temps
  • Il est souvent possible de réduire le temps
    dexécution au prix daugmenter lespace mémoire
    et vice versa.
  • Fichiers compressés
  • Table des valeurs dune fonctions
  • Espace disque Un programme sera dautant plus
    rapide quil requiert peu daccès disque.
Write a Comment
User Comments (0)
About PowerShow.com