Académique Documents
Professionnel Documents
Culture Documents
• Ceci a pour conséquence qu’un focus sur l’ordre de grandeur des algorithmes
suffit dans bien des cas pour préférer un algorithme à un autre
© Introduction à l’algorithmique
3
NOTATIONS ASYMPTOTIQUES: Θ
• Lorsque f(n) est une fonction polynôme de degré d asymptotiquement
positive, on a toujours f(n) = Θ(nd)
• Alors f(n)/nd est bornée et tend vers cd lorsque n devient très grand
4
NOTATIONS ASYMPTOTIQUES: O
• Pour une fonction donnée g(n), on note O(g(n))
l’ensemble de fonctions suivant :
© Introduction à l’algorithmique
• f(n) = Θ(g(n)) implique f(n) = O(g(n))
5
NOTATIONS ASYMPTOTIQUES: Ω
• Pour une fonction donnée g(n), on note Ω(g(n))
l’ensemble de fonctions suivant :
7
CLASSIFICATION DES
ALGORITHMES
Les algorithmes habituellement rencontrés peuvent être classés dans les
catégories suivantes
10
LA COMPLEXITÉ EN PRATIQUE
• On rêve tous écrire des algorithmes efficaces, cependant:
2. Rapide
• Ce que fait un algorithme doit se voir dans une lecture attentive du code
11
CLASSE DE PROBLÈMES : POLYNÔMES I
• Un algorithme (sa complexité pour être précis) est dit polynomiale si il est O(nk), pour un
certain entier k. Il existe plusieurs raisons de s'intéresser à cette classe d'algorithmes
12
CLASSE DE PROBLÈMES : POLYNÔMES II
• La théorie de la complexité cherche à classer les problèmes de décision (ceux qui ont une réponse par
oui ou par non)
• La classe P est formée des problèmes de décision qui peuvent être résolus par un algorithme
polynomial.
• Remarquons que l’algorithme naïf (diviser a et b par tous les nombres entre 2 et min(a, b)) est de
l’ordre O(2n) où n est le nombre de bits sur lesquels a et b sont représentés. Par contre,
l’algorithme d’Euclide (qui consiste à trouver pgcd(a, b)) est de l’ordre de O(n3).
13
CLASSE DE PROBLÈMES : POLYNÔMES III
• Cette notion est directement inspirée de celle d'automate non déterministe, où la lecture
d'une lettre d'un mot peut conduire, à partir d'un état donné, à plusieurs états différents.
Rappelons qu'un mot u est accepté (on dit aussi reconnu) par un automate non déterministe
s'il existe un chemin, étiqueté par u, qui conduise d'un état initial à un état terminal.
15
CLASSE DE PROBLÈMES : NP II
• La classe NP est formée des problèmes de décision qui peuvent être résolus par un algorithme
polynomial non déterministe.
• Ou encore: La classe NP est formée des langages reconnaissables par une machine de Turing polynomiale
non déterministe.
• Tout algorithme non déterministe peut être simulé par un algorithme déterministe, qui parcourt
récursivement l'arbre de tous les choix possibles. La complexité d'un algorithme non déterministe est
mesurée par le temps d'exécution de la plus longue branche, alors que la complexité de sa simulation
déterministe est égale au temps d'exécution de l'arbre entier; lorsque la première est polynomiale, la
seconde est en général exponentielle (dès que l'arbre est suffisamment équilibré).
16
CLASSE DE PROBLÈMES : NP III
• Exemple : SAT (SATISFIABILITÉ D’UNE EXPRESSION BOOLÉENNE)
• Sortie: oui, si Φ est satisfiable, i.e. il existe une valuation v telle que v(Φ) = Vrai
17
CLASSE DE PROBLÈMES : NP IV
• Exemple : SAT (SATISFIABILITÉ D’UNE EXPRESSION BOOLÉENNE)
18
CLASSE DE PROBLÈMES : NP IV
• Exemple 3: Coloration de graphe
• Sortie: oui, si le graphe peut être coloré en 3 couleurs i.e. on peut trouver: une application col de S
dans {1, 2, 3} telle que col(s)≠col(s’) si ((s,s’) ∈ A ou (s’,s) ∈ A)
• Un certificat est valide si et seulement si aucun arc ne relie deux noeuds de même couleur; le
vérifier est bien polynomial:
boolean A(col, G){
Pour chaque arc (s,d) de G
si col(s)=col(d) retourner Faux;
retourner Vrai; Comment sont stockées les (couleurs des) sommets?
}
• La complexité de l’algorithme est de l’ordre de card(A) donc bien polynomiale. ’Etre 3-coloriable’
est donc bien une propriété NP.
19
ALLER PLUS LOIN
• Les autres complexités en temps: EXPTIME (temps exponentiel par une machine
déterministe) et NEXPTIME (temps exponentiel par une machine non-déterministe)
• La conjecture NP ≠ P …
20
RÉFÉRENCES
• Jean BETREMA. Modèles de calcul. Université de
Bordeaux.