Académique Documents
Professionnel Documents
Culture Documents
Complexité Présentation
Complexité Présentation
La Complexité Algorithmique
Wassila DRICI
Faculté des Mathématique
Université des Science et de la Technologie Houari Boumedien
18 Juin 2013
Sommaire
1 Introduction
4 Conclusion
Complexité
La complexité d'un problème est une estimation du nombre
d'instructions à exécuter pour résoudre les instances de ce
problème, cette estimation étant un ordre de grandeur par
rapport à la taille de l'instance. Il s'agit là d'une estimation
dans le pire des cas dans le sens où la complexité d'un
problème est dénie en considérant son instance la plus
dicile.
Les travaux théoriques dans ce domaine ont permis d'identier
diérentes classes de problèmes en fonction de la complexité
de leur résolution. Il existe en fait un très grand nombre de
classes diérentes, et on se limitera ici à une présentation
succincte nous permettant de caractériser formellement la
notion de problème combinatoire.
Wassila DRICI La Complexité Algorithmique
Introduction
Quelques notions de base
Classes des problèmes
Conclusion
Complexité
La complexité d'un problème est une estimation du nombre
d'instructions à exécuter pour résoudre les instances de ce
problème, cette estimation étant un ordre de grandeur par
rapport à la taille de l'instance. Il s'agit là d'une estimation
dans le pire des cas dans le sens où la complexité d'un
problème est dénie en considérant son instance la plus
dicile.
Les travaux théoriques dans ce domaine ont permis d'identier
diérentes classes de problèmes en fonction de la complexité
de leur résolution. Il existe en fait un très grand nombre de
classes diérentes, et on se limitera ici à une présentation
succincte nous permettant de caractériser formellement la
notion de problème combinatoire.
Wassila DRICI La Complexité Algorithmique
Introduction
Quelques notions de base Problème de décision
Classes des problèmes Algorithmes
Conclusion
Sommaire
1 Introduction
4 Conclusion
Problème de décision
Problème de décision
Problème de décision
Problème de décision
Problème de décision
Problème de décision
Denition
Un algorithme déterministe est un algorithme exécutant un
ensemble d'instructions d'une manière précise dans un ordre pricis.
Denition
Un algorithme non déterministe est un algorithme contenent une
instruction choix, qui opérant sur un ensemble ni, choisit un
élément de cet ensemble sans spécier comment ce choix est fait.
Denition
Un algorithme déterministe est un algorithme exécutant un
ensemble d'instructions d'une manière précise dans un ordre pricis.
Denition
Un algorithme non déterministe est un algorithme contenent une
instruction choix, qui opérant sur un ensemble ni, choisit un
élément de cet ensemble sans spécier comment ce choix est fait.
1 Introduction
Denition
La classe P contient tous les problèmes pour lesquels il existe un
algorithme polynomial pour les résoudre.
Denition
La classe P contient tous les problèmes pour lesquels il existe un
algorithme polynomial pour les résoudre.
Denition
La classe P contient tous les problèmes pour lesquels il existe un
algorithme polynomial pour les résoudre.
Denition
La classe NP (non déterministe polynomial) contient tous les
problèmes qui peuvent êtres résolu en temps polynomial par un
algorithme non déterministe.
Une autre dénition des problème NP est la suivante :
Denition
La classe NP est la classe des problèmes pour les quels une réponse
positive a un certicat à partir de lequel l'exactitude de la réponse
positive peut être vériée en temps polynomial.
Denition
La classe NP (non déterministe polynomial) contient tous les
problèmes qui peuvent êtres résolu en temps polynomial par un
algorithme non déterministe.
Une autre dénition des problème NP est la suivante :
Denition
La classe NP est la classe des problèmes pour les quels une réponse
positive a un certicat à partir de lequel l'exactitude de la réponse
positive peut être vériée en temps polynomial.
Exemple
1-La question suivante :
"Etant donné un graphe G, G est-il Hamiltonien ?"
appartient à NP, car :
si G est réellement Hamiltonien, on peut le montrer juste en
donnant un cycle hamiltonien dans G comme certicat.
Avec ce certicat, la réponse "Oui" peut être vériée en temps
polynomial. (il n'est pas nécessaire de trouver le certicat en
temps polynomial. La seule exigence est qu'il existe un
certicat qui peut être vérié en temps polynomial.)
Exemple
1-La question suivante :
"Etant donné un graphe G, G est-il Hamiltonien ?"
appartient à NP, car :
si G est réellement Hamiltonien, on peut le montrer juste en
donnant un cycle hamiltonien dans G comme certicat.
Avec ce certicat, la réponse "Oui" peut être vériée en temps
polynomial. (il n'est pas nécessaire de trouver le certicat en
temps polynomial. La seule exigence est qu'il existe un
certicat qui peut être vérié en temps polynomial.)
Remarque
Un problème de reconnaissance qui peut être résolu par un
algorithme polynomial appartient à la classe NP.
Il s'ensuit que :
P ⊆ NP.
L'inclusion stricte P ⊂ NP reste à ce jour une conjecture très
dicile. Elle découle du fait qu'il existe des problèmes qu'on ne
sait pas montrer s'il existe ou non un algorithme polynomial
pour les résoudre. Cette inaptitude ne signie pas l'inéxistance
de tels algorithmes.
Remarque
Un problème de reconnaissance qui peut être résolu par un
algorithme polynomial appartient à la classe NP.
Il s'ensuit que :
P ⊆ NP.
L'inclusion stricte P ⊂ NP reste à ce jour une conjecture très
dicile. Elle découle du fait qu'il existe des problèmes qu'on ne
sait pas montrer s'il existe ou non un algorithme polynomial
pour les résoudre. Cette inaptitude ne signie pas l'inéxistance
de tels algorithmes.
Remarque
Un problème de reconnaissance qui peut être résolu par un
algorithme polynomial appartient à la classe NP.
Il s'ensuit que :
P ⊆ NP.
L'inclusion stricte P ⊂ NP reste à ce jour une conjecture très
dicile. Elle découle du fait qu'il existe des problèmes qu'on ne
sait pas montrer s'il existe ou non un algorithme polynomial
pour les résoudre. Cette inaptitude ne signie pas l'inéxistance
de tels algorithmes.
Exemple
E = (x1 ∨ x2 ∨ ¬x3 ) ∧ (¬x1 ∨ x2 ) ∧ x3 est satisable
car il existe une aectation des variables x1 , x2 , x3
(x1 = x2 = x3 = 1) qui satisfont l'expression booléenne E = 1.
L'aectation x1 = x2 = x3 = 1 peut être un certicat qui peut être
vérié en temps polynomial.
Exemple
E = (x1 ∨ x2 ∨ ¬x3 ) ∧ (¬x1 ∨ x2 ) ∧ x3 est satisable
car il existe une aectation des variables x1 , x2 , x3
(x1 = x2 = x3 = 1) qui satisfont l'expression booléenne E = 1.
L'aectation x1 = x2 = x3 = 1 peut être un certicat qui peut être
vérié en temps polynomial.
Exemple
E = (x1 ∨ x2 ∨ ¬x3 ) ∧ (¬x1 ∨ x2 ) ∧ x3 est satisable
car il existe une aectation des variables x1 , x2 , x3
(x1 = x2 = x3 = 1) qui satisfont l'expression booléenne E = 1.
L'aectation x1 = x2 = x3 = 1 peut être un certicat qui peut être
vérié en temps polynomial.
Exemple
Soit :
π1 : "Existe-t-il une aectation de variabes x1 , x2 , ..., xn dans {0, 1}
tel que E = (x1 ∨ x2 ∨ ¬x3 ) ∧ (¬x1 ∨ x2 ) ∧ x3 = 1 ?".
π2 (Programme linéaire en nombre entier) : "Trouver x tel que
Ax ≥ b".
π1 se réduit polynomialement à π2 car il existe un algorithme
polynomial de résolution pour π1 faisant appel à la résolution de π2 .
π1 : "Existe-il xi ∈ {0, 1} i = 1¯, 3 tel que :
x1 + x2 + (1 − x3 ) ≥ 1
(1 − x1 ) + x2 ≥ 1 ”.
x3 ≥ 1
Exemple
Soit :
π1 : "Existe-t-il une aectation de variabes x1 , x2 , ..., xn dans {0, 1}
tel que E = (x1 ∨ x2 ∨ ¬x3 ) ∧ (¬x1 ∨ x2 ) ∧ x3 = 1 ?".
π2 (Programme linéaire en nombre entier) : "Trouver x tel que
Ax ≥ b".
π1 se réduit polynomialement à π2 car il existe un algorithme
polynomial de résolution pour π1 faisant appel à la résolution de π2 .
π1 : "Existe-il xi ∈ {0, 1} i = 1¯, 3 tel que :
x1 + x2 + (1 − x3 ) ≥ 1
(1 − x1 ) + x2 ≥ 1 ”.
x3 ≥ 1
Exemple
Soit :
π1 : "Existe-t-il une aectation de variabes x1 , x2 , ..., xn dans {0, 1}
tel que E = (x1 ∨ x2 ∨ ¬x3 ) ∧ (¬x1 ∨ x2 ) ∧ x3 = 1 ?".
π2 (Programme linéaire en nombre entier) : "Trouver x tel que
Ax ≥ b".
π1 se réduit polynomialement à π2 car il existe un algorithme
polynomial de résolution pour π1 faisant appel à la résolution de π2 .
π1 : "Existe-il xi ∈ {0, 1} i = 1¯, 3 tel que :
x1 + x2 + (1 − x3 ) ≥ 1
(1 − x1 ) + x2 ≥ 1 ”.
x3 ≥ 1
Exemple
Soit :
π1 : "Existe-t-il une aectation de variabes x1 , x2 , ..., xn dans {0, 1}
tel que E = (x1 ∨ x2 ∨ ¬x3 ) ∧ (¬x1 ∨ x2 ) ∧ x3 = 1 ?".
π2 (Programme linéaire en nombre entier) : "Trouver x tel que
Ax ≥ b".
π1 se réduit polynomialement à π2 car il existe un algorithme
polynomial de résolution pour π1 faisant appel à la résolution de π2 .
π1 : "Existe-il xi ∈ {0, 1} i = 1¯, 3 tel que :
x1 + x2 + (1 − x3 ) ≥ 1
(1 − x1 ) + x2 ≥ 1 ”.
x3 ≥ 1
uj = xk
et
uj0 = x̄k
Ou
uj = x̄k
et
uj0 = xk
Wassila DRICI La Complexité Algorithmique
La classe P
Introduction La classe NP
Quelques notions de base La classe NP-complet
Classes des problèmes La classe co-NP
Conclusion La classe co-NP-complet
La classe NP-dicile
Exemple de preuve de NP-complétude
G = (V , E ) est le graphe tel que :
V = {[uj i ]; uj ∈ Ci } et, il existe une arête reliant un sommet [uj i ]
à un sommet [uj0 i 0 ] si et seulement si :
i = i0
sinon :
uj = xk
et
uj0 = x̄k
Ou
uj = x̄k
et
uj0 = xk
Wassila DRICI La Complexité Algorithmique
La classe P
Introduction La classe NP
Quelques notions de base La classe NP-complet
Classes des problèmes La classe co-NP
Conclusion La classe co-NP-complet
La classe NP-dicile
Exemple de preuve de NP-complétude
G = (V , E ) est le graphe tel que :
V = {[uj i ]; uj ∈ Ci } et, il existe une arête reliant un sommet [uj i ]
à un sommet [uj0 i 0 ] si et seulement si :
i = i0
sinon :
uj = xk
et
uj0 = x̄k
Ou
uj = x̄k
et
uj0 = xk
Wassila DRICI La Complexité Algorithmique
La classe P
Introduction La classe NP
Quelques notions de base La classe NP-complet
Classes des problèmes La classe co-NP
Conclusion La classe co-NP-complet
La classe NP-dicile
Exemple de preuve de NP-complétude
G = (V , E ) est le graphe tel que :
V = {[uj i ]; uj ∈ Ci } et, il existe une arête reliant un sommet [uj i ]
à un sommet [uj0 i 0 ] si et seulement si :
i = i0
sinon :
uj = xk
et
uj0 = x̄k
Ou
uj = x̄k
et
uj0 = xk
Wassila DRICI La Complexité Algorithmique
La classe P
Introduction La classe NP
Quelques notions de base La classe NP-complet
Classes des problèmes La classe co-NP
Conclusion La classe co-NP-complet
La classe NP-dicile
Exemple de preuve de NP-complétude
G = (V , E ) est le graphe tel que :
V = {[uj i ]; uj ∈ Ci } et, il existe une arête reliant un sommet [uj i ]
à un sommet [uj0 i 0 ] si et seulement si :
i = i0
sinon :
uj = xk
et
uj0 = x̄k
Ou
uj = x̄k
et
uj0 = xk
Wassila DRICI La Complexité Algorithmique
La classe P
Introduction La classe NP
Quelques notions de base La classe NP-complet
Classes des problèmes La classe co-NP
Conclusion La classe co-NP-complet
La classe NP-dicile
Exemple de preuve de NP-complétude
G = (V , E ) est le graphe tel que :
V = {[uj i ]; uj ∈ Ci } et, il existe une arête reliant un sommet [uj i ]
à un sommet [uj0 i 0 ] si et seulement si :
i = i0
sinon :
uj = xk
et
uj0 = x̄k
Ou
uj = x̄k
et
uj0 = xk
Wassila DRICI La Complexité Algorithmique
La classe P
Introduction La classe NP
Quelques notions de base La classe NP-complet
Classes des problèmes La classe co-NP
Conclusion La classe co-NP-complet
La classe NP-dicile
Exemple de preuve de NP-complétude
Exemple
Soit le problème de satisabilité SAT avec
E = (x1 ∨ x2 ∨ ¬x3 ) ∧ (¬x1 ∨ x2 ) ∧ x3
Le graphe associé à ce problème est le suivant :
Exemple
Le problème SAT revient à vérier l'existance d'un stable de
cardinalité 3.
Exemple
Le problème SAT revient à vérier l'existance d'un stable de
cardinalité 3.
Denition
Un problème π appartient à la classe co-NP si son problème
complémentaire π̄ appartient à la classe NP.
Ainsi, il est clair qu'un problème P est co-NP (P ⊆ co − NP )
et donc P ⊆ NP ∩ co − NP.
Denition
Un problème de décision π ∈ co − NP est dit co-NP-complet si et
seulement si tout autre problème de co-NP se transforme
polynomialement en π .
Théorème
Un problème de décision est co-NP-complet si et seulement si son
complémentaire est NP-complet.
Denition
Un problème de décision π ∈ co − NP est dit co-NP-complet si et
seulement si tout autre problème de co-NP se transforme
polynomialement en π .
Théorème
Un problème de décision est co-NP-complet si et seulement si son
complémentaire est NP-complet.
Denition
Un problème de reconnaissance ou d'optimisation π est dit
NP-dicile si et seulement si tout problème de la classe NP se
réduit polynomialement à π .
Denition
Un problème de reconnaissance ou d'optimisation π est dit
NP-dicile si et seulement si tout problème de la classe NP se
réduit polynomialement à π .
Denition
Un problème de reconnaissance ou d'optimisation π est dit
NP-dicile si et seulement si tout problème de la classe NP se
réduit polynomialement à π .
Denition
Un problème de reconnaissance ou d'optimisation π est dit
NP-dicile si et seulement si tout problème de la classe NP se
réduit polynomialement à π .
Sommaire
1 Introduction
4 Conclusion
Conclusion
Conclusion
Conclusion
Conclusion
Conclusion