You are on page 1of 29

Complexite des algorithmes

- notes de cours -
Jerome Galtier et Alexandre Laugier
12 mars 2010
Table des mati`eres
1 Quelques notions dalgorithmique et complexite elementaire 3
1.1 Strutures de calcul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.1 La liste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.2 La pile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.3 La le . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.4 Graphes et arbres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Tri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3 Chemins Euleriens et Hamiltoniens . . . . . . . . . . . . . . . . . . . . . . . 8
2 Modelisation de la complexite 10
2.1 Machines de Turing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2 Les classes P et NP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3 Le probl`eme SAT et le theor`eme de Levin-Cook . . . . . . . . . . . . . . . . 12
2.4 Autres probl`emes NP-Complets . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4.1 3-SAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4.2 VERTEX COVER . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4.3 CYCLE HAMILTONIEN . . . . . . . . . . . . . . . . . . . . . . . . 16
3 Un algorithme polynomial pour la programmation lineaire 19
3.1 La methode de Khachiyan . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4 Le probl`eme de separation 22
5 Approximation des probl`emes 25
5.1 Classication des algorithmes dapproximation . . . . . . . . . . . . . . . . . 25
5.2 La programmation dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.3 Approximation de multi-ot . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1
Figure 1: Puissance de calcul du meilleur ordinateur mondial au l des ans.
Lalgorithmique est une discipline sous-jacente `a une partie immense de leconomie au-
jourdhui. Le monde du travail a ete radicalement transforme pour laisser une large place ` a
lactivite assistee par ordinateur.
la complexite est en quelque sorte la matrise de lalgorithmique. Cette science vise
` a determiner, sous un certain nombre de conditions, quel sont les temps de calcul et es-
pace memoire requis pour obtenir un resultat donne. Une bonne matrise de la com-
plexite se traduit par des applications qui tournent en un temps previsible et sur un espace
memoire controle. A linverse, une mauvaise comprehension de la complexite debouchent
sur des latences importantes dans les temps de calculs, ou encore des debordements memoire
consequents, qui au mieux, gelent les ordinateurs (swap sur le disque dur) et au pire
font carrement planter la machine.
Sur la Fig. 1 on constate avec une echelle logarithmique la puissance considerable quont
acquis les ordinateurs modernes. On voit que les machines en lespace de cinquante ans, ont
ameliore leur capacites de calcul de moins dun million doperations ottantes par seconde,
` a plus dun million de milliards doperations ottantes par seconde. Cette revolution oblige
` a un changement profond de comprehension des algorithmes qui precisemment commandent
ces machines.
En eet, un raisonnement simpliste pourrait consister ` a penser que la puissance de calcul
est pratiquement innie. De fait, beaucoup de programmes peuvent sexecuter rapidement
sur ces supercalculateurs, voire meme sur les ordinateurs que nous cotoyons tous les jours.
Cependant, la plupart des calculs que lont peut imaginer ne sont pas, loin sen faut, simples.
Par exemple, beaucoup doperations sur une liste font intervenir lordre de la liste en question.
Or le nombre dordres possibles pour une liste de n elements, note n!, crot excessivement
vite. Par exemple, supposons que nous voulions faire sur le meilleur calculateur existant
aujourdhui, au cours dune seconde, une operation ottante sur toutes les listes ordonnees
possibles `a n elements. Alors malheureusement, malgre toute notre puissance de calcul, il
nous faudrait nous limiter aux listes ` a 17 elements ou moins (17! = 3, 55 10
14
)!
Par ailleurs meme si la puissance de calcul va croissant, le co ut requis par operation
2
Figure 2: Une liste doublement chanee.
ottante a tendance ` a stagner. Cela fait que la consommation energetique due aux calculs
devient phenomenale. On a estime que la puissance energetique totale consommee par les
ordinateurs dans le monde etait en 2005 de 200 TWh, ce qui correspond ` a la production
dune trentaine de tranches de centrales nucleaires `a 800 MWatt chacune, ou encore, en
termes dempreinte carbone, de 30 million dautomobiles. Lordinateur le plus puissant du
monde en 2009, le Cray Jaguar, consomme 7 MWatt pour une puissance de calcul mesuree
de 1,759 TFlops. Ce co ut demande par lorganisation Top500 nest quun co ut partiel de
calcul. Les specialistes du calcul haute performance estiment que tr`es bientot les co uts
energetiques totaux dun supercalculateur seraient de lordre de 100 MWatt. Tout cela a un
co ut phenomenal, tant en termes de ressources nanci`eres que planetaires et humaines.
En resume, les ressources de calcul daujourdhui sont loin detre innies, et il convient
de les estimer avec precision. Ce cours donne les bases dune bonne analyse des temps de
calcul et donne plusieurs exemples marquants de calcul complexes realises dans un temps
matrise.
1 Quelques notions dalgorithmique et complexite elementaire
1.1 Strutures de calcul
Un calcul bien mene utilise les structures appropriees. Nous examinons ici plusieurs struc-
tures simples qui permettent une analyse relativement facile.
1.1.1 La liste
La liste peut se voir comme une suite nie dobjets a
1
, . . . , a
n
. Elle permet notamment:
linsertion, la supression delements ` a toute place (en O(1)),
la recherche dun element donne (en O(n)),
la creation, le test si la liste est vide ou non (en O(1)).
Une mise en uvre simple de ce type de structure consiste ` a utiliser une liste doublement
chanee, cest-` a-dire une liste o` u on garde la memoire de lelement precedent et suivant de la
liste. Dans lexemple de la Fig. 2, cela donnera:
3
Figure 3: Liste de la Fig. 2 modiee.
Figure 4: Une le placee dans un tableau.
Case 0 1 2 3 4 5 6
Valeur (racine) Souris Chat Chien Vache
Suivant 3 6 4 2
Precedent 4 0 3 2
Si on ajoute une valeur, par exemple comme indique sur la Fig. 3, alors le tableau de la
liste deviendra:
Case 0 1 2 3 4 5 6
Valeur (racine) Cheval Souris Chat Chien Vache
Suivant 3 2 6 4 1
Precedent 4 1 0 3 2
Cette mani`ere de proceder a lavantage de pouvoir inserer un element avant ou aor`es un
autre (avant souris ou apr`es chien dans notre exemple) sans se preoccuper de savoir
precisemment dans quelle liste ces elements gurent.
1.1.2 La pile
La pile est une structure o` u on ins`ere les elements dun seul et meme cote. On parle souvent
de pile LIFO (pour last-in rst-out): le dernier entre est le premier `a ressortir.
4
Figure 5: Un graphe non-oriente. Figure 6: Un graphe oriente.
1.1.3 La le
La le est une structure o` u lon peut inserer et supprimer de cotes opposes. Une application
courante est la le FIFO (pour rst-in rst-out). On parle aussi de le bilat`ere pour men-
tionner cette propriete dinsertion et de suppression des deux cotes. Ces structures servent
souvent en tant que tampon (ou buer en anglais). Sur la Fig. 4 on voit deux etats clas-
siques dune le rangee dans un tableau. Sur le haut de la gure le pointeur de debut d se
trouve avant le pointeur de n f, ce qui signie que la liste (en hachure) se trouve au milieu.
Sur le bas de la gure, cest la situation inverse qui apparat, avec une position des elements
de la le aux extremites du tableau.
1.1.4 Graphes et arbres
Les graphes sont des structures tr`es courantes en algorithmique. Il sont formes dentites
elementaires que lon appelle nuds ou sommets. On rajoute entre ces sommets des connex-
ions qui lient deux sommets, soit de mani`ere non-orientee (on parle alors darete, et le graphe
est dit non-oriente, voir Fig. 5), soit speciquement dun sommet vers un autre (dans ce cas
la connexion est appelee arc, et le graphe est un graphe oriente, encore appele digraphe, voir
Fig. 6).
Un graphe est dit connexe sil existe toujours un chemin dun sommet ` a un autre (on
sautorise, dans le cas des digraphes, `a prendre des arcs ` a rebrousse-poil). Un digraphe est
fortement connexe si il existe toujours un chemin dun sommet vers un autre en respectant le
sens des arcs. Un cycle est un chemin qui, partant dun certain sommet, parcours un certain
nombre dautres sommets et revient au point de depart.
Un arbre est un graphe connexe sans cycle. On peut distiguer dans un graphe une racine
qui est un sommet unique. Lexistence dune racine permet dorienter toutes les aretes du
graphes de mani`ere naturelle: on oriente larete depuis la racine vers les extremites de larbre.
5
1.2 Tri
Un algorithme de base pour le calcul de la complexite est le tri. Supposins quune liste ` a trier
se trouve sous la forme dune liste doublement chanee, comme explique au paragraphe 1.1.1.
Une premi`ere methode consiste `a parcourir toute la liste, selectionner lelement maximal, le
supprimer de la liste courante, puis de linserer en tete dune liste ` a trier. Cette methode
demande n operations de recherche sur la liste courante de taille n, puis une operation de
suppression, et enn une operation dinsertion. Soit n + 2 operations pour passer dune
liste de taille n` a une liste de taille n 1. Le temps total de calcul est alors, en nombre
doperations, de:
(n + 2) + (n + 1) + (n) + (n 1) +.. + 3 =
i=n

