Vous êtes sur la page 1sur 57

Algorithme

Critères de résolution d’un problème


Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Analyse de la complexité des algorithmes

Benchikhi Loubna

Ecole Nationale des Sciences Appliquées de Marrakech


Université Cadi Ayyad
l.benchikhi@uca.ma

October 4, 2018

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Plan I
1 Algorithme
2 Critères de résolution d’un problème
3 Temps de calcul VS Espace mémoire
4 Complexité en temps de calcul
5 Evaluation de T(n) pour les structures algorithmiques
6 Complexiteé asymptotique
7 Notation grand-O
8 Notation Grand-Omega
9 La notation Theta
10 Notes
Benchikhi Loubna Algorithmique Avancée et Compléxité
Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Plan II
11 Applications

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Définition
Un algorithme est un ensemble d’instructions permettant de
transformer un ensemble de données en un ensemble de résultats et
ce, en un nombre fini étapes.
Pour atteindre cet objectif, un algorithme utilise deux ressources
d’une machine:
le temps
l’espace mémoire

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

L’efficacité en terme d’exécution : Un algorithme sera dit


plus efficace qu’un autre si pour la même donnée il s’exécute
en un laps de temps plus court.
L’efficacité en espace mémoire : Un algorithme sera dit
plus efficace en espace mémoire qu’un autre si pour la même
donnée il utilise moins d’espace mémoire.

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

La fiabilité de l’algorithme qui est le degreé d’absence de


bugs : un algorithme sera jugé plus fiable ou plus stable qu’un
autre s’il présente moins de bugs.
La robustesse de l’algorithme : un algorithme sera plus
robuste qu’un autre s’il résiste mieux aux erreurs de
manipulations des utilisateurs plus au moins attentionnés
notamment dans sa composante entrées/sorties

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

L’optimisation de l’efficacité en terme d’exécution va à


l’encontre de l’optimisation en espace.
Il n’y a pas de méthode ou d’échelle de mesure permettant
d’évaluer la fiabilité ou la robustesse d’un algorithme.
Par contre, il existe des méthodes rationnelles et rigoureuses
pour évaluer l’efficacité en espace et en temps d’un algorithme
⇒ Analyse de la « complexité des algorithmes »

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Le temps d’exécution : la complexité en temps


L’espace mémoire requis : la complexité en espace
Si par exemple vous avez besoin d’allouer en moyenne n Kilo-octets
de mémoire pour un algorithme dont l’entrée est de taille n, la
complexité mémoire est de l’ordre de n.

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

⇒ Aujourd’hui, la complexité en temps est le point essentiel.

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Attention
Dans certains domaines de l’informatique on s’intéressera à d’autres
caractéristiques, parfois mesurables elles aussi en terme de
complexité, des algorithmes.
Par exemple, un programmeur pour calculatrice ou système
embarqué pourra s’interroger sur la consommation électrique de son
algorithme, afin d’économiser la batterie.
Dans le cas général, on s’intéressera uniquement aux complexités
en temps et en mémoire, et même principalement à la complexité
en temps.

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Si je donne à mon programme une entrée de taille n, quel est


l’ordre de grandeur, en fonction de n, du nombre d’opérations qu’il
va effectuer ?
Elle repose sur le fait que les programmes qui résolvent un
problème dépendent des conditions du problème :
si les conditions changent, ils peuvent s’effectuer en plus ou moins
de temps.
La complexité permet de quantifier, mettre une formule
mathématique, la relation entre les conditions de départ et le
temps effectué par l’algorithme.

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Compter les opérations

Il faut en fait choisir soi-même quelques petites opérations que


l’algorithme effectue souvent, et que l’on veut utiliser comme
opérations de base pour mesurer la complexité

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Compter les opérations

Exemple de l’omelette
Pour faire une omelette, on peut considérer que les trois opérations
de base sont :
Casser un oeuf
Battre l’oeuf
Faire cuire l’oeuf battu

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Compter les opérations

Exemple de l’omelette
On peut donc pour chaque recette compter le nombre d’oeufs
cassés, cuits et battus, et avoir ainsi une idée de la complexité de la
recette,
Pour N oeufs, on effectue 3N opérations.
Par contre l’ajout de sel, poivre ou herbes est très rapide, et n’a pas
besoin d’être pris en compte dans l’analyse de la complexité

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

La complexité en temps d’un algorithme se mesure essentiellement


en calculant le nombre d’opérations élémentaires pour traiter une
donnée de taille n
Notations : On note
n : taille des données
T (n) : nombre d’opérations élémentaires
Configurations caractéristiques :
meilleur cas
pire des cas
cas moyen

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Complexité au meilleur cas

C’est le plus petit nombre d’opérations qu’aura à exécuter


l’algorithme sur un jeu de données de taille fixée (ici n).
C’est une borne inférieure de la complexité de l’algorithme sur un
jeu de données de taille n

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Complexité au pire cas

