théorie de la complexité - institut de mathématiques de
TRANSCRIPT
Théorie de la complexité
Martin C. Cooper
IRIT, Université de Toulouse 3
Master2 DC - Modèles de Décision et de Raisonnemment
Martin C. Cooper Théorie de la complexité
Théorie de la complexité : Introduction
Le but de la théorie de la complexité est de pouvoir dire si unproblème est (ou non) soluble efficacement par un ordinateur.
Exemples de problèmes :1 Etant donnés les pièces d’un puzzle P, reconstituer le
puzzle.2 Déterminer si un nombre à n chiffres est premier ou non.3 Etant donnée une équation diophantine (p.ex.
xy2z + 7 = z3) déterminer s’il existe une solution sur lesentiers
Un de ces problèmes ne peut être résolu par ordinateur, un est“difficile" et un est “facile".
Martin C. Cooper Théorie de la complexité
Théorie de la complexité : Introduction
Le but de la théorie de la complexité est de pouvoir dire si unproblème est (ou non) soluble efficacement par un ordinateur.
Exemples de problèmes :1 Etant donnés les pièces d’un puzzle P, reconstituer le
puzzle.2 Déterminer si un nombre à n chiffres est premier ou non.3 Etant donnée une équation diophantine (p.ex.
xy2z + 7 = z3) déterminer s’il existe une solution sur lesentiers
Un de ces problèmes ne peut être résolu par ordinateur (3), unest “difficile" (1) et un est “facile" (2).
Martin C. Cooper Théorie de la complexité
Références bibliographiques
D. Bovet & P. Crescenzi, “Introduction to the Theory ofComplexity"C.H. Papadimitriou, “Computational Complexity"M. Garey & D.S. Johnson, “Computers and Intractability: AGuide to the Theory of NP-Completeness"
Martin C. Cooper Théorie de la complexité
Modèle de Calcul
PROCESSUS- -ENTREE SORTIE
une séquencede symboles
appartenant àun alphabet Σ
soit oui/non(problèmes de décision)
soit une séquence desymboles appartenant à Σ(p.ex. problèmesd’optimisation)
Martin C. Cooper Théorie de la complexité
Problèmes de décision et problèmes fonctions
Pour définir un problème de décision, il suffit de décrire uneinstance générique ainsi qu’une question oui-non sur chaqueinstance.
Pour définir un problème fonction, il faut décrire une instancegénérique ainsi qu’une relation de la formeR = {〈I, sol〉|sol est une solution possible pour l’instance I}.(On cherche un algorithme qui réalise une fonction (partielle) fqui retourne une solution f (I) telle que 〈I, f (I)〉 ∈ R lorsqu’unesolution existe).
Martin C. Cooper Théorie de la complexité
Exemples de problèmes de décision
CLIQUEInstance: Un graphe G et un entier k .Question: Existe-il dans G un graphe complet de k sommets?
COLORIAGE DE GRAPHESInstance: Un graphe G et un entier k .Question: Est-ce que G possède un coloriage de k couleurs(une affectation de couleurs aux sommets telle que lessommets adjacents soient de couleurs différentes)?
Martin C. Cooper Théorie de la complexité
Exemples de problèmes de décision
VOYAGEUR DE COMMERCE (D) (version Décision)Instance: Un ensemble de villes {v1, . . . , vn}, une distanceentière d(i , j) entre chaque paire de villes vi , vj et un entier B.Question: Existe-il une permutation π de {1, . . . ,n} telle que(
n−1∑i=1
d(π(i), π(i + 1)) + d(π(n), π(1))
)≤ B
Martin C. Cooper Théorie de la complexité
Complexité d’un algorithme
Dans la plupart des cas, c’est le temps de calcul excessif quilimite l’utilisation de certains algorithmes =⇒ la mesure decomplexité le plus utile, c’est la complexité temporelle.
DéfinitionLa complexité temporelle d’un algorithme A est la fonctionTempsA où TempsA(x) = nombre d’instructions exécutéespendant le calcul A(x).
Martin C. Cooper Théorie de la complexité
Complexité d’un problème
On aimerait définir la complexité temporelle d’un problème Πcomme étant la complexité temporelle de l’algorithme A le plusefficace pour résoudre Π, mais ... il est possible de démontrerqu’on peut toujours rendre un algorithme A plus efficace.=⇒ la complexité temporelle doit être asymptotique.
DéfinitionPour toute fonction f , la complexité temporelle d’un langage Lest en O(f ) s’il existe un algorithme A qui décide L et desconstantes n0, c telles que
∀x |x | > n0 =⇒ TempsA(x) ≤ cf (|x |)
Martin C. Cooper Théorie de la complexité
Classes de complexité
DéfinitionLa classe (de complexité temporelle) TEMPS[f ] est la classede tous les langages de complexité temporelle en O(f ).
TEMPS[n] ⊆ TEMPS[n log n] ⊆ TEMPS[n2] ⊆TEMPS[2n] . . .
Martin C. Cooper Théorie de la complexité
Complexité polynomiale
Définition
P =⋃
k≥0 TEMPS[nk ]
N.B. TEMPS[p(n)] ⊆ P pour tout polynôme p(n).La classe P est identique pour les différents modèles de calcul(machine de Turing, machine RAM, etc.) La définition de P estaussi indépendante des détails du système de codage (tels quela structure de données qu’on utilise pour stocker un graphe).
Est-ce que P = traitable ("tractable")?Ce n’est pas le cas si le degré du polynôme est trop élevé ou siles constantes sont trop grandes.
Martin C. Cooper Théorie de la complexité
kSAT
k -SATISFIABILITÉInstance: Une formule f en k -FNC (f est en FNC et comporteau plus k littéraux par clause).Question: Est-ce que f est satisfiable?
Théorème2SAT ∈ P
Martin C. Cooper Théorie de la complexité
Algorithme de complexité polynomiale pour 2SAT :
(* Au départ, affectations = ∅ et res = "oui" *)tant que ∃ une variable x non-affectée et res = "oui" faire
pour val = vrai..faux faireeffectuer les affectation dans affectations ∪ (x ← val);res := Propager() ;si res = "oui" alors quitter boucle pour(* On a une affectation à un sous-ensemble des
variables qui est indépendante du reste des clauses *)
Propager() : tant que ∃ une clause li ∨ lj à propagersi li = lj = faux alors renvois "non" ;si li = faux et lj non-affectée alors lj := vrai ;si lj = faux et li non-affectée alors li := vrai ;
fin-tantque ;ajouter les nouvelles affectations à affectations ;renvois "oui";
Martin C. Cooper Théorie de la complexité
Réductions polynomiales
Une autre façon de démontrer qu’un problème Π1 appartient àP, c’est de montrer une réduction vers un problème Π2 ∈ P.
Définition(Karp 1972) Il y a une réduction polynomiale du langage L1vers le langage L2 (on écrit L1 ≤ L2) s’il existe une fonction f decomplexité polynomiale telle que x ∈ L1 ssi f (x) ∈ L2.
'
&
$
%
'
&
$
%
'
&
$
%L1 ≤ L2-• •
x f (x)
L1L2
Théorème
L1 ≤ L2 ∧ L2 ∈ P =⇒ L1 ∈ P
Démonstration: La composition de 2 polynômes est unpolynôme.
Martin C. Cooper Théorie de la complexité
2-COLORIAGE ∈ P
Théorème2-COLORIAGE ≤ 2-SAT
Voici une réduction polynomiale:Pour chaque sommet vi du graphe, on crée une variable xi
Pour chaque arête {vi , vj} du graphe, on ajoute 2 clauses(xi ∨ xj) et (¬xi ∨ ¬xj).
Soit f (vi) = rouge si xi = vrai et f (vi) = vert si xi = faux.f est un 2-coloriage du graphe ssi l’affectation (x1, . . . , xn)satisfait toutes les clauses 2-SAT.
Cette réduction est évidement polynomiale.
Martin C. Cooper Théorie de la complexité
La classe NP : motivation
2-SAT ∈ P, 2-COLORIAGE ∈ PAucun algorithme de complexité polynomiale est connuepour 3-SAT et 3-COLORIAGEPar contre, il existe des algorithmes de complexitépolynomiale pour vérifier si une solution est correcte.
Martin C. Cooper Théorie de la complexité
Vérificateurs et la classe NP
DéfinitionUn algorithme A est un vérificateur pour un langage L si Adécide un langage L′ et L = {I | ∃s tel que (I, s) ∈ L′}.
(Autrement dit, A décide si s est une solution pour l’instance I).
DéfinitionNP = la classe de langages qui possèdent unvérificateur de complexité polynomiale.
Martin C. Cooper Théorie de la complexité
Exemples de problèmes en NP :
SATISFIABILITÉ, VOYAGEUR DE COMMERCE(D),k -COLORIAGE, CLIQUE ∈ NP
Dans chaque cas, on peut vérifier en temps polynomial lacorrection d’une solution.
RemarqueLe nom NP vient de "Nondeterministic Polynomial-time" [Karp1972] i.e. complexité polynomiale sur une machinenon-déterministe (≈ une machine qui essaie toutes lespossibilités en même temps) ≡ ∃ un vérificateur de complexitépolynomiale.
La question P=NP? reste encore ouverte après 35 ans d’effort.La résolution de ce problème vous fera gagner $1 000 000(http://www.claymath.org/prize_problems).
Martin C. Cooper Théorie de la complexité
Les classes FP et FNP
Pour les problemes fonction, il existe des classes équivalentesà P et NP : FP et FNP.
DéfinitionUn problème fonction avec relation binaire associée R(I, sol)appartient à FP s’il existe un algorithme A de complexitépolynomiale tel que ∀I, A(I) renvoit sol telle que R(I, sol) estvrai (ou “non” si une telle sol n’existe pas).
DéfinitionUn problème fonction avec relation binaire associée R(I, sol)appartient à FNP si, étant données I et sol, on peut vérifierR(I, sol) en temps polynomial.
FP 6= FNP ⇔ P 6= NP
Martin C. Cooper Théorie de la complexité
NP-complétude
Les réductions polynomiales L1 ≤ L2 définissent un ordrepartiel entre les problèmes de décision.
DéfinitionUn langage L ∈ NP est NP-complet si L′ ≤ L pour tout L′ ∈ NP.
Les problèmes NP-complets sont tous aussi difficiles les unsque les autres, dans le sens qu’un algorithme efficace pour unlangage NP-complet L fournirait un algorithme efficace pourtout L′ ∈ NP.
#" !
'&
$%
'
&
$
%P
NP
NP-complet décidable
Martin C. Cooper Théorie de la complexité
Comment démontrer qu’un problème est NP-complet
Pour démontrer que L est NP-complet, il suffit de démontrerque L ∈ NP et L0 ≤ L pour un langage NP-complet L0.Donc, le plus difficile c’est de trouver le premier langageNP-complet L0.
Martin C. Cooper Théorie de la complexité
Le théorème de Cook
Théorème (Cook 1972)
SATISFIABILITÉ est NP-complet
Principe de la preuve:1 pour chaque problème Π ∈ NP, il existe un programme de
vérification P qui renvoit "oui" si l’entrée S est une solutionpour une instance I et "non" sinon.
2 on peut coder l’exécution correcte de P sur (I,S) avecrésultat "oui" comme une instance AI,P de SAT avecvariables Vijk = vrai si l’adresse i contient j après kopérations. (S fait partie des variables).
3 AI,P satisfiable⇔ ∃ solution S pour I. Donc Π ≤ SAT.
Martin C. Cooper Théorie de la complexité
Preuves de NP-complétude
Pour démontrer qu’un problème Π est NP-complet, il suffit de1 démontrer que Π ∈ NP2 démontrer que Π′ ≤ Π pour un problème NP-complet Π′.
Voir le livre de Garey & Johnson pour une liste de centaines deproblèmes NP-complets.
N.B. Si Π′ ≤ Π pour un problème NP-complet Π′, mais on nesait pas si Π ∈ NP, alors on dit que Π est NP-difficile (NP-dur).
Martin C. Cooper Théorie de la complexité
CSP ∈ NP-complet
ThéorèmeCSP est NP-complet
Preuve: CSP ∈ NP et SAT ≤ CSP car SAT est unsous-problème de CSP.
Martin C. Cooper Théorie de la complexité
3SAT ∈ NP-complet
Théorème3SAT est NP-complet
Preuve: Puisque 3SAT ∈ NP, il suffit de démontrer queSATISFIABILITÉ ≤ 3SAT.
Remplacer chaque clause C = x1 ∨ x2 ∨ . . . ∨ xk (aveck > 3) par
C′ = (x1∨x2∨y1)∧(¬y1∨x3∨y2)∧ . . .∧(¬yk−3∨xk−1∨xk )
C est satisfiable ssi C′ est satisfaible(car ∃y1, . . . , yk−3 C′ = vrai ⇔ au moins un des xi est vrai⇔ C est vraie)
Martin C. Cooper Théorie de la complexité
COLORIAGE est NP-complet
ThéorèmeCOLORIAGE DE GRAPHES est NP-complet
Preuve:
1 COLORIAGE DE GRAPHES ∈ NP2 3SAT ≤ COLORIAGE DE GRAPHES
Pour une formule f = C1 ∧ . . . ∧ Ckcréer 3 sommets V ,F ,A, reliés par 3 arêtes. Sans perte degénéralité, on peut désigner les couleurs affectées auxsommets V ,F ,A par les noms vrai, faux, autrecréer un sommet pour chaque littéral x ou ¬x , et ajouter unsous-graphe qui impose col(x) ∈ {vrai,faux} etcol(x) 6= col(¬x)pour chaque clause Ci de la forme x ∨ y ∨ z ajouter unsous-graphe qui impose(col(x), col(y), col(z)) 6= (faux,faux,faux)
Martin C. Cooper Théorie de la complexité
Les sous-graphes nécessaires à la construction :
• •
••• •
••
•
��PPPPPP
@@@@
BBBBBB������
����
������@@
AAAA
����
x
¬x
y ¬y
z
¬z
A
V F
x ,¬x ∈ {vrai,faux}x 6= ¬x
•••• •
•
•• •
•• •
��
��@
@
@@
JJJ
x V
y
V z
V
x ∨ y ∨ z
Martin C. Cooper Théorie de la complexité
CLIQUE ∈ NP-complet
ThéorèmeCLIQUE est NP-complet
Preuve:
1 CLIQUE ∈ NP (car la liste des sommets est un certificat)2 SATISFIABILITÉ ≤ CLIQUE
Pour une formule f = C1 ∧ . . . ∧ Ckcréer un sommet pour chaque paire (x ,Cj ) où x est unlittéral de la clause Cjcréer une arête entre (x ,Ci ) et (y ,Cj ) si i 6= j et x , y sontcompatibles (x 6= ¬y ).
Cette construction se fait en temps polynomial. Le graphe ainsicréé comporte une clique de taille k ssi f est satisfiable(affecter la valeur vrai à chaque variable de la clique)
Martin C. Cooper Théorie de la complexité
Exemple de la construction :
(x ∨ y ∨ z) ∧ (¬x ∨ ¬a) ∧ (a ∨ b ∨ ¬y ∨ ¬z)
PPPPPPPPPPPPPPP
HHHHHH
HHHHHH
HHH
((((((((
(((((((
PPPPPPPPPPPPPPP
QQQQQQQQ
@@@@@@@@
(((((((
(((((((
(
����
����
����
���
PPPPPPPP
QQQQQQQQ
��������
��������
����
����
��������
����
����
x
y
z
a
b
¬y
¬z
¬a
¬x
(x ∨ y ∨ z)
(¬x ∨ ¬a)
(a ∨ b ∨ ¬y ∨ ¬z)
hhhhhhhhhhhhhhh
SSSSSSSSSS��������
A partir de cette clique de taille k = 3, on trouve la solution x =vrai, a = faux, b = vrai (y , z prennent n’importe quelle valeurs).
Martin C. Cooper Théorie de la complexité
coNP : les problèmes complémentaires
DéfinitioncoNP est l’ensemble des langages qui ont pourcomplémentaire (au sens des langages) un langage de NP :
coNP = {L | ¬L ∈ NP}
Autrement dit : coNP est l’ensemble des langages pourlesquels une preuve vérifiable en temps polynomial peutprouver la non-appartenance du mot au langage (les certificatssont des contre-exemples et non des solutions).
Exemples : NON-CLIQUE (déterminer s’il n’existe pas declique de taille k dans un graphe G), UNSAT (déterminer si uneformule φ en FNC est insatisfiable).
Martin C. Cooper Théorie de la complexité
coNP-complétude
DéfinitionUn langage L0 est coNP-complet si
1 L0 ∈ coNP2 Pour chaque L ∈ coNP, L ≤ L0 (il y a une réduction
polynomiale de L vers L0).
Martin C. Cooper Théorie de la complexité
coNP-complétude d’UNSAT
ThéorèmeUNSAT ∈ coNP-complet.
Preuve : Nous savons que UNSAT ∈ coNP.Soit L ∈ coNP. Il faut démontrer L ≤ UNSAT. Il y a une réductionpolynomiale ¬L ≤ SAT (par la NP-complétude de SAT).Puisque chaque instance de L est aussi une instance de ¬L(c’est la question qui change mais pas l’instance), pour chaqueinstance I de L, il existe une formule φI telle que
φI est satisfiable ssi I ∈ ¬L.Donc φI est insatisfiable ssi I /∈ ¬L.Donc φI ∈ UNSAT ssi I ∈ L.
Martin C. Cooper Théorie de la complexité
Exemple d’un problème coNP-complet
TAUTOLOGIEInstance: Une formule booléenne φ en FNC.Question: Est-ce que φ = vrai pour toute affectation desvariables?
ThéorèmeTAUTOLOGIE ∈ coNP-complet.
Preuve : (1) On peut vérifier un contre exemple (uneaffectation qui ne satisfait pas la formule) en temps polynomial.(2) φ est une tautologie ssi ¬φ est insatisfiable, donc il y a uneréduction polynomiale UNSAT ≤ TAUTOLOGIE.
Martin C. Cooper Théorie de la complexité
Une autre définition de coNP
L ∈ NP si et seulement s’il existe une relation R ∈ P tel quex ∈ L ssi ∃y , R(x , y) = vrai.
L ∈ coNP si et seulement s’il existe une relation R ∈ P tell quex ∈ L ssi ∀y , R(x , y) = vrai.
Preuve : (L ∈ coNP)⇔ (¬L ∈ NP)⇔ (∃R′ ∈ P tel que x ∈ ¬Lssi ∃y , R′(x , y) = vrai)⇔ (∃R = ¬R′ ∈ P tel que x ∈ L ssi ∀y ,R(x , y) = vrai).
Martin C. Cooper Théorie de la complexité
Au delà de NP et coNP
DéfinitionΣi est la classe des langages L tels que ∃ une relation R ∈ Ptelle que x ∈ L ssi ∃y1∀y2 · · ·QiyiR(x , y1, y2, . . . , yi), oùQj = ∃ si j est impair et Qj = ∀ si j est pair.
DéfinitionΠi est la classe des langages L tels que ∃ une relation R ∈ Ptelle que x ∈ L ssi ∀y1∃y2 · · ·QiyiR(x , y1, y2, . . . , yi), oùQj = ∀ si j est impair et Qj = ∃ si j est pair.
Interprétation en termes de jeu à 2 joueurs : un problème de Σipeut être vu comme demander s’il existe une stratégiegagnante en i coups pour le 1er joueur. De façon similaire, unproblème de Πi peut être vu comme demander s’il existe unestratégie gagnante en i coups pour le 2ème joueur.
Martin C. Cooper Théorie de la complexité
La hiérarchie polynomiale
Définition (Polynomial Hierarchy)
PH =⋃
i
Σi
A partir de leurs définitions, nous avons directement :Σ1 = NPΠ1 = coNPΣi ⊆ Σi+1
Πi ⊆ Πi+1
Σi ⊆ Πi+1
Πi ⊆ Σi+1
Martin C. Cooper Théorie de la complexité
Complexité spatiale
En informatique, l’espace et le temps sont différents : on nepeut pas réutiliser le temps!
DéfinitionPSPACE = la classe de problèmes de décision que l’on peutrésoudre en utilisant un espace mémoire de taille bornée parune fonction polynomiale de la taille de l’instance.
Exemples : SAT, planification-STRIPS ∈ PSPACE.
P ⊆ PSPACEP 6= PSPACE si P 6= NP.
Martin C. Cooper Théorie de la complexité
PSPACE-complétude
DéfinitionUn langage L est PSPACE-complet si
1 L ∈ PSPACE,2 pour tout langage L′ ∈ PSPACE, L′ ≤ L.
QBFInstance: Une formule booléenne φ en FNC et une séquencede quantifications Q1x1, . . . ,Qnxn sur les variables de φ, oùQi ∈ {∀,∃} (par exemple, ∀x1∃x2∀x3∃x4...φ).Question: Est-ce que Q1x1, . . . ,Qnxn φ = vrai ?
ThéorèmeQBF est PSPACE-complet.
Martin C. Cooper Théorie de la complexité
PSPACE et la hiérarchie polynomiale
ThéorèmePH ⊆ PSPACE.
RemarqueLe problème PSPACE-complet QBF a une forme très similaireaux langages dans PH, sauf que le nombre de quantificateursn n’est pas borné par une constante car c’est le nombre devariables de l’instance.
Martin C. Cooper Théorie de la complexité
EXPTIME
Rappel : La classe TEMPS[f ] est la classe de tous leslangages de complexité temporelle en O(f ).
Définition
EXPTIME =⋃k≥0
TEMPS[2nk]
c’est-à-dire, l’ensemble de tous les problèmes qui peuvent êtrerésolus en temps exponentiel.
Exemple : Etant donné un programe P, une entrée E et unentier N, déterminer si P(E) s’arrête en au plus N étapes.Preuve : Executer N étapes de P(E) se fait en temps O(N), etil faut O(log N) bits pour coder N.
Martin C. Cooper Théorie de la complexité
Complexté temporelle et complexité spatiale
ThéorèmeNP ⊆ PSPACE ⊆ EXPTIME.
Preuve :1 Soit Π ∈ NP. Il existe un vérificateur A de complexité
polynomiale pour Π. Les solutions potentielles sontforcément de taille polynomiale (car A doit les lire en tempspolynomial). Un algorithme qui appelle A sur chaquesolution possible utilise un espace mémoire polynomial.Donc Π ∈ PSPACE.
2 Un algorithme qui utilise un espace mémoire de taillepolynomiale p(n) ne peut utiliser un temps de calculsupérieur à 2p(n) (= le nombre total d’états possible de lamémoire) sans boucler.
Martin C. Cooper Théorie de la complexité
Questions ouvertes :
P = NP ∩ coNP ? (pourrait être vrai)P = NP ? (très peu probable que ce soit vrai)NP = PSPACE ? (très peu probable que ce soit vrai)PH = PSPACE ? (peu probable que ce soit vrai)PSPACE = EXPTIME ? (peu probable que ce soit vrai)
Ce que l’on sait : P 6= EXPTIME.
Martin C. Cooper Théorie de la complexité
Problèmes d’optimisation
DéfinitionUn problème d’optimisation Π = (E ,Sol ,m,obj) sera défini par
Un ensemble E d’instances.Une fonction Sol telle que pour tout I ∈ E, Sol(I)représente l’ensemble des solutions réalisables (“feasiblesolutions”) pour I.Une fonction m à valeur entière définie sur tous lescouples I ∈ E et x ∈ Sol(I). Cette mesure m représente lafonction objectif d’une solution x pour l’instance I.Un objectif obj ∈ {min,max} précisant si Π est unproblème de minimisation ou de maximisation.
Martin C. Cooper Théorie de la complexité
La classe NPO ≈ problèmes d’optimisation dont leproblème de décision appartient à NP
DéfinitionDéfinition Un problème Π = (E ,Sol ,m,obj) d’optimisationappartient à la classe NPO si :
Les instances I ∈ E peuvent être reconnues en tempspolynomial.Il existe un polynôme p tel que pour tout I ∈ E etx ∈ Sol(I), |x | ≤ p(|I|). De plus il est décidable en tempspolynomial si x ∈ Sol(I).La mesure m est une fonction calculable en tempspolynomial en |I|.
Martin C. Cooper Théorie de la complexité
Exemple de problème dans NPO
SAC-A-DOS (KNAPSACK)Instance: Un sac-à-dos de capacité C et un ensembled’objets O = {1,2, . . . ,n}, où chaque objet a un poids wi et unevaleur vi .Problème : Trouver un sous ensemble M ⊆ O d’objets devaleur totale maximale que l’on puisse transporter dans lesac-à-dos, c’est-à-dire qui maximise la valeur
∑i∈M vi tel que∑
i∈M wi ≤ C.
Pour une instance I :Sol(I) = l’ensemble de solutions réalisables = lesensembles M tels que
∑i∈M wi ≤ C
m(I,M) = la measure de la solution M =∑
i∈M vi
l’objectif obj = max
Martin C. Cooper Théorie de la complexité
Algorithmes d’approximation
DéfinitionSoit r(n) ≥ 1 une suite de valeurs réeles. Un algorithme A estune r(n)-approximation pour le problème Π = (E ,Sol ,m,obj) si
Pour chaque instance I ∈ E, A retourne une solutionxA ∈ Sol(I).De plus xA vérifie
m∗(I)/r(|I|) ≤ m(I, xA) ≤ m∗(I)r(|I|)
où m∗(I) est la valeur de la solution optimale.
On dit que r(n) est la garantie de performance de l’algorithmeA.
Martin C. Cooper Théorie de la complexité
APX
DéfinitionLa classe APX est constituée des problèmes de NPOadmettant une O(1)-approximation A de complexitépolynomiale en |I|.
Exemple : MAX-SAT ∈ APXPreuve : m(I, x) = nombre de clauses satisfaites par lasolution x .Soit A l’algorithme qui retourne xA = la meilleure des deuxsolutions (vrai , . . . , vrai) et (faux , . . . , faux). xA satisfait aumoins la moitié des clauses et donc m∗(I)/2 ≤ m(I, xA).Donc A est une 2-approximation.
Martin C. Cooper Théorie de la complexité
Exemple d’un problème difficile à approximer
VOYAGEUR DE COMMERCE (version optimisation)Instance: Un ensemble de villes {1, . . . ,n} et une distanceentière d(i , j) entre chaque paire de villes i , j .Problème: Trouver une permutation π de {1, . . . ,n} quiminimise
∑n−1i=1 d(π(i), π(i + 1)) + d(π(n), π(1)).
Etant donné un graphe G = 〈S,A〉, on peut construire uneinstance du problème de voyageur de commerce qui déterminel’existence d’un chemin hamiltonien :
d(i , j) = 1 si {i , j} ∈ A et d(i , j) = 1 + n2 sinon.∃ chemin hamiltonian dans G ⇔ ∃ tournée de longueur nUne O(1)-approximation résoudrait le problème de cheminhamiltonien en temps polynomial.Donc, si P 6= NP, alors VOYAGEUR DE COMMERCE /∈ APX.
Martin C. Cooper Théorie de la complexité
PTAS
DéfinitionUn schéma d’approximation polynomial (PTAS = “PolynomialTime Approximation Scheme”) est une famille (Aε)ε>0d’algorithmes polynomiaux en |I| telle que pour tout ε > 0,Aε est une (1 + ε)-approximation.
DéfinitionLa classe PTAS est constituée des problèmes de NPOadmettant un PTAS.
Martin C. Cooper Théorie de la complexité
FPTAS
DéfinitionUn schéma d’approximation pleinement polynomial (FPTAS =“Fully Polynomial Time Approximation Scheme”) est unalgorithme A(ε) polynomial en |I| et en 1/ε tel que pour toutε > 0 fixé, A(ε) est une (1 + ε)-approximation.
DéfinitionLa classe FPTAS est constituée des problèmes de NPOadmettant un FPTAS.
Martin C. Cooper Théorie de la complexité
Exemple : SAC-A-DOS ∈ FPTAS
Il existe un algorithme (pseudo-polynomial) A deprogrammation dynamique pour SAC-A-DOS de complexitéO(n2V ) où V est la valeur maximale des objets.
Soit I une instance de SAC-A-DOS, dans laquelle les objets1, . . . ,n ont les valeurs v1, . . . , vn.Pour un ε > 0 donné, on construit une version reduite Iε de Idans laquelle on remplace les valeurs vi par bnvi/εVc.L’algorithme de programmation dynamique A résoud Iε entemps O(n2(n/ε)) (donc polynomial en n et en 1/ε).
On peut démontrer que la solution optimale xε pour Iε satisfait
m(I, xε) ≥ (1− ε)m∗(I)
Donc, A(Iε) est une (1 + ε)-approximation pour SAC-A-DOS.
Martin C. Cooper Théorie de la complexité
Exemple : MIN-COLORIAGE DE GRAPHESPLANAIRES /∈ PTAS
MIN-COLORIAGE DE GRAPHES PLANAIRESInstance: Un graphe planaire GProblème : Trouver un coloriage de G qui minimise m(G) = lenombre de couleurs.
1 Tout graphe planaire a un 4-coloriage.2 Déterminer si un graphe planaire possède un 3-coloriage
est un problème NP-complet.3 Donc, une (1 + ε)-approximation pour ε < 1/3 résoudrait
ce problème de décision en temps polynomial.4 Donc, si P 6= NP, alors il ne peut exister de PTAS pour
MIN-COLORIAGE DE GRAPHES PLANAIRES.
Martin C. Cooper Théorie de la complexité
Inclusions des classes de complexité (de problèmesd’optimisation)
��
��
'&
$%
'
&
$
%
'
&
$
%FPTAS
PTAS
APX
NPO
FPTAS 6= PTAS ⇔ PTAS 6= APX ⇔ APX 6= NPO⇔ P 6= NP
Martin C. Cooper Théorie de la complexité