i=1
i + 2 =
n
2
+ 5n
2
.
Une methode alternative consiste `a utiliser un tas. Le tas se forme sur une structure
darbre particuli`ere appelee arbre binaire quasi-complet.
Soit G un arbre non-oriente et muni dune racine. Appelons p`ere le voisin dun sommet
qui se trouve du cote de la racine, et ls ses autres voisins. Designons par feuille un sommet
qui na pas de ls. Appelons niveau dun sommet la distance, en termes de longueur de
chemin, qui le separe de la racine.
Un arbre binaire complet est un arbre dote dune racine, dont toutes les feuilles sont au
meme niveau, et dont tous les autres sommets ont exactement deux ls. Un arbre binaire
quasi-complet est un arbre complet auquel on a eventuellement supprime un certain nombre
de feuilles, mais uniquement en bas ` a droite (voir la Fig. 7). Alors quun arbre binaire
complet poss`ede 2
h+1
1 sommets, o` u h represente le niveau des feuilles, un arbre binaire
quasi-complet peut avoir un nombre quelconque de feuilles. On ajoute un sommet en placant
une feuille ` a la position inoccupee la plus ` a gauche sur le dernier niveau incomplet (et
eventuellement en commacant un nouveau niveau si necessaire. On retire un sommet en
supprimant le sommet le plus ` a droite du dernier niveau. La Fig. 8 donne toutes les topologies
darbres binaires quasi-complets de 1 `a 16 sommets.
Munissons maintenant chaque sommet de larbre dune valeur numerique. On dira que
larbre est bien ordonne si la valeur dun p`ere est toujours inferieure `a celle de ses ls. Un
tas est un arbre binaire quasi-complet bien ordonne (voir Fig. 9). Le tas est une structure
qui permet pour un ensemble de n elements
(1) dajouter un nouvel element en O(log(n) operations,
(2) dextraire le minimum du tas en O(log(n) operations.
Pour inserer un nouvel element dans un tas, on sautorise dans un premier temps ` a violer
la r`egle de bien-ordonnancement pour obtenir un un arbre binaire quasi-complet ayant le
bon nombre de sommets. Par exemple, si on introduit un nouveau sommet ayant la valeur
7 ` a larbre de la Fig. 9, on obtient dans un premier temps larbre de la Fig. 10, qui est
quasi-complet. Ensuite, on retablit le bon-ordonnancement en partant du sommet introduit
et en lechangeant avec son p`ere si la valeur du p`ere est superieure. Cette operation retablit
6
Figure 7: Un arbre binaire quasi-complet:
on part dun arbre binaire complet, et on
supprime des feuilles en bas `a droite (ici,
5 feuilles).
Figure 8: Topologies des arbres binaires
quasi-complets de 1 ` a 16 sommets.
Figure 9: Un tas.
7
Figure 10: Arbre binaire quasi-complet
resultant de laddition de la valeur 7.
Figure 11: Tas obtenu apr`es laddition de
la valeur 7.
le bon-ordre sur le lien p`ere/ls mais peut eventuellement introduire une violation de la r`egle
de bien-ordonnancement sur le lien grand-p`ere/p`ere. On echange dans ce cas les sommets
p`ere/grand-p`ere, et ainsi de suite eventuellement jusqu` a la racine. Dans le cas le pire, on
remonte le chemin jusqu`a la racine, soit O(log(n)) operations. Dans notre exemple, les
sommets des valeurs 7 et 14 sont dabord echanges, puis les sommets des valeurs 8 et 7, pour
donner le tas de la Fig. 11.
Lautre operation majeure est lextraction de la valeur minimale. La valeur minimale
se trouve ` a la racine. Dans un premier temps, comme le montre la Fig. 12, on maintient
simplement la structure darbre binaire quasi-complet en depla cant le contenu de la derni`ere
feuille (en bas ` a droite) sur la racine. Cette derni`ere feuille est donc supprimee. On retablit
ensuite le bon-ordonnancement de la mani`ere suivante: le contenu du sommet `a mettre ` a jour
est compare `a ses deux ls, et est echange avec son ls de valeur minimale. On deplace alors
le probl`eme dordonnancement au ls choisi pour lechange et sa descendance. On continue
` a echanger les valeur de ce sommet avec le plus petit de ses ls jusqu` a ce que larbre soit
ordonne, comme le montre la Fig. 13. Loperation se fait en O(log(n)).
Au nal, le tri par tas sur une liste de n element commence par n insertions, suivies de
n extractions de la valeur minimale, pour un total de O(nlog(n)) operations.
1.3 Chemins Euleriens et Hamiltoniens
Le probl`eme du chemin dit Eulerien est apparu en rapport avec la ville de K onigsberg
(aujourdhui Kaliningrad), dont une carte sommaire est donne en Fig. 14. La question
etait de savoir sil existait une promenade passant une et une seule fois par tous les ponts
(representes en brun).
Leonhard Euler a resolu cette question en 1735 en demontrant quune telle promenade
dexistait pas. Sa demonstration repose sur une representation en graphe du probl`eme
(Fig. 15). Il sagit alors de trouver un chemin ou un cycle qui passe une et une seule
fois par toutes les aretes, moyennant un passage eventuel plusieurs fois par le meme som-
met. La demonstration dEuler repose sur la constatation que (1) si un tel chemin ou cycle
8
Figure 12: Arbre binaire quasi-complet
resultant de lextraction de la valeur 3.
Figure 13: Tas obtenu apr`es lextraction
de la valeur 3.
Figure 14: Topographie de la ville de Konigsberg (au-
jourdhui Kaliningrad).
Figure 15: Graphe correspon-
dant au probl`eme dEuler.
9
Figure 16: Un graphe
leg`erement modie.
Figure 17: Un chemin
eulerien.
Figure 18: Un chemin
hamiltonien.
existe, alors tous les sommets sauf eventuellement les sommets de depart et darrivee ont un
nombre pair daretes adjacentes. De plus, (2) tous les sommets non-isoles sont alors dans la
meme composante connexe du graphe. Euler a demontre que les conditions (1) et (2) etaient
egalement susantes pour sexistence dun tel chemin. Ainsi, la Fig.15 na pas de chemin
eulerien puisque quatre sommets ont un nombre impair daretes adjacentes.
Une variante de ce probl`eme concerne lexistence dun chemin ou dun cycle hamiltonien:
il sagit dun cycle ou chemin sur le graphe qui passe une et une seule fois par tous les
sommets. Nous montrons sur un graphe leg`erement modie (Fig. 16) un chemin eulerien
(Fig. 17) et un chemin hamiltonien (Fig. 18). Nous allons voir dans la suite quen depit des
apparences, le probl`eme qui consiste ` a trouver un chemin eulerien est considerablement plus
simple que celui du chemin hamiltonien.
2 Modelisation de la complexite
Cette partie du cours sinspire essentiellement de [4].
2.1 Machines de Turing
Une machine de Turing est un mod`ele simplie dordinateur qui per-
met devaluer ce qui est faisable en mati`ere de calcul. Bien que tr`es
elementaire, elle represente une premi`ere approche fondamentale pour la
theorie de la complexite.
La machine, comme indique sur la Fig. 19, est un ordinateur qui lit et
ecrit des symboles sur une bande enregistreuse de longueur innie, et le
fait `a la position du curseur o` u elle se trouve. La machine lit et ecrit un
seul symbole ` a la fois en suivant des r`egles precises. Ces r`egles dependent dun etat dans
lequel se trouve la machine, ainsi que du symbole qui est lu. La machine poss`ede un nombre
ni detats.
Formellement, on se donne donc, pour denir la machine de Turing:
un ensemble Q detats,
un ensemble de symbole,
10
Figure 19: Une machine de Turing.
un etat initial ,
un symbole distingue . (appele le symbole blanc),
un ensemble detats naux / Q,
une fonction de transition , de Q dans Q1, +1. Son sens est le suivant:
si la machine est dans letat q
0
et quelle lit le symbole
0
` a la position courante du
curseur, et en ecrivant (q
0
,
0
) = (q
1
,
1
,
1
), alors la machine va ecrire ` a lemplacement
du curseur le symbole
1
, passe ` a letat q
1
. Par ailleurs, elle avance le curseur sur la
bande dune case si
0
= +1 et le recule dune case si
0
= 1.
Dans le cas dune machine de Turing deterministe, le fonctionnement est le suivant.
On fournit ` a la machine le probl`eme initial, par exemple le graphe sur lequel un chemin
eulerien ou hamiltonien doit etre calcule, ce qui est exprime avec un certain encodage sur
les cases 0 `a n de la bande de la machine de Turing, et la machine eectue son calcul, et on
se demande si on peut garantir que la machine va au bout dun certain temps repondre par
VRAI ou FAUX sur la nature de probl`eme, par exemple `a la question existe t-il un chemin
eulerien ou hamiltonien, va t-elle repondre VRAI ou FAUX dans un temps determine.
Si par contre on sinteresse ` a une machine de Turing non-deterministe, alors on
sautorise, une fois que le probl`eme a ete ecrit, ` a rajouter des cases magiques par exemple
avant la case 0, qui encode une solution devinee du probl`eme. Dans le cas dune question
sur lexistence dun chemin, on pourra fournir lencodage complet dun chemin donnant la
solution du probl`eme. La machine verie que les cases magiques fournissent bien une solution
au probl`eme, et repond par VRAI ou FAUX. La question est de savoir si, etant donne un
probl`eme ayant une solution, il existe au moins une aectation des cases magiques qui atteste
de lexistence de cette solution en un temps determine. Par exemple, si un chemin eulerien
ou hamiltonien existe dans le graphe, si on fournit `a la machine sur sa bande lencodage du
graphe et dun chemin valide, la machine peut-elle en un temps determine attester la validite
de ce chemin?
Dans les deux cas, lorsque la machine est dans un etat nal (q /), elle sarrete.
11
2.2 Les classes P et NP
La classe P est lensemble des probl`emes pour lesquels une machine de Turing deterministe
peut trouver une solution en un temps polynomial. La classe NP est lensemble des
probl`emes pour lesquels une machine de Turing non-deterministe peut trouver une solution
en temps polynomial.
2.3 Le probl`eme SAT et le theor`eme de Levin-Cook
Le probl`eme SAT est un probl`eme de decision. On se donne une liste de variables booleennes
(i.e. prenant la valeur VRAI ou FAUX) X
1
, . . . , X
p
, et une certaine expression Exp(X
1
, . . . , X
d
)
` a satisfaire, composee uniquement des variables X
1
, . . . , X
d
, des operations binaires ET (note
), et OU (note ), et de loperateur unitaire NON (note ). Pour la clarte des expressions,
on notera aussi les parenth`eses. Le probl`eme est le suivant:
SAT: Existe t-il une assignation des variables
(X
1
, . . . , X
d
) dans (V RAI, FAUX)
d
telle que
Exp(X
1
, . . . , X
d
) soit vraie?
Par exemple la formule (X) Y demande que soit X =FAUX, soit Y =VRAI. On
designe souvent cette relation par X implique Y (notee X = Y ): si X est VRAI, alors
necessairement Y est VRAI. Un certain nombre de relations elementaires de logique meritent
detre rappelees. Si A, B et C sont des expressions booleennes, alors les relations suivantes
sont vraies.
(i) (A B) = (A) (B),
(ii) (A B) = (A) (B),
(iii) (A B) C = (A C) (B C),
(iv) (A B) C = (A C) (B C).
Usant de ces relations, il est possible de mettre lexpression Exp(X
1
, . . . , X
p
) dans une
forme canonique, o` u loperateur dominant est ET, et loperateur intermediaire est OU, et
loperateur domine est NON. En eet, il sut dans un premier temps, si une forme (AB)
ou (A B) apparat dans la formule, dappliquer respectivement (i) ou (ii). Puis, dans un
deuxi`eme temps, si une forme (A B) C apparat dans lexpression, on peut la remplacer
en utilisant (iii).
On obtient aussi une formule sous la forme de conjonction (AND) de clauses. Chaque
clause est formee de disjonctions de variables ou de negation de variables. Cest cette forme
canonique qui sert de reference pour calculer la taille de lexpression Exp(X
1
, . . . , X
d
).
Denition 2.1 Une instance de SAT Exp(X
1
, . . . , X
d
) est de taille n si la somme du nom-
bre de variables qui apparat par clause est egal `a n.
Denition 2.2 On dit quun probl`eme T est NP-complet sil est lui-meme NP et que tout
probl`eme NP se reduit `a T en temps polynomial.
12
Theor`eme 2.1 (Levin-Cook) SAT est NP-complet
Preuve. On se donne la liste de variables suivante:
Variable Signication Nombre de
variables
S
i,j,k
Vrai si la case i de la bande contient le symbole j ` a
letape k du calcul
O(p(n)
2
)
H
i,k
Vrai si la tete de lecture/ecriture de la machine est sur
la case i de la bande ` a letape k
O(p(n)
2
)
Q
q,k
Vrai si la machine est dans letat q ` a letape k du calcul O(n(p))
Lexpression du probl`eme booleen de SAT comprendra alors une premi`ere partie de
clauses qui garantiront les conditions generales de fonctionnement de la machine:
Clauses Conditions Interpretation Nombre de
Clauses
S
i,j,0
La case i des
donnees dentree
contient le sym-
bole j
Contenu initial de la bande O(p(n))
Q
,0
Etat initial de la machine 1
H
0,0
Position initiale de la tete de lec-
ture/ecriture
1
_
j
S
i,j,k
Au moins un symbole existe sur
chaque case de la bande ` a letape
k
O(p(n)
2
)
S
i,j,k
S
i,j

,k
j ,= j
t
Un seul symbole par case de la
bande `a letape k
O(p(n)
2
)
_
i
H
i,k
La tete de lecture est au moins ` a
un emplacement `a letape k
O(p(n)
2
)
H
i,k
H
i

,k
i ,= i
t
La tete de lecture ne peut etre
qu` a un emplacement au plus ` a
letape k
O(p(n))
_
q
Q
q,k
La machine est au moins dans un
etat ` a letape k
O(p(n)
2
)
Q
q,k
Q
q

,k
q ,= q
t
La machine est au plus dans un
etat ` a letape k
O(p(n))
S
i,j,k
H
i,k
S
i,j,k+1
Une case de la bande qui nest pas
sous la tete de lecture/ecriture
reste inchangee
O(p(n)
2
)
_
f,
Q
f,p(n)
La machine doit nir dans un etat
terminal
O(1)
Il reste ensuite ` a garantir le fonctionnement de la machine elle-meme sur la bande. Cela
se fait par les conditions suivantes, qui parcourent toutes les valeurs possibles de i, j, k, q
13
pour i p(n), . . . , 0, . . . , p(n), j , k 0, . . . , p(n), et q Q. On pose par ailleurs
(i, j) = (q
t
, j
t
, ). les clauses suivantes apparaissent alors, devenant actives si et seulement
si `a letape k, la machine est dans letat q en position i et lit le symbole j.
Clauses Eet si `a letape k, la machine est dans
letat q en position i et lit le symbole j
Nombre
de
Clauses
H
j,k
Q
q,k
S
i,j,k
H
j+,k+1
la tete se deplace de ` a letape k + 1 O(p(n)
2
)
H
j,k
Q
q,k
S
i,j,k
Q
q

,k+1
la machine passe `a letat q
t
` a letape
k + 1
O(p(n)
2
)
H
j,k
Q
q,k
S
i,j,k
S
i,j

,k+1
la case i de la bande contient le symbole
j
t
` a letape k + 1
O(p(n)
2
)
En conclusion, si il est possible de valider une solution dun probl`eme sans connatre les
cases magiques, alors le prbl`eme SAT decrit ci-dessus nous donnera les valeurs de ces cases
pour trouver une solution. Donc tout probl`eme de NP (veriable par une machine de Turing
non-deterministe) peut se ramener ` a un probl`eme SAT en temps polynomial.
Si par ailleurs il existait un algorithme polynomial pour resoudre SAT, alors on pourrait,
en connaissant la machine de Turing qui verie la solution, retrouver une solution valide au
probl`eme initial.
2.4 Autres probl`emes NP-Complets
Nous donnons dans ce qui suit une serie de reductions fondamentales vers des probl`emes
NP-complets majeurs.
2.4.1 3-SAT
Un probl`eme 3-SAT est un probl`eme SAT o` u toutes les clauses ont exactement trois termes.
Theor`eme 2.2 3-SAT est NP-complet.
Preuve. Il sut de montrer quon peut ransformer un probl`eme SAT en un probl`eme
3-SAT en temps polynomial. Soient C
1
, . . . , C
k
les clauses du probl`eme SAT. On ajoute
pour chaque clause C
i
, [[C
i
[ 3[ nouvelles variables, notees Y
i,j
pour j 1, . . . , [[C
i
[ 3[.
Si [C
i
[ = 1, alors on cree pour le probl`eme 3-SAT les clauses
K
1
i
= C
i
Y
i,1
Y
i,2
K
2
i
= C
i
Y
i,1
Y
i,2
K
3
i
= C
i
Y
i,1
Y
i,2
K
4
i
= C
i
Y
i,1
Y
i,2
.
Si [C
i
[ = 2, alors on cree pour le probl`eme 3-SAT les clauses
K
1
i
= C
i
Y
i,1
K
2
i
= C
i
Y
i,1
.
14
Si [C
i
[ = 3, alors K
1
i
= C
i
.
Si [C
i
[ > 3, notons C
i
= Z
1
. . . Z
p
o` u Z
j
est un litteral ou une inversion de litteral, et
on forme:
K
1
i
= Z
1
Z
2
Y
i,1
K
2
i
= Y
i,1
Z
3
Y
i,2
.
.
.
K
j+1
i
= Y
i,j
Z
j+2
Y
i,j+1
.
.
.
K
p2
i
= Y
i,p3
Z
p1
Z
p
.
Au nal, la conjonction des clauses K
j
i
denit notre probl`eme 3-SAT.
2.4.2 VERTEX COVER
Denition 2.3 Soit G = (V, E) un graphe non-oriente. Un vertex cover S V est un
ensemble intersectant toutes les aretes, cest-`a-dire
e E S e ,= .
Le probl`eme VERTEX COVER est le suivant: etant donnes un graphe G et un entier k,
existe t-il un VERTEX COVER S tel que [S[ k?
Theor`eme 2.3 VERTEX COVER est un probl`eme NP-complet.
Preuve. Le probl`eme VERTEX COVER est evidemment NP, car si on nous donne un
ensemble S V de taille k repute etre la solution du probl`eme, il est facile de le verier en
temps polynomial.
On se donne un probl`eme 3-SAT, compose des litteraux X
1
, . . . , X
n
, et des clauses
C
1
, . . . , C
m
et on montre quon peut construire ` a partir de cette instance un graphe G et un
entier k tels que la resolution du probl`eme VERTEX COVER entrane la resolution de notre
probl`eme initial en temps polynomial.
Le graphe G que nous construisons pour cela, illustre sur la Fig. 20 aura les 2n + 3m
sommets suivants: u
0
i
, u
1
i
, pour i 1, . . . , n et v
1
j
, ,v
2
j
, v
3
j
, pour j 1, . . . , m. Par
ailleurs, son ensemble daretes sera
E =
_
i1,...,n
u
0
i
, u
1
i

_
i1,...,n
v
1
j
, v
2
j
, v
1
j
, v
3
j
, v
2
j
, v
3
j

_
j1,...,m
W
j
.
et nous precisons W
j
dans ce qui suit.
Notons par x
1
j
, x
2
j
, x
3
j
les indices des litteraux presents dans la clause C
j
et notons z
1
j
= 1
si le premier terme est une negation du litteral, z
1
j
= 0 sinon. De meme pour z
2
j
et z
3
j
pour
les litteraux dindice x
2
j
et x
3
j
. On pose alors:
W
j
= u
z

j
x

j
, v

=1,2,3
.
15
Figure 20: Construction dun VERTEX COVER ` a partir de 3-SAT.
Fixons maintenant k = n + 2m. Comme pour chaque i, larete u
0
i
, u
1
i
, necessairement
ou u
0
i
ou u
1
i
est dans S, soit au minimum n sommets. De meme, on peut voir que pour chaque
j, deux des sommets v
1
j
, v
2
j
, v
3
j
sont dans S, soit au minimum 2m sommets. Donc si [S[ =
n + 2m, il contient necessairement pour chaque i 1, . . . , n un et un seul sommet parmi
u
0
i
, u
1
i
et pour chaque j 1, . . . , m, deux et seulement deux sommets dans v
1
j
, v
2
j
, v
3
j
.
Le sommet qui nest pas pris dans v
1
j
, v
2
j
, v
3
j
represente le litteral qui est verie dans
la clause. Laectation des sommets u
0
i
, u
1
i
garantit lunicite de la valeur VRAI ou FAUX
pour un litteral donne. Ainsi, un VERTEX COVER de taille n+2m fournit bien une solution
` a 3-SAT.
2.4.3 CYCLE HAMILTONIEN
Le probl`eme est le suivant: etant donne un graphe non-oriente G existe t-il un cycle hamil-
tonien parcourant G?
Theor`eme 2.4 CYCLE HAMILTONIEN est un probl`eme NP-complet.
Preuve. Il est une fois de plus evident que si on nous propose un certain chemin sur un
graphe, on sait verier en temps polynomial que cest un cycle et quil est bien hamiltonien.
Donc CYCLE HAMILTONIEN est NP.
Pour etablir la completude du probl`eme, on se donne un certain graphe G = (V, E) et un
entier k correspondants ` a un probl`eme de VERTEX COVER, et on montre que ce probl`eme
16
Figure 21: Un gadget pour le cycle hamiltonien.
Figure 22: Un parcours possible du gadget.
Figure 23: Un autre parcours possible du gadget.
Figure 24: Un dernier parcours possible du gadget.
17
Figure 25: Construction pour un sommet v V . Les sommets adjacents de v sont ici u1,
u2, u3, u4 et u5.
18
peut se ramener en temps polynomial `a un probl`eme de cycle hamiltonien. Pour comprendre
cela, on etudie un certain gadget, dans ce cas un sous-graphe, donne sur la Fig. 21. On
suppose que ce gadget fait partie du graphe `a construire, et les seuls sommets ayant une
arete avec le reste du graphe sont les quatre sommets des extremites. Par une etude de cas,
on comprend que les seuls chemins internes qui permettent une couverture par un chemin
hamiltonien sont ceux donnes par les Fig 22, 23, et 24.
Le nouveau graphe ( = (1, c), construit pour le probl`eme du cycle hamiltonien, est
construit comme suit. Le nombre de sommets [1[ est egal ` a k +12[E[. Pour chaque arete de
E, 12 sommets de ( sont introduits formant un gadget. Ensuite, pour un sommet v E, on
relie tous les gadgets correspondant aux aretes adjacentes `a V en serie comme indique sur la
Fig. 25. On peut ainsi associer `a chaque sommet v non-isole de G deux extremites: entree
du premier gadget en serie et la sortie du dernier, comme indique sur la gure.
On cree ensuite k sommets f
1
, . . . , f
k
de ( que lon relie chacun ` a toutes les extremites
de v V .
Si un cycle hamiltonien existe dans ce graphe, il va necessairement passer par chacun
de ses k sommets. Pour passer dun sommet f
i
` a un autre, note f
j
, il doit necessairement
choisir une extremite dun certain v V et sortir par lautre. Au total un ensemble S de k
sommets de V sera choisi pour parcourir tous les f
1
, . . . , f
k
. Pour que tous les gadgets soient
parcourus, il faut necessairement que les sommets de S couvrent toutes les aretes de E.
3 Un algorithme polynomial pour la programmation
lineaire
Nous avons vu au cours precedent comment determiner si un syst`eme dinegalites lineaires a
une solution mais nous avons neglige deux questions : peut-on determiner si un poly`edre est
vide en temps polynomial de la dimension de lespace ? Comment trouver loptimum dune
fonction objective sur un poly`edre, peut-on le faire en temps polynomial ? La question de
la complexite des probl`emes a ete soulevee par J. Edmonds dans [3], article dans lequel il
parle de probl`emes pour lesquels il existe des algorithmes mieux que nis.
D`es 1910, C. de la Vallee Poussin,[2], sinteressant au probl`eme dapproximation de Cheby-
shev qui consiste `a trouver le minimum de | Ax b |

, decrivit une methode qui peut


etre consideree comme precurseur de lalgorithme du simplexe propose en 1947 par G.B.
Dantzig, [1]. Cet algorithme qui proc`ede par changement de base, pivotage, nest pas poly-
nomial au moins pour les r`egles de pivotage connues jusquores ; nous ne decrivons pas cet
algorithme. Le lecteur peut se reporter ` a [9] ou `a [10]. Jusquen 1979 aucun algorithme
polynomial netait connu pour resoudre un programme lineaire qui est un probl`eme de la
forme Maxc
t
x[Ax b, x 0. L. Khachiyan, sinspirant des travaux de N.Z. Shor [11] et
[12], proposa le premier algorithme, connu sous le nom de methode des ellipsodes, prouvant
que la programmation lineaire est un probl`eme polynomial. Cest cet algorithme que nous
allons exposer succintement ci-dessous, puis nous en verrons une consequence importante
19
due `a M. Grotschel, L. Lov asz et A. Schrijver, [5].
3.1 La methode de Khachiyan
Nous commen cons cette etude en rappelant la denition dellipsode, en donnant quelques
proprietes et en introduisant des notions sur la taille des sommets dun poly`edre.
Denition 3.1 Une matrice symetriqe M est dite denie positive si x
t
Mx > 0 x ,= 0
Denition 3.2 Une region 1 R
n
est un ellipsode sil existe une matrice denie positive
D et un vecteur z R
n
tels que 1 = x R
n
[ (x z)
t
D(x z) 1, z est le centre de
lellipsode .
Cette denition montre quun ellipsode est une transformation ane de la boule unite
B = x R
n
[ x
t
x 1. Le theor`eme suivant precise de quelle mani`ere on peut determiner
un ellipsode contenant un demi-ellipsode.
Theor`eme 3.1 Soit E un ellipsode de param`etres (z, D) et soit a ,= 0 un vecteur de R
n
.
Soit E
t
un ellipsode contenant E x[ a
t
x a
t
z et tel que le volume de E
t
soit le plus
petit possible. Alors E
t
est unique, il a pour param`etres (z
t
, D
t
) avec :
z
t
= z
1
n1
Da

a
t
Da
D
t
=
n1
n
2
1
_
D
2
n1
Daa
t
D
a
t
Da
_
de plus
vol(E

)
vol(E)
< e

1
2n+2
.
Etant donne un poly`edre P R
n
on denit la facette-complexite de P, , comme etant
le plus petit entier n tel quil existe un syst`eme dinegalites lineaires ` a coecients
rationels Ax b decrivant P et dont chacune des lignes a une taille bornee par . La
taille dune ligne est la longueur du plus grand numerateur ou denominateur des coecients
qui la composent. On denit un param`etre semblable pour les sommets : la complexite
sommets comme etant le plus petit entier n tel quil existe des vecteurs ` a composantes
rationelles x
1
, . . . , x
k
, y
1
, . . . , y
l
chacun de taille au plus et tels que P = conv(x
1
, . . . , x
k
)+
c oney
1
, . . . , y
l
. De plus on a 4n
2
et 4n
2
.
La methode des ellipsodes travaille en plusieurs temps : tout dabord on sassure quun
poly`edre est non vide et si tel est le cas elle donne un point interieur de ce poly`edre. Ensuite
on calcule un point x
<
optimal `a pr`es. Enn on transforme le point interieur x
<
en
un sommet x

optimal. Pour la clarte de lexpose nous supposons dans ce qui suit que
le poly`edre P est borne et de pleine dimension et que nous pouvons eectuer tout calcul
aussi precisement que requis. Dans la premi`ere etape qui consiste ` a determiner un point
interieur du poly`edre la methode va construire une suite dellipsodes de volume decroissant
jusqu` a ce quun dentre eux ait son centre dans le poly`edre. Pour initialiser la methode
le premier ellipsode est la boule de rayon 2

, P x[ | x | 2

. Donc le centre de
20
ce premier ellipsode est z
0
= 0 et la matrice associee est D
0
= 2
2
Id, Id designant la
matrice identite. Supposons maintenant que nous soyons rendus `a letape i, alors P E
i
qui est un ellipsode de param`etres (z
i
, D
i
). Si z
i
P alors nous avons trouve un point
de P, sinon supposons que z
i
viole linegalite a
j
0
x b
j
0
appartenant au syst`eme qui deni
P. Si E
i+1
est le plus petit ellipsode contenant E
i
x[ a
t
j
0
x a
t
j
0
z
i
. Alors etant donne
que P est contenu tant dans E
i
que dans le demi-espace x[ a
t
j
0
x a
t
j
0
z
i
on peut dire que
P E
i+1
. Nous avons vu au theor`eme 3.1 comment determiner (z
i+1
, D
i+1
) les param`etres
de E
i+1
. Nous avons vu que les ellipsodes E
i
et E
i+1
ont des volumes dont le rapport est
inferieur `a e

1
2n+2
, par ailleurs nous savons que le volume de lellipsode initial est inferieur
` a 4
n
aussi par recurrence nous pouvons dire que vol(E
i+1
) 4
n
e

i+1
2n+2
. Etant donne que
nous avons suppose que P est borne et quil est de pleine dimension nous pouvons dire quil
existe n+1 vecteurs anement independant x
0
, . . . , x
n
tels que P = conv(x
0
, . . . , x
n
) aussi
vol(P) vol(conv(x
0
, . . . , x
n
)) 2
2n
. Supposons que nous ayons execute un nombre I
diterations de la methode, on a alors :
2
2n
vol(P) vol(E
I
) < 4
n
e

I
2n+2
Nous voyons bien que la proposition ci-dessus ne tient plus si on prend un nombre diterations
susamment grand, I 16
n
2

par exemple. Aussi nous pouvons armer que nous aurons


trouver un point de P avant datteindre literation I, celle-ci est totalement determinee par
un polynome de la taille des descripteurs de P.
La methode de Khachiyan nous permet donc de trouver en un temps polynomial un point
dun poly`edre. Elle permet aussi de determiner de mani`ere approchee loptimum dune fonc-
tion objective c. Considerons x
0
un point appartenant ` a linterieur du poly`edre P et deux
sph`eres centrees en x
0
, une de rayon r contenue dans P et lautre de rayon R contenant
P. Lalgorithme demarre donc avec une matrice denie positive D
0
= R
2
Id. Considerons
` a literation j le point courant x
j
. On note
j
= c
t
x
j
la valeur de la fonction objective au
point x
j
. Si x
j
appartient ` a linterieur de P on calcule alors un ellipsode E
j+1
de param`etre
x
j+1
, D
j+1
contenant P x[ c
t
x <
j
comme vu precedemment. Si x
j
nappartient
pas `a linterieur de P alors il existe une inegalite a
t
i
j
x b
i
j
parmi celles denissant P telle
que a
t
i
j
x
j
b
i
j
on calcule un ellipsode E
j+1
contenant E
j
a
t
i
j
x a
t
i
j
x
j
comme vu lors
de la recherche de points admissibles. Gr ace ` a un argument sur le rapport de volume des
ellipsodes on peut montrer quune solution approchee ` a pres est obtenue apr`es un nombre
diterations egal `a 2n(n + 1)log
2R
2
|c|
r
|.
A ce stade nous possedons un algorithme polynomial pour resoudre de mani`ere approchee un
programme lineaire, nous allons voir que via une transformation polynomiale du programme
lineaire, lalgorithme en fournit une solution optimale. Pour cela modions la fonction ob-
jective c du programme lineaire comme suit. On pose = 2
2n
et on consid`ere la fonction
objective c
0
= c + (1, ,
2
, . . . ,
n1
)
t
. Sans perte de generalite on peut supposer que c est
un vecteur dont les coordonnees sont des entiers.
Proposition 3.1 Soit P = x R
n
[Ax b un poly`edre rationnel. Le programme lineaire
Maxc
t
0
x, x P a un optimum unique x

qui est une solution optimale du programme


lineaire Maxc
t
x, x P.
21
Preuve :
Considerons x un sommet de P distinct de x

, ces deux vecteurs etant supposes ` a coordonnees


rationnelles on peut poser x = (
p
1
q
1
, . . . ,
pn
qn
)
t
et x

= (
p

1
q

1
, . . . ,
p

n
q

n
)
t
. La dierence de ces deux
vecteurs est alors donnee par le terme generique :
x

i
x
i
= (p

i
q
i
q

i
p
i
)
_
j,=i
q

j
q
j
_
_
n

j=1
q

j
q
j
_
1
Ceci permet de dire quil existe <
1
2
et un vecteur u entier dont chaque composante
dindice i verie [u
i
[ < tel que x

x =
u

. Par hypoth`ese x

est loptimum unique du


programme Maxc
t
0
x, x P aussi pouvons-nous ecrire :
c
t
0
(x

x) = c
t
0
u

=
1

(c
t

n
u +
n

i=1

i1
u
i
) 0
Etant donne que [U
i
[ < on a :

i=1

i1
u
i

( 1)
n

i=1

i1


n
1

. Comme

n
c
t
u
n

i=1

i1
u
i
et que c
t
u est un entier relatif il vient que c
t
u 0. Aussi a-t-on etabli que
quelque soit le sommet x on a c
t
x

c
t
x, ce qui montre que x

est une solution optimale du


programme Maxc
t
x, x P. Par ailleurs on peut remarquer que c
t
0
(x

x) ,= 0, ce qui
montre que x

est loptimum unique du programme Maxc


t
0
x, x P.
On peut donc dire que nous disposons dun algorithme polynomial pour resoudre un pro-
gramme lineaire. Remarquons que dans letape de recherche dun point de lespace ap-
partenant au poly`edre P nous avons suppose que celui-ci etait donne explicitement par le
syst`eme dinegalites lineaires qui le denit. Lalgorithme que nous venons de voir est poly-
nomial mais le nombre de contraintes m intervient dans ce polynome. Que se passe-t-il si le
nombre de contraintes est grand, de taille exponentielle par rapport au nombre de variables,
ou si le poly`edre nous est donne de mani`ere implicite ?
4 Le probl`eme de separation
Considerons un poly`edre P deni par un ensemble dinegalites lineaires dont la taille max-
imale est . De plus supposons que nous ne connaissions pas explicitement cet ensemble
dinegalites, mais que nous soyons capables de resoudre, en un temps polynomial de n et de
, le probl`eme suivant :
Separation : etant donne un vecteur ` a composantes rationnelles y, appartient-il ` a P ?
Sinon retourner un hyperplan H = x[ c
t
x = b tel que c
t
y < b et c
t
u b u P.
Remarquons que cette denition du probl`eme de separation nous renvoie au theor`eme de
Farkas, Minkowsky et Weyl. On peut remarquer que si le poly`edre P est de pleine dimen-
sion la methode des ellipsodes permet de trouver un vecteur de P en un temps polynomial
22
de n et , pour peu quon puisse traiter le probl`eme de separation sur le poly`edre considere
en temps polynomial. Ce fait fut remarque par M. Grotschel, L. Lov asz et A. Schrijver en
1981, [5], ainsi que par R. Karp et C. Papadimitriou, [6]. En eet la resolution en temps
polynomial du probl`eme de separation nous permet de tester en temps polynomial `a chacune
des etapes si le centre de lellipsode appartient au poly`edre P et si ce nest pas le cas de
determiner une contrainte qui est violee.
Le theor`eme suivant, dont le lecteur pourra trouver la preuve dans [10], precise ce qui vient
detre dit sur la relation existant entre realisabilite et separation.
Theor`eme 4.1 Il existe un algorithme 1 permettant de tester la realisabilite dun syst`eme
dinegalites lineaires, de taille maximum , denissant un poly`edre P R
n
et un polynome
(, n) de sorte que si les entrees de lalgorithme de realisabilite sont , n et un algorithme
de separation sur P, o, alors 1 calcule un vecteur x P ou conclut que ce poly`edre est vide
en un temps borne par (, n), etant le temps maximum necessaire `a o pour sexecuter
sur des entrees de taille maximum (, n).
Ce theor`eme a des consequences tr`es importantes, notamment en ce qui concerne loptimisation.
Nous allons voir maintenant comment cela conduit ` a lequivalence des probl`emes de separation
et doptimisation. On denit le probl`eme doptimisation sur un poly`edre rationnel P par :
Optimisation : etant donne un vecteur `a composantes rationnelles c, fournir une des
reponses suivantes :
1. x
0
= Argminc
t
x[ x P
2. y
0
rec one(P) tel que c
t
y > 0, rec one(P) = y R
n
[ x + y P, x P est appele
c one de recession ou c one caracteristique de P. Ceci correspond au cas o` u loptimum
sur P de la fonction objective c nest pas borne.
3. montrer que P est vide.
Corollaire 4.1 Il existe un algorithme O tel que si les entrees de O sont (n, , o); n et
etant des entiers naturels, o etant un algorithme de separation sur le poly`edre rationnel
P deni par des inegalites lineaires de taille bornee par , alors O resoud pour la fonction
objective c `a composantes rationnelles le probl`eme doptimisation sur P en un temps borne
par un polynome de n, , la taille de c et le temps dexecution de lalgorithme o.
Nous ne donnons ici que des elements de preuve pour ce corollaire ainsi que pour le
suivant concernant le cas o` u loptimum de la fonction objective c sur le poly`edre P est ni,
nous invitons le lecteur `a se reporter `a larticle originel [5], ` a [10] page 178, ` a [8] pages 201
` a 208, ou bien encore ` a [9] pages 162 ` a 163 pour une preuve exhaustive.
Squelette de preuve :
Supposons que les param`etres (n, , o) et c satisfont les hypoth`eses du corollaire et que soit
la taille du vecteur c. Etant donne que loptimum,, du programme Maxc
t
x[ x P est
borne on peut armer quil est atteint par un vecteur de taille au plus 4n
2
. Aussi pouvons-
nous dire que la taille de est inferieure ou egale `a 2 + 8n
2
. Posons = 3 + 12n
2

23
et prenons m
0
= 2

et M
0
= 2

. Procedons alors par dichotomie en testant gr ace ` a


lalgorithme 1 si le poly`edre P x[ c
t
x
m
i
+M
i
2
est vide ou non. Sil est vide on met
` a jour le majorant : M
i+1
=
m
i
+M
i
2
, sinon on met ` a jour le minorant : m
i+1
=
m
i
+M
i
2
. Le
nombre detapes necessaires ` a ce parcours dichotomique de lintervalle [m
0
, M
0
] nous assure
alors davoir obtenu loptimum du programme Maxc
t
x[ x P en un temps borne par un
polyn ome de n, et .
Nous allons voir maintenant la forme polaire du corollaire 4.1 qui montre que le probl`eme
de separation se reduit polynomialement au probl`eme doptimisation.
Corollaire 4.2 Il existe un algorithme O

tel que si les entrees de O

sont (n, , O); n et


etant des entiers naturels, O etant un algorithme doptimisation sur le poly`edre rationnel
P deni par des inegalites lineaires de taille bornee par , alors O

resoud pour tout vecteur


y `a composantes rationnelles le probl`eme doptimisation sur P en un temps borne par un
polynome de n, , la taille de y et le temps dexecution de lalgorithme O.
De meme que pour le corollaire precedent nous ne donnons quun canevas de la preuve que
le lecteur pourra trouver dans les references precedemment indiquees.
Squelette de preuve :
Considerons P

le polaire de P = x R
n
[ Ax 0, alors par denition P

= y
R
n
[ y
t
A 0 ; ainsi peut-on dire que si P est decrit par un ensemble dinegalites de taille
maximum il en va de meme pour P

. Par ailleurs nous savons que x


0
P si et seulement
si Minx
t
0
y[ y P

0 et reciproquement y
0
P

si et seulement si Miny
t
0
x[x P 0.
Ainsi peut-on voir que si on sait optimiser en temps polynomial sur le poly`edre P alors on
sait separer en temps polynomial sur son polaire P

et reciproquement. Par hypoth`ese on


poss`ede un algorithme doptimisation sur P donc de separation sur P

. Alors par le corollaire


4.1 on peut dire quil existe un algorithme sexecutant en un temps polynomial de n, et
le temps dexecution de lalgorithme O permettant de resoudre le probl`eme doptimisation
sur P

; lexistence de lalgorithme O

suit alors.
Les corollaires 4.1 et 4.2 nous permettent denoncer le resultat suivant qui etablit lequivalence
entre les probl`emes de separation et doptimisation.
Corollaire 4.3 (Gr otschel, Lovasz, Schrijver) Pour tout poly`edre rationnel P le probl`eme
de separation peut etre resolu en temps polynomial si et seulement si le probl`eme doptimisation
peut etre resolu en temps polynomial.
Corollaire 4.4 Si P est un poly`edre rationnel et P

son polaire, alors les quatre propositions


suivantes sont equivalentes :
1. Il existe un algorithme polynomial pour resoudre le probl`eme doptimisation sur P;
2. il existe un algorithme polynomial pour resoudre le probl`eme doptimisation sur P

;
3. il existe un algorithme polynomial pour resoudre le probl`eme de separation sur P;
4. il existe un algorithme polynomial pour resoudre le probl`eme de separation sur P

.
24
5 Approximation des probl`emes
Nous donnons dans cette section quelques idees marquantes du concept dapproximation des
probl`emes.
5.1 Classication des algorithmes dapproximation
Le fait quun probl`eme est NP-complet ne signie pas que les seules solutions `a ce probl`emes
sont purement heuristiques. Dordinaire on classe les reponses possibles en algorithmique
par trois grandes denominations:
APX cest une classe qui contient les probl`emes approximables ` a un facteur multiplicatif
constant pr`es en temps polynomial. Autrement dit, il exite un programme qui cal-
cule en temps polynomial une solution qui est au plus `a un facteur K de la solution
mathematiquement optimale.
PTAS Le terme PTAS (pour polynomial-time approximation scheme) designe une famille
de programmes dapproximation qui obtiennent une solution `a un facteur multiplicatif
constant pr`es aussi proche que lon veut de 1. En dautres termes, pour tout > 0, il
existe un programme qui calcule en temps polynomial une approximation `a 1 + pr`es
de la valeur optimale.
FPTAS Le terme PTAS (pour fully polynomial-time approximation scheme) designe un
programme PTAS dont la complexite est non seulement polynomiale en la taille du
probl`eme, mais aussi en 1/.
Par extension, le terme APX-complet est utilise pour parler de la classe des probl`emes
APX pour lesquels il existe un PTAS qui les reduit ` a nimporte quel autre probl`eme dAPX.
Par APX-dicile on entend quune instance du probl`eme en question est APX-compl`ete.
Pour les probl`emes mentionnes dans le document, on sait
1
faire la classication suivante:
Probl`eme Approximation sur Statut
Tri P
Programmation lineaire P
Chemin Eulerien P
SAT Nombre de clauses maximum satisfaites APX-complet
3-SAT Nombre de clauses maximum satisfaites APX-complet
CYCLE HAMILTONIEN Trouver le plus long chemin APX-complet
VERTEX COVER Nombre de sommets necessaires APX mais pas de PTAS
5.2 La programmation dynamique
La programmation dynamique est une methode tabulaire o` u lon cherche ` a obtenir les
meilleurs resultats possibles par un tableau T. Le probl`eme classique pour la programmation
dynamique est le sac-` a-dos. Soit un sac dans lequel on peut mettre n objets dencombrement
1
http://www.csc.kth.se/ viggo/problemlist/
25
respectifs c
1
, . . . , c
n
et de valeur v
1
, . . . , v
n
. Etant donnee une capacite de sac K, on cherche
lensemble S 1, . . . , n tel que

jS
c
j
K,
et qui maximise

jS
v
j
.
On initialise donc le tableau T ` a 0 pour toutes des valeurs de 1 `a K; puis pour chaque
indice i de 1 ` a n on eectue les operations suivantes:
Pour j decrementant de Kc
i
` a 0, si T[j +c
i
] < T[j] +v
i
alors T[j +c
i
] := T[j] +v
i
.
Cette methode utilise Kn pas de calcul et obtient, pour chaque k 1, . . . , K, la
meilleure valeur possible obtenue avec un sac de capacite k.
Cette methode est assez deconcertante car le probl`eme du sac-`a-dos est NP-complet.
Lexplication de ce paradoxe vient du fait que les cas diciles du probl`eme du sac-` a-dos
sont ceux o` u les valeurs c
i
et v
i
sont exponentielles en fonction de n, et donc K est une
exponentielle de n. Cette methode montre que la precision avec laquelle on veut repondre
` a une question est un point determinant pour levaluation dun algorithme. Le paragraphe
suivant tient compte de cette perspective pour ameliorer la complexite dun probl`eme de la
classe P.
5.3 Approximation de multi-ot
Pour plus dinformations sur ce th`eme nous renvoyons le lecteur ` a [7, chapitre 19]. Le
probl`eme du ot multi-commodites peut secrire comme suit:
Probl`eme 5.1 Etant donne G = (V, E) un digraphe, une fonction de capacite u : E N,
et un ensemble de requetes H V V , on note n = [V [, m = [E[ et k = [H[.
Trouver (x
f
)
fH
o` u
x
f
est un s t ot pour chaque f = (s, t) H,
e E

fH
x
f
(e) u(e),
la valeur

fH
value(x
f
), notee OPT(G, H, u), est maximum.
Traduit en programme lineaire, ce probl`eme admet une formulation tr`es elegante. Soit
T lensemble des s t chemins, pour (s, t) H. On cherche
OPT(G, H, u) = max
_

P1
y(P) : y 0 et e E

P1, eP
y(P) u(e)
_
. (1)
Ce programme mathematique admet un dual qui secrit de la mani`ere suivante:
26
OPT(G, H, u) = min
_
z u : z 0 et P T

eE
z(e) 1
_
. (2)
On se donne un facteur dapproximation > 0 petit. On propose pour ce probl`eme
lalgorithme / suivant:
(1) P T y(P) := 0
:= (n(1 +))

|
(1 +)
e E z(e) :=
(2) Soit P tel que z(P) =

eP
z(e) soit minimum. Si z(P) 1, aller en (4).
(3) := min
eP
u(e)
y(P) := y(P) +
e P z(e) := z(e)(1 +

u(e)
)
(4) := max
eE
1
u(e)

P1 : eP
y(P)
P T y(P) :=
y(P)

Nous avons alors le resultat suivant:


Theor`eme 5.1 Soit <
1
2
, lalgorithme / donne
1
1+
OPT(G, H, u) en O(
1

2
km(m+nlog(n)) log(n)).
Preuve. Tout dabord remarquons que la complexite de lalgorithme est bien celle an-
noncee. La condition darret (en (2)) fait quun chemin ne peut pas emprunter un arc de
poids superieur `a 1 sauf dans la derni`ere etape de lalgorithme. Donc pour tout arc e, on
a z(e) 1 + . Soit t le nombre diterations, cest-`a-dire le nombre dexecutions de letape
(3). Une iteration demande k calculs de plus court chemin (Dijkstra), soit O(k(m+nlog(n))
etapes de calcul. Au cours de chaque iteration, au moins un arc voit augmenter son poids
dun facteur 1 + . Comme la valeur de larc crot de ` a 1 + , cela limite le nombre de
telles augmentations possibles pour un arc ` a log
1+
(1/)| + 1. Etant donne quil ny a que
m arcs, on a necessairement t m(log
1+
(1/)| + 1), do` u la complexite de lalgorithme.
Ensuite, notons que le calcul en (4) garantit bien la faisabilite de la solution en termes
de respect des capacites.
Designons dans ce qui suit z
(i)
la valeur du vecteur z apr`es la i
`eme
iteration, ainsi que
P
i
et
i
les valeurs respectives du chemin P et du scalaire choisis au cours de literation i.
z
(0)
designe par prolongement naturel le vecteur de R
E
uniformement egal ` a .
Par ailleurs, soit e larc qui determine la valeur de , et designons par i
1
, . . . , i
p
les indices
des iterations o` u cet arc est augmente. Nous avons alors =

Pe
y(P) =
i
1
+ +
ip
. Les
27
multiplications sur la valeur de z(e) de cet arc sont de 1 +

i
j
u(e)
et linegalite 1 +x (1 +)
x
pour 0 x 1 permet decrire:
1 + z(e) (1 +)

i
1
++
ip
.
En somme, nous obtenons
log
1+
_
1 +

_
. (3)
Regardons maintenant comment le vecteur z evolue au cours des iterations. En observant
les calculs eectues, on peut facilement etablir la relation suivante:
z
(i)
u = z
(i1)
u +
i

eP
i
z
(i1)
(e).
Si on note maintenant (x) la fonction qui au vecteur positif x R
E
+
associe min
P1

eP
x(e),
alors:
(z
(i)
z
(0)
) u =
j=i

j=1

i
(z
(j1)
). (4)
Remarquons maintenant dapr`es (2) que
OPT(G, H, u) = min
_
x u
(x)
: x R
E
+
_
.
En combinant cette equation avec (4) on obtient:
((z
(i)
) n)OPT(G, H, u) OPT(G, H, u)(z
(i)
z
(0)
) (z
(i)
z
(0)
) u.
Il vient
(z
(i)
) n +

n
j=i

j=1

j
(z
(j1)
). (5)
Montrons maintenant par recurrence que
n +

n
j=i

j=1

j
(z
(j1)
) ne

OPT(G,H,u)
P
j=i
j=1

j
. (6)
o` u e designe lexponentielle de 1. Le resultat est evident pour i = 0. Considerons maintenant
i 1. Nous avons
n +

n

j=i
j=1

j
(z
(j1)
)
= n +

n

j=i1
j=1

j
(z
(j1)
) +

n

i
(z
(i1)
) en separant le dernier terme,
n +

n

j=i1
j=1

j
(z
(j1)
) +

n

i
_
n +

n

j=i1
j=1

j
(z
(j1)
)
_
par (5),
(1 +

n

i
)
_
n +

n

j=i1
j=1

j
(z
(j1)
)
_
par factorisation,
(1 +

n

i
)ne

OPT(G,H,u)
P
j=i1
j=1

j
par recurrence,
ne

OPT(G,H,u)
P
j=i
j=1

j
en utilisant 1 +x (1 +)
x
pour x [0, 1].
28
Le crit`ere darret de lalgorithme combine ` a (5) et (6) implique que
1 (z
(t)
) ne

OPT(G,H,u)
P
j=t
j=1

j
,
donc

i=t
i=1

i

OPT(G,H,u)

ln(1/(n)).
Finalement, lalgorithme retourne une solution de valeur
1

i=t
i=1

i
) et nous avons, en
utilisant (3),
1

i=t

i=1

i

OPT(G, H, u) ln(1/(n))
log
1+
_
1+

_
OPT(G, H, u)
1 +
.
References
[1] G.B. Dantzig. Maximization of a linear function of variables subject to linear inequalities.
Proceedings of Linear Programming Conference, June 20-24, 1949, pages 359373, 1951.
[2] C de la Vallee Poussin. Sur la methode de lapproximation minimum. Annales de la societe
scientique de Bruxelles, 1910.
[3] J. Edmonds. Paths,Trees, and Flowers. Canadian Journal of Mathematics, 17:449467, 1965.
[4] M.R. Garey and D.S. Johnson. Computers and Intractability. W.H. Freeman and Company,
1979.
[5] M. Grotschel, L. Lovasz, and A. Schrijver. The ellipsoid method and its consequences in
combinatorial optimization. Combinatorica, 1:169197, 1981.
[6] R.M. Karp and C.H. Papadimitriou. On linear characterizations of combinatorial optimization
problems. SIAM Journal on Computing, 11:620632, 1982.
[7] B. Korte and J. Vygen. Combinatorial Optimization. Springer, 2000.
[8] J.F Maurras. Complexite et LP-Reduction. Manuscript, 1997.
[9] G.L. Nemhauser and L.A. Wolsey. Integer and Combinatorial Optimization. Wiley Interscience,
Series in Discrete Mathematics and Optimization, 1988.
[10] A. Schrijver. Theory of linear and integer programming. Wiley Interscience, Series in Discrete
Mathematics and Optimization, 1986.
[11] N.Z. Shor. Utilization of the operation of space dilation in the minimization of convex functions.
Cybernetics, vol 6:715, 1970.
[12] N.Z. Shor. Cut-o method with space extension in convex programming problems. Cybernetics,
vol 13:9496, 1977.
29

You might also like