C’est le plus grand nombre d’opérations qu’aura à exécuter


l’algorithme sur un jeu de données de taille fixée (ici n).
Avantage : il s’agit d’un maximum et l’algorithme finira donc
toujours avant d’avoir effectuer Tmax (n) opérations.
Inconvénient : cette complexité peut ne pas refléter le
comportement usuel de l’algorithme, le pire cas pouvant ne se
produire que très rarement, mais il n’est pas rare que le cas moyen
soit aussi mauvais que le pire cas.

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Complexité en moyenne

C’est la moyenne des complexité de l’algorithme sur des jeux de


données de taille n.
Avantage : elle reflète le comportement général de l’algorithme si
les cas extrêmes sont rares ou si la complexité varie peu en fonction
des données.
Inconvénient : la complexité sur un jeu de données particulier peut
être nettement plus importante que la complexité en moyenne, dans
ce cas la complexité moyenne ne donnera pas une bonne indication
du comportement de l’algorithme.

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Attention
Pour certains algorithmes, il n’y a pas lieu de distinguer entre ces
trois mesures de complexité

Algorithme Optimal
Un algorithme est dit optimal si sa complexité est la complexité
minimale parmi les algorithme de sa classe

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Structures algorithmiques
Structures de contrôle
Séquence
Embranchement (ou sélection)
Boucle (ou itération)
Structures de données
Constantes
Variables
Tableaux
Structures récursives (Listes, Arbres, Graphes)
Benchikhi Loubna Algorithmique Avancée et Compléxité
Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Séquence

Somme des coûts

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Séquence

Somme des coûts

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Embranchement

Max des coûts

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Embranchement

Max des coûts

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Boucle

Somme des coûts des passages successifs

AvecTi (n) : coût de la i eme itération

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Boucle

Somme des coûts des passages successifs

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Le décompte d’instructions peut s’avérer fastidieux à effectuer si on


tient compte d’autres instructions telles que: accès à un tableau,
E/S, opérations logiques, appels de fonctions,.. etc.
De plus, même en se limitant à une seule opération, dans certains
cas, ce décompte peut engendrer des expressions que seule une
approximation peut conduire à une solution.
Par ailleurs, même si les opérations élémentaires ont des temps
d’exécution constants sur une machine donnée, ils sont différents
d’une machine à une autre.

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Par conséquent:
Pour ne retenir que les caractéristiques essentielles d’une
complexité, et rendre ainsi son calcul simple (mais indicatif!), il est
légitime d’ignorer toute constante pouvant apparaître lors du
décompte du nombre de fois qu’une instruction est exécutée

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

les temps constants ne sont pas pris en compte. On appelle "temps


constants" les délais qui ne dépendent pas de l’entrée.

Les "facteurs multiplicatifs constants" ne sont pas pris en compte :


la mesure de la complexité ne fait pas la différence entre un
algorithme qui effectue n, 2n ou 157n opérations.

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Exemple 1
Considérons les deux algorithmes suivants, en admettant que ces
deux algorithmes résolvent le même problème (donc sont corrects),
et que toutes les opérations sont prises en compte pour la mesure
de la complexité :
Faire n fois l’opération A
Faire n fois (l’opération B puis l’opération C)
Le premier algorithme fait n opérations et le deuxième 2n. Mais
est-ce que l’on peut dire lequel est le plus rapide ?

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Exemple 1
Cela dépend des temps mis par les trois opérations : peut-être que
B et C sont tous les deux quatre fois plus rapides que A, et que
globalement c’est donc l’algorithme en 2n opérations qui est le plus
rapide.

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Exemple 2 : Compléxité de l’algorithme


Tmax (n) = (n + 1)e + (n − 1)a + (2n + 1)t
La complexité de cet algorithme est tout simplement en n.
On a éliminé toute constante, et on a supposé aussi que les
opérations d’affectation, de test et d’addition ont des temps
constants.

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

On a donc négligé pas mal de choses, ce qui aboutit à une notion


plutôt simple et assez générale.

Cette généralité fait de la complexité un outil très pratique, mais


elle a évidemment des inconvénients : dans certains cas très
particuliers, un algorithme plus complexe mettra en réalité moins de
temps à s’effectuer.

Mais dans la grande majorité des cas, la complexité est une


indication fiable des performances de l’algorithme.

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Définition
La complexité asymptotique d’un algorithme décrit le
comportement de celui-ci quand la taille n des données du
problème traité devient de plus en plus grande, plutôt qu’une
mesure exacte du temps d’exécution.
Les écarts entre deux complexités se font de plus en plus
importants quand la taille de l’entrée augmente.

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Définition
Soit f (n) une fonction non negative. f (n) est en O(g (n)) (f est
dominee par g) s’il existe deux constante positives c et n0 telles
que: f (n) <= cg (n) pour tout n >= n0 .

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Borne supérieure

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Borne supérieure asymptotique


