0% ont trouvé ce document utile (0 vote)
58 vues12 pages

Tr02 Algo Complexite

Transféré par

Las Saad
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
58 vues12 pages

Tr02 Algo Complexite

Transféré par

Las Saad
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Structures de données Christian Carrez Cnam Algorithmes et complexité 1

Notion d'algorithme et de
complexité
algorithme
Structures de données Christian Carrez Cnam Algorithmes et complexité 2

ensemble de règles opératoires dont l'application permet de


résoudre un problème en un nombre fini d'opérations
choix des règles opératoires
étude préliminaire de l'algorithme
♦ préciser les actions sans les détails des opérations
♦ vérifier la correction de l'algorithme
♦ étudier son efficacité en temps et en espace mémoire

complexité de l'algorithme
implantation de l'algorithme, i.e. mise en œuvre
voyageur de commerce
Structures de données Christian Carrez Cnam Algorithmes et complexité 3

Lille
417
227
220 443 Nancy
Rouen
308
136
Paris
parcours (V1,...,Vn) = Σ d(Vi-1,Vi)
calculer le parcours de toutes les permutations prendre et
choisir
additions: n * n!
♦ 5 villes => 600 additions
♦ 20 villes => 5 10 19 additions, soit 1,5 millions d'années
note: résolution par des heuristiques
opération fondamentale
Structures de données Christian Carrez Cnam Algorithmes et complexité 4

peut être complexe, mais de durée indépendante des


données
si plusieurs opérations fondamentales, décompte séparé, et
coefficient
opération de détail prises en compte par absorption
comparaison entre algorithmes si mêmes opérations
exemples:
♦ addition des distances dans voyageur de commerce
♦ comparaison de valeurs dans une recherche ou un tri
♦ déplacements de valeurs dans un tri
♦ accès à la mémoire secondaire
calcul de la complexité
Structures de données Christian Carrez Cnam Algorithmes et complexité 5

évaluer le nombre d'exécutions de l'opération


fondamentale
var T: tableau [1..N] de T_Elem; {rangé par valeurs croissantes}
k : entier;
début k := 1; tant que k <= N et alors T[k] < x faire k := k+1; fait;
retourner k;
fin
invariant: pour tout j < k, t[j] < x
sortie de boucle: k = N+1 ou (k≤N et T[k]≥x)
complexité: au mieux 1, au pire N, en moyenne N/2
{1, ou 2, ou 3,..., N} si k≤N et N si k=N+1
définitions
Structures de données Christian Carrez Cnam Algorithmes et complexité 6

Soit Dn l'ensemble des données de taille n


et coûtA (d) le coût de l'algorithme sur la donnée d

complexité au mieux MinA(n)=min{coûtA(d) | d ∈Dn }

complexité au pire MaxA(n)=max{coûtA(d) | d ∈Dn }

complexité en moyenne MoyA(n)=Σ{p(d)*coûtA(d) | d ∈Dn}


où p(d) est la probabilité d'avoir le donnée d

MinA(n) ≤ MoyA(n) ≤ MaxA(n)


comparaisons d'algorithmes
Structures de données Christian Carrez Cnam Algorithmes et complexité 7

var T: tableau [1..N] de T_Elem;


i, j, k: entier;
invariant:
début ♦ m < i => T [m] < x
i := 1; j := N; ♦ j ≠ N => x ≤ T[j]
tant que i < j faire ♦ N ≠ 0 => i ≤ j
k := (i+j) / 2;
si T[k] < x alors i := k+1; arrêt:
sinon j := k; finsi; ♦ nouveau(j-i) = ancien(j-i) / 2
fait;
si i = N et alors T[i] < x alors
complexité:
i := N+1; ♦ log2N
finsi;
retourner i;
fin;
meilleur que précédent sauf si début
ordre de grandeur
Structures de données Christian Carrez Cnam Algorithmes et complexité 8

l'important est l'ordre de grandeur, et l'évolution en


fonction de la taille
définition: f est dominée par g, f = O(g) s'il existe n0 et c
tels que pour tout n > n0, on ait f(n) ≤ c g(n)
définition: f et g sont du même ordre de grandeur, f = Θ(g)
s'il existe n0 , c1 et c2 tels que
pour tout n > n0, on ait c1 g(n) ≤ f(n) ≤ c2 g(n)
c g(n) c2 g(n)
f(n)
f(n) c1 g(n)

n n
temps d'exécution suivant la taille
Structures de données Christian Carrez Cnam Algorithmes et complexité 9

1 log2n n n log2n n2 n3 2n
102 1µs 7µs 0.1 ms 0.7 ms 10 ms 1s 4107Ga
103 1µs 10µs 1 ms 10 ms 1s 17 mn ∞
104 1µs 13µs 10 ms 130 ms 1.7 mn 12 j ∞
105 1µs 17µs 0.1 s 1.7 s 2.8 h 32 a ∞
106 1µs 20µs 1s 20 s 12 j 32 Ka ∞
taille suivant temps d'exécution
Structures de données Christian Carrez Cnam Algorithmes et complexité 10

1 log2n n n log2n n2 n3 2n
1s ∞ ∞ 1 M. 63 K. 1 K. 100 20
1 mn ∞ ∞ 60 M. 3 M. 7 K. 400 26
1h ∞ ∞ 4 G. 130 M. 60 K. 1.5 K. 32
1j ∞ ∞ 90 G. 3 G. 300 K. 4.4 K. 36
complexité en place mémoire
Structures de données Christian Carrez Cnam Algorithmes et complexité 11

évaluer la quantité de mémoire nécessaire en fonction de la


taille des données

conservation des diminution de


résultats intermédiaires complexité en temps

mémoire doit être suffisante

compromis espace-temps
conclusion
Structures de données Christian Carrez Cnam Algorithmes et complexité 12

algorithme: correct et temps d'exécution raisonnable


complexité relative à une ou des opérations fondamentales
♦ dépend de la taille des données et de leur configuration
– complexité < n2 => taille quelconque
– entre n2 et n3 => taille moyenne
– > n3 => petite taille
performance des machines ne change pas l'efficacité
compromis espace-temps

Vous aimerez peut-être aussi