Cours Complexité Mosteghanemi - Chapitre Introductif Element de Base de L - Analyse
Cours Complexité Mosteghanemi - Chapitre Introductif Element de Base de L - Analyse
Cours Complexité Mosteghanemi - Chapitre Introductif Element de Base de L - Analyse
H. Mosteghanemi 2
I. Chapitre Introductif
Les bases de l’algorithmique
◦ Instructions élémentaires
(arithmétique, logique, affectation, lecture/écriture, …
etc)
◦ Instructions de contrôles
(si, cas-vaux, … etc)
◦ Instructions répétitives.
(pour, tant que, faire-tant que, repeter-jusqu’à, … etc).
◦ Instructions ou actions paramétrées
(procédure, fonction, récursivité, … etc).
H. Mosteghanemi 3
I. Chapitre Introductif
H. Mosteghanemi 4
I. Chapitre Introductif
En informatique, deux questions
fondamentales se posent toujours devant un
problème à résoudre :
◦ Existe-t-il un algorithme pour résoudre le
problème en question ?
◦ Si oui, cet algorithme est-il utilisable en pratique,
autrement dit le temps et l’espace mémoire qu’il
exige pour son exécution sont-ils
« raisonnables »
Notion de problème
Un problème est une question qui a les
propriétés suivantes :
1. Elle est générique et s’applique à un ensemble
d’éléments;
2. Toute question posée pour chaque élément
admet une réponse
H. Mosteghanemi 6
I. Chapitre Introductif
Notion d’instance
Une instance de problème est la question
générique appliquée à un élément.
Exemple :
◦ L’entier 15 est-il pair ou impair est une instance
du problème de parité des nombres
H. Mosteghanemi 7
I. Chapitre Introductif
Notion de solution
La solution d’un problème donné est un objet
qu’il faut déterminer et qui satisfait les
contraintes explicites imposées dans le
problème.
Il existe quatre manières d’obtenir la solution
d’un problème donné :
1. Appliquer une formule explicite
2. Utiliser une définition récursive
3. Utiliser un algorithme qui converge vers la
solution
4. Énumérer les cas possibles.
H. Mosteghanemi 8
I. Chapitre Introductif
Notion de programme
◦ Un processus de solution (résolution) d’un
problème pouvant être exécutée par un
ordinateur.
◦ Il contient toute l’information nécessaire
pour résoudre le problème donné en un
temps fini
H. Mosteghanemi 9
II. Les bases de l’analyse d’un algorithme
L’analyse d’un algorithme
◦ L’analyse des algorithmes s’exprime en
termes d’évaluation de la complexité de ces
algorithmes.
◦ L’analyse d’un algorithme produit également :
La modularité
La correction
La maintenance
La simplicité
La robustesse
L’extensibilité
Le temps de mise en œuvre, … etc.
H. Mosteghanemi 10
II. Les bases de l’analyse d’un algorithme
Élément de base de la complexité
Définition 1: un algorithme est un ensemble
fini d’instructions qui, lors de leur exécution,
accomplissent une tâche donnée.
H. Mosteghanemi 11
II. Les bases de l’analyse d’un algorithme
Élément de base de la complexité
Un algorithme doit satisfaire ces propriétés :
Il peut avoir zéro ou plusieurs données en
entrée;
Il doit produire au moins une quantité en
sortie;
Chacune de ses instructions doit être claire et
non ambiguë;
Il doit se terminer après un nombre fini
d’étapes;
Chaque instruction doit être implémantable;
H. Mosteghanemi 12
II. Les bases de l’analyse d’un algorithme
H. Mosteghanemi 13
II. Les bases de l’analyse d’un algorithme
Qu’est ce que l’analyse ?
Déterminer la quantité des ressources nécessaire
à son exécution
Ces ressources peuvent être :
◦ La quantité de mémoire utilisée;
◦ Le temps de calcul;
◦ La largeur de la bande passante, .. Etc.
H. Mosteghanemi 16
II. Les bases de l’analyse d’un algorithme
Paramètres de l’analyse
Les performance d’un algorithme dépendent
des trois principaux paramètres suivants :
◦ La taille des entrées : quelque soit le
problème, il faut en premier lieu caractériser
les entrées.
◦ La distribution des données
Exemple : données triés ou non
◦ La structure de données
H. Mosteghanemi 17
II. Les bases de l’analyse d’un algorithme
La complexité asymptotique
En pratique, il est difficile de calculer de manière
exacte la complexité d’un algorithme.
La complexité asymptotique est une approximation
du nombre d’opération que l’algorithme exécute
en fonction de la donnée en entrée (donnée de
grande taille) et ne retient que le terme de poids
fort dans la formule et ignore les coefficients
multiplicateurs.
La complexité d’un algorithme est indépendante du
type de machine sur laquelle il s’exécute.
H. Mosteghanemi 18
II. Les bases de l’analyse d’un algorithme
La notation de Landau :
On ne mesure généralement pas la complexité
exacte d’un algorithme
On mesure son ordre de grandeur qui reflète
son comportement asymptotique, c’est-a-dire
son comportement sur les instances de grande
taille.
Landau propose un formalisme mathématique
qui permet de cerner cette complexité
asymptotique
H. Mosteghanemi 19
II. Les bases de l’analyse d’un algorithme
La notation de Landau :
f = O(g) ssi il existe n0>= 0, il existe c>0,
pour tout n ≥ n0, f(n) ≤ c*g(n)
f = Ω(g) ssi g = O(f)
f = o(g) ssi pour tout c>0, il existe n0,
pour tout n ≥ n0, f(n) ≥ c*g(n)
f = (g) ssi f = O(g) et g = O(f)
Autrement dit :
∃ 𝑪𝟏 , 𝑪𝟐 > 𝟎, ∃ 𝒏𝟎 ≥ 𝟎,
𝟎 ≤ 𝑪 𝟏 × 𝒈 𝒏 ≤ 𝒇 𝒏 ≤ 𝑪𝟐 × 𝒈 𝒏 .
H. Mosteghanemi 20
II. Les bases de l’analyse d’un algorithme
Synthèse :
Définition de problème, d’instance de solution et
d’algorithme
Le calcul de la complexité est l’objectif de base de
l’analyse d’un algorithme
Déterminer la complexité revient à trouver une
formule qui relie le temps d’exécution à la taille du
problème.
Il existe trois types de complexité mais c’est la
complexité au pire qui est la plus significative.
La complexité des opérations de base est de O(1)
◦ Lecture/écriture, affectation, opérations arithmétiques.
Il n’existe pas de méthode automatique
L’analyse fait appel à des outils mathématiques
◦ L’algèbre, la théorie élémentaire des probabilités … etc.
H. Mosteghanemi 21