Cours Complexité Algorithmique: Outline
Cours Complexité Algorithmique: Outline
Cours Complexité Algorithmique: Outline
Outline
Introduction
Théorie de la complexité
Complexité algorithmique
Application de calcul de complexité: produit de matrices
1
Introduction Qu’est ce que l’algorithmique?
Données Obtention de
structurées résultats
Traitement
2
Introduction du raisonnement à l’algorithme au code
Savoir résoudre un problème est une chose, le résoudre efficacement en est une autre!
6
3
Introduction Efficacité
Elle permet:
4
Théorie de la complexité Evaluation de la rapidité d’un algorithme
Ces mesures ne seraient pas pertinentes car le même algorithme sera plus
rapide sur une machine plus puissante.
Au besoin, on pourra alors adapter ces quantités en fonction de la machine sur
laquelle l’algorithme s’exécute.
Règles:
• Chaque instruction basique consomme une unité de temps (affectation d’une
variable, lecture, écriture, comparaison,…).
10
5
Théorie de la complexité Calcul du temps d’exécution
11
12
6
Théorie de la complexité Calcul du temps d’exécution
Problèmes
Unités de temps abstraites:
Dépends des données.
Dépend de la nature des données: on ne sait pas toujours combien de fois
exactement on va exécuter une boucle.
De même lors d’un branchement conditionnel, le nombre de comparaisons
effectués n’est pas toujours le même.
Temps exacte:
Dépend de la puissance de la machine.
Dépend de la nature des données (variables): si on change les données, le temps
change.
Solution
Calcul de la complexité algorithmique
13
Complexité au pire
C’est le plus grand nombre d’opérations qu’aura à exécuter l’algorithme
sur un jeu de données de taille n.
Complexité en moyenne
C’est la moyenne des complexités de l’algorithme sur des jeux de données
de taille n.
14
7
Complexité algorithmique Définition générale
asymptotique ?
on s’intéresse à des données très grandes parce que les petites valeurs ne
sont pas assez informatives.
15
8
Complexité algorithmique 0-notation (Notation de Landau)
f(n) et en O(g(n))s’il existe un seuil à partir duquel la fonction f(.) est toujours
dominée par g(.), à une constante multiplicative fixée près.
18
9
Complexité algorithmique 0-notation (Notation de Landau)
19
20
10
Complexité algorithmique Exemples de calcul de 0(.)
c=7 et n0 =1
21
Donc est en
22
11
Complexité algorithmique Exemples de calcul de 0(.)
23
• On a donc la complexité de
24
12
Complexité algorithmique Règles de calcul
25
Exemple:
Supposons que le temps d’exécution d’un algorithme est décrit par la fonction:
calculer O(T(n))?
Remarque:
Pour n=10, nous avons:
Le poids de devient encore plus grand pour n=100, soit 96,7%, on peut donc négliger les
quantités10n et 10. 26
Ceci explique les règles de notation O.
13
Complexité algorithmique Calcul de complexité
Cas d’une branche conditionnelle: le temps d’exécution est déterminé aussi par
la règle de la somme.
27
28
14
Complexité algorithmique Calcul de complexité
Les classes de complexité les plus fréquentes (par ordre croissant selon O(.) )
30
15
Complexité algorithmique Classes de complexité
31
32
16
Application de calcul de complexité multiplication de deux matrices
Principe:
33
17
Application de calcul de complexité multiplication de deux matrices
35
18