On dit qu’une fonction f est un grand O d’une fonction g si et
seulement si :

∃c > 0 ∃n0 > 0 tels que ∀n > n0 f (n) ≤ cg (n)

On note alors f (n) = O(g (n))

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

La notation O est comme un grand sac, qui permet de ranger


ensemble des nombres d’opérations différents, mais qui ont le
même ordre de grandeur.
Exemple
Des algorithmes effectuant environ n opérations, 2*n+5 opérations
ou n/2 opérations ont tous la même complexité : on la note O(n)
(à lire "grand O de n")

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Grand-O: Exemples

Il y a n iterations
Chaque iteration necessite un temps <= c,
Le temps est donc T (n) <= cn Donc T (n) = O(n)

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Grand-O: Exemples

Exemple 2: T (n) = c1 n2 + c2 n
c1 n2 + c2 n <= c1 n2 + c2 n2 = (c1 + c2 )n2
pour tout n >= 1.
T (n) <= cn2 ou c = c1 + c2 et n0 = 1.
Donc, T(n) est en O(n2 ).
Exemple 3: T (n) = c. On ecrit T (n) = O(1)

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Définition
Soit f (n), une fonction non negative. On a f (n) = Ω(g (n)) s’il
existe deux constantes positives c et n0 telles que f (n) >= cg (n)
pour n > n0 .

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Borne inférieure

Pour de grandes entrées, l’exécution de l’algorithme nécessite au


moins cg (n) étapes. Benchikhi Loubna Algorithmique Avancée et Compléxité
Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Borne inférieure asymptotique


On dit qu’une fonction f est un grand Oméga d’une fonction g si et
seulement si :

∃c > 0 ∃n0 > 0 tels que ∀n > n0 cg (n) ≤ f (n)

On note alors f (n) = Ω(g (n))

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Définition
f = Θ(g ) (f et g sont du meme ordre de grandeur) s’il existe n0 ,
c1 et c2 tels que pour tout n > n0 , on ait:
c1 g (n) ≤ f (n) ≤ c2g (n)

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

A partir du rang n0 , la courbe de f est entre celle de c1 .g et celle


de c2 .g .
Benchikhi Loubna Algorithmique Avancée et Compléxité
Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Borne asymptotique

Borne asymptotique
On dit qu’une fonction f est un grand Théta d’une fonction g si et
seulement si :

∃c1 > 0 ∃c2 > 0 ∃n0 > 0 tels que ∀n > n0 c1 g (n) ≤ f (n) ≤ c2 g (n)

On note alors f (n) = Θ(g (n))

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Equivalence
f (n) = Θ(g (n)) ⇐⇒ ( f (n) = O(g (n)) et f (n) = Ω(g (n)) )

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Notes

Ne pas confondre le pire cas avec la notation asymptotique.

On utilise la notation grand-O parce qu’on s’intéresse au


comportement de l’algorithme lorsque n augmente et non dans le
pire cas.

Le pire cas réfère a l’entrée produisant le plus long temps


d’exécution parmi toutes les entrées d’une longueur donnée.

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Exemple

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Exemple

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Application 1

Ordonner les expressions suivantes de manière à ce que chacune


soit en O de la précédente:

ex

e 1−x

67x 3

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Application 2

Donner la conclusion : f = Ω(u) et f = O(u) ⇒

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Application 3

On a démontré que la fonction coût d’un algorithme en fonction


d’instances de taille inférieure à n vérifie:

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Application 4

Donnez les notations correspendantes aux définitions suivantes:

f (x) > cv (x) pour une constante c et pour x assez grand

cv (x) 6 f (x) > dv (x) pour des constantes c et d et pour x assez


grand.

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Application 5

La fonction définissant le coût d’un algorithme dans le pire des cas


sur des données de taille n est définie comme suit, est en:
n(n + 1)
f (n) =
2
f (n) = 1 + 2 + 3 + .... + n

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Application 6

Chacune des propositions suivantes est-elle vraie ou fausse ?

Un algorithme dont le comportement est dans le pire des cas en


O(n) nécessite au moins 100 opérations pour chaque entrée de
taille n = 10.

Un algorithme logarithmique (log (n)) résolvant un problème est


toujours plus rapide qu’un algorithme en nlog (n) résolvant le même
problème, quel que soit le nombre de données et la configuration de
celles-ci.

Benchikhi Loubna Algorithmique Avancée et Compléxité


Algorithme
Critères de résolution d’un problème
Temps de calcul VS Espace mémoire
Complexité en temps de calcul
Evaluation de T(n) pour les structures algorithmiques
Complexiteé asymptotique
Notation grand-O
Notation Grand-Omega
La notation Theta
Notes
Applications

Application 7

Démontrer que:
n2 O(10−5 n3 )
25n4 19n3 + 13n2 O(n4 )
2n+100 O(2n )

Benchikhi Loubna Algorithmique Avancée et Compléxité