Title: IFT-66975
1IFT-66975
- Contourner la NP-complétude
2Que faire face à la NP-complétude?
- Pour une application précise, je veux trouver la
plus grande clique possible dans un graphe ou
répartir une tâche de façon optimale, ou
satisfaire simultanément un ensemble de clauses
booléennes. - Mais CLIQUE, SWI, SAT sont NP-complets! Est-ce la
fin du monde? - R Peut-être... mais il y a un peu despoir si on
réduit nos exigences ou nos attentes.
3- Sassurer que lon ne fait pas face à un sous-cas
relativement simple dun problème NP-complet. - Lapplication nous fournit-elle des informations
additionnelles sur les instances? - problèmes sur des classes de graphes relativement
simples - 2-SAT, Horn-SAT, 2-COL, ...
- Algorithmes pseudo-polynomiaux et NP-complétude
forte.
4- Pour les problèmes doptimisation, on peut
souvent obtenir un algorithme efficace qui trouve
une solution quasi-optimale. - Possible dans plusieurs cas mais avec une qualité
dapproximation très variable. - Nouvelles classes de problèmes PTAS, FPTAS, APX.
- Résultats dinapproximabilité.
5- Réduire lexplosion du temps de calcul à un
paramètre relativement petit. - Par exemple trouver une couverture par sommets
de taille k est réalisable en temps O(1.27k
V). Pas si mal si on cherche des petites
couvertures dans un grand graphe. - Un temps O(f(k) ? nc) nest pas déraisonnable si
k est très petit mais O(nf(k)) ne lest pas. - Problèmes traitables pour paramètre fixe (FPT),
réductions paramétrées. - W1-complétude.
6- Heuristiques
- ? faire un peu nimporte quoi et espérer que tout
aille pour le mieux. - Heuristiques spécifiques à un problème.
- Fouille aléatoire, algorithmes génétiques.
- Complexité des problèmes à boîte noire.
7Lanalyse de sous-problèmes
- En pratique, les problèmes que nous avons à
résoudre ont souvent beaucoup de structure quon
a tendance à oublier lors dune première analyse. - Lorsquun problème qui nous intéresse est
NP-complet, la première étape est de sassurer
que lon ne fait pas face à un sous-cas plus
simple. Dans ce cas, il y a peut-être un
algorithme polynomial pour ce sous-cas.
8Exemples
- Le théorème de Schaefer nous donne 6 variantes
polynomiales de SAT. - SAT est résoluble en temps polynomial si chaque
variable apparaît dans au plus 2 clauses.
9- DLP est NP-complet.
- DLP est résoluble en temps polynomial pour les
graphes acycliques. - TSP est NP-complet.
- TSP2 est NP-complet.
- TSP2,? est NP-complet.
- TSP2,?,sym est NP-complet.
10- De nombreux problèmes de graphe qui sont
NP-complets ont des algorithmes polynomiaux
lorsquon les restreints aux - graphes de degré borné
- graphes de nombre chromatique borné (nombre de
couleurs nécessaires pour un coloriage valide) - graphes acycliques
- arbres
- forêts
- graphes planaires
- graphes bipartis.
11Démontrer quun sous-cas est NP-complet
- Parfois, notre démonstration que A est NP-complet
montre en fait un résultat plus fort si on en
fait une analyse détaillée. - Preuve que HC ?p TSP montrait en fait HC ?p
TSP2,?,sym - Preuve que 3-SAT ?p DLP montrait en fait 3-SAT ?p
DLP-source-cible. - Parfois il faut raffiner nos réductions.
12- On a déjà vu que 3-COL est NP-complet.
- Est-ce que le problème reste NP-complet lorsquon
restreint le problème aux graphes planaires? - Notre réduction de 3-SAT vers 3-COL produit un
graphe qui en général nest pas planaire. - On va montrer que 3-COL ?p 3-COLplan.
13- Le défi est de transformer un graphe G en un
graphe planaire G tel que G est 3-COL si et
seulement si G est 3-COL. - Lidée est de remplacer localement les arêtes
avec des croisements par des gadgets planaires
qui simulent larête.
14Essayons de colorier le gadget suivant lorsque le
point de droite est rouge.
152 cas possibles pour colorier le troisième point
incident.
Fait à noter, les points extrèmes ont des
couleurs égales 2 à 2.
16Second cas... Donne lieu à deux sous-sous-cas,
selon la couleur du sommet du haut.
Les 4 sommets extrèmes ont la même couleur.
17Dernier cas...
Impossible de colorier le dernier point! Donc les
2 cas précédents sont les seuls coloriages
possibles, à une permutation des couleurs près.
18- Le gadget P a les propriétés suivantes.
- Dans tout 3-coloriage de P, les points extrèmes
ont des couleurs égales 2 à 2. - Si on colorie les points extrèmes avec des
couleurs égales 2 à 2, alors on peut légalement
colorier les autres points de P. - P est planaire
19Pour compléter notre réduction de 3-COL vers
3-COLplan, on considère une représentation de G
dans le plan. Soit (u,v) une arête de G qui
intersecte un certain nombre dautres arêtes.
On remplace cette arête par
...
u
v
...
u
v
u
P
P
P
À cause des propriétés de P, le graphe ainsi
obtenu est 3-coloriable si et seulement si le
graphe G est 3-coloriable.
20Algorithmes pseudo-polynomiaux
- Nous avons vu que le problème du sac à dos est
NP-complet. - Maintenant nous allons voir que le problème du
sac à dos est dans P. - !!??!??
21- Une instance du problème de sac à dos est
spécifiée par n objets de valeur vi et de poids
pi et une capacité du sac à dos C. - Algorithme de programmation dynamique on crée
une table T de (n1) rangées (0 à n) et de C 1
colonnes (0 à C). - On veut que lentrée Tk,w représente la valeur
maximale atteinte en choisissant parmi les k
premiers objets et sans dépasser le poids w.
Lentrée Tn,C est la réponse que lon cherche.
220 1 2 3 ... C
0
1
2
?
n
On peut facilement remplir la première rangée et
la première colonne car T0,w 0 et Tk,0 0.
230 1 2 3 ... C
0 0 0 0 0 0 0
1 0
2 0
? 0
n 0
On complète maintenant le tableau rangée par
rangée. Supposons que les rangées 0 à k-1 ont été
remplies. Un choix optimal parmi les k premiers
objets contient ou ne contient pas lobjet k.
Donc Tk,w maxTk-1,w, Tk-1,w-pk vk.
24- Quelle est la complexité de lalgorithme?
- Il y a O(Cn) entrées à remplir. Chaque entrée
peut-être remplie en temps constant. - Donc lalgorithme a un temps dexécution très
raisonnable. - À condition que C ne soit pas beaucoup plus grand
que n!
25- 3-SAT ?p Subset-Sum ?p Knapsack.
- Notre réduction de 3-SAT vers SS contruisait
2n2m entiers avec nm décimales. Lentier cible
C de linstance Knapsack ainsi construite est C ?
10nm! Donc un algorithme de complexité O(Cn) est
totalement inutilisable.
26Problèmes sur grands entiers
- On désigne (de façon floue) comme problème de
décision sur les grands entiers tout problème
dont les instances comportent des entiers dont la
taille nest pas nécessairement borné par un
polynôme de la longueur des données. - Exemples TSP, Network-flow, Knapsack, Partition,
Bin-Packing, etc. - Non-exemples CLQ, VC, Primalité, Col, etc.
27NP-complétude forte...
- Un problème sur de grands entiers est fortement
NP-complet si sa restriction aux instances où les
entiers sont bornés par un polynôme p(n) de la
taille totale de lentrée est également
NP-complet. - Exemples Puisque TSP2 est NP-complet, TSP est
fortement NP-complet. De la même façon TSP?,sym
est fortement NP-complet.
28... vs algorithmes pseudo-polynomiaux
- Un algorithme pour un problème sur grands entiers
est dit pseudo-polynomial si son temps
dexécution est polynomial lorsque les entiers de
linstance sont bornés par un polynôme p(n). - Exemple lalgorithme de programmation dynamique
pour Knapsack est pseudo-polynomial. Partition et
Subset-sum ont aussi des algorithmes
pseudo-polynomiaux.
29- Théorème si P ? NP, alors les problèmes
fortement NP-complets nadmettent pas
dalgorithme pseudo-polynomial. - Pour démontrer quun problème A est fortement
NP-complet on peut - Partir de la définition et montrer que la
restriction de A aux instances avec de petits
nombres est NP-complète. - Construire une réduction dun problème fortement
NP-complet B vers A qui préserve la taille des
entiers utilisés.
30- Le problème 3-partition est fortement NP-complet
et est très utile pour montrer la NP-complétude
forte dautres problèmes. - Entrée k seaux de taille b ? N et n 3k objets
de taille ai ? N avec b/4 lt ai lt b/2. - Question Peut-on répartir les n éléments dans
les k seaux? - À noter si cela est possible, alors chaque seau
contient exactement 3 objets. (Doù le nom de
3-Partition.)
31- Exemples
- 3-PART ?p, Bin-Packing
- En fait, 3-PART est clairement un cas particulier
de Bin-Packing. - 3-PART ?p, SWI
- Idée de la construction similaire à celle
montrant que PART ?p SWI. - Nos n objets de taille ai deviennent des tâches
Ai avec r(Ai) 0, d(Ai) kb k -1 et l(Ai)
ai. - On introduit également des tâches F1, ..., Fk-1
avec r(F_i) ib i -1, l(F_i) 1, d(F_i) ib
i.
32Optimisation et approximation
- Définition Un problème doptimisation P associe
à chaque instance x un ensemble de solutions S(x)
et à chaque s ? S(x) une valeur v(x,s) ? N.
Chaque problème doptimisation A est associé à
deux problèmes algorithmiques - MAX-P Étant donné x, trouver s ? S(x) tel que
v(x,s) soit maximal. - MIN-P Étant donné x, trouver s ? S(x) tel que
v(x,s) soit minimal.
33La classe NPO
- Définition Un problème doptimisation P
appartient à NPO sil existe un polynôme p tel
que - pour tout x et tout s ? S(x) on a s ? p(x)
- il existe un algorithme de complexité de temps
p(n) qui étant donné (x,s) détermine si s ? S(x)
et calcule v(x,s). - Note on dénote MAX-NPO et MIN-NPO les deux
restrictions naturelles de NPO.
34Exemples
- MAX-CLIQUE, MAX-Independent-Set, MAX-k-SAT,
MAX-KNAPSACK ? MAX-NPO. - MIN-TSP, MIN-Set-Cover, MIN-Bin-Packing, MIN-VC,
MIN-GC ? MIN-NPO. - NPO contient la très grande majorité des
problèmes algorithmiques les plus rencontrés en
pratique.
35Algorithme dapproximation
- Un algorithme dapproximation pour un problème
MAX-P doptimisation est un algorithme qui étant
donné une instance x retourne une solution s ?
S(x). - Soit vopt(x) maxs ? S(x) v(x,s).
- La qualité dune solution s est le ratio
- r(x,s) vopt(x)/v(x,s).
36Algorithme dapproximation
- Un algorithme dapproximation pour un problème
MIN-P doptimisation est un algorithme qui étant
donné une instance x retourne une solution s ?
S(x). - Soit vopt(x) mins ? S(x) v(x,s).
- La qualité dune solution s est le ratio
- r(x,s) v(s,x)/vopt(x).
37Qualité dun algorithme dapproximation
- Le ratio dapproximation (ou qualité) dun
algorithme dapproximation A est - rA(n) max r(x,s) x ? n ? A(x) s
- On a toujours rA(n) ? 1. Un algorithme
dapproximation est dautant plus performant que
rA est petit.
38- Deux objectifs à atteindre dans la conception
dalgorithmes dapproximation - Petit ratio dapproximation.
- Temps de calcul polynomial.
- Soit r N ? 1,?) une fonction croissante. On
définit les classes suivantes - APX(r(n)) classe des problèmes de NPO pour
lesquels il existe un algorithme dapproximation
avec temps de calcul polynomial et ratio
dapproximation rA(n) ? r(n). - APX union des classes APX(c) pour c ? 1.
- APX intersection des classes APX(c) pour c gt 1.
39- APX contient les problèmes qui peuvent être
approximés en temps polynomial pour nimporte
quel ratio dapproximation constant. - On peut être encore plus exigeant en demandant à
un algorithme dapproximation datteindre un
ratio dapproximation spécifié en entrée par
lusager. - Intuitivement clair plus on spécifie un ratio
petit et plus lalgorithme va avoir besoin de
temps!
40- Une stratégie dapproximation en temps polynomial
(PTAS) pour le problème doptimisation P est un
algorithme qui reçoit en entrée (x,?) où x est
une instance de P et ? gt 0 est un rationnel qui
et produit en temps polynomial dans la taille de
x (mais dépendant possiblement de ?) une solution
avec ratio dapproximation 1? dans le pire cas. - La classe de complexité PTAS est la classe des
problèmes de NPO pour lesquels il existe un PTAS.
41- Une stratégie dapproximation en temps
entièrement polynomial (FPTAS) pour le problème
doptimisation P est un algorithme qui reçoit en
entrée (x,?) où x est une instance de P et ? gt 0
est un rationnel qui et produit en temps
polynomial dans la taille de x et de 1/? une
solution avec ratio dapproximation 1? dans le
pire cas. - La classe de complexité FPTAS est la classe des
problèmes de NPO pour lesquels il existe un FPTAS.
42- On a donc
- P ? FPTAS ? PTAS ? APX ? APX ? NPO
- Un problème qui possède un FPTAS est à toute fin
pratique traitable. Un PTAS peut être acceptable
et même un algorithme dapproximation APX avec un
ratio dapproximation relativement faible peut
nous suffire surtout si on a de fortes raisons de
croire quil ny a pas de meilleure alternative.
43Algorithmes dapproximation classiques
Problème Algorithme dapproximation
MAX-CLIQUE O(n/log2n)
MIN-VC 2
MAX-3-SAT 8/7
MIN-BIN-PACKING 3/2
MIN-TSP? 3/2
MIN-VCplanaire PTAS
MAX-KNAPSACK FPTAS
44- Algorithme dapproximation pour MAX-3-SAT avec
ratio 8/7. - Rappel Max-3-SAT est la recherche dune
assignation aux xi qui maximise le nombre de
clauses satisfaites. Chaque clause contient
exactement 3 litéraux distincts. - Idée de départ Considérons une assignation
aléatoire aux xi et appelons Cj la variable
aléatoire qui est 1 si la clause cj est
satisfaite par cette assignation et 0 sinon.
Alors PrCj 1 7/8 donc E(Cj) 7/8. Donc si
C ? Cj on a - E( clauses satisfaites) E(C) ? E(Cj) 7m/8.
- Une assignation moyenne satisfait 7/8 des
clauses. Il suffit den trouver une qui atteint
la moyenne.
45- Algorithme soit x1, ..., xn les variables
booléennes de ?. - Pour i 1, ..., n on considère les deux valeurs
possibles 0,1 pour xi. - Pour les clauses cj, calculer E(Cj xi b).
Supposons que cj contient k litéraux. - Si cj ne contient k ni xi, ni ?i, alors E(Cj
xi 1) E(Cj) (2k-1)/2k. - Si cj contient xi alors E(Cj xi 1) 1.
- Si cj contient ?i alors E(Cj xi 1)
(2k-1-1)/2k-1. - Comparer E(C xi 0) et E(C xi 1). Choisir
xi b tel que E(C xi b) soit maximal. - Répéter 1 à 3 sur la formule ? où les occurrences
de xi sont remplacées par 0 ou 1.
46- Remarques
- Lalgorithme sexécute en temps O(mn).
- E(C) ½ E(C x1 1) ½ E(C x1 0). Or E(C)
7/8 m donc soit E(C x1 1) ? 7/8 m soit E(C
x1 0) ? 7/8 m. - À la seconde étape notre algorithme calcule E(C
x1 b1 x2 1) et E(C x1 b1 x2 0). Par
le même raisonnement, une de ces deux quantités
est au moins 7/8 m. - Lalgorithme construit donc une assignation qui
satisfait 7/8 des clauses. Mais vopt(?) ? m donc
le ratio dapproximation est 8/7 dans le pire cas.
47- Algorithmes dapproximation pour MIN-BP. (Objets
de taille p1, ..., pn et seaux de taille c. Quel
est le nombre minimal de seau nécessaire pour
placer tous les objets?) - Idée pour des algorithmes corrects (sans plus)
on suit les idées les plus naturelles. Dans ce
cas, des algorithmes voraces.
48- Idée 1 Placer chaque objet dans un nouveau seau
à moins quil tienne dans un seau qui nest pas
encore rempli à pleine capacité. - Quel ratio peut-on garantir? Chaque seau est
forcément rempli au moins jusquà la moitié. Donc
rA ? 2. - En fait, cet algorithme retourne un s tel que
v(x,s) ? ?1.7 vopt(x)?. - On peut construire des instances avec vopt
arbitrairement grand mais sur lesquelles
lalgorithme retourne une solution s avec v(s,x)
? 1.7 (vopt(x) -1).
49- Supposons que la capacité de chaque seau est 1 et
quon a 18m objets. - 6m objets de taille 1/7 ?
- 6m objets de taille 1/3 ?
- 6m objets de taille 1/2 ?
- On peut utiliser 6m seaux avec un objet de chaque
type. - Notre algorithme va en fait créer m seaux avec 6
petits objets, 3m seaux avec 2 objets moyens et
6m seaux avec des grands objets. 10m seaux en
tout pour une qualité de solution 5/3.
50- Idée 2 Placer chaque objet dans un nouveau seau
à moins quil tienne dans un seau qui nest pas
encore rempli à pleine capacité. Dans ce cas,
placer lobjet dans le seau dont la capacité
non-utilisée est la plus proche de la taille de
lobjet. - Quel ratio peut-on garantir?
- Essentiellement le même en pire cas!
51- Idée 3 Trier les objets. Placer chaque objet
dans un nouveau seau à moins quil tienne dans un
seau qui nest pas encore rempli à pleine
capacité. - Quel ratio peut-on garantir?
- v(x,sA) ? 11/9 vopt (x) 4
- Lorsque vopt 1, cela ne garantit que rA 47/9!
Mais asymptotiquement, le ratio tend vers 11/9. - De même, le meilleur algorithme connu a un ratio
dapproximation borné par - 1 O(log2 vopt/ vopt)
- qui tend vers 1. (FPTAS asymptotique)
52- Algorithme dapproximation pour MIN-TSP?.
- Trouver en temps polynomial un arbre de
recouvrement de poids minimal. - Traverser larbre de recouvrement pour couvrir
toutes les villes. Ce circuit passe 2 fois par
chaque ville mais on peut utiliser des raccourcis
pour éviter ce problème.
53- Quel ratio dapproximation peut-on garantir?
- Le coût du tour optimal est plus petit que
larbre minimal de recouvrement. - À cause de linégalité du triangle, lutilisation
de raccourcis ne peut augmenter le coût du tour
qui suit larbre de recouvrement minimal. - Donc rA ? 2.
- On peut raffiner le même type dalgorithme et
obtenir rA ? 3/2. - Lorsque les villes sont des points dans Rd avec
les distances usuelles (TSPd-euclid) il existe
même un PTAS.
54- Il existe un FPTAS pour le problème du sac à dos
(analyse délicate nécessaire). - Par programmation dynamique, on a un algorithme
pseuso-polynomial pour Max-KS. Il ne fonctionne
en temps polynomial que pour une capacité de sac
borné par un polynôme. Il existe aussi un
algorithme en temps polynomial dans la taille des
valeurs des objets. - Si les valeurs sont trop grandes, on peut
tronquer ces valeurs après t bits significatifs
et utiliser lalgorithme polynomial.
55- Min-KS pour les nuls. (algorithme dapproximation
polynomial avec r 2) - Ordonner les objets selon le ratio (vi / pi).
- Tant que la liste des objets nest pas épuisé,
rajouter lobjet i dans le sac à dos sil tient
dans la place restante. - Comparer la solution obtenue à la solution qui
contient lobjet de plus grande valeur. Retourner
la meilleure.
56- Min-KS pour les un peu moins nuls. (PTAS, ratio ?
1 1/k) - Former tous les ensembles possibles de k objets.
- Pour chaque ensemble, ajouter des objets grâce à
lalgorithme précédent. - Retourner la meilleure valeur obtenue.
- Le temps de calcul est O(nk1).
57Limites de lapproximabilité
- Comment peut-on démontrer quun problème
doptimisation P ne peut-être approximé en temps
polynomial au delà dune certaine limite de
qualité. - Si on peut démontrer quun algorithme
dapproximation pour P avec rA lt r(n) implique la
possibilité de résoudre en temps polynomial un
NP-complet, on aura de bonnes raisons de croire
quun tel algorithme nexiste pas.
58Technique du fossé
- Théorème
- Supposons que P ? NPO est tel que pour chaque x
et chaque s ? S(x) on a v(x,s) ? a ou v(x,s) ? b.
Supposons aussi quil est NP-ardu de différencier
le cas vopt(x) ? a du cas vopt(x) ? b. -
- Alors si P ? NP, il nexiste pas dalgorithme
dapproximation pour P avec ratio dapproximation
plus petit que b/a.
59- Démonstration
- Supposons quun tel algorithme existe. Puisquil
est NP-ardu de différencier les instances x de P
avec vopt(x) ? a de celles avec vopt(x) ? b, il
existe pour tout L ? NP, une f calculable en
temps polynomial tel que si w ? L alors
vopt(f(w)) ? a mais si w ? L alors vopt(f(w)) ?
b. - Supposons que P est un problème de minimisation.
On peut en temps polynomial obtenir une solution
s pour f(w) telle que v(f(w),s) lt b/a ?
vopt(f(w)). - Si v(f(w),s) lt b alors vopt(f(w)) lt b et donc
vopt(f(w)) ? a. - Si v(f(w),s) ? b alors vopt(f(w)) gt a/b ?
v(f(w),s) ? a et donc vopt(f(w)) ? b. - Donc w ? L si et seulement si vopt(f(w)) ? a, si
et seulement si v(f(w),s) lt b. Ainsi L ? P.
60- Mais comment peut-on trouver des problèmes
doptimisation avec cette propriété de fossé? - Dans certains cas en faisant simplement une
analyse précise des réductions démontrant la
NP-complétude dun problème.
61- Un fossé pour Min-TSP
- Revenons à notre réduction de HC vers TSP. On
transforme un graphe G (V,E) en une matrice de
distance entre les vi en prenant dij 1 si
(vi,vj) ? E et dij 2 si (vi,vj) ? E. - Si un circuit Hamiltonien existe dans G, il
existe un tour de coût n V. Sinon, tout tour
a un coût dau moins n1.
62- Un fossé pour Min-TSP
- Soyons plus radicaux dij 1 si (vi,vj) ? E et
dij n2n si (vi,vj) ? E. - Si un circuit Hamiltonien existe dans G, il
existe un tour de coût n. Sinon, tout tour a un
coût dau moins n2n. - Puisque HC est NP-complet, il est NP-ardu de
différencier les instances où le coût optimal est
? n de ceux ou le coût optimal est ? n2n. - ? si P ? NP, Min-TSP ne peut être approximé avec
un ratio 2n. Donc Min-TSP ? APX.
63- Critique possible de ce résultat oui mais si on
a seulement des petites distances? - On peut repenser les notions utiles pour les
algorithmes pseudo-polynomiaux et la
NP-complétude forte. - Un problème doptimisation est dit problème avec
petites valeur de solution si v(x,s) est toujours
borné par un polynôme p(x).
64- Exemples de problèmes doptimisation avec petites
valeurs de solution. - Max-CLIQUE, Min-VC, Max-3-SAT, Min-GC, Min-BP,
Max-3DM, etc. - Min-TSP, Min-KS, etc. lorsque lon borne par un
polynôme les entiers utilisés dans une instance.
65- Théorème
- Si P ? NP, alors tout problème Q avec petites
valeurs de solution qui est NP-ardu na pas de
FPTAS. - Théorème très pratique pour abandonner rapidement
la recherche dun FPTAS.
66- Démonstration
- Supposons que Q ? Min-NPO (largument
symmétrique fonctionne pour Max-NPO). Supposons
quun FPTAS existe et que les valeurs de Q sont
bornées par p(x). Prenons ?(n) 1/p(n) et
supposons - Puisque Q est NP-ardu, le FPTAS ne peut pas
toujours trouver la valeur optimale mais il
retourne en temps polynomial une solution s avec
v(x,s) ? (1?(x)) ? vopt(x). - Si x est une instance où la valeur calculée est
sous-optimale alors r(n) ? p(n)/(p(n)-1) puisque
les valeurs sont toutes entre 1 et p(n). Donc
r(n) 1 1/(p(n) -1) gt 1 ?(n), ce qui est une
contradiction.
67- Théorème
- Si P ? NP, et Q est un problème de minimisation
pour lequel il est déjà ardu de décider si
vopt(x) ? k, alors aucun algorithme
dapproximation en temps polynomial pour Q na un
ratio inférieur à 1 1/k.
68- Théorème
- Si P ? NP, et Q est un problème de maximisation
pour lequel il est déjà ardu de décider si
vopt(x) ? k1, alors aucun algorithme
dapproximation en temps polynomial pour Q na un
ratio inférieur à 1 1/k.
69- Démonstration
- Supposons au contraire quun algorithme A existe
avec un ratio inférieur à 11/k. - On veut utiliser A pour tester en temps
polynomial si vopt(x) ? k. - Supposons que A(x) s et que v(x,s) ? k. Alors
on sait que vopt(x) ? k. - Si v(x,s) ? k 1, alors puisque
v(x,s)/vopt(x,s) lt 1 1/k (k1)/k - on a forcément vopt(x) gt k.
- Donc vopt ? k ssi v(x,A(x)) ? k, ce qui donne
une contradiction.
70- Quelques applications de ce théorème (si P ? NP)
- Min-GC nest pas approximable en temps polynomial
avec un ratio inférieur à 4/3 car 3-COL est
NP-ardu. - Min-Bin-Packing nest pas approximable en temps
polynomial avec un ratio inférieur à 3/2 car
Partition est NP-ardu.
71- Comment raffiner létude de Min-GC pour montrer
quon ne peut pas non plus atteindre le ratio 4/3
asymptotiquement? - On sait que 3-COL est NP-ardu. À partir de là on
veut montrer que pour tout k, il est aussi
NP-ardu de distinguer en temps polynomial un
graphe dont le nombre chromatique est ? 3k dun
graphe dont le nombre chromatique est ? 4k.
72- Soit G (V,E) un graphe avec nombre chromatique
?(G). On construit en temps polynomial un graphe
Gk de la façon suivante. - On crée k copies de G.
- On rajoute des arêtes entre nimporte quels deux
points de copies différentes de G. - Il est facile de constater que ?(Gk) k ? ?(G).
- Donc si G est 3-coloriable, Gk est 3-coloriable
mais sinon, Gk nécessite au moins 4k couleurs! - ? Si P ? NP, alors tout algorithme
dapproximation en temps polynomial a un ratio
asymptotique inférieur à 4/3.
73- On peut parfois montrer que lexistence dun
algorithme avec un ratio dapproximation en
dessous dune certaine limite implique en fait
lexistence dun PTAS. - Cela arrive lorsque lon peut obtenir des
auto-réductions qui agrandissent le fossé. (Un
exemple suit!)
74- Théorème Si MAX-IS est approximable avec un
ratio dapproximation r (donc MAX-IS ? APX),
alors il existe un PTAS pour MAX-IS. - Démonstration
- Considérons pour un graphe G (V,E), le graphe
G2 (V?V, F) avec (u,u),(v,v) ? F si - u v et u,v ? E.
- ou u,v ? E.
75- Montrons que G a un IS de k points si et
seulement si G2 a un IS de k2 points. - ? si I est un IS de k points dans G, alors
(u,v) u,v ? I est un IS de k2 points dans G2. - ? Si I2 est un IS de k2 points dans G, alors U
u (u,v) ? I2 pour un v ? V est un IS de G.
Pour chaque u ? U, lensemble Wu v (u,v) ?
I2 est aussi un IS dans G. Un de ces ensembles a
une taille au moins k.
76- Si MAX-IS est r-approximable avec r lt 2, par
lalgo A en temps nc. - Appliquons cet algorithme au graphe G2. Cela se
fait en temps n2c et fournit un IS de taille au
moins k2/r. - Grâce à notre raisonnement précédent, on peut en
obtenir un IS pour G de taille au moins k/?r. - Donc on obtient un algorithme dapproximation
avec ratio ?r lt r.
77Comparer la complexité dapproximation
- On cherche des notions qui nous permettront
dobtenir des résultats dinapproximabilité pour
B à partir de résultats dinapproximabilité pour
A. - Pour les problèmes de décision, les réductions
polynomiales nous donnaient cette possibilité.
78- Définition Une réduction PTAS dun problème
doptimisation A vers un problème doptimisation
B (dénoté A ?PTAS B) est un triplet de fonctions
(f,g,?) avec les propriétés - f transforme les instances x de A en instances
f(x) de B et est calculable en temps polynomial. - Pour chaque triplet (x,s,?) où x est une instance
de A, s ? SB(f(x)) et ? ? Q, g transforme
(x,s,?) en une solution g(x,s,?) dans SA(x) et
est calculable en temps polynomial. - ? Q ? Q est une fonction surjective
calculable en temps polynomial. - Si rB(f(x),y)) ? 1 ?(?), alors rA(x,g(x,y,?)) ?
1 ?.
79- Lemme
- Supposons que A ?PTAS B. Alors
- Si B ? PTAS alors A ? PTAS.
- Si B ? APX alors A ? APX.
80- (Heureusement) certaines réductions entre
problèmes de décision peuvent facilement être
transformées en réductions PTAS pour des
problèmes doptimisation correspondant. - MAX-3-SAT ?PTAS MAX-IS. (ens. indép.)
- MAX-CLIQUE ?PTAS MAX-IS.
81Complétude
- Un problème doptimisation P ? NPO est C-complet
pour C ? APX, Min-NPO, Max-NPO si P ? C et pour
tout Q ? C, on a Q ?PTAS P. - On croit que les inclusions PTAS ? APX ? NPO sont
strictes. Donc lAPX-complétude ou la
NPO-complétude sont de fortes indications
dinapproximabilité dun problème.
82- Théorème
- MAX-3-SAT est APX-complet.
- Mais la démonstration requiert le théorème PCP.
83- Théorème
- MAX-W-SAT est MAX-NPO-complet.
- Instance formule ? avec variables booléennes x1,
... , xn et poids wi ? N pour chaque xi. - Solutions Toute assignation aux variables. Si s
? S(?) et s ne satisfait pas ?, alors v(?,s) 1.
Si s satisfait ? alors v(?,s) ?xi 1 wi.
84- Démonstration
- On veut réutiliser intelligemment la
démonstration de Cook-Levin. - Supposons que A ? MAX-NPO. Alors, il existe une
m.t. non-déterministe M qui étant donné x choisit
une solution potentielle s avec s ? p(x).
Ensuite, M vérifie si s ? S(x) et si oui calcule
v(x,s), écrit v(x,s) au début du ruban (en
commençant par les bits les moins significatifs)
écrit ensuite s, efface le reste du ruban et
accepte. Sinon, M sarrête et rejette.
85- Appliquons la réduction du théorème de
Cook-Levin. Si M sexécute en temps p(n) on peut
construire pour chaque entrée x une formule ? qui
est satisfiable si et seulement si M accepte x. - Dans ce cas, la variable booléenne cp(x),j,1
est vraie lorsque la case j du ruban lors de la
fin du calcul acceptant contient 1. - Supposons que les cases 1 à r sont utilisées pour
encoder v(x,s). On attribue alors à cp(x),j,1
le poids 2j. Toutes les autres variables ont un
poids 0.
86- On a donc une fonction f calculable en temps
polynomial qui transforme une instance x de A en
une formule ? avec des poids. - Il faut définir s g(x,y,?) où x est une
instance de A, y ? SB(f(x)) et s ? SA(x). Si y
satisfait ? alors les variables encodent un
calcul acceptant de M. Donc, on peut examiner la
dernière ligne du tableau et retrouver le s ?
SA(x) tel que le calcul de M sur x avec choix
non-déterministe s correspond à y. - Finalement, on choisit ?(?) ?.
87- Dernier détail montrer que si rB(f(x),y) ? 1
?(?) alors rA(x,g(x,y,?)) ? 1 ?. - À cause de notre choix de poids, le poids de y
est égal à v(x,s).
88Étude de cas VC
- Le problème de couverture par sommets est
NP-complet. Que faire alors? - Considérons 3 options raisonnables.
89- Algorithme dapproximation.
- Initialiser V ?.
- Tant que V ne couvre pas toutes les arêtes,
- choisir arête (u,v) non couverte.
- V V ? u,v.
- Temps dexécution ? O(E).
90- Qualité de lapproximation?
- Soit V la plus petite VC du graphe et E les
arêtes qui sont doublement couvertes par la VC
V fournie par lalgo. - On a V ? E car aucune deux arêtes de E
nont de sommet en commun. - Par définition V ? 2 E.
- Donc V ? 2 V et le ratio dapproximation
est 2.
91- Peut-on obtenir un meilleur ratio?
- Il existe un algorithme avec ratio
dapproximation - 2- (log log V / log V).
- NP-ardu à approximer avec un ratio plus petit que
7/6.
92- Algorithme heuristique
- Initialiser V ?.
- Tant que V nest pas une VC
- Choisir v ? V couvrant un maximum darêtes
non-couvertes. - V V ? v.
- Temps dexécution ? O(E2).
93- Quelle est le ratio dapproximation?
- Considérons un graphe G (V,E) dont les sommets
sont répartis en k niveaux L1, ..., Lk. - Niveau Li contient ?k/i? sommets.
- Chaque point du niveau 1 est relié à un point de
chaque autre niveau et ces arêtes sont réparties
uniformément. (donc le sommet j de L1 est
connecté au sommet ?j/i? 1 du ième niveau.) - Pour j ? 2, tous les sommets de Lj (sauf
peut-être un) ont un degré j. Les sommets de L1
ont un degré k-1.
94- La VC optimale contient les k sommets du niveau
L1. - Notre heuristique choisit dabord le sommet du
niveau Lk car son degré est k. - Ensuite, les arêtes incidentes à ce point sont
effacées donc les sommets de L1 ont degré k-2.
Donc tous les sommets de Lk-1 sont ensuite
choisis. - La taille de la VC construite par notre
algorithme ? ? k/i ? k log k. - Le ratio dapproximation est donc ?(log k)!
95- Algorithme exact A pour VC. Graphe G (V,E) en
entrée, VC optimal en sortie. - Entrée choisir une arête (u,v).
- Soit Gu est le graphe dont on a effacé u et ses
arêtes incidentes. Récursivement calculer VC
optimal Vu pour Gu et Vv pour Gv. - Si Vu ? Vv retourner Vu ? u, sinon
retourner Vv ? v.
96- Temps dexécution?
- Note Si k est la taille de la VC optimale on
peut borner la profondeur de récurrence par 2k. - Temps total dexécution O(V ? 4k).
- En raffinant ce type didée, on peut même obtenir
des temps O(1.27k kV).
97Complexité paramétrée
- Un problème de décision paramétré a des instances
de la forme ? I, k ?. - On dit que ce problème est FPT sil existe un
algorithme de complexité de temps O(Ic ? f(k))
pour une constante c.
98Exemples
- k-Clique, k-IS sont des problèmes FPT.
- Par contre, k-DS, k-weight-SAT et plusieurs
autres ne sont probablement pas dans FPT.
99Heuristiques universels
- Soit A un problème de MIN-NPO dont les solutions
s sont décrites par des chaînes de n bits s
(s1, ..., sm). - On veut décrire deux algorithmes qui peuvent
sappliquer à nimporte quel problème de ce type.
100Algorithme Metropolis
- Lalgorithme est spécifié pour une constante T
judicieusement choisie. - Choisir une solution s au hasard et calculer
v(x,s). - Créer une nouvelle solution s en choisissant
aléatoirement un bit si de s et en changeant sa
valeur. - Si v(x,s) ? v(x,s), alors garder s et
abandonner s. - Si v(x,s) gt v(x,s) alors garder s avec
probabilité - 2-(v(x,s) v(x,s))/T et garder s sinon.
- Répéter 2-4 jusquà lépuisement.
101Algorithme de simulation dalliage
- Lalgorithme est spécifié par une température de
départ T et un facteur de refroidissement ?. - Le principe est exactement le même que celui de
lalgorithme Metropolis mais à létape i, on
remplace T par ?i ? T.
102Algorithmes génétiques
- Large classe dalgorithmes qui maintiennent une
liste de solutions avec leur valeur et génèrent
de nouveaux points
103Pourquoi utiliser autre chose?
- Aucune garantie sur la qualité des solutions
fournies. - Souvent utilisé aveuglément. Dautres
alternatives sont souvent plus complexes à
implémenter mais on de nombreuses qualités.
104Un algorithme pour 3-SAT
- Pour une 3-SAT formule avec n variables, il
existe un algorithme probabiliste dont le temps
dexécution est p(n)? (4/3)n pour un certain
polynôme p.
105- Répéter 30 ? (4/3)n fois.
- Choisir une assignation ? pour les xi au hasard.
- Si ? satisfait ?, retourner 1. Sinon, choisir
aléatoirement une clause non-satisfaite et
changer la valeur dun des trois litéraux. - Répéter létape (2) 3n fois.
- Si aucun ? na été trouvé satisfiant ? retourner
0.
106- Il est clair que cet algorithme a le temps
dexécution promis. - Aussi, si ? ? SAT alors lalgorithme retourne 0.
- Quelle est la probabilité que lalgorithme
retourne 0 si ? ? SAT?