Professional Documents
Culture Documents
Anne 3
Majeure 2
INF551
MAJEURE DINFORMATIQUE
Conception et analyse
dalgorithmes
Robert Cori, Guillaume Hanrot
Claire Kenyon, Jean-Marc Steyaert
dition 2007
Introdu tion
partie 1. Algorithmes
13
15
16
18
20
22
24
26
31
31
35
37
39
41
45
45
47
51
51
54
55
57
59
60
61
62
64
66
70
3
partie 2. Complexit
Prambule
P et NP
NP-
ompltude
71
72
75
76
76
78
81
83
84
85
87
87
87
89
91
94
96
98
100
105
105
106
110
111
121
123
123
124
125
126
127
129
130
132
134
137
139
141
141
141
144
145
146
147
149
149
152
154
160
161
162
Bibliographie
163
Index
165
Introdu tion
f (n)
10n
20n
5n log n
2n2
2n
n
1000
500
250
70
13
n
10000
5000
1842
223
16
Changement
n = 10n
n
= 10n
10n n 10n
n = 10n
n = n + 3
n /n
10
10
7.37
3.16
INTRODUCTION
Un graphe non-orient G = (X, E) (on dit aussi symtrique) est
onstitu d'un ensemble
(ni) X de sommets et d'un ensemble E d'artes,
haque arte tant une paire de sommets.
On note en gnral n le nombre de sommets et m le nombre d'artes d'un graphe. Un graphe
orient est donn par un ensemble X de sommets et un ensemble A d'ar
s ;
haque ar
est un
ouple de sommets. On peut aussi
onsidrer un graphe symtrique
omme un
dont l'origine
graphe orient (X, A) tel que pour tout ar
a A, il existe un ar
oppos a
est l'extrmit de a et dont l'extrmit est l'origine de a. Le
ouple {a, a
} forme alors une
arte.
Un
hemin dans un graphe non orient est une suite d'artes e1 , e2 , . . . , ek telle qu'il
existe une suite de sommets x1 , x2 , . . . , xk , xk+1 vriant ei = {xi , xi+1 } ; on dit que le
hemin joint x1 xk+1 ; k est la longueur du
hemin. Le
hemin est dit lmentaire si les
x1 , x2 , . . . , xk sont distin
ts. Un
hemin est un
y
le si x1 = xk+1 (on dit aussi parfois
ir
uit mais nous reservons
e mot aux graphes orients). Un graphe est
onnexe si pour
tout
ouple de sommets x, y X , il existe un
hemin qui joint x y . Le graphe
omplet
sur n sommets est le graphe tel que toute paire de sommets soit une arte.
Un arbre est un graphe non orient
onnexe et sans
y
le. Dans un arbre on a m = n1 ;
d'autre part pour tout
ouple de sommets il existe un
hemin lmentaire unique qui les
joint.
Lemme
0.1.
G = (X, T ) :
(1) G = (X, T )
(2) G = (X, T )
est onnexe et X = |T | + 1
(3) G = (X, T )
(4) G = (X, T )
est sans y le et X = |T | + 1
est tel que tout ouple de sommets est reli par un hemin unique.
Les arbres utiliss en stru
ture de donnes sont lgrement dirents de
eux
onsidrs
i
i dans la mesure o un sommet appel ra
ine est distingu,
e qui induit la notion de
parent et d'enfant qui est absente i
i.
9
10
10
11
Fig. 1.
Pour un graphe non-orient G = (X, E) quel
onque, un arbre re
ouvrant est donn
par un sous-ensemble de l'ensemble des artes qui forme un arbre ayant X pour ensemble
de sommets (voir gure). G possde un arbre re
ouvrant si et seulement s'il est
onnexe.
Les algorithmes de par
ours de graphes vus en Informatique Fondamentale permettent
de
onstruire des arbres re
ouvrants. Le nombre d'arbres re
ouvrants d'un graphe est en
gnral une fon
tion exponentielle de n. On montre en eet que le graphe
omplet possde
nn2 arbres re
ouvrants.
Si G = (X, E) est un graphe symtrique et A = (X, T ) un arbre re
ouvrant de G, toute
arte de G qui n'est pas dans T
re un
y
le unique ave
des artes de T , on l'appelle
parfois
y
le prin
ipal. Il y a m n + 1 telles artes et don
m n + 1
y
les prin
ipaux.
On peut montrer que
es
y
les permettent de
onstruire tous les autres
y
les du graphe
par diren
e symtrique.
Plusieurs sous-ensembles de sommets ou d'artes d'un graphe symtrique jouent un
rle parti
ulier. Un ensemble indpendant (on dit aussi parfois ensemble stable) est un
sous-ensemble S de X tel que deux sommets de S ne sont pas joints par une arte. Soit
formellement
(x S et y S) {x, y}
/ E.
Un ensemble
ouvrant Y de sommets est un sous-ensemble de X tel que toute arte
possde au moins une extremit dans Y , soit :
{x, y} E (x Y ou y Y )
Fig. 2.
11
e, f C
ef =
La notion de
oloration joue un rle important en thorie des graphes, il s'agit d'ae
ter
des
ouleurs aux sommets de faon telle que deux sommets relis par une arte aient des
ouleurs direntes. Formellement une k -
oloration est une appli
ation c de X dans un
ensemble {1, 2, . . . , k} de
ouleurs telle que :
Le plus petit entier k tel qu'il existe une k -
oloration de G est appel nombre
hromatique
de G. La re
her
he d'une
oloration ave
un nombre minimal de
ouleurs se ren
ontre dans
de nombreuses appli
ations : emplois du temps,
ompilation, ae
tation de frquen
es par
exemple.
12
10
8
Fig. 3.
Premire partie
Algorithmes
CHAPITRE 1
Algorithmes gloutons et matrodes
eF
16
e1 , e2 ,
1.1.
17
Remarques
1. Noter que le
hoix de
lasser les demandes par dates de n
roissantes est important. Si
on les avait
lasses, par exemple, par dates de dbut
roissantes, on n'aurait pas obtenu
le rsultat. On le voit sur l'exemple suivant ave
trois demandes e1 , e2 , e3 dont les dates de
dbut et de n sont donnes par le tableau suivant :
e1 e2 e3
2
8
d
f
3
4
5
8
Bien entendu, pour des raisons videntes de symtrie, le
lassement par dates de dbut
d
roissantes donne aussi un rsultat optimal.
2. On peut noter aussi que si le but est de maximiser la dure totale de lo
ation du vhi
ule
l'algorithme d
rit
i-dessus ne donne pas l'optimum. En parti
ulier, il ne
onsidrera pas
omme prioritaire une demande de lo
ation de dure trs importante. Une ide
onsiste
le modier en
lassant les demandes par dures d
roissantes et d'appliquer l'algorithme
glouton, malheureusement
ette te
hnique ne donne pas non plus le bon rsultat (il sut
de
onsidrer une demande de lo
ation de 3 jours et deux demandes qui ne se
hevau
hent
pas mais qui sont in
ompatibles ave
la premire
ha
une de dure gale 2 jours).
3. S'il y a plus d'une ressour
e ae
ter, par exemple deux voitures louer, l'algorithme
glouton
onsistant
lasser les demandes suivant les dates de n et ae
ter la premire
ressour
e disponible, ne donne pas l'optimum,
omme le montre l'exemple suivant :
e1 e2 e3 e4
d
f
1
3
2
5
6
7
4
8
En eet les deux premires demandes sont satisfaites par des vhi
ules dirents si on
attribue le premier vhi
ule la troisime demande, il n'est plus possible de satisfaire la
quatrime.
4. Voi
i la justi
ation du titre de
ette se
tion. Un graphe d'intervalles est un graphe dont
haque sommet
orrespond un intervalle de la droite relle, et tel que deux sommets sont
joints par une arte si et seulement si les deux intervalles ont une interse
tion non vide. Les
demandes de lo
ation sont des intervalles, les
ontraintes sont reprsentes par le graphe
d'intervalles asso
i, et une solution optimale
orrespond don
un stable maximum de
e
graphe.
18
la terminologie utilise i
i.
1
3
3
4
5
4
7
6
7
6
8
6
10
7
10
11
Fig. 1.
19
2.2. Algorithme de Kruskal. Ce problme peut tre rsolu trs e
a
ement par
l'algorithme glouton suivant :
Etape 1 :
Classer les artes par ordre de poids d
roissants. Elles
onstituent alors une suite
e1 , e2 , . . . , en
telle que
Etape 2 :
Initialiser F :=
Pour i variant de 1 n, ajouter l'arte ei F si
elle-
i ne
re pas de
y
le ave
elles appartenant F .
On montre que l'algorithme glouton donne l'arbre de poids maximal en utilisant le
lemme
i-dessous pour les arbres re
ouvrants d'un graphe. Noter la proprit suivant des
arbres re
ouvrant d'un graphe qui nous sera utile par la suite :
Proposition 1.1. Soit G un graphe
onnexe, T un arbre re
ouvrant de G. Toute arte
a de G qui n'est pas dans T forme un
y
le unique ave
des artes de T .
Cette proposition est simple prouver un exemple est donn
i-dessous, o l'arbre
re
ouvrant est dessin en traits gras. On
onstate sur la gure que le
y
le
r par l'arte
{4, 7} est form par les sommets 1, 3, 4, 7.
1
Fig. 2.
Venons en au lemme :
1.1.
20
reliant
es deux
omposantes,
omme a est une telle arte il en existe au moins une autre
dans T . On note b une de
es artes et on vrie qu'elle satisfait bien aux
onditions du
lemme.
l'arbre donn par l'algorithme glouton. Si l'algorithme ne donne pas l'optimum
'est qu'il existe des arbres re
ouvrants de poids suprieurs
elui de T . Notons U
elui parmi
eux-
i dont le nombre d'artes
ommunes ave
T est
maximum. Soit a l'arte de U de plus grand poids qui n'est pas dans T , et soit b l'arte de
T donne par le lemme. Comme a n'a pas t
hoisie par l'algorithme glouton
'est qu'elle
re un
y
le ave
les lments de T , form d'artes toutes de poids suprieur ou gal
v(a). Puisque b est dans
e
y
le on a v(b) v(a), ainsi v(U {a} {b}) v(U) > v(T ),
mais U {a} {b} est un arbre qui a une arte en plus en
ommun ave
T que n'en a U
e qui
ontredit le
hoix de U .
Initialiser F :=
Etape 2 : Pour i variant de 1 n, ajouter l'lment ei F si F {ei } F .
On a vu que l'algorithme glouton donne le rsultat optimal quelles que soient les valeurs
des v(e) pour l'arbre re
ouvrant, par
ontre pour
elui de l'ae
tation de ressour
es on
n'obtient l'optimum que lorsque la fon
tion v est
onstante (e, v(e) = 1). Il est ainsi
naturel de re
her
her un
ritre sur la famille F qui permette de dterminer les
as o
l'algorithme glouton donne la solution optimale quelles que soient les valeurs des v(e). On
obtient alors le rsultat suivant :
1.2.
21
R
iproque Si F est une famille de sous-ensembles d'un ensemble E ni, satisfaisant les
2
onditions suivantes :
F F , F F, F F
Si F et G sont deux ensembles de F tels que G
ontient plus d'lments que F alors
il existe un lment x de G \ F tel que F {x} F .
Alors l'algorithme glouton appliqu la famille F donne l'optimum.
Preuve : Supposons que l'algorithme glouton
onstruise l'ensemble F et notons G un
des ensembles de la famille F .
On montre, par r
urren
e sur le nombre p d'lments de G qui ne sont pas dans F ,
que
v(F ) v(G)
Si p = 0
'est immdiat. Soit p > 0, il existe un x F tel que x
/ G, sinon F G et
l'algorithme glouton aurait sle
tionn des lments de G lorsqu'ils se seraient prsents.
Ainsi soit x le premier lment sle
tionn par l'algorithme glouton qui n'est pas dans
G. Les lments y de G qui ne sont pas dans F sont tels que v(y) v(x), sinon ils auraient
t retenus par l'algorithme glouton. Soit l'ensemble F = (F G) {x},
omme
'est un
sous-ensemble de F , il appartient F . La deuxime
ondition
i-dessus implique que l'on
peut y ajouter su
essivement des lments de G pour obtenir un ensemble G de mme
ardinal que G et appartenant F . Comme x est le seul lment de G qui n'est pas dans
G, on a alors G = G {x} \ {y} et :
v(G ) = v(G) + v(x) v(y) v(G).
22
est
une famille de parties (sous-ensembles) de E satisfaisant les
onditions suivantes (on note
dans la suite |F | le nombre d'lments de l'ensemble F ) :
(I1)
(I2)
(I3)
M.
indpendants
du matrode
Les matrodes ont fait l'objet d'tudes mathmatiques importantes sans rfren
e la
raison pour laquelle ils ont t introduits dans
e
ours. Pour
e qui
on
erne l'algorithmique
il est intressant de re
onnatre si un problme de re
her
he d'un optimum rentre dans le
adre de la re
her
he d'un ensemble indpendant maximal d'un matrode, auquel
as il
existe un algorithme simple permettant de trouver
et optimum.
Nous nous proposons de donner quelques exemples de matrodes :
23
est gale X . Les
onditions I1 et I2 sont fa
iles vrier par
ontre I3 est un peu plus
omplexe. Si G et F sont deux parties indpendantes de E telles que G possde une arte
de plus que F = Fi on divise G en G = Gi G o Gi est
onstitu des artes de G ayant
leurs deux extrmits dans Xi et G
ontient les artes qui ont des extrmits dans deux
Xi distin
ts. Pour dmontrer I3, il sut de vrier que G n'est pas vide. Or on remarque
que Gi ne peut pas
ontenir plus P
d'lments que Fi (sinon il y aurait un
y
le dans Xi , Gi ).
|Gi| + |G | on a |G | > 0 et le rsultat.
Comme |G| = |F | + 1 et |G| =
On vrie alors fa
ilement que tout sous-ensemble de E qui ne
ontient pas la fois 2, 5
et 6 est un transversal.
Un exemple de transversal est donn par la
onstitution d'un ensemble S de reprsentants pour direntes asso
iations dans une population. Ainsi si E est l'ensemble des
habitants d'un village, soit A1 l'ensemble des parents d'lves, A2 l'ensemble des p
heurs
la ligne, A3 les membres du
in
lub, A4 les joueurs de ptanque et
. On peut alors interprter un transversal
omme un ensemble d'individus tel que
ha
un d'entre eux dirige (ou
reprsente) une asso
iation : une mme personne ne peut pas reprsenter deux groupes,
par
ontre, il se peut que
ertains groupes ne soient pas reprsents.
La dtermination d'un reprsentant pour
ha
une des asso
iations de faon telle qu'un
nombre maximum d'entre elles soient reprsentes relve ainsi de la re
her
he d'un transversal de taille maximale.
On peut vrier les axiomes de matrodes pour
es ensembles transversaux mais
e
n'est pas immdiat,
e
i pourra tre fait au
hapitre 3 aprs l'tude des
ouplages. Toutefois on peut noter que la re
her
he d'un ensemble de reprsentants satisfaisant un
ritre
d'optimalit (par exemple dont la somme des ages est la plus petite, ou dont la somme des
quotients intelle
tuels est la plus grande) peut se faire l'aide d'un algorithme glouton. Cet
24
algorithme
onsiste
lasser les personnes par ordre d'intert d
roissant ; puis
haque
pas on examine l'introdu
tion d'un nouvelle personne dans l'ensemble des reprsentants.
Celle-
i est retenue s'il est possible d'ae
ter une responsabilit aux personnes dj retenues
et
elle qui est examin. Noter que les responsabilits
ones
ha
une des personnes
retenues peuvent ter amenes voluer au
ours de l'ex
ution de l'algorithme.
Voi
i un exemple de
matrode issu d'une situation pratique. Des t
hes T1 , T2 , . . . , Tk , sont raliser sur un
pro
esseur squentiel, la ralisation de
ha
une de
elles-
i prend une unit de temps et on
donne pour
haque Ti un dlai di respe
ter (en supposant que l'on
ommen
e l'instant
0, la t
he Ti doit tre ralise avant l'instant di ). De plus une pnalit pi est xe pour le
as o la ta
he Ti ne serait pas ralise dans les dlais impartis (
ette pnalit est xe et ne
dpend pas de l'instant de la ralisation). Il s'agit de dterminer l'ordre sur les t
hes qui
minimise la somme des pnalits. L'exemple suivant illustre le problme : il y a 7 t
hes
T1 , . . . , T7 dont les dlais et pnalits sont donnes par le tableau suivant :
T1 T2 T3 T4 T5 T6 T7
d 4 3 2 2 6 3 5
p 70 80 90 50 30 40 20
Si on ee
tue les t
hes dans l'ordre donn par T1 , T2 , T3 , T4 , T5 , T6 , T7 les t
hes T3 ,
T4 , T6 , T7 ne sont pas ee
tues dans les dlais et la pnalit est de 90 + 50 + 40 + 20 = 200.
Pour l'ordre : T3 , T4 , T2 , T5 , T7 , T1 , T6 seules les t
hes T1 et T6 sont hors dlais et la
pnalit est 110, noter que l'optimum est atteint pour T4 , T3 , T2 , T1 , T7 , T5 , T6 ave
une
pnalit de 40.
On
onsidre la famille F de sous-ensembles F de T = {T1 , T2 , . . . , Tk } donne par
F F si les t
hes
ontenues dans F peuvent tre toutes ralises dans les dlais. On
montre que
ette famille satisfait les
onditions sur les matrodes. (Laiss en exer
i
e,
onsidrer les nombres U(i, F ) de t
hes de dlai infrieur ou gal i). Ainsi l'algorithme
glouton
onsistant ajouter les t
hes par ordre de pnalits d
roissantes donne la solution
optimale au problme pos.
25
B F , B F, F F
(Ba)
1.3.
B=F
B1 , B2 B, x B1 \ B2 , y B2 \ B1
R iproquement Si B
tel que
(B1 y) \ x B
R
iproquement, soit C une famille de parties de E satisfaisant les deux
onditions
idessus, on
onstruit une famille F d'ensembles indpendants. Un ensemble est indpendant
si et seulement s'il ne
ontient pas de
ir
uit. On vrie sans trop de peine que F satisfait
les
onditions I1, I2 et I3.
La notion de rang permet, lorsqu'on a dni un matrode M sur E , d'asso
ier un
entier toute partie de l'ensemble de base E . Soit F une famille de parties indpendantes
dnissant M, la fon
tion rang, note de M est telle que pour tout A, A E , (A) est
le
ardinal maximal d'un ensemble F de F in
lus dans A, soit :
(A) =
max
F A,F F
|F |
26
6. Jeu de Shannon
6.1. Prsentation. Le jeu de Shannon illustre l'importan
e de la notion d'arbre re
ouvrant sur un graphe, et don
elle de base sur un matrode. On voit aussi apparatre
les oprations de suppression et de
ontra
tion d'arte qui jouent un rle
ru
ial en thorie
algbrique des graphes et qui ont aussi une gnralisation intressante dans le
adre des
matrodes. Les rgles de
e jeu sont les suivantes :
Soit G un graphe symtrique donn par un ensemble X de sommets, o deux sommets
u et v sont distingus, et un ensemble E d'artes. Un jeu de Shannon sur G = (X, E, u, v)
se pratique deux joueurs. Au dpart toute les artes sont in
olores ;
haque joueur tour
de rle
olorie une arte in
olore, l'un (le
onqurant) en vert, l'autre (le dfenseur) en
rouge. Le
onqurant a gagn s'il a russi
onstruire un
hemin
ompos d'artes vertes
reliant u v ; par
ontre si toutes les artes sont
olories sans qu'un tel
hemin existe
'est
le dfenseur qui est d
lar gagnant. La vi
toire du dfenseur peut se
onstater avant la
n du jeu s'il a russi dis
onne
ter le graphe par des artes rouges, en deux
omposantes
dont l'une
ontient u et l'autre v .
6.2. Classi
ation. On
lasse les graphes o deux sommets sont distingus en trois
atgories :
Les graphes faibles pour lesquels il existe une stratgie du
onqurant qui lui permet
de gagner
ontre toute dfense et
e
i quel que soit le joueur qui joue en premier.
Les graphes rsistants pour lesquels il existe une stratgie permettant au rsistant de
vain
re et
e
i mme dans le
as o le
onqurant joue en premier.
Les graphes neutres pour lesquels il existe une stratgie gagnante pour tout joueur
qui a le trait en premier.
tout graphe G = (X, E, u, v) on asso
ie le graphe G1 = (X, E , u, v) o E = E
{u, v} ; on vrie alors que G est rsistant si et seulement si G1 est neutre et que G est
neutre si et seulement si G1 est faible et G ne l'est pas. Ainsi un algorithme qui permet
de vrier si un graphe est faible peut tre utilis sur G1 pour tester si G est rsistant ou
neutre.
6. JEU DE SHANNON
Fig. 3.
v
G1
27
G2
v
G3
On a le rsultat suivant d A.
Lehman :
1.6.
Y X, T1 E, T2 E, T1 T2 = , u, v Y
On ne dmontre pas
e thorme
ompltement ; on se
ontente de donner une stratgie
pour le
onqurant, dans un graphe qui satisfait les
onditions
i-dessus, lorsqu'il joue en
se
ond. L'ide gnrale est que les artes
olories en rouge par le dfenseur sont supprimes
du graphe alors que
elles
olories en vert sont
ontra
tes.
6.4. Stratgie.
28
2
1
3
3
Suppression de {4.7}
5
5
Contraction
de {4,7}
1
Fig. 4.
6. JEU DE SHANNON
29
Ce jeu sur des graphes se gnralise sur des matrodes et on montre un rsultat du mme
type ; en eet, la preuve qui est faite sur les graphes utilise des proprits des arbres
re
ouvrants qui sont
elles d'un matrode.
CHAPITRE 2
Plus
ourts
hemins, programmation dynamique
32
On utilise dans les deux algorithmes donns
i-dessous une appli
ation d de l'ensemble
des sommets dans l'ensemble des entiers. L'image par d du sommet x est note d[x]
ar
dans la ralisation d'un programme
elle-
i sera reprsente par un tableau. D'autre part la
reprsentation des plus
ourts
hemins s'ee
tue par un ve
teur pere tel que pere[x est
le sommet situ immdiatement avant x dans un
hemin de longueur minimale qui joint x0
x. Une opration lmentaire utilise pour modier d est l'opration dite de relaxation,
elle est d
rite par l'algorithme suivant :
Relaxation (Ar
a) {
si (d[ext[a > d[or[a + l(a)){
d[ext[a = d[or[a + l(a);
pere[ext[a = or[a; }
}
x2
33
x3
2
3
x1
x4
2
x5
1
x7
1
Fig. 1.
x6
Remarques :
4. L'algorithme ne donne pas le bon rsultat si
ertains ar
s sont ngatifs. Il est
lair
qu'on ne peut s'attendre obtenir un rsultat s'il existe des
ir
uits dont la somme des
longueurs des ar
s est ngative ; par
ontre en l'absen
e de tels
ir
uits
ertains algorithmes
donnent les plus
ourts
hemins. C'est le
as de l'algorithme de Ford
i-dessous.
34
};
x2
x3
-2
-2
3
x1
x4
2
-6
x5
1
x7
1
Fig. 2.
x6
Un graphe ave
des ar
s ngatifs
Sur l'exemple
i-dessus on obtient les plus
ourts
hemins depuis x1 tous les sommets
ils sont de longueurs respe
tives 5, 8,3,5,6,-3 pour x2 , x3 , x4 , x5 , x6 , x7 on vrie que toute
relaxation sur
es valeurs ne modie pas le rsultat trouv.
La
omplexit de l'algorithme est en O(nm),
e qui est moins bon que
elui de Dijkstra.
35
Les algorithmes de re
her
he de
hemins les plus
ourts reposent sur l'observation trs
simple mais importante suivante :
alors il se d
ompose en deux
hemins de longueur minimale l'un qui joint x z et l'autre
qui joint z y .
Dans la suite, on suppose les sommets numrots x1 , x2 , . . . xn et, pour tout k > 0 on
onsidre la proprit Pk suivante pour un
hemin f :
Tous les sommets de f , autres que son origine et son extrmit,
ont un numro stri
tement infrieur k .
Pk (f )
On peut remarquer qu'un
hemin vrie P1 si et seulement s'il se
ompose d'un unique
ar
, d'autre part la
ondition Pn+1 est satisfaite par tous les
hemins du graphe. Notons
k (xi , xj ) la longueur du plus
ourt
hemin qui vrie Pk et qui a pour origine xi et pour
extrmit xj . Cette valeur est si un tel
hemin n'existe pas. Ainsi 1 (xi , xj ) = s'il n'y
a pas d'ar
entre xi et xj et vaut (a) si a est
et ar
. D'autre part n+1 = . Le lemme
suivant permet de
al
uler les k+1
onnaissant les k (xi , xj ). On en dduira un algorithme
itratif.
Lemme
2.1.
36
Pour k = 1 jusqu'a n {
Pour i = 1 jusqu'a n {
Pour j = 1 jusqu'a n {
Si delta[i[j > (delta[i[k + delta[k[j)
delta[i[j:=
Sur l'exemple du graphe donn sur la gure 4, on part de la matri e 1 donne par
1 =
4
3 2
0 2
0 2
0 1
2 0
1
0
1
0
Aprs le al ul on obtient :
0
10
8
8
6
5
4
1
0
5
5
3
6
5
4
3
0
8
6
9
8
3
2
5
0
3
2
7
5 6
4 5
2 3
2 3
0 1
4 0
9 10
7
6
4
4
2
1
0
Pour le
al
ul ee
tif des
hemins les plus
ourts, on utilise une matri
e suivant telle
que suivant[i[j est le sommet qui suit i dans le
hemin le plus
ourt qui va de i j .
Les valeurs suivant[i[j sont initialises j s'il existe un ar
de i vers j et 1 sinon,
suivant[i[i est lui initialis i. Le
al
ul pr
dent qui a donn peut s'a
ompagner
de
elui de suivant en ajoutant la ligne :
suivant[i[j = suivant[i[k
dans le
as o le test sur delta[i[j est positif.
Une fois le
al
ul des deux matri
es ee
tu on peut retrouver le
hemin le plus
ourt
qui joint i j par la pro
dure :
k = i;
while (k != j) k= suivant[k[j;
Sur l'exemple pr
dent on trouve pour suivant :
3. GNRALISATION DE L'ALGORITHME
1
4
5
5
6
7
1
2
2
5
5
2
7
1
2
3
3
5
2
7
1
2
4
5
4
6
4
1
2
4
5
5
5
4
1
2
4
5
5
6
6
1
2
4
5
5
6
7
7
37
3. Gnralisation de l'algorithme
L'algorithme pr
dent a une stru
ture qui rappelle le
al
ul de la puissan
e p-ime
d'une matri
e. Cela se voit mieux sur l'algorithme
i-dessous qui donne la longueur d(p) (i, j)
du plus
ourt
hemin de longueur infrieure ou gale p entre les sommets xi et xj d'un
graphe G = (X, A, ). Dans
e qui suit (i, j) dsigne la longueur de l'ar
le plus
ourt
entre xi et xj , gal s'il n'existe pas de tel ar
.
d(1) (i, j) =
d(p) (i, j) =
(i, j),
min[d(p1) (i, j), min1kn [d(p1) (i, k) + (k, j)]].
(3) La loi est distributive ( gau
he et droite) par rapport et pour tout s
dans S on a s 0 = 0
Tout anneau est bien entendu un semi-anneau, en eet en plus de
es
onditions on a
aussi dans un anneau l'existen
e d'un inverse pour . Les exemples de semi-anneaux sont
nombreux en voi
i quelques-uns qui sont utiles en algorithmique.
1. Le semi-anneau de Boole B a deux lments {0, 1}, est l'opration ou, est l'opration
et.
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
1
2. L'ensemble des entiers naturels N, pour les lois usuelles d'addition et de multipli ation.
38
a S, a + =
4. Si on rempla
e min par max dans l'exemple
i-dessus, on n'a pas tout fait un semianneau,
ar l'lment neutre de max qui est 0, ne satisfait pas la relation voulue ave
+,
par
ontre
'est le
as pour max et la multipli
ation.
A des mots sur A, S est alors l'ensemble des parties P(A ) de A . L'opration est la
runion et l'opration est dnie partir de la
on
atnation . Pour deux parties U et
V de A :
U V = {u.v|u U, v V }
Les lments neutres sont respe
tivement pour l'union et l'ensemble
ompos du seul
mot vide pour .
2.1.
Remarques :
1. On a souvent
al
uler la valeur donne par le thorme pour tous les
hemins de
longueur infrieure ou gale k et non pas seulement pour
eux de longueur k , il faut alors
faire la somme des puissan
es M i de M pour i = 0 (M 0 est la matri
e identit) jusqu' k .
4. PROGRAMMATION DYNAMIQUE
39
2. Dans de nombreux
as on
onstate pour un
ertain entier k que pour tout k > k :
X
i=0,k
Mi =
Mi
i=0,k
I (M M ) = M
i=1,k
M i en eet on
3. Le thorme pr
dent donne ave
les dirents exemples
its plus haut des rsultats
intressants d'un point de vue algorithmique. Dans le
as du semi-anneau de Boole B,
k
Mi,j
= 1 indique l'existen
e d'un
hemin de longueur k entre xi et xj ; dans
elui de
k
S = N ave
les oprations usuelles Mi,j
est le nombre de tels
hemins. Lorsque l'on prend
S = N {} et les oprations min, + on obtient les plus
ourts
hemins, enn pour
k
S = P(A ) et les oprations et ., le
oe
ient Mi,j
est gal l'ensemble de toutes
les tiquettes des
hemins (l'tiquette d'un
hemin est la
on
atnation des tiquettes des
ar
s qui le
omposent) de longueur k qui ont pour origine xi et pour extrmit xj . Cette
proprit est utilise en thorie des automates et des langages rationnels.
4. Programmation dynamique
La re
her
he d'un
hemin minimal dans un graphe entre tous les
ouples de sommets
est un
as parti
ulier d'une mthode gnrale de re
her
he d'optimum que l'on appelle
programmation dynamique.
4.1. Prsentation de la mthode. Les problmes que l'on peut traiter l'aide de
ette mthode ont deux
ara
tristiques prin
ipales
Une solution optimale un problme de taille k
ontient dans un sens pr
iser des
solutions optimales des problmes de tailles plus petites que k .
On peut
onstruire une solution optimale un problme de taille k en
onnaissant
un petit nombre de solutions optimales des problmes de tailles plus petites que k .
Une mthode de rsolution de problme par la programmation dynamique
onsiste
rsoudre itrativement des problmes de tailles de plus en plus grandes en
onservant en
mmoire les rsultats obtenus pour les problmes de petites tailles. En gnral une mmoire
de l'ordre de n2 pour un problme de taille n est n
essaire.
4.2. Un problme gnrique. L'exemple qui suit est un exemple typique de tel
problme, on l'exprime souvent sous la forme suivante :
Un systme est
ara
tris par son tat qui est un lment d'un ensemble ni ,
on
onsidre des suites 0 , 1 , . . . , k d'tats su
essifs du systme, i est l'tat au temps
i = 1, . . . , k . Le systme est
ommand par des d
isions prendre reprsentes par des
entiers x1 , x2 , . . . , xk : xi est la d
ision prise au temps i. Le
omportement du systme est
rgi par k fon
tions de transitions i , une pour
haque valeur de i. La fon
tion de transition
i a pour donne un tat et une d
ision x, elle a pour rsultat un tat ; i (, x) est l'tat
atteint au temps i si l'tat au temps i 1 est et si la d
ision prise au temps i est x.
40
Une fon
tion de
ot ci pour
haque i
ompris entre 1 et k permet de mesurer les
ots
des d
isions prises. La fon
tion de
ot a les mmes donnes que la fon
tion de transition
et a pour rsultat un entier ci (, x) qui est le
ot de la d
ision x au temps i si l'tat du
systme est au temps i 1.
Le problme
onsiste trouver une suite de transitions entre deux tats donns l'tat
initial et l'tat nal qui minimise la somme des
ots. Quelquefois l'tat nal n'est pas
pr
is, il faut alors obtenir
elui qui donne le minimum.
Une autre version du problme
onsiste
onsidrer non pas des
ots ci mais des gains
gi ; il faut alors rendre le gain maximum plutt que de
her
her un
ot minimal.
Dans l'exemple de la re
her
he du
hemin minimal la d
ision prendre
onsiste
hoisir un des ar
s ou rester sur pla
e, l'tat du systme est le sommet o l'on se trouve
dans le graphe. Les transitions possibles sont
elles o l'on a
hoisi un ar
ayant pour
origine le sommet o l'on se trouve, le rsultat de la transition
onsiste passer au sommet
extrmit de l'ar
hoisi, et le
ot de la transition est gal la longueur de l'ar
.
4.3. Algorithme.
k (, ) = min[k1 (, ) + ck (, xk )]
4.4. Le sa dos.
5. TRAITEMENT DE SQUENCES
41
programmation dynamique
onsiste grer un tableau benefi
e[p de taille P qui donne
haque tape i le bn
e maximum que l'on peut raliser en prenant au plus i objets
et en laissant une
apa
it rsiduelle de p dans le sa
. Les poids de
haque objet i sont
donns dans un tableau poids[i et les nombres ai dans un tableau a[i.
5. Traitement de squen
es
La
omparaison de deux squen
es an de dterminer leur similarit joue un rle
entral
en bio-informatique. On utilise souvent la programmation dynamique pour rsoudre
es
problmes qui proviennent de l'analyse du gnome humain et de la
omprhension de sa
stru
ture primaire.
si ai = bj
1 + L(i 1, j 1)
max(L(i, j 1), L(i 1, j)) sinon.
42
Il est assez fa
ile de transformer l'algorithme pour retrouver une sous-squen
e maximale
ommune au lieu de simplement
al
uler sa longueur. Pour
ela, on met jour un
tableau provient qui indique lequel des trois
as a permis d'obtenir la longueur maximale.
Une fois
e
al
ul ee
tu il sut de remonter
haque tape de i,j vers i-1, j-1, vers
i, j-1 ou vers i-1,j en se servant de la valeur de provient[i[j. On peut amliorer
ette mthode et rendre la
omplexit plus faible gr
e des te
hniques astu
ieuses de
programmation,
'est
e qui est fait pour la
ommande diff du systme UNIX.
u
v
=
=
CGAT T eAG
eGAT GGAe
Il y a bien entendu de trs nombreux alignements possibles pour deux squen
es, en fait
on
her
he
eux qui sont les plus intressants dans le sens pr
is que l'on d
rit i
i :
On suppose donne une fon
tion de similarit p entre les
ouples de lettres. La valeur
de p(a, b) est un nombre rel d'autant plus grand que les lettres sont
onsidres
omme
similaires d'un point de vue biologique, ainsi on prendra des valeurs ngatives quand les
lettres sont direntes, soit : b 6= a, p(a, a) > 0 > p(a, b), de plus la symtrie impose
p(a, b) = p(b, a). D'autre part on se donne aussi un rel q < 0 qui exprime la similarit
d'une lettre ave
l'espa
ement, elle est indpendante de la lettre, ainsi pour tout a on a
p(a, e) = p(e, a) = q .
Le s
ore d'un alignement est alors donn par
n
X
p(ui , vi )
i=1
5. TRAITEMENT DE SQUENCES
43
msi1,j1 + p(ui , vj )
msi,j = max msi1,j + q
ms
i,j1 + q
On note que le
al
ul de ms s'ee
tue en temps O(nm) et semble n
essiter un espa
e
de taille O(nm), en fait on
onstate que l'on peut se limiter
onserver en mmoire une
seule ligne de la matri
e, la ligne suivante rempla
e alors la pr
dente lors du
al
ul.
Un dernier problme
onsiste dterminer l'alignement optimal lui-mme une fois
al
ul son s
ore,
'est dire
onnaisant le tableau ms,
e
i est relativement simple si l'on
onnat la totalit du tableau : on part de msm,n et on remonte dans le tableau de msi,j
vers
elui des msi1,j1 , msi1,j ou msi,j1 qui a dtermin sa valeur.
Dans le
as o l'on ne
onnat que la dernire ligne du tableau, il faut utiliser une
te
hnique pro
dant du prin
ipe de diviser pour regner et qui pourra tre vue en exer
i
e.
Notons deux problmes voisins de
elui qui est
onsidr i
i qui peuvent tre traits par
les mmes te
hniques.
Le premier
onsiste tant donnes deux squen
es u et v trouver un fa
teur de
ha
une
de
elles-
i formant un
ouple qui prsente un alignement de s
ore maximal (rappelons
qu'un fa
teur d'une squen
e est une sous-squen
e
onstitue de
ara
tres
ons
utifs).
Pour rsoudre
e problme (on utilise i
i le fait que q < 0 et p(a, b) < 0) si a 6= b on applique
l'algorithme
i-dessus en
onsidrant msi,j
omme le meilleur s
ore d'un alignement entre
un suxe de u1 u2 . . . ui et un suxe de v1 v2 . . . vj ;
e suxe pouvant tre le mot vide, on
voit que mi,j ne peut pas tre ngatif, ainsi 0 doit gurer
omme quatrime possibilit dans
la formule de r
urren
e donnant mi,j .
Le se
ond problme
onsiste dterminer le meilleur alignement pour une fon
tion de
s
ore qui ne tient pas
ompte des espa
ements situs en dbut ou en n de mot. L'algorithme
pour
e problme ne dire du pr
dent que dans l'initialisation des mi,0 et mj,0 qui doivent
prendre la valeur 0. On retient alors la valeur maximale de la dernire ligne ou de la dernire
olonne.
44
ACGATC CAGTCAA on peut faire un ajout (en tte), qui donne CACGATC, puis une
suppression pour obtenir CAGATC, une nouvelle suppression et deux ajouts en n de mot.
On peut aussi faire deux rempla
ements pour obtenir CAGATC, puis une suppression et
deux ajouts. La meilleure suite d'oprations dpend bien entendu des valeurs des
ots,
mais on voit bien que des te
hniques trs voisines de
e qui a t fait
i-dessus donnent le
rsultat.
CHAPITRE 3
Flots et
ouplages
Dans
e
hapitre, nous nous pro
upons de proprits globales d'un autre type qui
mettront en jeu simultanment l'ensemble des artes du graphe ; il s'agit de modliser la
ir
ulation de personnes, voitures, informations ou uides travers un rseau de faon
rendre maximum l'a
heminement global tout en respe
tant des
ontraintes lo
ales de
apa
its des liaisons entre deux sites,
es notions se modlisent l'aide du
on
ept de ot.
La re
her
he d'un ot maximal est dj intressante par elle-mme, mais il y a aussi plusieurs appli
ations de la notion de ot. Une des appli
ations, parmi les plus rpandues, est
la re
her
he d'un
ouplage maximum dans un graphe biparti. Le
ouplage modlise le problme de l'ae
tation (ma
hine/ouvrier, pro
essus/unit de
al
ul, stagiaire/entreprise).
1. Flots
On
onsidre un graphe orient dont
haque ar
est ae
t d'une
apa
it, nombre entier positif ou nul. tant donns deux sommets s et t du graphe, appels respe
tivement
sour
e et puits , on
her
hera faire passer dans le graphe un ot maximal de s vers t en
respe
tant les
apa
its de
haque ar
et en appliquant les lois de Kir
ho aux sommets
qui interdisent en quelque sorte l'a
umulation en un sommet.
Plus pr
isment on
onsidre un graphe ave
apa
it G = (X, A, ), o X est l'ensemble des sommets, A l'ensemble des ar
s et la fon
tion de
apa
it qui
haque ar
a
asso
ie un entier1 positif ou nul (a). On suppose donns aussi deux sommets s et t entre
lesquels on
her
he faire passer un ot maximal. On suppose qu'il y a au plus un ar
d'origine et d'extrmit donnes, ainsi on notera (x, y) l'ar
a ayant x
omme origine et
y
omme extrmit. Par sou
i de simpli
it on supposera qu'il n'existe pas d'ar
de type
(x, x) bou
lant sur un sommet. On appelle ot de sour
e s et de puits t dans le graphe
G = (X, A), muni de la
apa
it , une fon
tion positive entire sur A qui vrie les
1on peut en fait onsidrer des rels, mais il est plus simple de supposer les apa its et les ots entiers
45
46
3. FLOTS ET COUPLAGES
(x,y)A
On dnit une
oupure d'un graphe (
ut dans la littrature anglo-saxonne)
omme une
partition des sommets de G en deux sous-ensembles disjoints dont l'un, S ,
ontient s et
l'autre, T ,
ontient t. La valeur du ot asso
ie une
oupure (S, T ) est la quantit :
(S, T ) =
(, )A
(, )
o S et T . On dnit galement la
quantit :
(S, T ) =
(, )
(,)A
omme la
(, ),
(, )A
o S et T .
On vrie quelques proprits simples.
Proposition 3.1. tant donn un ot , toutes les
oupures (S, T ) ont la mme valeur
de ot
P (S, T ). Si,Pde plus, s n'a pas d'ar
entrant et t n'a pas d'ar
sortant, alors
= (s,x)A (s, x) = (y,t)A (y, t).
Il reste obtenir une borne infrieure pour un ot maximal. Pour
e faire une notion
naturelle est
elle de
hemin satur. Etant donn un graphe ave
apa
its G = (X, A, )
et un ot , un ar
a est satur si (a) = (a). Un
hemin est satur s'il
ontient au
moins un ar
satur. Il est
lair que s'il existe un
hemin non satur qui joint s t alors
on peut amliorer le ot en ajoutant
haque ar
de
e
hemin une quantit de ot gale
au minimum de (a) (a) pour l'ensemble des ar
s du
hemin. Un ot est satur si tout
hemin qui mne de s t est satur. Une premire intuition engage penser qu'un ot satur
est maximal, or il n'en est rien
omme le montre l'exemple de la gure
i-dessous, o les
apa
its sont indiques en
ara
tre gras, et le ot
t des
apa
its. Le ot est satur
mais on peut l'amliorer en ajoutant une unit de ot sur les ar
s (s, x3 ), (x3 , x4 ), (x1 , x2 )
et (x2 , t) et en faisant passer un ot nul sur l'ar
(x1 , x4 ).
2. MTHODE DE FORD-FULKERSON
x1
2
47
x2
3
1
t
1
2
x3
Fig. 1.
x4
Un ot satur non maximal. Les apa its sont en ara tres gras.
2. Mthode de Ford-Fulkerson
Pour amliorer un ot satur il faut,
omme on l'a vu sur l'exemple plus haut , diminuer
sa valeur sur
ertains ar
s pour pouvoir l'augmenter sur d'autres. Pour
ela on
onstruit
un graphe G asso
i au ot sur le graphe G, qui a les mmes sommets que G et dont les
ar
s sont obtenus partir de
eux de G en
onservant
eux qui ne sont pas saturs et en
retournant les ar
s
ontenant une quantit non nulle de ot. On appelle parfois
e graphe
le graphe des amliorations.
Plus pr
isment, G = (X, A , ) est tel que :
si (x, y)
/c
(x, y)
(x, y) + u si (x, y) A et (x, y) c
(x, y) =
Ce
i fournit une te
hnique trs gnrale de
onstru
tion par amlioration su
essive des
ots, paradigme d Ford et Fulkerson :
initialiser le flot 0
tant qu'il existe un
hemin amliorable p dans G
faire : amliorer le flot sur p.
La validit de la mthode est garantie par le fait qu'on obtient ainsi un nouveau ot
ompatible ave
les
ontraintes de
apa
it sur G. En eet, il sut de vrier que pour
48
3. FLOTS ET COUPLAGES
haque ar
la
apa
it n'est pas dpasse et que le ot sur une arte de G n'est pas ngatif.
La valeur du nouveau ot est videmment la somme des valeurs et est en
roissan
e,
ar
on ne saurait diminuer le ot partant de s. Il reste montrer que le ot obtenu la n de
l'algorithme est maximum pour
ela on utilise :
Pour rsumer l'algorithme de Ford et Fulkerson pro
de en plusieurs tapes d'amlioration ;
ha
une de
es tapes
onsiste en un par
ours de graphe qui peut prendre un temps
O(m), de plus
haque tape amliore le ot d'au moins une unit mais on ne peut donner
une borne pr
ise du nombre d'tapes. On se
ontente de remarquer que
e nombre est
au pire la valeur du ot maximal, ainsi la
omplexit est en O(m ), o m est le nombre
d'ar
s, et est le ot maximal. Noter qu'il faut aussi supposer que toutes les
apa
its
sont entires.
2. MTHODE DE FORD-FULKERSON
12
16
4
20
49
10
4
13
14
12
20
4
11
5
10
4
13
10
7
4
11
12
1
s
7
13
11
3
11
11
15
4
13
7
4
11
12
11
1
s
11
11
15
5
11
5
12
19
4
12
11
11
12
1
12
3
19
1
11
11
7
4
11
Fig. 2.
50
3. FLOTS ET COUPLAGES
L'exemple plus haut montre une des tapes de l'algorithme sur un graphe simple, sur
la gure un graphe ave
les
apa
its est donn, puis on a fait gur sur la partie gau
he
le graphe des amliorations et sur la partie droite les ots
al
uls au fur et mesure des
amliorations.
Remarque
x
100.000
100.000
100.000
100.000
1
1
1
2
Fig. 3.
51
ne d rot jamais.
3.3.
Preuve : Supposons qu' une tape la longueur du
hemin amliorable vienne diminuer.
Ce
i veut don
dire qu'il existe un sommet x dont les distan
es s dans les deux graphes
su
essifs G et G sont telles que d(s, x) > d (s, x) et
hoisissons,
ette tape, un sommet
x qui soit le plus pro
he de s. Remarquons que sur le
hemin amliorable p de s t qui
passe par x, le prd
esseur y de x satisfait d(s, y) d (s, y).
Considrons alors le ot (y, x) avant l'augmentation. Si (y, x) < (y, x),
apa
it de
l'arte, alors d(s, x) d(s, y) + 1 d (s, y) + 1 = d (s, x) . Ce qui
ontredit le
hoix de x.
Don
(y, x) = (y, x) et (y, x) n'est pas une arte du graphe d'amlioration de G ; mais
omme (x, y) en est une dans
elui de G , il faut don
que (x, y) soit une arte du
hemin
amlior dans le passage de G G . Alors et
omme
e
hemin est de longueur minimale :
d(s, x) = d(s, y) 1 d (s, y) 1 = d (s, x) 2 < d (s, x) . Contradi
tion.
3.2.
52
3. FLOTS ET COUPLAGES
Fig. 4.
Soit G = (X, E) un graphe symtrique, un
ouplage (on dit mat
hing en anglais) est
un sous-ensemble C de E tel que deux artes de C n'aient pas de sommet
ommun. Un
exemple de
ouplage est donn sur la gure
i-dessous (les artes du
ouplage sont en traits
gras). Dans la suite on dira qu'un sommet est satur s'il appartient une arte du
ouplage.
Une remarque importante sur le
ouplage est la suivante :
Remarque Soient C
CD :
C D = {e E|e Ce,
/ D} {e E|e D, e
/ C}
est forme de
hemins et de
y
les. Cha
un de
es
hemins ou
y
les est
ompos alternativement d'une arte de C et d'une arte de D . Si |C| > |D| alors il existe une
omposante
onnexe du graphe (X, C D)
onstitue d'un
hemin de longueur impaire
e1 , e2 , . . . , e2p+1 tel que e1 , e3 . . . e2p+1 C , ete2 , e4 , . . . , e2p D . Une des extrmits de e1
et une de e2p+1 ne sont in
idents au
un ar
de D . On dit que le
hemin est augmentable pour D ,
ar on peut augmenter le nombre d'lments de D en le remplaant par
D = D {e1 , e3 , . . . , e2p+1 } \ {e2 , e4 , . . . , e2p }.
Dans
e paragraphe on s'intresse la re
her
he d'un
ouplage maximum dans le
as o
le graphe G est biparti. L'ensemble des sommets est alors
ompos de deux sous-ensembles
disjoints X et Y et
haque arte joint un sommet de X et un sommet de Y . Les graphes
bipartis modlisent le problme de l'ae
tation. Un exemple typique d'un tel problme est
elui de l'ae
tation de stages des tudiants, l'ensemble X reprsente les tudiants, Y les
stages proposs et les artes du graphe relient
haque tudiant aux stages qui font partie
de sa liste de
hoix. Le but est d'obtenir un
ouplage maximal dans lequel un nombre
maximum d'tudiants sont
oupls ave
un stage qui fait partie de leurs listes.
Dans le
as parti
ulier des graphes bipartis la re
her
he d'un
ouplage maximal dans
un graphe G = (X Y, E) se ramne
elle d'un ot maximum dans un graphe orient G
qui se dduit de G de la faon suivante :
53
G
Le rseau de transport asso
i la re
her
he d'un
ouplage maximal
dans un graphe biparti
Fig. 5.
3.3.
54
3. FLOTS ET COUPLAGES
Preuve : Il sut de
onsidrer le graphe des augmentations et
onstater que tout
hemin
dans
e graphe est
ompos d'ar
s saturs se dirigeant de X vers Y et d'ar
s par
ourus
par un ot et se dirigeant de Y vers X .
Le thorme et sa preuve suggrent l'algorithme suivant qui pr
ise en quelque sorte la
mthode de Ford Fulkerson :
5. Mariages stables.
Une question qui gnralise
elle du
ouplage est
elle de la re
her
he de
ouplages (ou
mariages) stables. Cette notion
onstitue un
hapitre important de la thorie des jeux.
Les donnes du problme sont un peu plus
omplexes que
elles du simple
ouplage,
on se donne deux ensembles X = {x1 , x2 , . . . , xp } et Y = {y1 , y2 , . . . , yp }, pour
haque i =
1, . . . , p une liste ordonne Fi d'lments de Y et pour
haque j = 1, . . . , q une liste ordonne
Gj d'lments de X . Ces listes ne sont pas vides mais ne
ontiennent pas n
essairement
tous les lments de Y et de X respe
tivement. On note y i y si y est avant y dans la
liste Fi ou si y ne gure pas dans la liste Fi alors que y s'y trouve. Un
ouplage est alors
un sous-ensemble de
ouples (x, y) tel que y gure dans la liste Fx et x dans la liste Gy .
La re
her
he d'un
ouplage maximal
onsiste travailler dans le graphe biparti (X, Y, E)
o les artes sont tous les
ouples {x, y} tels que y gure dans la liste Fx et x dans la liste
Gy , et y appliquer les algorithmes vus au paragraphe 4.
Pour introduire la notion de stabilit il est
ommode de
onsidrer un
ouplage
omme
une appli
ation partielle de X dans Y , on note alors son inverse, ainsi les lments
du
ouplage sont les
ouples (x, (x)) ou de manire quivalente les
ouples ((y), y). Un
ouplage C est stable si et seulement si pour tout
ouple x, y qui n'est pas dans C on a
(y) y x
ou
(x) x y
On interprte
e
i en disant qu'un
ouplage est stable s'il n'existe pas deux individus
qui se prfrent mutuellement leur
onjoints respe
tifs.
G1 : x1 x3 x2
G2 : x3 x1 x2
G3 : x1 x3 x2
6. COUPLAGES GNRAUX
55
Le
ouplage (x1 , y1 ), (x2 , y2 ), (x3 , y3 ) n'est pas stable en raison de x1 et y2 qui se prfrent
y1 et x2 respe
tivement. Par
ontre le
ouplage (x1 , y1 ), (x2 , y3 ), (x3 , y2 ) est stable.
On montre que l'algorithme suivant donne un
ouplage stable.
On initialise (x) au premier lment de la liste Fx et (y) indni. Ensuite on ee
tue
des modi
ations itrativement de et de
omme suit :
(1) Pour
haque y
hoisir l'lment x le plus intressant dans la liste Gy parmi les x
tels que (x) = y . et poser (y) = x
(2) Pour
haque x,
S'il existe y tel que (y) = x, alors (x) = y .
S'il n'existe pas de y tel que (y) = x et si (x) n'est pas le dernier lment
de la liste Fx alors rempla
er (x) par l'lment qui le suit dans dans la liste
Fx ,
Si au
une des deux
onditions pr
dentes n'est remplie alors (x) est indni.
6. Couplages gnraux
On
onsidre maintenant des graphes gnraux, pour lesquels on veut dterminer un
ensemble d'artes deux deux disjointes et de
ardinalit maximale. On gnralise ainsi
les problmes d'ae
tation, en prenant en
ompte par exemple les problmes de tourne
(postier
hinois) ou de
hanes. Des appli
ations typiques sont les transitions de phase
en magntisme, le regroupement de parti
ules dans des phnomnes de dsintgrations
simultanes, et
.
6.1. Prin
ipes. Une
hemin S est dit alterne par rapport un
ouplage C si ses
artes sont su
essivement dans C et dans A\C . Supposons de plus que S soit telle que
ses extrmits sont ou bien insatures ou bien extrmit d'une arte
ommune C et S .
Alors la diren
e symtrique C = CS forme en
ore un
ouplage, dans lequel les artes
de S ont simplement
hang leur rle.
Cette opration est appele transfert le long de S . On remarquera que si les deux extrmits
de S sont insatures le nouveau
ouplage C est plus ri
he d'une arte. Un tel
hemin est
dit augmentant .
Exemple : Un
hemin augmentant sur le graphe
i-dessus o le
ouplage est form des
artes {2, 3}, {4, 5}, {6, 7} est donn par les artes {1, 6}, {6, 7}, {7, 8}.
Un thorme de Berge ara trise les ouplages maximaux. Dmontrons d'abord un lemme te hnique.
3.1.
56
3. FLOTS ET COUPLAGES
2
3
@
A
@ A
1
8
H
HH A
J
A
H
HA
J
7
4
J
J
J
J
J
J
6
5
Thorme
3.4.
altern augmentant.
Preuve : Compte tenu de la remarque
i-dessus l'existen
e d'une
hemin altern augmentant permet de
onstruire un
ouplage plus grand par transfert le long de
ette
hane,
e
qui rfute l'hypothse de maximalit.
R
iproquement, soit C n'ayant pas de
hemin altern augmentant et soit C un
ouplage ayant un nombre maximum d'artes. Considrons le graphe d'artes B = CC
voqu dans le lemme. Il ne peut possder de
hemin alterne de longeur impaire
ar
e
serait un
hemin augmentant, don
C et C ont le mme nombre d'artes, C est maximal.
On remarquera enn que les
ouplages maximaux s'
hangent par transfert sur des
y
les ou des
hemins alterns pairs.
J. Edmonds a
propos un algorithme relativement
ompliqu de re
her
he de
ouplage maximal,
elui-
i
opre en un nombre d'oprations fon
tion polynomiale de la taille du graphe. Il repose sur
un lemme de rdu
tion du graphe qui permet de re
onstruire un
ouplage maximal de G
partir de
elui
onstruit sur un graphe de taille plus petite.
Soit G = (X, A) un graphe ; pour X X on dnit un nouveau graphe G = G/X
dont l'ensemble des sommets est X \ X {}. les artes de G qui relient deux sommets
qui ne sont pas dans X sont
onserves dans G/X et les artes qui relient un sommet x
de X X un sommet de X sont rempla
es par une arte reliant x Le sommet
reprsente ainsi tous les sommets de X .
Soit G un graphe, C un
ouplage de G et un
y
le de G de longueur 2k + 1 possdant
k artes qui sont dans C et qui
ontient un sommet non satur. On a alors
Lemme 3.2. Le
ouplage C est un
ouplage maximal de G si et seulement si C est
un
ouplage maximal de G/.
Dmonstration. Si C n'est pas un
ouplage maximal de G, alors d'aprs le thorme
de Berge, il existe un
hemin P altern augmentant dans G. Puisque
ontient un seul
57
vantes :
Construire par un algorithme glouton un
ouplage C de G
Dterminer l'ensemble S des sommets non saturs par C dans G.
Pour tout lment y de S
onstruire un arbre Ay de ra
ine y et tel que
Ay ne
ontient, en dehors de y , que des sommets saturs.
Les artes qui sont issues de y et des sommets distan
e paire de y dans l'arbre
Ay n'appartiennent pas C
Les artes qui partent des sommets distan
e impaire de y dans l'arbre appartiennent C
Ainsi les
hemins de l'arbre sont des
hemins alterns
On
her
he alors les artes de G non dans C qui relient deux sommets u et v situs
distan
e paire de sommets de S
Si les deux sommets u et v sont dans des arbres dirents Ay et Ay on a alors
un
hemin altern amliorant qui mne de y y , on amliore alors le
ouplage
et on ee
tue une nouvelle tape de l'algorithme
Si
es deux sommets u et v sont dans le mme arbre Ay alors on
onstruit un
y
le qui
ontient
es deux sommets et des artes de l'arbre. Soit P le
hemin
de l'arbre Ay qui relie le
y
le y , en inversant les artes qui sont dans C sur
e
hemin et
elles qui ne le sont pas on obtient un
ouplage C ayant le mme
nombre d'artes que C et pour lequel est un
y
le rdu
teur. On
ontra
te
on
al
ule un
ouplage maximal sur le graphe
ontra
t et on ajoute
elui-
i
un
ouplage de pour obtenir un
ouplage maximal de G.
On peut vrier que si au
une arte ne relie des sommets situs distan
e paire d'un y
dans les arbres
onstruits alors le
ouplage C est maximal.
58
3. FLOTS ET COUPLAGES
Proposition
3.4.
CHAPITRE 4
Programmation linaire
Le problme trait dans
e
hapitre peut se prsenter sous la forme image suivante : une
entreprise fabrique des produits P1 , P2 , . . . , Pn l'aide de matires premires M1 , M2 , . . . , Mm .
Chaque unit du produit Pj rapporte un bn
e cj et utilise ai,j quantit de la matire
premire Mi ; la matire Mi est disponible au total en quantit bi pour l'ensemble des
produits. La question question pose
onsiste dterminer pour tout j la quantit xj de
produit Pj produire de faon raliser un bn
e maximal tout en satisfaisant aux
ontraintes de quantit.
Nous nous attaquons i
i l'un des
hapitres les plus
lassiques de l'optimisation, dans
le
as o les variables
onsidres sont des rationnels la re
her
he de l'optimum se fait
par un algorithme e
a
e. Dans le
as o l'on
her
he une solution valeurs entires le
problme est beau
oup plus
omplexe et on verra qu'il se situe dans la
lasse des problmes
NP-
omplets.
Pn
Pn
On doit ainsi maximiser
j=1 cj xj en satisfaisant les m
ontraintes
j=1 ai,j xi bj .
On voit bien que
ette question se ren
ontre trs souvent dans la pratique, d'ailleurs les
equipes de
her
heurs qui ont ralis des logi
iels e
a
es dans
e domaine ont obtenu
d'ex
ellents rsultats
ommer
iaux.
George B. Dantzig a t un des pionniers du domaine et a le premier propos une
mthode de rsolution pour
e qui reste un des grands paradigmes de la modlisation et
de la programmation (
e terme dsigne dans le
ontexte l'organisation des
al
uls et non
pas la ralisation d'un programme informatique).
Si l'on se pla
e d'un point de vue de mathmati
ien, il s'agit de trouver un point
dans un polydre de Rn (donn par un systme de m inquations) point qui optimise une
fon
tion linaire des
oordonnes (appele fon
tion
onomique). Ce problme peut don
paratre parti
ulirement lmentaire
eux des mathmati
iens qui ne se posent pas la
question de
onnatre l'e
a
it des mthodes de
al
ul permettant d'obtenir la solution
d'un problme.
En eet, quelques
onsidrations simples montrent que si le polydre est born, l'optimum est atteint sur un de ses sommets. Il surait don
de rsoudre tous les systmes non
singuliers de n quations tires de
es m inquations, et aprs avoir vri que la solution
satisfait les autres inquations, de tabuler la valeur de la fon
tion
onomique en
e point.
Le problme est alors termin en re
her
hant la valeur maximale de la table.
Pour
e qui
on
erne notre point de vue algorithmique, on ne saurait se
ontenter
de
ette faon de traiter le problme
ar il faut se poser des questions de
omplexit,
l'algorithme envisag demande un nombre exponentiel de
al
uls : on doit rsoudre un
59
60
4. PROGRAMMATION LINAIRE
nombre de systmes gal au
oe
ient binomial n qui
rot exponentiellement ave
m et
n.
Aprs plusieurs annes de re
her
hes dans
e domaine on a pu montrer que
e problme est exemplaire
ar il gure parmi les
as limites qui in
arnent les barrires et sauts
de
omplexit, on a longtemps pens qu'il n'existait pas d'algorithme polynomial pour le
rsoudre et maintenant on sait que tout en tant polynomial il reste un des plus
ompliqus de sa
atgorie. Par ailleurs, l'algorithme non polynomial
lassique, la mthode du
simplexe , reste exprimentalement ex
ellent (Dan Spielman a d'ailleurs r
emment montr
qu'ave
une
ertaine distribution de probabilit des donnes la mthode est en moyenne
polynomiale). Par
ontre les mthodes polynomiales demandent un gros eort de
omprhension des gomtries sous-ja
entes et sont pour les valeurs usuelles de m et n souvent
moins e
a
es en pratique que l'algorithme du simplexe. Il faudrait que m et n
roissent
onsidrablement pour qu'elles deviennent meilleures que la mthode du simplexe, mais
dans
e
as toutes les mthodes
onnues sont impratiquables.
1. Prsentation du problme
Etant donns des nombres ai,j , bi , cj , pour 1 i m, 1 j n, soient x1 , x2 , . . . , xn
des in
onnues astreintes un ensemble de m
ontraintes pour 1 i m :
1jn
ai,j xj bi
On peut supposer que l'on travaille soit ave
des rels soit ave
des rationnels, les
rsultats thoriques donns
i-dessous sont valables dans les deux
as ; toutefois, lorsqu'on
s'interesse aux questions de
omplexit, il vaut mieux se pla
er dans le
orps des rationnels
ar on peut alors mesurer la taille des donnes par le nombre de bits n
essaires pour
reprsenter le numrateur et le dnominateur.
On
her
he dans le domaine ainsi dni les points qui optimisent une forme linaire,
appele fon
tion
onomique ou fon
tion d'obje
tif,
(x) =
n
X
cj xj
j=1
On rit usuellement le problme de faon synthtique au moyen d'une notation matri ielle :
(P)
max cx
Ax b
o c, x Rn , b Rm et A Rmn .
Dans la suite on adopte la notation pratique qui
onsiste e
rire u v pour deux
ve
teurs de Rn pour dire que pour tout 1 j n on a ui vj , ainsi u 0 signiera que
toutes les
oordonnes de u sont positives ou nulles.
On appellera fon
tion
onomique la fon
tion qui au point x de Rn asso
ie le rel cx.
2. UN EXEMPLE SIMPLE
61
Gomtriquement,
haque
ontrainte dni un hyperplan, l'ensemble de points qui satisfont la
ondition Ax b est alors l'interse
tion d'un nombre ni de demi-espa
es dnis
par les hyperplans donns par les
ontraintes. On appelle un tel domaine un polydre
le problme se traduit en la re
her
he du maximum de la forme linaire (x) = cx
l'intrieur du polydre R donn par Ax b, polydre que l'on appelera polydre des
ontraintes.
2. Un exemple simple
Voi
i une question simple qui fait appel la programmation linaire :
Un petit euriste, vendeur la sauvette,
onfe
tionne des bouquets de type A ou B
partir de roses, de tulipes et de lys. Chaque bouquet
ontient 6 roses, et des tulipes, les
bouquets de type B
ontiennent aussi deux lys. Les bouquets de type A
ontient 9 tulipes,
alors que
eux de type B n'en
ontiennent que 3. Les bouquets de type A rapportent 3
euros au euriste alors que
eux de type B lui rapportent 2 euros. Un matin le euriste
reoit une livraison de 45 douzaines de roses et de tulipes et de 10 douzaines de lys. Comme
'est la Saint Valentin le euriste est sr de vendre tous ses bouquets. Combien de bouquets
de
haque type doit-il
onfe
tionner an de rendre son bn
e maximum ?
Cette question se traduit par le problme linaire suivant, (en notant x1 le nombre de
bouquets de type A
onfe
tionns et x2 le nombre de
eux de type B ) :
6x1 + 6x2
9x1 + 3x2
2x2
540
540
120
la premire
ontrainte porte sur le nombre de roses, la se
onde sur
elui des tulipes la
dernire sur
elui des lys.
Et il faut rendre maximum la quantit :
3x1 + 2x2
Ce
i se simplie en :
x1 + x2
3x1 + x2
x
2
90
180
60
max(3x1 + 2x2 )
Les
ontraintes peuvent tre reprsentes sous forme de droites du plan
artsien dans
un repre (x1 , x2 ). Le polydre des
ontraintes est alors un polygone qui est reprsent
en ha
hur sur la gure
i-dessous. Il y a 5 sommets sur
e polygone O, V1 , V2 , V3 , V4
e
sont les interse
tions des hyperplans de
ontraintes qui sont i
i des droites. On peut
al
uler la valeur de la fon
tion
onomique en
ha
un des sommets elle vaut respe
tivement
0, 180, 225, 210, 120. On peut aussi remarquer, en traant des droites de pente gale
elle
de la fon
tion
onomique, que
'est V2 qui ralise l'optimum. Celui-
i peut aussi tre atteint en partant de O et en poursuivant soit par V1 puis V2 soit en par
ourant de l'autre
62
4. PROGRAMMATION LINAIRE
ot V4 , puis V3 , enn V2 . On a ainsi par
ouru une suite de sommet, prenant
haque pas
un voisin amliorant le bn
e, jusq' obtenir un sommet dont au
un voisin n'amliore
la fon
tion
onomique. Cette dernire faon de
her
her l'optimum se gnralise un
as
quel
onque et devient l'algorithme du simplexe.
V4
V3
V2
Fig. 1.
V1
les ontraintes :
Ax b.
Ainsi R est un polydre,
'est dire un domaine de Rn interse
tion d'un nombre ni de
demi-espa
es, on appelle habituellement polytope un polydre born 1.
Un polydre est un ensemble
onvexe,
'est dire que si x, y R alors le segment
d'extrmits x, y ,
'est dire l'ensemble des points x + (1 )y , pour rel
ompris entre
0 et 1, est in
lus dans R. Cette proprit de
onvexit simplie grandement la re
her
he
d'un optimum,
omme on le verra dans le thorme qui suit.
Dans la suite on utilise les dnitions suivantes : une fa
e F du polydre R est un
ensemble de points de R qui n'est
oup par au
un des segments ayant pour extrmits
deux points de R, ainsi un segment qui
ontient deux points de F est in
lus dans F ,
Un sommet est une fa
e rduite un point. C'est un point de R qui n'appartient
au
un segment de R dont il n'est pas une des extrmits.
On vrie qu'un sommet est l'interse
tion de n parmi les m hyperplans qui dnissent
R (donns par les lignes de la matri
e A). On dit que deux sommets sont adja
ents si le
segment qui les joint est une fa
e, il est alors appel arte du polydre.
1C'est aussi l'enveloppe
onvexe d'un nombre ni de points
3. PRINCIPES GNRAUX
63
Les proprits suivantes du systme P permettront de donner les prin
ipales ides d'un
algorithme pour la rsolution.
Proposition 4.1. L'optimum du systme P , se trouve ou bien l'inni ou bien est
atteint par l'un des sommets du polydre. Un sommet x qui n'est pas optimal est adja
ent
un sommet y tel que cy cx.
Ide de la preuve :
Soit xo un point o l'optimum est atteint. Considrons l'hyperplan H qui passe par x0
et dont la dire
tion est dnie par c. En raison de l'optimalit de x0 , le polydre R est situ
d'un mme
ot de H . Ainsi H
ontient une fa
e de R et don
un sommet.
D'autre part si x est un sommet de R, soit H l'hyperplan passant par x et de dire
tion
dnie par c. Si tous les sommets y adja
ents y sont d'un meme
ot de H alors il en est
de mme de tous le points de R, ainsi l'optimum est atteint en x.
P0
du
= 0;
(Pi ) faire
{Pi+1 = Q; ++i ;
voisin de
Pi
Pi
donne l'optimum.
Il reste en
ore pas mal de points pr
iser pour transformer
e
i en un vrai algorithme
(en parti
ulier qui termine), toutefois la
orre
tion du prin
ipe est vidente
ar il s'agit
d'une transposition quasi mot mot de la proposition 4.1
i-dessus.
Enumrons les questions auxquelles il faudra rpondre :
Comment dterminer si le domaine R est vide ? On peut noter que si tous les
oe
ients de b sont positifs,
e qui est souvent le
as dans la pratique, alors l'origine est
un point de R puisque dans
e
as Ax = 0 b. La question se pose don
si b
ontient
des
omposantes ngatives.
Trouver un sommet de R. L en
ore si tous les
oe
ients de A, b et de c sont
positifs alors le problme est ais,
ar il sut d'ajouter les
ontraintes x 0 qui
seront satisfaites par toute solution optimale ; dans
e nouveau problme, qui admet
le mme optimum que le pr
dent, l'origine est un sommet du polydre. Si A et c
64
4. PROGRAMMATION LINAIRE
ont des
oe
ients ngatifs mais que
e n'est pas le
as pour b, il faut alors doubler
le nombre de variables en posant xi = yi zi , l'ajout des
ontraintes yi , zi 0 ne
modie pas l'optimum et
ette fois en
ore l'origine est un sommet du polydre. Si
b a
ertains
oe
ients ngatifs, la question devient plus
omplexe, on verra plus
loin
omment la rsoudre en traitant un problme linaire auxiliaire pour lequel on
onnatra un sommet.
Dterminer si l'on peut trouver une dire
tion suivant laquelle la fon
tion cx tend vers
l'inni l'interieur de R. Cette question di
ile sera traite au paragraphe suivant
dans le
as o b = 0 et gnralise par la suite.
Comment viter de bou
ler indniment sur des sommets ayant mme valeur de la
fon
tion
onomique ? Cette question sera aussi traite au paragraphe suivant.
Trouver une mthode simple programmer permettant de par
ourir tous les sommets
du polydre adja
ents un sommet donn et trouver l'un de ses voisins qui amliore
la fon
tion
onomique. Ce
i est l'objet de l'algorithme du simplexe, il sera d
rit
dans un paragraphe qui lui est
onsa
r.
4. Le
as b = 0
Dans le
as o tous les bi sont nuls le problme se simplie
onsidrablement, on vite
en eet toutes les questions lies au par
ours des sommets du polydre et on se limite
dterminer s'il n'y a pas une dire
tion o la fon
tion
onomique tend vers l'inni.
On note en eet que l'origine est un point qui satisfait les
ontraintes, de plus la valeur
de la fon
tion
onomique est nulle l'origine. On peut aussi noter que s'il existe un x tel
que cx > 0 et Ax 0 alors pour tout rel > 1 on a Ax 0 et cx = cx > cx, ainsi la
valeur de cx peut tre rendue aussi grande que l'on veut.
On peut rsumer
es remarques en notant qu'il y a deux situations possibles lorsque
b = 0 ; ou bien la solution optimale est l'origine et l'optimum est 0, ou bien il existe des
points l'intrieur du polydre qui donnent une valeur aussi grande que l'on veut cx.
Etant donne une matri
e A et un ve
teur c on
her
he don
savoir s'il existe un u
tel que Au 0 et cu > 0.
Noter que si c n'est pas une
ombinaison linaire des lignes L1 , L2 , . . . , Lm de A, on
peut trouver un tel u. Il sut en eet de prendre u orthogonal l'espa
e engendr par les
lignes de A et non orthogonal c, ave
uc > 0.
On se
ontente don
d'examiner le
as o c est une
ombinaison linaire des lignes de
A. On est alors aid par le thorme suivant dont la preuve
ontient un algorithme de
d
ision.
Dans la suite lorsqu'on
rit v 0 pour un ve
teur donn
ela signie que toutes les
oordonnes sont positives ou nulles, une
onvention similaire vaut pour v 0.
4.1.
(1)
4. LE CAS
b=0
65
y 0, tel que yA = c
(2)
Dmonstration. Il est assez fa
ile de vrier que les deux assertions ne peuvent pas
tre toutes les deux satisfaites, en eet si (2) est satisfaite, alors pour tout u tel que Au < 0
on a, puisque y 0, yAu 0 mais
omme yA = c
ela donne cu 0 et (1) ne saurait tre
satisfaite.
La preuve du thorme est ensuite obtenue en utilisant l'algorithme suivant qui donne
pour rsultat soit un u qui vrie (1) soit un y qui vrie (2) :
Soit
Li , i I
A,
exprimer
c=
yi Li
iI
faire
tel que
Si
yi < 0
Lj u = 0
Li u 0
pour
pour
j I, j 6= h
i = 1, . . . , m
et
alors
yh < 0 et
Lh u = 1
soit
le ve teur de
Rn
yi
Posons c =
iIp yi Li et soit u la valeur de u trouve lorsque r entre dans I , on a alors
u c = yh Lh u > 0.
Mais on vrie que pour i Ip , i < r on a yi > 0 puisque r tant sorti de I = Ip
'est
le plus petit tel que yr < 0. De plus u Li < 0 puisque r , lorsqu'il entre dans Iq est le plus
petit tel que u Lr > 0. Ainsi pour i Ip , i r on a yi u Li 0.
D'autre part si i Ip , i > r , puisque r est le plus grand indi
e sorti, i est aussi dans
Iq ; et u a t
hoisi de faon telle que Li u = 0. Ainsi pour
i Ip , i > r on a yi uLi = 0.
P
On obtient la
ontradi
tion en vriant que 0 < u c =
iIp yi u Li 0.
Dmonstration.
66
4. PROGRAMMATION LINAIRE
Le
orollaire qui suit est une autre faon de lire
e thorme, il peut tre aussi
onsidr
omme une version simplie du prin
ipe fondamental de dualit qui sera vu dans le
paragraphe suivant.
Corollaire
4.1.
(P)
(D)
max {cx | Ax 0}
y, y 0 | yA = c
admet une solution nie alors il en est de mme pour l'autre et 0 = max{cx | Ax 0}.
Si max{cx | Ax 0} admet une solution nie alors elle est telle
que cx = 0, en eet x = 0 est tel que Ax 0 et donne cx = 0. S'il existe un x tel que
Ax 0 et cx > 0 alors en multipliant x par un rel > 1 on vrie que l'ensemble des
valeurs de cx n'est pas born et il n'y a pas de solution nie. Le thorme 4.1 montre enn
que l'existen
e d'un y 0 tel que yA = c est quivalente Ax 0 cx 0.
Dmonstration.
Corollaire
si pour tout y :
4.2.
5. Le
as b quel
onque
5.1. Thorme de dualit. On a le rsultat fondamental suivant qui permettra de
rempla
er la re
her
he d'un maximum par
elle d'une solution un systme d'inquations.
Il permet aussi de vrier, dans de nombreuses situations, que l'on bien obtenu l'optimum
un problme.
Thorme
4.2.
max{cx | Ax b}
min{yb | y 0, yA = c}
5. LE CAS
QUELCONQUE
67
Si P n'admet pas de solution par
e qu'il existe x tel que Ax b et cx aussi grand que
l'on souh aite, il ne peut alors y avoir de y 0 tel que yA = c
ar on a : cx = yAx yb.
On a ainsi vri que si l'un des problmes n'a pas de point admissible, alors l'autre
a un optimum qui est inni ; supposons don
que les deux admettent un point admissible
nots x et y respe
tivement, alors on a :
cx =
yAx
cx yb
Ainsi pour dmontrer l'galit entre les deux optima il sut de vrier qu'il existe deux
points admissibles x et y tels que y b cx . Soit dit de manire dirente que le systme
suivant admet une solution :
yb cx, Ax b, yA c, yA c, y 0
Ce systme s'
rit sous forme matri
ielle suivante, o tA dnote la transpose de A.
b
A
0
0
c tb
x
t
t
t
c
0
A
c
0 tA y
0
0 Id
Ce qui peut s'
rire
A z b
ave
z = (x,t y). On utilise alors le
orollaire 4.2 ; il faut ainsi vrier que pour tout z 0
tel que zA = 0 on a zb 0.
Soit z = (u, , w , w , v) tel que zA = 0, on a ainsi :
uA c = 0
Le al ul de zb donne :
tb + w tA w tA v = 0
zb = ub + w tc w tc
68
4. PROGRAMMATION LINAIRE
Comme est un rel positif ou nul on distingue le
as o il est stri
tement positif de
elui
o il est nul.
Si > 0 on a alors :
zb = 1 ub + (w w ) tc
Soit en utilisant ub =t btu et tb = v (w w )t !A :
zb = 1 (v (w w ) tA) tu + (w w ) tc
Et omme tAtu = tc :
zb = 1 v tu
qui est positif puisque , v et u le sont.
Si = 0, on a uA = 0 et v = (w w ) tA, de plus
zb = ub + w tc w tc
On utilise le fait que les deux systmes P et D ont des points admissibles x et y tels
que : yA = c et Ax b,
e
i donne :
zb = ub + (w w ) tA ty = ub + v ty
plans orrespondants.
5. LE CAS
QUELCONQUE
69
Ce qui donne
AI x = bI , AJ x bJ , yI = cA1
I , yJ = 0
cx = yI AI x = yI bI
Mais puisque yJ = 0 on obtient cx = yb, et y satisfait les
ontraintes (yA = c) du problme
dual D ; et d'aprs le thorme de dualit, x et y sont les optima de P et D .
A(x Uh ) b AUh b
bs Ls x
Uh
Ls Uh
En eet si i I, i 6= h on a :
Li x = Li x +
bs Ls x
Li Uh
Ls Uh
Ls x = Ls x +
bs Ls x
Ls Uh = bh
Ls Uh
ainsi x est bien l'interse
tion des hyperplans dnis par les lignes dont les indi
es sont
dans I {h} {s}.
bs Ls x
Lj Uh
Ls Uh
Mais ou bien Lj Uh < 0 et Lj x < Lj x bj ou bien Lj Uh satisfait Lj Uh Ls Uh soit :
Lj x = Lj x +
bs Ls x
bj Lj x
Ls Uh
Lj Uh
Ce qui donne
Lj x Lj x + (bj Lj x) bj
70
4. PROGRAMMATION LINAIRE
x = cx +
bs Ls x
cUh
Ls Uh
6. Un exemple
On
onsidre le problme :
On pose I = {1, 2, 3} et on
Etape 1.
0
AI =
2
x1
0
x3
0
2x1 + x2 x3
4
3x1 2x2 + x3 2
x1 2x2
x1 + x3
8
max x1 + x2 + x3
a le point (0, 4, 0) qui est ralisable
0 0
1
0 0
0 1 AI 1 = 2 1 1
1 1
0 1 0
1 0 0
1 0 0
1 1 AI 1 = 1
1 1
AI = 2
1 0 1
1 0 1
1
Etape 2.
1
1 . Le produit de
ette
olonne par l'oppose
orrespondante dans AI
1
de
ha
une des lignes de la matri
e A donne 1, 1, 0, 6, 3, 0. Il y a deux valeurs positives
1
est alors
71
bj Lj x
vj
qui vaut 3 pour j = 4 et 9.66 pour j = 5 on retient don
la ligne 4 et on obtient
I = 3, 4, 6.
2
1 1
2
1 1
1
AI = 3 2 1 AI 1 = 4 1 5
6
2 1 7
1 0
1
Etape 3.
1
(8, 1, 13)
6
Reste examiner le problme lorsque
ertains des bi sont ngatifs. On introduit alors
pour
ha
un des bi ngatifs une nouvelle variable ti , en plus du ddoublement de xi en
xi yi
onsidr plus haut.
On
rit alors les
ontraintes P sous la forme plus pratique manipuler suivante (attention dans
ette notation AJ est une matri
e extraite de A de mme que bJ qui est
extrait de b ) :
AI
AJ
bI
bJ
x0
AI
0
AJ Id
[x , t]
bI
bJ
x, t 0
72
4. PROGRAMMATION LINAIRE
Lj x tj bj
Il existe un x satisfaisant
P Ax b si et seulement si le programme ave
les tj asso
i
admet un optimum gal
jJ bj :
En eet si x est un point du polydre de P alors on a : bj Lj x, puis en posant
tj = Lj x bj on a tj 0 et
jJ (Lj x tj ) = jJ bj
R
iproquement, si l'optimum de P est jJ bj ,
omme tous les Lj x tj sont positifs
ou nuls on a Lj x tj = bj pour tout j , ainsi les
ontraintes de P sont satisfaites.
Ax b, x 0, max cx
iI
tel que
i > 0
faire
73
Pour tout
L'opration de pivot met jour les tableaux , , qui deviennent , , par les
formules qui suivent.
Pour :
h,s
=
1
,
s,h
s,i
s,h
s,i
,
= j,i j,h
s,h
i I, i 6= h, h,i
=
j J, j 6= s, i I, i 6= h j,i
j,s
=
j,h
s,h
Pour :
h =
s,i
et
s,h
j J, j 6= s, j = j j,h
s
s,h
Pour :
s =
h
et
s,h
i I, i 6= h i = i h
s,i
s,h
En fait
ette gestion de tableaux provient d'une autre
riture des
ontraintes obtenues
en introduisant des nouvelles variables xn+i , une pour
haque hyperplan des
ontraintes.
Ces
ontraintes sont alors
rites
omme un systme d'quations ; la
ontrainte Li x bi
donnant l'quation : xn+i = bi Li x.
A
haque tape
haque variable xj pour j J satisfait l'quation :
xj = j iI j,ixi
cx + iI i xi
Au
ours de
haque tape on dtermine la variable xh qui sort de I pour entrer dans
la base J
omme une de
elles qui
orrespond un ci positif, et la variable xs qui sort de
J pour entrer dans I
omme
elle qui
orrespond un s positif minimum.
Le pivot, qui
orrespond au passage d'un des sommets du polydre l'un de ses sommets
adja
ents, est ainsi un
hangement de variable
onsistant exprimer xh en fon
tion de xs
et des autres variables xi pour i I .
Les transformations reviennent exprimer alors toutes les variables xj , j J en fon
tion
des xi , i I en utilisant les quations de l'tape pr
dente.
74
4. PROGRAMMATION LINAIRE
Illustrons
e
i sur notre exemple qui peut s'
rire aprs avoir rempla
x2 (qui peut
tre ngatif) par x2 x4 :
0
=
=
=
=
max
xi
5
x6
x
i = 1, 2, 3, 4, 5, 6, 7, 8
4 (2x1 + x2 x4 x3 )
2 (3x1 2x2 + 2x4 + x3 )
5 (x1 2x2 + 2x4 )
8 (x1 + x3 )
cx = (x1 + x2 x4 + x3 )
On
hoisit un xi qui apparat ave
un
oe
ient positif dans cx par exemple x1 (ainsi
h = 1) et on
al
ule le s minimal parmi les positifs,
'est i
i 6 = 32 , don
s = 6.
On exprime x1 l'aide des autres variables en utilisant l'quation donnant x6 ; on
obtient ainsi :
2 1
2
2
1
x6 + x2 x4 x3
3 3
3
3
3
On reporte dans les quations donnant x5 , x7 , x8 pour obtenir :
x1 =
+ 32 x6 73 x2 + 37 x4 + 35 x3
x5 =
8
3
x7 =
13
3
+ 31 x6 + 43 x2 43 x4 + 13 x3
x8 =
26
3
13 x6 + 32 x2 23 x4 34 x3
2
3
13 x6 + 35 x2 53 x4 + 32 x3
On
hoisit h = 2
ar x2 a un
oe
ient positif dans cx ; le seul i non ngatif est alors
5 , ainsi on tire la valeur de x2 dans l'quation qui donne x5 ; on obtient :
x2 =
3
5
8 2
+ x6 x5 + x4 + x3
7 7
7
7
x1 =
10
7
17 x6 27 x5 + 71 x3
x7 =
41
7
+ 57 x6 74 x5 + 97 x3
x8 =
66
7
17 x6 27 x5 76 x3
18
7
17 x6 + 75 x5 +
13
x
7 3
9. PROBLMES QUIVALENTS
75
x3 = 11 16 x6 31 x5 76 x8
x1 = 3 16 x6 31 x5 16 x8
x2 = 9 + 16 x6 23 x5 65 x8
x7 = 20 + 61 x6 x5 23 x8
c
= 23 16 x6 34 x5
13
x
6 8
Dans
e systme, tous les
oe
ients de c sont ngatifs, on a atteint l'optimum qui est
bien,
omme il a t
al
ul par la version matri
ielle du simplexe, au point (3, 9, 11).
9. Problmes quivalents
On montre que si l'on a un algorithme polynomial qui rsout l'un des problmes suivants, alors il en existe un pour tous les autres. De fait on donne des rdu
tions entre
problmes, rdu
tions qui peuvent tre trs utiles lorsque l'on veut rsoudre l'un d'entre
eux. Dans
e qui suit on suppose que tous les nombres qui interviennent dans les matri
es,
ve
teurs ou autres sont des rationnels ; maximum des logarithmes de tous les numrateurs
et du dnominateurs dtermine la taille du problme.
Dans l'ennon
qui suit rsoudre max{cx | Ax b} signie dterminer si
e maximum
est ni, inni ou si le problme est non ralisable. Dans le premier
as donner un x qui
fournit le maximum, dans le se
ond donner un x tel que Ax b et un y 0 tel que yA = 0
et cy > 0.
Thorme 4.3. Les problmes suivants sont polynomialement quivalents dans le sens
o s'il existe un algorithme en temps polynomial rsolvant l'un d'entre eux il existe aussi
un algorithme polynomial pour rsoudre
ha
un des autres.
Dterminer s'il existe un x tel que Ax b
Dterminer s'il existe un x 0 tel que Ax = b
Trouver un x, s'il existe, tel que Ax b
Trouver un x 0, s'il existe, tel que Ax = b
Etant donn un nombre , dterminer s'il existe un x tel que Ax b et cx
Rsoudre max{cx | Ax b}.
Rsoudre max{cx |x 0, Ax b}
Rsoudre max{cx |x 0, Ax = b}
Rsoudre min{cx | Ax b}
Rsoudre min{cx |x 0, Ax b}
Rsoudre min{cx |x 0, Ax = b}
Dmonstration.
76
4. PROGRAMMATION LINAIRE
max cx
(P) Ax b .
x0
(D)
min yb
,
y 0, yA = c
Le thorme de dualit indique que la valeur maximale atteinte par le primal est gale
au minimum atteint par le dual. Ainsi, si par
han
e on obtient un x et un y qui satisfont
les
ontraintes et tels que cx = yb alors on peut armer que x est optimum pour le primal
et y optimum pour le dual. En fait il sut de trouver un x et un y qui satisfont yb cx,
ar l'ingailit oppose est
onsquen
e des hypothses.
On peut aussi donner une signi
ation intuitive aux valeurs de la solution duale :
4.2.
Exemple : Pour le euriste dont nous avons optimis les gains, la solution du problme
dual est y1 = 23 , y2 = 12 , y3 = 0. Si on
ommunique
ette information sous
ette forme au
euriste
ela ne lui apportera pas grand
hose, sauf s'il a fait des tudes suprieures. Par
ontre si on lui dit Si vous augmentez le nombre de roses de a et le nombre de tulipes
de b votre augmentation de bn
e sera de a+3b
ette nouvelle information lui ouvrira
2
probablement de nouvelles perspe
tives dans la gestion de son entreprise. Noter qu'on
n'a pas vraiment besoin de lui dire qu'une augmentation de la fourniture de lys ne lui
apporterait au
un nouveau revenu ; il pouvait en eet le remarquer de lui mme, sa
hant
que lorsqu'il a
onfe
tionn ses 45 bouquets de type A et autant de type B , il lui rest en
sto
k une trentaine de lys.
11. Complexit du simplexe
Con
eptuellement simple, la mthode voque depuis le dbut du
hapitre s'est rvle
dli
ate implanter dans le dtail. Il se trouve de plus que
ertains problmes vont for
er
le programme passer par quasiment tous les sommets du simplexe qui, en dimension n,
peuvent tre au nombre de 2n .
77
10nj xj
max
Pi1j=1 ij
(KM ) (2 j=1 10 xj ) + xi 100i1 , pour (1 i n) .
xj 0, pour (1 j n)
Prenons par exemple les
as n = 3 et rsolvons le systme en faisant systmatiquement
le pivot sur la variable dont le
oe
ient dans la fon
tion d'obje
tif est le plus lev. Le
problme s'non
e don
:
x1
(KM ) 20x1 + x2
200x1 + 20x2 + x3
x ,x ,x
1
2
3
1
100
.
10000
0
On ommen e par mettre e systme en forme normale ajoutant les variables positives
x4 = 1 x1
.
(KM ) x5 = 100 20x1 x2
x1 , x2 , x3 , x4 , x5 , x6 0
On ee
tue don
le pivot sur x1 , variable qui est dans la base,
e qui donne d'aprs la
premire quation
et il faudra en ore 5 pivots, que le le teur est onvi ee tuer, avant d'obtenir
sur lequel il n'est plus possible d'amliorer la fon tion d'obje tif et qui donne l'optimum.
78
4. PROGRAMMATION LINAIRE
Il est un peu plus dur de montrer en toute gnralit que le
ot est exponentiel.
Cependant
'est bien
e qui se passe.
Plus gnralement, il a t montr pour toutes les stratgies naturelles de sle
tion du
pivot qu'il existait des systmes pour lesquels la stratgie obligeait par
ourir tous les
sommets du simplexe, ruinant ainsi les espoirs de
omportement polynomial.
Ax b,
(1)
o x Rn , b (R+ )m et A Rmn .
On notera ai le ve
teur
orrespondant la i-me ligne de A, et qui est don
un ve
teur
ligne.
Le prin ipe.
Ax b + 2L ,
(2)
79
viole par exemple, on restreint l'ellipsode paralllement
ette fa
ette : le le
teur remarquera une
ertaine analogie ave
la mthode du simplexe.
On
onstruit don
une suite de points z0 , z1 , . . . , zp Rn et de matri
es dnies positives
E0 , E1 , . . . , Ep Rnn , par r
urren
e,
omme suit.
Le premier ellipsode est dni par :
z0 = 0, E0 = 2L I.
la k -ime tape on pro
de aux oprations suivantes :
tester si zk satisfait le systme (2) et alors s'arrter ;
sinon, soit i l'indi
e d'une ingalit viole par zk , ati zk > b[i] ;
al
uler
zk+1 = zk
n2
= 2
n 1
E aT
1
p k i ,
n + 1 ai Ek aTi
2 (Ek aTi )T (Ek aTi )
Ek+1
Ek
.
n+1
ai Ek aTi
On dnit ainsi un ellipsode de
entre zk+1 , dont les points satisfont :
1
Ek+1 = {x | (x zk+1 ) Ek+1
(x zk+1 )T 1};
et ellipsode
ontient les points de Ek qui sont en
ore sus
eptibles d'tre solution. En
parti
ulier, si l'ensemble des solutions est non vide, tous les Ek
ontiennent la boule de
solutions de rayon 22L initialement situe dans E0 .
On observe que le volume des ellipsodes d
rot
haque tape d'un fa
teur major par
e1/(2n+2) . En
onsquen
e, si rien n'arrte l'itration
e volume deviendra plus petit que
elui de la boule
her
he de rayon 22L , savoir aprs Cn2 L itrations, pour une
onstante
C.
Si l'algorithme n'a pas permis
e stade de trouver un
entre d'ellipsode solution du
systme,
'est que le systme n'en a pas.
Dtails de ralisation.
Dans la pratique, il faut prendre en
ompte les erreurs d'arrondi et augmenter signi
ativement la pr
ision des
al
uls. On ne peut
ependant pas aller
jusqu'
al
uler en nombres rationnels,
ar alors la taille des fra
tions risquant de
rotre
exponentiellement, on remettrait en
ause le
ot polynomial en nombre d'itrations. De
fait, il est possible de trouver un
ompromis et de
onserver le
ara
tre polynomial de
l'algorithme. Remarquons que
ette mthode est presque tout le temps plus
oteuse que
elle du simplexe.
12.0.2. La mthode des fon
tions d'obje
tif glissantes. On
onsidre de nouveau un
problme d'optimisation :
(P + )
max vx
.
Ax b
On
ommen
e par dterminer une solution du systme d'ingalits asso
i de type (2),
omme d
rit plus haut. On dtermine ainsi un point z .
On ajoute alors l'ingalit vx vz aux
ontraintes et on
ontinue d'itrer le pro
essus, y
ompris pour amliorer le z de dpart.
80
4. PROGRAMMATION LINAIRE
Chaque fois qu'une nouvelle solution xk qui satisfait vxk vz est trouve, on pose z := xk
et on
ontinue
omme plus haut.
On rsout ainsi le problme (3) en temps polynomial, mais
e polynme dpend de la
pr
ision initiale L. De plus,
omme dj mentionn,
ette dpendan
e fait qu' en pratique
la mthode de Kat
hian n'est pas vraiment
omptitive.
S = {x | x 0, ||x|| = 1},
P
o v, x Rn , b Rm et A Rmn et ||x|| =
x[i] est la somme des
oordonnes de x.
Deuxime partie
Complexit
Prambule
La premire partie de
e
ours a prsent des paradigmes qui
onduisent des algorithmes e
a
es. L'objet de
ette se
onde partie est de prsenter des situations moins
agrables, o l'on peut lgitimement supposer qu'il n'existe au
un algorithme fon
tionnant
en temps polynomial pour rsoudre le problme.
Le
hapitre 5 tudie la
omplexit proprement dite. Alors que l'algorithmique tente
d'tablir des rsultats positifs, savoir
e problme peut tre rsolu en temps polynomial , l'obje
tif de la thorie de la
omplexit est d'obtenir des rsultats ngatifs. Les
rsultats absolus (
omme dans le
as du tri) sont trs rares ; on aborde don
la question de
la borne infrieure en
omparant la di
ult de dirents problmes. C'est tout le sens
de la notion de rdu
tion, fondamentale dans le
hapitre 5. Cela
onduit une
lassi
ation des problmes en
lasses de
omplexit selon leur niveau de di
ult ; l'intrieur
d'une
lasse, on essaie de mme d'isoler les problmes les plus di
iles de
ette
lasse,
reprsentatifs de la di
ult inhrente la
lasse. Ces problmes sont dits
omplets.
On s'intressera essentiellement la
lasse NP des problmes solubles en temps polynomial non dterministe. L'obje
tif prin
ipal du
hapitre 5 est de prsenter un
hantillon
de problmes NP-
omplets,
e qui permet d'illustrer largement la te
hnique de rdu
tion.
Comme l'heure a
tuelle on ne
onnat au
un algorithme e
a
e pour les problmes
NP-
omplets, et que
es derniers interviennent pourtant frquemment dans la vie
ourante,
on tudiera dans le
hapitre 6 divers angles d'attaque pour les problmes di
iles. D'une
part, nous prsenterons une mthode
ompltement gnrique pour tous les problmes de la
lasse NP, le ba
ktra
king, qui, dans le
as d'un problme de d
ision, peut
onduire une
rponse dans un temps raisonnable si une bonne proportion des
hoix non-dterministes
onduisent une rponse positive. Le reste du
hapitre est
onsa
r l'tude de problmes
d'optimisation, qui
her
hent, en un
ertain sens, trouver la meilleure solution un
problme NP-
omplet. Une variante du ba
ktra
king, le bran
h-and-bound sera prsente
dans
e
ontexte ; nous tudierons ensuite les algorithmes d'approximation, qui permettent,
en temps polynomial, de trouver non pas la solution optimale, mais une solution dont la
qualit peut tre estime. Tous les problmes NP-
omplets ne sont pas gaux vis--vis de
l'approximation,
ar
ette dernire n'est pas prserve par les rdu
tions. Nous montrerons
ainsi que
ertains problmes s'appro
hent de faon satisfaisante, tandis que d'autres sont
rtifs toute forme d'approximation.
Le
hapitre 7, quant lui, aborde le problme d'un point de vue dirent. Un
ertain
nombre d'algorithmes pour des problmes NP-
omplets voire polynomiaux ont un tout
petit ensemble de pire
as ; en probabilisant l'algorithme et l'espa
e des donnes, il est
83
84
PRAMBULE
souvent possible de donner un sens
ette assertion, et de
onstruire des algorithmes dits
de type Las Vegas, dont la
omplexit est polynomiale en moyenne. En poussant
es ides
en
ore plus loin, on peut dnir les algorithmes de type Monte-Carlo, dont la
omplexit
est toujours polynomiale, mais qui s'autorisent se tromper ave
une probabilit faible.
P et NP
On utilise dans toute
ette partie un modle de
al
ul, par exemple la ma
hine de
Turing ou la ma
hine RAM. tant donn une fon
tion f : N N, on dira qu'un problme
appartient la
lasse DTIME(f ) s'il existe une ma
hine dterministe qui sur toute entre
de longueur n, rsout le problme en O(f (n)) pas de
al
ul.
Les
lasses de
omplexit s'intressent habituellement des problmes de d
ision, par
opposition aux problmes d'optimisation ou problmes de
al
ul tels
eux qui ont t tudis
dans la premire partie. Par exemple, primalit, qui d
ide la primalit d'un nombre
entier est un problme de d
ision,
'est--dire que
ette question appelle une rponse oui
ou non. fa
torisation, en revan
he, n'est pas un problme de d
ision.2
Soit P = k0 DTIME(n 7 nk ) la
lass des problmes de d
ision solubles en temps
polynomial. Cette
lasse de
omplexit est une notion trs robuste en
e sens qu'elle est
indpendante du
hoix de modle de
al
ul raisonnable, tel que RAM, ma
hine de Turing,
ou pseudo-
ode par exemple. On l'interprte
omme la
lasse des problmes qui ont une
solution de
omplexit raisonnable.
On dnit galement la
lasse NP = k0 NTIME(n 7 nk ), o le N signie
non-dterministe. I
i le modle de
al
ul est enri
hi par une instru
tion de
hoix (par
exemple :
hoisir une permutation de {1, . . . , n}), et on a une instan
e positive du problme si et seulement si il existe une faon de faire les
hoix qui
onduise la rponse
oui.
On a bien entendu l'in
lusion DTIME(f ) NTIME(f ), et don
P NP. Savoir si
ette in
lusion est stri
te ou non
onstitue le fameux problme P = NP ? .
Il existe un lien entre problme d'optimisation et problme de d
ision. Si le problme
d'optimisation est valeurs entires, et
onsiste rendre un bn
e maximal, on peut
onstruire un problme de d
ision en rajoutant une donne entire K et en demandant
de d
ider s'il existe une solution au problme de d
ision dont le bn
e est au moins
K . Dans
e
ontexte, notons que dans le
as o
e problme de d
ision peut tre rsolu
en temps O(P (n, log K)), et o l'on peut obtenir une borne M pour la meilleure solution,
le problme d'optimisation peut tre rsolu en temps O(f (n, log M) log M) par re
her
he
di
hotomique,
e qui montre qu'en un
ertain sens, si le problme admet une borne polynomiale, il y a quivalen
e entre existen
e d'un algorithme polynomial pour le problme
de d
ision et le problme d'optimisation.
On insiste sur le fait que l'on parle bien de la longueur des donnes, et que
ette dernire
dpend en prin
ipe de leur reprsentation, qui devrait toujours tre partie intgrante de la
des
ription du problme. En parti
ulier, quand un entier n gure parmi les donnes du
problme, sa longueur est max(0, log n) + 1, en supposant une reprsentation binaire
2Les problmes de
al
ul ont leurs propres
lasses de
omplexit
FP
et
FNP.
NP-COMPLTUDE
85
NP-
ompltude
On dit qu'un problme P se rduit polynomialement un problme Q si l'on peut
onstruire une fon
tion transformant les entres de P en des entres de Q, telle que P (x)
soit vrai si et seulement si Q( (x)) est vrai, et si est
al
ulable en temps dterministe
polynomial.3 Consquen
e importante : s'il existe un algorithme polynomial pour Q, alors
il existe un algorithme polynomial pour P, obtenu en d
idant Q sur (x).
Un problme est dit NP-di
ile si tout problme de NP se rduit polynomialement
lui, et NP-
omplet si de plus il appartient NP.
L'intrt de
ette dnition rside dans le fait suivant. Si un problme Q est NP-di
ile,
et si on sait le rsoudre en temps polynomial, alors tous les problmes de NP sont solubles
en temps polynomial, et don
P= NP. Inversement, si P6= NP et si Q est un problme
NP-di
ile, alors il ne peut pas exister d'algorithme polynomial pour Q : si l'on
roit
la
onje
ture P 6= NP, la NP-
ompltude
apture don
une
ertaine notion de problme
di
ile.
Thorme
4.4 (Cook).
Le problme
sat
sat
Donnes
Rsultat : oui si et seulement si F est satisfaisable,
'est--dire s'il existe une assignation de valeurs de vrit V/F aux variables qui rende F vraie.
La preuve de Cook, omise dans
e
ours, permet en fait de montrer que le problme 3o les
lauses
ontiennent
ha
une trois littraux au plus, est en fait dj NP-
omplet.
On montrera
e fait indpendamment. En revan
he, le problme 2-sat, o les
lauses
ontiennent
ha
une deux littraux au plus, est dans P. Cette remarque illustre un fait
important :
e n'est pas par
e qu'un problme est NP-
omplet que toutes ses instan
es sont
sat,
86
di iles ;
PRAMBULE
en parti
ulier, rel
her une hypothse ou xer un paramtre peut frquemment
onduire un problme de P.
Pour aller plus loin dans l'tude de la
omplexit, on pourra
onsulter le livre de C.
Papadimitriou [20. L'ouvrage [7 rpertorie de faon systmatique un grand nombre de
problmes NP-
omplets
onnus en 1979. C'est un passage oblig quand on s'intresse un
problme dont on pense qu'il est NP-
omplet.
CHAPITRE 5
NP-
ompltude
Introdu
tion
Ce
hapitre d
rit plusieurs exemples de rdu
tions, et prsente un
ertain nombre de
problmes NP-
omplets
lassiques.
1.
3-sat
Nous allons nous intresser dans
ette partie au problme 3-sat,
as parti
ulier du
problme sat . Si 3-sat est NP-
omplet, il est alors
lair que sat, qui le
ontient, l'est
aussi. En revan
he, le fait que sat soit NP-
omplet ne prouve en rien que l'instan
e
parti
ulire 3-sat le soit. Il faut prouver que
ette instan
e est aussi di
ile que le
as
gnral.
3-sat.
Ci = (yi,1 yi,2 yi,3), o yi,j est gal soit l'un des xi , soit l'un des xi .
Rsultat : d ider si F
aux variables.
Thorme
5.1.
Le problme
3-sat
V/F
Dmonstration. Notons tout d'abord que 3-sat est bien dans NP. En eet, la
donne d'une ae
tation de valeurs de vrit aux variables
onstitue bien un
erti
at
vriable en temps polynomial.
On va rduire sat 3-sat. Soit F une formule sat. Soit C une
lause de F , par exemple
C = x y z u v w t. On introduit de nouvelles variables a, b, c, d asso
ies
ette
lause, et on rempla
e C par la formule
(x y a) (a z b) (b u c) (c v d) (d w t).
Il est fa
ile de voir qu'une assignation de x, y, z peut tre
omplte par une assignation
de a, b, c, d de faon rendre
ette formule vraie, si et seulement si (x y z) est vraie. En
appliquant
ette
onstru
tion toutes les
lauses de F et en prenant la
onjon
tion des
formules ainsi produites, on obtient ainsi une formule 3-SAT F quivalente F .
Le temps de
al
ul se rduit
rire les
lauses, dont la longueur est polynomiale. Il
s'ensuit que l'ensemble du pro
essus de rdu
tion se ralise don
bien en temps polynomial.
On a don
montr, par rdu
tion de sat, que 3-sat est NP-
omplet.
87
88
5.
NP
-COMPLTUDE
2-sat
Dans le mme esprit, on peut tudier le problme naesat (not all equal sat) qui nous
sera utile dans la suite pour dmontrer que d'autres problmes sont NP-
omplets.
naesat
5.2.
naesat
Noter qu'en ee
tuant la mme rdu
tion sur 3-sat, on prouve que
omplet ; on va utiliser
ette remarque pour prouver :
Corollaire
5.1.
nae3sat
nae4sat
est
NP-
2.
STABLE
89
ou plus gnralement
maxsat (tant donn l , existe-t-il une ae
tation de valeurs de vrit qui permet de satisfaire au moins l
lauses de la formule ?
'est bien entendu la version de d
ision
de
e problme qui est NP-
omplte) ; one-in-three sat (une seule variable V par
lause) ;
ir
uit-sat (la formule n'est pas donne sous forme normale
onjon
tive, mais
sous la forme d'un
ir
uit n entres, ave
des portes logiques , , d
rivant le
al
ul de
la sortie en fon
tion des variables d'entre).
2.
max2sat
Stable
stable.
5.3.
stable
90
5.
NP
-COMPLTUDE
littral xi (ainsi, un stable de G
orrespond une ae
tation de valeurs de vrit une
partie des variables). Contraintes asso
ies aux
lauses : si par exemple C = (x1 x2 x3 )
est une
lause de F , alors G a les artes {x1 , x2 }, {x2 , x3 }, {x3 , x1 } formant un triangle
(ainsi un stable de G
ontient au plus un des trois sommets asso
is la
lause C ).
Soit k le nombre de
lauses de F . On dmontre maintenant que F est satisables si et
seulement si G possde une
lique de taille k .
Si F est satisable, on
onsidre une assignation des variables satisfaisant F . Pour
haque
lause C de F , on
hoisit C un littral de C rendu vrai par l'assignation. Ce
i
dnit k sommets formant un stable de G.
Inversement, si G a un stable de taille k , alors il a n
essairement exa
tement un sommet
dans
haque triangle ;
e sommet
orrespond un littral rendant la
lause asso
ie vraie,
et forme une assignation des variables
ohrente par
onstru
tion des artes formant les
ontraintes de
ohren
e.
La rdu
tion est manifestement polynomiale.
Deux problmes
lassiques sont lis stable :
lique
5.2.
Le problme
lique
Passage au omplmentaire.
Dmonstration.
5.3.
Le problme
re ouvrement de sommets
et V2 soit au moins k ?
Thorme
5.4.
oupure maximale
On va rduire nae3sat
oupure maximale. Supposons donne une instan
e de nae3sat, dans laquelle sans perte de gnralit nous supposerons
qu'une
lause ne
ontient pas simultanment une variable et son
omplmentaire. Quitte
Dmonstration.
3.
CIRCUIT HAMILTONIEN
91
(re
ouvrement d'un graphe par des artes) ;
lique est polynomial
si l'on se restreint des graphes de degr born par un d donn, ou des graphes planaires.
ensemble indpendant est polynomial pour les graphes bipartis ou les graphes de degr
2.
vrement d'artes
3.
NP- ompltude
ir uit hamiltonien
de
fois et une seule par ha un des sommets et revenant son point de dpart ?
92
5.
Thorme
5.5.
NP
-COMPLTUDE
ir uit hamiltonien
On va dmontrer
e fait en rduisant re
ouvrement de sommets
ir
uit hamiltonien. La te
hnique
onsiste
onstruire, partant d'une instan
e
de re
ouvrement de sommets, un graphe dans lequel
haque arte initiale sera rempla
e par un motif admettant exa
tement deux
hemins hamiltoniens,
'est--dire des
hemins visitant une fois et une seule
haque sommet. L'un de
es deux
hemins
orrespondra au
as o le sommet
orrespondant appartient la
ouverture, l'autre au
as o
il n'appartient pas. Il reste ensuite pr
iser
omment re
oller
es dirents motifs pour
qu'un
ir
uit hamiltonien global
orresponde exa
tement une runion de
hemins hamiltoniens travers
haque motif, et pour assurer qu'on obtient bien le bon rsultat au
problme re
ouvrement de sommets initial en rsolvant
ir
uit hamiltonien dans
e graphe.
Notons (G = (V, E), k) l'instan
e de re
ouvrement de sommets tudie. Le motif
que nous allons utiliser est le suivant :
Dmonstration.
u1
u2
u3
u4
u5
u6
v1
v2
v3
v4
v5
v6
Pour obtenir un par
ours de
e motif traversant une fois et une seule
haque sommet,
seules deux solutions sont possibles : soit un passage en deux fois, une fois u1 u2 u3 u4 u5 u6
puis ultrieurement v1 v2 v3 v4 v5 v6 (dans un sens ou dans l'autre) ; ou alors un passage en
une seule fois u1 u2 u3 v1 v2 v3 v4 v5 v6 u4 u5 u6 (ou le mme en inversant les u et les v ).
haque
arte (u, v) du graphe de dpart, on asso
ie un motif de
e type, en faisant
orrespondre
le sommet u au
t (u) et le sommet v au
t (v). On ra
orde ensuite entre eux bout-bout tous les
ts de tous les motifs
orrespondant un mme sommet ; on forme don
une
hane asso
ie un sommet donn, ave
en
ore deux sorties libres. On ra
orde
alors
ha
une de
es deux sorties k nouveaux sommets s1 , . . . , sk . On note le graphe ainsi
onstruit H dans la suite.
Supposons maintenant donn un re
ouvrement du graphe initial de taille k , dont les
sommets sont {g1 , . . . , gk }. On peut alors
onstruire un
ir
uit hamiltonien de H de la
faon suivante :
partir de s1 ;
par
ourir la
hane g1 de la faon suivante. Quand on traverse une arte (g1 , h), si h
est aussi dans la
ouverture, on traverse simplement le
t g1 , sinon, on par
ourt les
deux
ts simultanment.
une fois la
hane g1 nie, on revient en s2 et on repart par g2 , ainsi de suite.
Il est
lair que tous les sommets sk sont atteints une fois et une seule.
3.
CIRCUIT HAMILTONIEN
93
Considrons un sommet h du motif
orrespondant une arte (u, v). On peut toujours
supposer que u est dans la
ouverture, disons u = g1 . Il s'ensuit que si h est du
t de u,
h sera atteint une fois au moins. On voit en vertu du se
ond item qu'il ne sera plus atteint
dans la suite. Si h est du
t de v , et que v n'est pas dans la
ouverture, h est par
ouru
lors du par
ours de u. Si v = gi , h est par
ouru lors du par
ours de la
hane
orrespondant
gi et
e moment-l seulement. On a don
bien un
ir
uit hamiltonien.
R
iproquement, supposons que l'on dispose d'un
ir
uit hamiltonien de H . La
onstru
tion de notre motif impose que venant d'un sommet si , on traverse entirement une
hane
u puis l'on passe un autre des sommets sj . On traverse ainsi k
hanes ; les k sommets
orrespondants forment alors une
ouverture. En eet, si (u, v) est une arte, le motif
orrespondant est par
ouru par le
hemin hamiltonien ; or il ne peut l'tre que lors du par
ours
d'une bou
le
orrespondant une des deux extrmits de l'arte.
Enn, la rdu
tion est trivialement polynomiale.
ir
uit hamiltonien est don
bien
NP-
omplet.
Comme dans la partie pr
dente, on peut dduire aussitt la
breuses variantes :
voyageur de ommer e
M(n)(1) k ?
On peut voir
e problme
omme l'tablissement de la tourne d'un voyageur de
ommer
e devant visiter n villes, dont les distan
es sont donnes par la matri
e M , de faon
faire moins de k kilomtres.
Corollaire
5.4.
voyageur de ommer e
voyageur de ommer e(
n, M, n) =
ir uit hamiltonien(
V, E ).
94
5.
NP
-COMPLTUDE
Rsultat Existe-t-il un
ir
uit de G ne passant pas deux fois par le mme sommet dont
la longueur est r ?
Corollaire
5.5.
hamiltonien,
as o l'on ne demande
pas l'itinraire de revenir au point de dpart, est NP-
omplet.
ir
uit hamiltonien
et
hemin hamiltonien restent NP-
omplets mme si le graphe est suppos planaire et
de degr 3, ou si le graphe est suppos biparti.
hemin hamiltonien reste NP-
omplet
mme si les deux extrmits sont donnes.
hemin le plus
ourt est polynomial, voir
la premire partie.
voyageur de
ommer
e reste NP-
omplet mme si les distan
es sont
hoisies dans
{1, 2} (
f. la preuve donne
i-dessus). Reste NP-
omplet si la distan
e vrie l'ingalit
triangulaire, est la distan
e L1 , la distan
e L , la distan
e L2 arrondie suprieurement
(si l'on n'arrondit pas, on doit manipuler des rels,
e qui est toujours malais ave
notre
modle de
al
ul). Le
as o l'on demande seulement que l'arte la plus longue soit plus
ourte que B reste NP-
omplet, mme si toutes les artes sont de poids 1 ou 2.
Le problme fa
teur(K ), o l'on demande que
haque arte soit traverse, ave
un
ot total K est aussi NP-
omplet, mme si toutes les artes sont de
ot 1.
4.
3- olorabilit
(v) ?
Thorme
5.6.
3- olorabilit
4.
3-COLORABILIT
95
3
2
4
vrai
Il est fa
ile de voir que si
e motif o les trois sommets distingus et les triangles
onstruits
sur les variables sont impli
ites est 3-
oloriable, alors les sommets 0 et 1 sont faux et
nsp. Si 1 est faux,
omme un sommet
orrespondant une variable doit tre vrai ou
faux, on a (z)=vrai. Si 0 est faux, alors 2 ne peut pas tre faux, don
3 ou 4 l'est, et
la variable
orrespondante est
olorie vrai.
R
iproquement, si l'une des variables est vraie, on peut fa
ilement
onstruire une
3-
oloration du motif.
Considrons alors le graphe form des trois sommets distingus, des triangles forms
sur les variables, et des motifs donns. Si
e graphe est 3-
oloriable, alors en parti
ulier
tout sous-graphe est
oloriable. Les triangles de variables sont en parti
ulier
oloriables.
partir d'une 3-
oloration du graphe, on
onstruit une ae
tation de valeurs de vrit en
mettant 1 toutes les variables
olories par vrai. Cette ae
tation est
ohrente une
variable et son
omplmentaire ont bien une valeur oppose et au moins une variable par
lause est 1, en vertu des proprits du motif
i-dessus.
Inversement, tant donn une ae
tation de valeurs de vrit, il est ais de dduire un
3-
oloration du graphe.
96
5.
NP
-COMPLTUDE
2-
olorabilit, 4-
olorabilit
graphes de degr 3.
planaire
5.
Le problme dit
Somme de sous-ensemble
somme de sous-ensemble
est le suivant :
somme de sous-ensemble
5.7.
somme de sous-ensemble
5.
SOMME DE SOUS-ENSEMBLE
97
Pn
i
Il subsiste une di
ult : pour qu'un sous-ensemble de somme t =
i=0 ai b
orresponde
une
ouverture de sommets, le
hoix juste fait impose que noter que tous les ai sauf an
valent au plus 2,
ar une arte est in
idente deux sommets exa
tement
an = k ;
ai 1.
Les sp
i
ations du problme ne permettent pas de prendre en
ompte le se
ond item.
On peut
ontourner le problme en ajoutant F les entiers bi
orrespondant l'arte i.
On peut alors
hoisir
omme but
n
(3)
t = kb +
n1
X
2bi .
i=0
e stade, on va imposer que la base b soit au moins gale 4 ;
omme dans toute somme
d'lments de F il y a au plus trois termes bi pour i < n,
ela entrane qu'au
une retenue ne
peut se produire dans l'addition (on permet toujours au
oe
ient de bn d'ex
der b 1),
et don
que l'on peut lire sur l'quation (3) le nombre d'o
uren
es du terme bi .
Pour tout sous-ensemble F de somme t, on a don
:
il y a k termes
orrespondant des sommets dans F (
f. le terme en bn ,
pour
haque arte i, F
ontient au moins un terme
orrespondant une des deux
extrmits de i ; en eet, t
ontenant 2 termes bi , il peut
ontenir soit les deux
extrmits de l'arte, soit l'entier
orrespondant l'arte et
elui
orrespondant
l'une des deux extrmits.
Inversement, tant donn une
ouverture de sommets, on
onstruit l'ensemble F en
prenant les sommets de la
ouverture, et les artes dont un seul des deux sommets est
dans la
ouverture. On a don
bien rduit re
ouvrement de sommets somme de
sous-ensemble.
Il est fa
ile de voir que la rdu
tion s'ee
tue en temps polynomial, et don
que l'on a
bien prouv le thorme.
On peut en dduire la NP-
ompltude du
lassique problme du sa
--dos :
sa
--dos
limite A, et un entier V .
i ai A et
i vi V ?
somme de sous-ensemble,
soit
sa --
dos.
98
5.
NP
-COMPLTUDE
x6A
x?
ar la
donne de la liste des lments allant dans
haque bote
onstitue un
erti
at de taille
polynomiale.
P
Il sut alors de remarquer que le
as k = 2, B = ( xE x)/2 est exa
tement partition.
de sous-ensemble, partition
et sa
--dos sont polynomiales si les lments de l'ensemble (les deux premiers
as) et les valeurs des objets (sa
--dos) sont borns. Voir
e sujet le paragraphe 2 du
hapitre 6.
6.
produit de sous-ensemble.
Programmation entire
6.
PROGRAMMATION ENTIRE
99
problme extrmement gnral, et on n'a que l'embarras du
hoix du problme lui rduire
pour prouver qu'il est NP-di
ile. La di
ult, pour une fois, revient prouver qu'il est
dans NP.
Donnes : une matri
e m n note A, un ve
teur de dimension m not b.
Rponse : existe-t-il des entiers x1 , . . . , xn positifs tels que Ax = b ?
Remarquons que nous d
rivons i
i une version de la programmation linaire en nombres
entiers n'in
luant mme pas de fon
tionnelle optimiser. La seule di
ult du problme
semble tre la
ontrainte de positivit des variables.
Thorme
5.9.
Programmation entire
5.1.
Il existe don
un
erti
at de taille m log2 (2n2 (ma)2m+1 ) = O(m2 log2 (mna)), qui est
bien polynomial en la taille de la matri
e de donnes (O(mn log2 (a))).
100
5.
NP
-COMPLTUDE
et don
k
X
j=1
xj
k
X
j=1
h (vj ) xj = hb
n
X
j=k+1
h (vj ) xj ,
Instan
es parti
ulires et variantes. Instan
es et variantes polynomiales : La version la plus gnrale de la programmation entire (ave
ingalits et fon
tionnelle optimiser) admet un algorithme polynomial n (dimension) xe.
Instan
es et variantes NP-
ompltes : La variante o les variables sont dans {0, 1} est
NP- omplte
(
f. la preuve donne
i-dessus), mme si tous les
oe
ients des donnes
sont
ontraints tre dans {0, 1}. Le
as o l'on admet des ingalits, les variantes de type
optimisation sont bien sr aussi NP-
ompltes,
ar plus gnrales que la variante tudie
i
i. Les trois problmes du paragraphe pr
dent peuvent tre vues
omme des instan
es
de programmation entire.
Complments
On indique i
i de faon trs rudimentaire quelques prolongements de la thorie de la
omplexit. L'obje
tif est de montrer l'extrme ri
hesse de
ette thorie et le grand nombre
de problmes ouverts subsistant.
6.1. Classes de
omplexit. Outre P et NP, il est possible de dnir d'autres
lasses
de
omplexit,
omme les
lasses EXP et NEXP. On peut galement dnir des
lasses
de
omplexit en termes d'espa
e, telles la
lasse L des problmes pouvant tre rsolus
en espa
e log n sur une entre de taille n par une ma
hine de Turing dterministe, ainsi
que son quivalent non-dterministe NL ; on peut aussi dnir ainsi la
lasse PSPACE.
Il n'est pas trs di
ile de montrer la suite d'in
lusions suivante :
(4)
L NL P NP PSPACE.
COMPLMENTS
101
Toutes
es
lasses admettent alors des problmes
omplets. Par exemple, le problme de
la programmation linaire
lassique est P-
omplet,
omme le problme d'valuer la valeur
de sortie d'un
ir
uit boolen, les entres tant donnes. Dans la mme ligne, on peut
montrer que le problme qsat est PSPACE-
omplet :
Donnes : Une formule Q1 x1 Q2 x2 Q3 x3 . . . Qn xn (x1 , . . . , xn ), o les Qi sont des quanti
ateurs ou , et une formule boolenne.
Rsultat : La formule est-elle vraie ou fausse ?
Le fait que
e problme soit dans PSPACE est fa
ile voir : on peut en espa
e
polynomial essayer toutes les ae
tations possibles des variables, en eaant
haque
tape les
al
uls pr
dents. En revan
he, la prsen
e de quanti
ateurs universels fait
qu'on voit mal
omment orir un
erti
at
ompa
t de la satisfaisabilit, puisque si n
quanti
ateurs universels sont prsents il faut a priori tester 2n valeurs de vrit au moins
(noter que la question NP = PSPACE est ouverte, et qu'il est don
possible qu'il existe
un
erti
at de taille polynomiale pour qsat, mais
ela serait extrmement surprenant).
On peut montrer galement que pour divers jeux, le problme de d
ider si une position
donne entrane automatiquement la vi
toire d'un des deux joueurs est PSPACE-
omplet
(voir [20 pour le
as du jeu de go un peu modi).
La notion de rdu
tion que nous avons tudie, dite rdu
tion de Karp,
ou polynomial-time many-one redu
tion, n'est pas la seule exister. On s'impose en parti
ulier de n'ee
tuer qu'un seul appel au problme auquel on veut rduire, qui doit avoir
lieu l'extrme n ; le rsultat ne doit en outre pas tre modi.
On peut
onsidrer une notion de rdu
tion un peu dirente, dite rdu
tion de Turing
ou rdu
tion de Cook. Dans
ette rdu
tion, on suppose que l'on dispose d'un ora
le
rsolvant le problme auquel on
her
he rduire, en temps polynomial. On s'autorise alors
faire autant d'appels que n
essaire un nombre polynomial dans le
as de P, bien sr
et ora
le lors de la rdu
tion. La
lasse de
omplexit obtenue en rsolvant un problme
dans une
lasse de
omplexit
6.3. In
lusions stri
tes. On peut enn s'interroger sur l'existen
e d'in
lusions stri
tes dans nos
lasses de
omplexit, et en parti
ulier dans l'identit (4). La situation est,
grosso modo, la suivante ; si l'on
ompare deux
lasses de
omplexit de mme nature (dterministe en temps, dterministe en espa
e, non dterministe en temps, non dterministe
en espa
e), la hirar
hie est bien
omprise :
(5)
TIME(f (n)) 6= TIME(f (n) log2 f (n)), SPACE(f (n)) 6= SPACE(f (n) log n),
pour toute fon
tion f raisonnable
roissant plus vite que n. Des rsultats analogues
existent dans le
as non-dterministe.
En revan
he, ds lors que l'on mlange deux types de
lasses de
omplexit, trs peu
de
hoses sont
onnues ;
itons toutefois l'in
lusion NSPACE(f (n)) SPACE(f (n)2 ),
qui implique que NPSPACE = PSPACE, ds que f (n)
rot plus vite que log n. Notons
en parti
ulier que la suite d'in
lusions (4) est stri
te prise dans son ensemble, puisque (5)
102
5.
NP
-COMPLTUDE
montre en parti
ulier que L 6= PSPACE. On ne sait l'heure a
tuelle prouver le
ara
tre
stri
t d'au
une des 4 in
lusions la
omposant...
6.4. Vrieurs.
NP = PCP(log(n), 1).
En d'autres termes, en utilisant O(log(n)) bits alatoires, et en a
dant un nombre de
bits born de la preuve, on peut vrier le
erti
at de toute instan
e d'un problme de NP,
ave
une probabilit arbitrairement faible de se tromper (en itrant k fois la vri
ation de
faon indpendante, on ramne la probabilit d'a
epter une instan
e invalide 2k ). S'il
est en
ore utile d'illustrer la puissan
e du modle PCP, mentionnons qu'on peut montrer
que PCP(poly(n), poly(n)) = NEXP...
L'autre
lasse dont nous voulons parler i
i a t introduite en relation ave
la
ryptographie, et est une
lasse de preuve intera
tive, o le prouveur et le vrieur
hangent
des messages par lesquels le prouveur
her
he persuader le vrieur que la solution qu'il
dtient est bien valide.
Dans le
as de la
lasse IP, le prouveur P a une puissan
e de
al
ul exponentielle, le
vrieur V une puissan
e de
al
ul polynomiale probabiliste. Cha
un des deux protagonistes envoie son tour un message, en
ommenant par le prouveur, qui peut dpendre des
messages pr
dents. Finalement, le vrieur d
ide d'a
epter ou non. Un problme est
dans IP s'il admet un algorithme de preuve intera
tive de
e type, o si x est une instan
e
valide, alors le
ouple (P, V ) a
epte ave
probabilit au moins 1 1/2|x|, et si x n'est
pas une instan
e valide, alors pour tout prouveur P de puissan
e de
al
ul exponentielle,
(P , V ) refuse ave
probabilit au moins 1 1/2|x|. Il faut rappro
her
ette dnition de la
situation
ryptographique o une
arte pu
e puissan
e limite souhaiterait sous-traiter
des
al
uls un serveur trs puissant, mais auquel elle ne fait pas
onan
e. Elle pose
alors des questions pour tenter de vrier le rsultat. La
lasse IP est, dans
e
ontexte,
la
lasse des problmes ou la
arte peut tre
onvain
ue ave
une bonne probabilit que
le serveur n'est pas en train de lui mentir. L'extrme puissan
e de
es preuves intera
tives
est illustre par le thorme de Shamir :
COMPLMENTS
103
IP = PSPACE,
'est--dire que tout
al
ul pouvant s'ee
tuer en espa
e polynomial peut tre ee
tu dans
un tel
ontexte.
CHAPITRE 6
Traiter la NP-
ompltude
Introdu
tion
Nous avons tudi de nombreux problmes et montr qu'ils sont NP-
omplets. Cela
implique que si P 6= NP,
es problmes sont di
iles rsoudre. Ces problmes
onsistent
parfois (maxsat, sa
--dos, . . .) en une r
riture d'un problme d'optimisation.
Dans
e
hapitre, nous allons nous intresser
es problmes d'optimisation. Dans le
as o le problme de d
ision asso
i est NP-
omplet, on a le
hoix entre deux stratgies.
Soit les instan
es que l'on souhaite tudier sont petites et/ou peu nombreuses, et l'on peut
se
ontenter de programmer trs soigneusement le meilleur algorithme non polynomial
onnu pour
e problme ; soit on est amen tudier le problme de faon plus extensive,
et l'on peut alors tre amen rel
her la
ontrainte selon laquelle on souhaite trouver la
meilleure solution. Dans
e
as, on peut parfois mais hlas pas toujours
on
evoir des
algorithmes dits d'approximation, qui fournissent une solution dont la valeur dire de la
solution optimale d'un
oe
ient
onstant. Nous verrons galement que tous les problmes
NP-
omplets ne peuvent pas tre appro
hs de la mme faon, et que sous rserve que P6=
NP, on peut obtenir des rsultats de non-approximabilit assez pr
is.
Fa
e un problme d'optimisation NP-
omplet que l'on doit rsoudre, diverses stratgies doivent tre tudies. La premire question qui doit venir l'esprit est : ai-je besoin
de rsoudre
e problme en toute gnralit ? En eet,
omme on l'a dj vu, toutes les
instan
es d'un problme NP-
omplet ne sont pas for
ment NP-
ompltes ; parfois mme,
trs peu d'entre elles le sont. Ainsi, beau
oup de problmes NP-
omplets sur les graphes
admettent des algorithmes polynomiaux simples dans le
as o le graphe est sans
y
le
(arbre). De mme, le passage de 3-sat 2-sat transforme le problme de NP-
omplet
polynomial. Enn, parfois, admettre que l'algorithme puisse tre exponentiel en
ertains
des paramtres (souvent des paramtres entiers) peut permettre d'obtenir un algorithme
de type pseudo-polynomial, voir le paragraphe 2.
La se
onde question se poser est : ai-je vraiment besoin d'une rponse exa
te, de
la meilleure rponse ? Dans le
as
ontraire, il faut penser aux algorithmes d'approximation (voir le paragraphe 3), ou en
ore aux algorithmes probabilistes de type Monte-Carlo,
qui fournissent souvent de bons rsultats. On peut mentionner part les algorithmes
probabilistes de type Las Vegas, dont le rsultat est garanti, mais dont le temps d'ex
ution n'est polynomial qu'ave
une bonne probabilit. Voir le
hapitre 7 pour les mthodes
probabilistes.
105
106
6. TRAITER LA
NP
-COMPLTUDE
Une fois
es possibilits
artes (il faut la meilleure solution, dans un
ontexte assez
gnral), on peut alors jeter son dvolu sur une mthode gnrique de rsolution des problmes NP-
omplets, le ba
ktra
king (ou son analogue pour les problmes d'optimisation,
bran
h-and-bound).
1.1. Le ba
ktra
king. Le ba
ktra
king s'intresse aux problmes de d
ision,
'est-dire aux problmes o il faut rpondre oui/non (ave
preuve, par exemple la primalit)
ou aux problmes dont on doit trouver une solution. L'expos gnral du ba
ktra
king,
omme toujours en algorithmique (penser aux algorithmes gloutons, la programmation
dynamique1) repose sur la
apa
it savoir d
omposer le problme
ourant en un
ertain
nombre de problmes de mme nature, mais plus petits, en faisant
haque tape un
hoix.
Un pseudo-
ode gnrique pour le ba
ktra
king peut s'
rire de la faon suivante :
Entre : problme S ;
Faire A := {S} ;
Tant que A 6= faire
Choisir T A ;
D
omposer T en les sous-problmes {T0 , . . . , Tr } ;
Pour
haque i
Appliquer un test heuristique Ti ; si le test rpond qu'il y a une solution,
la renvoyer, si le test ne rpond rien, faire A := A {Ti }.
Renvoyer Pas de solution .
1On peut voir le ba
ktra
king
omme une programmation dynamique rate, par
e que les sous-
problmes se reproduisent peu frquemment, et don que leur nombre est trop grand (non polynomial).
1. BACKTRACKING ET BRANCH-AND-BOUND
107
Expliquons d'abord
e que l'on entend par test heuristique. Il faut voir
ha
un des
sous-problmes Ti obtenus
i-dessus
omme un sous-arbre de l'arbre de
al
ul. La d
omposition en sous-problmes plus petits revient rempla
er le sous-arbre par ses propres
sous-arbres. L'ide d'appliquer un test heuristique est d'essayer d'exploiter la stru
ture du
problme pour prdire l'avan
e quels sont
eux de
es sous-arbres qui ne donneront de
toute faon pas de solution, an d'viter d'avoir les explorer. On suppose don
que l'on
dispose d'un test e
a
e qui rpond oui s'il y a une solution (et donne alors
ette dernire),
non s'il n'y a pas de solution (on peut alors
ouper
ette bran
he), et ne rpond pas s'il
ne sait pas d
ider. Typiquement, la situation la plus simple est
elle d'un problme o
l'on ne sait dire quelque
hose sur le problme qu'une fois
elui-
i rduit une instan
e de
taille 1. Le test est alors : si l'instan
e est de taille 1, rsoudre le problme ; sinon ne pas
rpondre.
Une fois
e
i pr
is, examinons de plus prs notre mtaalgorithme. Trois des points
sont mentionns en petites
apitales ;
'est
eux auxquels le programmeur doit r
hir,
en fon
tion de son problme, pour obtenir une solution de la faon la plus rapide possible.
Signalons que si l'on re
her
he toutes les solutions, toutes les stratgies (sauf pour le test
heuristique) se valent,
ar il faudra de toute faon par
ourir l'arbre dans son intgralit.
On a don
deux
hoix faire. D'une part,
omment
hoisir
elui des problmes que
l'on va nouveau d
omposer (en parti
ulier,
omment par
ourir l'arbre ? En largeur, en
profondeur, de faon hybride) ? Enn, une fois le problme
hoisi,
omment va-t-on le
d
omposer (il y a gnralement plusieurs
hoix, voir les exemples...) ?
En
e qui
on
erne le par
ours de l'arbre, pour les instan
es de taille importante, le
par
ours en largeur est viter,
ar il impose trop de sto
kage (tous les renseignements
asso
is aux direntes bran
hes de l'arbre doivent tre sto
ks simultanment). On prfrera don
en gnral par
ourir en profondeur, quitte, une fois ramen une petite instan
e,
passer un par
ours en largeur. Dans
ertaines
ir
onstan
es,
ette stratgie peut tre
modie, par exemple, s'il est fa
ile de
al
uler les informations asso
ies une bran
he
onnaissant
elles asso
ies sa voisine (rare).
Pour
e qui est du
hoix du problme d
omposer (ainsi que de la faon de le d
omposer), la seule rgle gnrale
onsiste
hoisir le sous-arbre qui a des
han
es d'tre le
plus petit ;
ela ne veut pas dire que le problme a moins de
han
es d'avoir des solutions,
mais plutt que s'il n'en a pas, on s'en aper
evra plus vite et on n'aura pas perdu beau
oup
de temps (
'est une stratgie plutt pessimiste). Il est toutefois bon d'essayer direntes
stratgies sur de petites instan
es pour appro
her mieux le
omportement (et la stru
ture
de l'arbre de
al
ul) de
haque problme parti
ulier.
1.2. Exemples.
1.2.1. 3-sat. On rappelle que 3-sat est le problme (NP-
omplet)
onsistant en la
donne d'une formule,
onjon
tion de
lauses qui sont elles-mme disjon
tion de trois variables ou de leur ngation, et dont la solution est une ae
tation de valeurs de vrit aux
variables x1 , . . . , xn telle que la formule donne soit vraie.
Montrons
omment faire les
hoix dis
uts au-dessus. D'une part, quel test heuristique
hoisir ? Prenons le plus simple : un sous-problme vide est faux (on verra pourquoi
108
6. TRAITER LA
NP
-COMPLTUDE
Souvent, et plus parti
ulirement dans les problmes ayant une
ertaine stru
ture , un par
ours de l'arbre alatoire (par opposition un par
ours dterministe le par
ourant de gau
he droite) peut amener un rsultat dans des dlais bien
plus brefs. C'est l'un des paradigmes qui fait le su
s des algorithmes probabilistes, voir
le
hapitre 7.
Petites tailles. Il peut s'avrer payant de programmer trs proprement une rsolution
sp
ique du problme dans les
as de petite taille, et de la substituer au test heuristique
1. BACKTRACKING ET BRANCH-AND-BOUND
109
dans
es
as. Il faut se rappeller que si l'arbre est de degr 2 par exemple, 15/16 (soit 94%)
des nuds de l'arbre
orrespondent des problmes de taille 4 ou moins.
L'exemple sans
doute le plus gnrique de bran
h-and-bound est le problme de la programmation linaire
en nombres entiers, auquel bon nombre de problmes d'optimisation di
iles se ramnent.
On rappelle que
ette question
onsiste rsoudre un programme linaire, en ajoutant une
ontrainte d'intgralit sur un
ertain nombre de variables. Ni l'algorithme du simplexe, ni
l'algorithme primal-dual ne savent grer
e type de
ontraintes.
On va toutefois pouvoir utiliser une stratgie de bran
h-and-bound, l'estimation de la
solution maximale dans une bran
he donne
onsistant utiliser le simplexe usuel (ou toute
autre mthode), en rel
hant la
ontrainte d'intgralit, pour obtenir une borne infrieure
(dans le
as de la minimisation) sur le minimum possible en nombres entiers.
Comment
hoisir la division du problme initial ? Une heuristique pour la programmation linaire en nombres entiers
onsiste appliquer le simplexe usuel, puis tenter d'arrondir
de faon plus ou moins alatoire. On a vu en exer
i
e qu'on n'obtenait pas ainsi for
ment
une solution optimale. Plus signi
ative est la stratgie qui
onsiste alors d
ouper le
domaine du simplexe en deux rgions disjointes xi x0i et xi x0i + 1, o xi est une
110
6. TRAITER LA
NP
-COMPLTUDE
valeur telle que le simplexe usuel a produit une valeur x0i non entire. Observons que
ela
onduit liminer une bande de largeur 1 dans la dire
tion i du domaine ralisable, et que
don
la runion des deux domaines plus petits est moins grande que le domaine initial. Qui
plus est, imposer
e type de
ontrainte for
e une
oordonne entire sur
ertains sommets
du nouveau simplexe,
e qui augmente les
han
es d'obtenir une solution entire.
En rsum, on pro
de de la faon suivante :
(1) Rsoudre le problme
ourant par l'algorithme du simplexe, et obtenir une solution
x0 . Si la fon
tion d'obje
tif est suprieure ou gale la meilleure valeur obtenue
jusqu'alors asso
ie une solution entire, ba
ktra
ker.
(2) Si toutes les
oordonnes de x0 sont entires, mettre jour la valeur optimale de
l'obje
tif, et ba
ktra
ker.
(3) Sinon,
hoisir une
oordonne i telle que x0i soit non entire ;
rer deux sousproblmes en ajoutant dans l'un la
ontrainte xi x0i , dans l'autre xi x0i +1,
et les rajouter la liste.
2. Algorithmes pseudo-polynomiaux
Il est bon, propos de problmes NP-
omplets lis aux nombres, de signaler la notion
3. ALGORITHMES D'APPROXIMATION
111
Si un problme NP-
omplet au sens fort admet un algorithme pseudopolynomial, alors P=NP.
Thorme
6.2.
Outre les problmes sans donne entire, on peut montrer qu'il existe des problmes
NP-
omplets au sens fort.
Thorme
6.3.
programmation entire
entire
Thorme
6.4.
rangement optimal
Ce rsultat
ontraste ave
elui obtenu pour les trois autres problmes de nombres du
paragraphe 5 du
hapitre 5. Si l'on examine la preuve de la NP-
ompltude de rangement
optimal, on s'aperoit que le
as k = 2 quivaut essentiellement partition, et admet
don
un algorithme pseudo-polynomial. Il n'en est en revan
he rien quand on admet que
k est plus grand, en vertu du thorme qui pr
de.
3. Algorithmes d'approximation
Pour un tat de l'art en 1999 sur les problmes d'optimisation, on pourra
onsulter
l'ouvrage [1 ou l'adresse http://www.nada.kth.se/~viggo/www
ompendium/ (attention,
la dnition du fa
teur d'approximation est dirente de la ntre, et donne en parti
ulier
des valeurs dans ]0, [.
3.1. Te
hniques de
on
eption. Il est utile de noter que la plupart des algorithmes
d'approximation tudis dans
e
hapitre sont bass sur des ides trs simples, qui sont
essentiellement
elle de la premire partie de
e
ours. Les mthodes de
on
eption les plus
frquemment ren
ontres sont
112
6. TRAITER LA
NP
-COMPLTUDE
(1) la mthode gloutonne, qui fournit trs souvent des heuristiques simples et e
a
es
mais hlas pas toujours de bonne qualit ;
(2) la programmation dynamique,
omme on l'a dj vu dans le paragraphe pr
dent ;
(3) la programmation linaire dont on arrondit les solutions, utilise pour appro
her
les solutions d'un problme linaire en nombres entiers ;
(4) la re
her
he lo
ale, que nous dis
uterons brivement ;
(5) enn, les algorithmes probabilistes.
Nous illustrons les mthodes (1), (3) et (4) par des exemples. Pour (2), voir le Thorme
6.1 et le Thorme 6.10. Pour (5), voir le
hapitre 7.
Construisons une heuristique gloutonne pour le problme rangement optimal. L'ide
naturelle
onsiste ranger tout d'abord les objets les plus en
ombrants, don
les
lasser par ordre de poids d
roissant. Un objet est ensuite rang dans la bote de plus petit
numro dont la
apa
it est susante.
Thorme 6.5. Soit k le nombre de botes n
essaire par
ette mthode, et k
nombre optimal. On a alors
k 3kopt /2 + 1.
opt
le
Dmonstration. Soit B la
apa
it d'une bote. Supposons qu'il existe une bote b0
ne
ontenant que des objets de poids B/3. Cela implique qu'hormis
ette bote, toutes
les autres sont pleines au moins aux deux tiers, sans quoi on aurait
ommen
par ranger
ertains des objets de b0 dans
es botes avant de remplir b0 . Le poids total des objets est
don
au moins 2(k 1)B/3 ; il est au plus kopt B , et l'ingalit s'ensuit.
Si au
une bote ne
ontient que des objets de poids B/3, on peut supposer que tous
les objets de l'instan
e sont de poids > B/3 sans modier la solution obtenue (on rappelle
qu'on
ommen
e par traiter les objets de poids le plus grand). Montrons que dans
ette
situation, on obtient ee
tivement la solution optimale. Comme tout objet de poids 2B/3
est n
essairement seul dans une bote, on peut nouveau se limiter au
as o tous les
objets sont de poids
ompris entre 2B/3 et B/3. Dans
e dernier
as,
haque bote
ontient
au plus deux objets, dont un seul de poids > B/2. L'ae
tation optimale
orrespond alors
n
essairement raliser le maximum de
ouples d'objets de A B de poids total au plus
B , o A est l'ensemble des objets de poids de ]B/2, 2B/3[ et B l'ensemble des objets de
poids ]B/3, B/2] ; les objets restants sont traits de faon vidente (laisss seuls pour les
lments de A, apparis deux deux de faon quel
onque pour les lments de B ). Comme
notre algorithme pla
e les lments de A dans des botes d'ordre
roissant, et tente ensuite
de pla
er tout lment de B ave
un lment de A de poids le plus grand possible, il est
fa
ile de voir que l'on obtient bien le nombre maximal de
ouples de A B .
Noter que l'argument peut tre ran par une tude plus dtaille pour obtenir la borne
11kopt /9 + 4. Ce rsultat est en un sens optimal,
omme le montre l'exemple o l'on a n
objets de taille 1/2 + , n de taille 1/4 + 2, n de taille 1/4 + , et 2n de taille 1/4 2, o
l'heuristique n
essite 11n/6 botes [n botes (1/2 + ) + (1/4 + 2), n/3 botes 3 (1/4 + ),
n/2 botes 4 (1/4 2)
ontre 3n/2 [n botes (1/2 + ) + (1/4 + ) + (1/4 2), n/2 botes
2 (1/4 + 2) + 2 (1/4 2) pour un rsultat optimal.
3. ALGORITHMES D'APPROXIMATION
113
On peut galement
on
evoir un algorithme d'approximation pour sa
--dos en tentant de formaliser le
ompromis entre poids et bn
e de faon appro
he, en introduisant
le rapport qualit-poids d'un objet ai /vi ; on
lasse les objets par rapport qualit-poids d
roissant, et l'on ajoute les lments au sa
dans
et ordre lorsque
'est possible sans violer
la
ontrainte de poids. Enn, pour une raison te
hnique, on
ompare en n de
al
ul le
bn
e obtenu
elui obtenu en mettant dans le sa
le seul lment de bn
e maximal
parmi
eux de poids infrieur la
apa
it du sa
, et on
hoisir le meilleur rsultat des
deux.
Thorme
optimal, on a
6.6.
opt
le rsultat
A < 2Aopt .
Soit j le premier lment dans l'ordre d
roissant de rapport qualitpoids qui n'est pas pris dans le sa
. On note Aj le bn
e apport par les lments dj
dans le sa
, et Vj le poids des lments prsents dans le sa
.
La stratgie gloutonne est
onue de sorte
e qu'enlever des lments dj dans le sa
par des lments d'ordre au moins gal j ne peut amliorer le bn
e que si le poids
total est augment, et d'un fa
teur au plus gal aj /vj fois l'augmentation de poids. Cette
augmentation de poids peut tre au plus C Vj , o C est la
apa
it du sa
. Comme
en outre Vj + vj > C (sinon le j -me lment est rajout dans le sa
par l'heuristique
gloutonne), on a don
l'ingalit
Dmonstration.
P
min vi V pi xvi ,
x + xvj 1,
(vi , vj ) E,
vi
xvi {0, 1},
vi V.
Le
as o les pi sont tous gaux 1
orrespond en parti
ulier exa
tement au problme
du
hapitre 5.
re ouvrement de sommets
114
6. TRAITER LA
NP
-COMPLTUDE
On peut rsoudre
e problme par une des mthodes vues au
hapitre 12.0.2, en transformant la dernire
ontrainte en xvi 0 et retenir dans le re
ouvrement les variables de
valeur 1/2.
La solution renvoye par l'algorithme
i-dessus est bien un re
ouvrement. En outre, si p est la valeur optimale et p0 la valeur obtenue par l'algorithme, alors
on a
Thorme
6.7.
opt
p0 2popt .
Dmonstration. Si la solution n'est pas un re
ouvrement, alors il existe une arte
telle que xvi et xvj soient stri
tement infrieurs 1/2,
e qui
ontredit la
ontrainte
orrespondante.
Maintenant, la solution optimale est toujours au plus gale la solution du problme
linaire gnral,
ar
e dernier est identique
e
i prs qu'il rel
he les
ontraintes d'intgralit. Notant que l'on a 2xvi 1 pour tout i, il s'ensuit que
p0 =
vi V ;xvi 1/2
pi
vi V
2pixvi 2
p 2popt ,
o p est la valeur de l'obje tif obtenue pour la solution optimale du programme linaire.
D'autres exemples d'algorithmes appro
hs se trouvent dans les exer
i
es du
ours sur
la programmation linaire ; enn, le
hapitre suivant montrera
omment l'on peut parfois
utiliser une stratgie probabiliste pour
hoisir l'arrondi.
On prsente enn un exemple o l'on utilise une te
hnique d'amlioration lo
ale. Cette
te
hnique
onsiste partir d'une solution ralisable, et tenter d'amliorer
ette solution
par une modi
ation lo
ale. On re
ommen
e nouveau sur la nouvelle solution obtenue,
et
. jusqu'
e que l'on ait obtenu un maximum lo
al. Cette te
hnique est trs voisine dans
l'esprit des te
hniques de re
her
he d'extrema par des mthodes de type Newton (suivre la
ligne de plus grande pente) en analyse numrique, en
e sens qu'elle
onduit en gnral
un optimum lo
al, qui peut tre signi
ativement moins bon que l'optimum global. Dans
le
as prsent, en revan
he, il n'y a pas de stratgie gnrique d'amlioration lo
ale, et
il faut en
onstruire une au
oup par
oup.
On rappelle l'non
de
oupure maximale, qui a t prouv NP-
omplet au Thorme 5.4 du
hapitre 5.
oupure maximale :
Donnes : un graphe G = (V, E) et un entier k.
3. ALGORITHMES D'APPROXIMATION
Thorme 6.8. Si c
l'algorithme, alors on a
opt
115
3.2. Dnitions.
Considrons un problme d'optimisation prenant une entre x et donn par un problme de d
ision P(x) et une fon
tion de
ot c(x, y) valeurs relles positives ; la solution au problme d'optimisation est alors le nombre
Dfinition
6.2.
P,c(x) =
min
{y;P(x)(y)=true }
c(x, y).2
Un algorithme A pour (P, c) qui
al
ule un lment A(x) tel que P(x)(y) = true, est
-appro
h si :
|c(A(x)) P,c(x)|
.
max(c(A(x)), P,c(x))
Noter que le max au dnominateur sert uniquement traiter simultanment le
as de
problmes de maximisation et de minimisation. La dnition de P,c (x) permet de
hoisir
aisment le bon terme selon le
ontexte. En parti
ulier, le quotient du membre gau
he est
toujours
ompris entre 0 et 1.
Le seuil d'approximation d'un problme d'optimisation est la borne infrieure de l'ensemble des pour lesquels il existe un algorithme -appro
h pour
e problme. Intuitivement, plus
e seuil est pro
he de 0, meilleure est l'approximation, et plus l'algorithme
appro
h fournira une solution satisfaisante.
Il est bon de noter qu'on trouve galement d'autres dnitions de la notion d'algorithme
-appro
h, la plus frquente
onsistant dire que l'on a
obje tif.
116
6. TRAITER LA
NP
-COMPLTUDE
Dans
e
as, est toujours au moins gal 1,
e qui permet de lever l'ambigut dans tous
les
as.
Les rsultats obtenus depuis le dbut du
hapitre s'non
ent alors :
Thorme
pondr
6.9.
, sa
--dos, re
ouvrement de
admettent des algorithmes (1/2)-appro
hs.
rangement optimal
oupure maximale
sommets
3.3. Exemples. Ce paragraphe a pour obje
tif de montrer le
omportement trs variable des problmes NP-
omplet vis--vis de l'approximation. La raison fondamentale de
ette diren
e rside dans le fait que, lors de la rdu
tion de A B, on ne
ontrle absolument pas le lien entre
ot de l'instan
e de A et
ot de l'instan
e de B
orrespondante. En
parti
ulier, l'instan
e optimale de B peut
orrespondre une trs mauvaise instan
e de A,
ou inversement. On peut
ontourner
ette di
ult en
onsidrant la notion de L-rdu
tion,
o l'on impose la fon
tion de rdu
tion de vrier en plus que B,c ( (x)) A,c (x)
(dans le
as d'un problme de maximisation). Nous n'explorerons pas
ette notion plus
avant, mais tudierons plutt divers exemples.
Commenons par les su
s.
Thorme
6.10.
Le seuil d'approximation de
sa --dos
est 0.
Il nous faut
omparer V =
i vi et la solution optimale du problme de
P maintenant
iP
vi .
dpart V =
P
P
On a V = 2k
i vi 2k 2k
i(vi 2k + 1) 2k i wi + 2k n.
P
k
En vertu de la dnition des i , le premier
terme
est
au
plus
gal
2
i wi ; or
P
wi vi 2k , don
e terme est major par
i vi = V . On a don
V V V + 2k n.
Par suite, le fa teur d'approximation vaut don 2k n/V . Imposer un seuil d'approximation de revient don hoisir
3. ALGORITHMES D'APPROXIMATION
k log2
V
n
log2
maxi vi
n
117
On vrie que
e
hoix
onduit un algorithme -appro
h en temps O(n3 /). Par
onsquent, pour tout > 0, sa
--dos admet un algorithme polynomial -appro
h. Son
seuil d'approximation est don
0.
Voi
i maintenant un
as mdian.
Thorme
gal 1/2.
6.11.
re ouvrement de sommets
118
6. TRAITER LA
NP
-COMPLTUDE
3.4. Rsultats ngatifs. Enn, on peut, dans
e
ontexte, obtenir des rsultats ngatifs toujours sous rserve que P= NP.
6.13. Si P6= NP, il n'existe pas d'algorithme -appro
h pour rangement
ave
< 1/3.
Thorme
optimal
On va montrer que dans le
as
ontraire, on sait d
ider de partition en temps polynomial. La rdu
tion
onstruite dans le
hapitre 5 montre que partant
d'une instan
e de partition, on peut
onstruire une instan
e de rangement optimal,
de sorte que la rponse partition soit 1 si et seulement si le rsultat de rangement
optimal est 2. Un algorithme -appro
h renvoie alors
omme rponse rangement
optimal une valeur au plus gale 2/(1 ). En parti
ulier, si < 1/3, rangement
optimal a pour rsultat 2 si et seulement si l'algorithme -appro
h renvoie une valeur stri
tement infrieure 3. On peut don
d
ider partition en temps polynomial. Si
P6= NP, il n'existe don
pas d'algorithme -appro
h pour rangement optimal ave
< 1/3.
Ce rsultat peut s'non
er
omme le fait que le problme rangement optimal a un
seuil d'approximation d'au moins 1/3. Noter que
e rsultat ne
ontredit pas le Thorme
6.5, en raison du fa
teur additif qui fait qu'un algorithme de borne suprieure 11kopt /9 + 4
n'est gnralement pas -appro
h.3 La te
hnique de preuve est assez
ourante, et repose
Dmonstration.
sur le fait qu'il existe un problme NP-
omplet de d
ision qui se rduit en un sens
notre problme d'optimisation, de sorte que les rponses positives au problme de d
ision
donnent une valeur A au plus, et les rponses ngatives une valeur B au moins ; dans
e
ontexte, la gnralisation de la preuve pr
dente montre qu'il ne peut exister d'algorithme -appro
h en temps polynomial ave
< 1 A/B , sauf si P= NP. Ainsi, la
NP-
ompltude de 3-
olorabilit montre que le problme du
oloriage d'un graphe
ave
un nombre minimal de
ouleurs a un seuil d'au moins 1/4 (en fait, on peut montrer
que
e seuil est gal 1).
Si voyageur de
< 1, alors P = NP.
6.14.
Thorme
ommer e
Dmonstration.
voyageur de
tonien.
3Dans le as prsent, on peut montrer en imitant la preuve du Thorme 6.9 que l'algorithme est
20/29-appro h.
3. ALGORITHMES D'APPROXIMATION
119
Etant donn une variable alatoire X , deux paramtres donnent des informations parti
ulirement importantes sur X : sa moyenne et sa varian
e. La moyenne est linaire : si
X = X1 + + Xn , alors E(X) = E(X1 ) + + E(Xn ) (si
es moyennes existent, bien
entendu). Ce
i est vrai mme si les variables alatoires Xi ne sont pas indpendantes.
La varian
e de X est dnie par V (X) = E((X E(X))2 ) = E(X 2 ) (E(X))2 . Sa
ra
ine
arre est l'
art-type de X .
Si X et Y sont deux variables alatoires indpendantes, alors E(XY ) = E(X)E(Y ) et
V (X + Y ) = V (X) + V (Y ).
Si X est une variable alatoire positive, alors l'ingalit de Markov dit que pour tout
t 0, on a
Pr(X t) E(X)/t.
121
e
(1 + )(1+)
CHAPITRE 7
Mthodes probabilistes
124
7. MTHODES PROBABILISTES
en moyenne (noter toutefois que l'algorithme probabiliste laisse toute latitude pour le
hoix
de la distribution de l'ala).
numrons su
in
tement quelques grandes ides qui font le su
s des algorithmes
probabilistes et sont au
ur de la
on
eption de
es derniers.
gnri
it. Comme d
rit
i-dessus, le hasard fait qu'il est quasi-impossible de
onstruire une entre du problme qui ralise le pire des
as de l'algorithme probabiliste
pour une proportion signi
ative des alas possibles. En d'autres termes, l'algorithme
probabiliste nous pla
e en situation gnrique ave
forte probabilit.
hantillonage. Le
hoix d'un petit
hantillon alatoire d'un grand ensemble
permet de
omprendre la stru
ture du grand ensemble sur le petit, sous rserve que
e dernier soit reprsentatif,
e qui advient en pratique ave
probabilit 1. Il n'y a pas
vraiment de moyen d'atteindre
et obje
tif (sous-ensemble reprsentatif ) ave
un
algorithme dterministe. C'est l'ide prin
ipale de l'algorithme de sle
tion de k -ime
lment d'une liste, voir plus bas.
abondan
e de tmoins. Supposons que l'on souhaite tester une proprit P(x) pour
x dans un grand ensemble X . On peut se
ontenter de la tester pour x dans un plus
petit ensemble E . Si la proprit s'avre fausse une fois, on peut rpondre sans risque
de se tromper. Dans le
as
ontraire, l'ide d'
hantillonage in
ite penser que la
proprit est vraie ave
bonne probabilit. C'est le prin
ipe des tests de primalit,
voir plus bas.
rupture de symtrie et rpartition de
harge. Dans l'algorithmique distribue, un
problme frquemment ren
ontr est le fait que si les direntes ma
hines ex
utent
simultanment le mme
ode dterministe, il est trs di
ile de briser la symtrie
qui s'ensuit. En parti
ulier,
ela peut
onduire une rpartition trs htrogne de
la
harge, voire des situations de blo
age.
existen
e probabiliste. Si l'on
her
he
onstruire un objet vriant une
ertaine proprit, il sut de montrer qu'un objet alatoire du mme type vrie
ette proprit
ave
probabilit positive. Cela peut aussi s'appliquer la re
her
he du maximum
d'une fon
tion f sur un ensemble X ; si l'on tire des lments de X au hasard pour
obtenir une variable alatoire Y et que l'on montre que E(f (Y )) a, il s'ensuit qu'il
existe un lment de X au moins tel que f (y) a.
2. LAS-VEGAS ET MONTE-CARLO
125
ne ; on a
7.1.
Pr(X t} 1/t.
(ingalit de T
hebit
hev) Soit X une variable alatoire de moyenne et d'
art-type
; alors on a
Pr(|X | a}
1
.
a2
{0, 1} que l'on ren ontre trs frquemment, on peut tre beau oup plus pr is.
Soit (Xi )1in des variables alatoires indpendantes prenant la valeurP0 ave
probabilit pi et la valeur 1 ave
probabilit 1 pi , o 0 < pi < 1.
Alors, si = ni=1 pi , on a, pour tout > 0,
Thorme
7.2 (Chernov).
Pr
m
X
i=1
Xi > (1 + )
<
exp()
(1 + )1+
Noter que le terme intrieur la parenthse est toujours infrieur 1, et vaut par
exemple 0,68... pour = 1, et 0, 27... pour = 0. Quand , il d
rot
omme
exp( 2 ).
2. Las-Vegas et Monte-Carlo
On distingue
lassiquement deux
lasses d'algorithmes probabilistes, les algorithmes
de type Las-Vegas et les algorithmes de type Monte-Carlo. On exige des algorithmes LasVegas qu'ils fournissent une rponse toujours exa
te ; leur temps d'ex
ution doit, lui, tre
polynomial en moyenne (pour une dnition plus pr
ise, voir la dnition de la
lasse
ZPP dans les
omplments en n de
hapitre).
l'inverse, les algorithmes de type Monte-Carlo doivent avoir un temps d'ex
ution
polynomial dans tous les
as, mais peuvent, ave
une probabilit stri
tement infrieure
1, fournir un rsultat faux. Remarquons qu'en itrant plusieurs fois un algorithme de type
Monte-Carlo ayant une
ertaine probabilit d'
he
, on peut ramener
ette probabilit aussi
prs de 0 qu'on le veut.
Noter que dans le
as d'un problme de
al
ul ou d'optimisation, si l'on dispose d'un
algorithme polynomial permettant de vrier le rsultat, il est possible de transformer
126
7. MTHODES PROBABILISTES
gnriquement un algorithme Monte-Carlo en algorithme Las Vegas (tant que la vri
ation montre qu'on s'est tromp, rappliquer l'algorithme ; noter que l'itration peut ne
pas terminer, mais
ela n'arrive qu'ave
probabilit nulle).
3. Primalit
Le problme de d
ider si un nombre est premier intervient de faon fondamentale
dans de nombreux algorithmes lis de prs ou de loin la thorie des nombres. On
onnat
depuis 2002 un algorithme polynomial dterministe permettant de d
ider si un nombre
est premier, mais il est de
omplexit leve pour le moment. On se
ontente i
i de d
rire
un test rapide et e
a
e, qui est
elui implment de faon plus ou moins heureuse
dans la plupart des systmes de
al
ul formel a
tuels.
Ce test repose sur la proposition suivante :
7.1.
n1
On dit qu'un entier n est pseudo-premier fort en base a si n vrie l'une des deux
on
lusions du lemme tout en tant
ompos. On dit alors que a est un faux tmoin pour
n. Tester si a est un faux tmoin pour un n donn peut se faire en temps polynomial.
En eet, il sut de
al
uler at par l'algorithme suivant (mthode binaire droite-gau
he),
en temps O(log t(log a)2 ) (la multipli
ation de deux nombres de taille m peut se faire en
temps O(m2 ) ; on peut mme des
endre O(m log m log log m)) :
z 1 ; y a.
Tant que t 6= 0
Si t impair z zy
y y 2 ; t t/2.
Renvoyer z .
On laisse au le
teur le soin de prouver que
et algorithme est
orre
t.
k
Les puissan
es a2 t sont ensuite
al
uls par
arrs su
essifs.
L'e
a
it de
e test simple est dmontre par la proposition suivante, due Monier :
Proposition.
[1, n 1].
Il s'ensuit qu'un test ee
tu ave
un a alatoire indique que n est premier ave
une
probabilit de 3/4. Il est trs dli
at de donner un sens une suite de tests, mais on peut
4. SLECTION DU
k-IME
127
montrer, sous des
onditions te
hniques, que si n survit k tests
ons
utifs, alors il est
premier ave
probabilit 1 (1/4)k . Le le
teur aura
ompris que l'algorithme prsent i
i
est de type Monte-Carlo.
Citons enn le thorme suivant, qui montre
omment transformer
et algorithme en
un algorithme dterministe polynomial si l'hypothse de Riemann gnralise est vraie :
telle que si n est pseudo-premier fort en base a pour a c log2 n, alors n est premier.
n, 1), h = min(x +
n, n3/4 ).
si k < n1/4
{y S, y a}
P =
{y S, a y b} si n1/4 k < n n1/4
{y S, y b}
si k n n1/4
128
7. MTHODES PROBABILISTES
suite, on peut s'attendre que le k -ime lment de S ait un rang de l'ordre de kn1/4 dans
Thorme
O(n1/4 ).
7.3.
Dmonstration.
14
Il peut y avoir deux sour
es d'
he
, qu'il faudra tudier sparment : d'abord, le k ime lment peut ne pas appartenir P (soit S [a, b] dans notre
as). Sinon, si
e k -ime
lment est bien dans P , il peut advenir que P soit trop gros.
Dnissons une suite de variables alatoires Xi par Xi = 1 si le i-me lment
de R
P
est au moins gal l'lment
her
h Sk , Xi = 0 sinon, et posons X =
Xi .
3/4
1in
Comme l'espran
e de Xi est manifestement k/n, il s'ensuit que E[X] = kn1/4 . De mme
la varian
e de Xi tant (1 k/n)k/n, et les Xi tant indpendantes, la varian
e de X vaut
n3/4 (1 k/n)(k/n) n3/4 /4.
On peut alors utiliser l'ingalit de T
hebit
hev, qui dit que P (|X E[X]| > )
n) n1/4 /4,
e qui revient exa
tement l'assertion initiale. Notons que X est exa
tement la variable
alatoire dsignant le rang de Sk dans R.
Soit maintenant kl = max(1, k 2n3/4 ) et kh = min(n, k + 2n3/4 ). Si P soit trop grand,
alors soit a est plus petit que le kl -ime lment de S , ou b est plus grand que le kh ime lment de S (rappelons que l'on peut supposer
e stade que le k -ime lment
de S est dans P ). On traite seulement le
as de a, l'autre
as tant analogue. Dnissons
alors la suite Yi par Yi = 1 si le i-me tirage est au plus le kl -ime
P lment de S , 0
sinon. Alors E[Yi ] = kl /n, var(Yi ) = (1 kl /n)kl /n, et posant Y =
Yi , on a E[Y ] =
1/4
3/4
3/4
kl n
, var(Y ) = n (1 kl /n)(kl /n) n /4. La probabilit que a soit plus petit que
le kl -ime lment de S est la probabilit que Y soit plus petit que l, i.e., soit plus petit
129
Pr (Q(x1 , . . . , xn ) = 0|Q 6= 0)
d
.
k
Q(x1 , . . . , xn ) =
j
X
l=0
dj
.
k
130
7. MTHODES PROBABILISTES
7.5.
Thorme 7.6. Dans le
as de l'hyper
ube, il existe un algorithme probabiliste in
ons
ient utilisant O(nN) bits alatoires tel qu'tant donn , ave
probabilit suprieure
1 2/N ,
haque message atteint sa destination en au plus (2 + 4)n tapes.
On
ommen
e par d
rire l'algorithme. La faon naturelle d'a
heminer un message M de i vers j
onsiste
rire les reprsentations binaires de i et de
j ; on les lit ensuite de gau
he droite et on modie
haque tape le bit de i le plus
gau
he qui dire du bit
orrespondant de j pour obtenir le sommet suivant du par
ours.
Ainsi, le
hemin de 12 = 01100 31 = 11111 passera par 28 = 11100 et 30 = 11110.
L'algorithme probabiliste que nous allons utiliser est alors le suivant : pour
haque
sommet i, tirer un entier alatoire de [1, N], not t(i). A
heminer le message de i t(i) par
la stratgie dterministe
i-dessus, puis le message de t(i) f (i) par la stratgie dterministe
i-dessus. Noter que t n'est a priori pas une permutation.
Le but du passage par t(i) est de rendre les dirents
hemins plus indpendants
pour liminer les goulots d'tranglement pouvant tre
rs par une instan
e du problme ;
pour la stratgie dterministe
i-dessus, on pourra ainsi r
hir
e qui se passe si la
destination du sommet i = u2n/2 + v est j = v2n/2 + u.
Dmonstration.
131
Il faut aussi sp
ier dans quel ordre nos messages bloqus un sommet quittent
e
dernier ; on adopte une stru
ture de le,
'est--dire que le premier message arriv est aussi
le premier partir.
Pour estimer le nombre d'tapes n
essaire,
ommenons par estimer le nombre d'tapes
pour a
heminer
haque message jusqu'en t(i). Ce nombre est au plus n plus le nombre
d'tapes passes attendre un sommet du graphe qu'une arte se libre.
7.1.
Dmonstration. Notons que la stratgie dterministe fait qu'une fois que deux routes
se sparent, elles ne se ren
ontrent plus ultrieurement. Chaque message quitte don
ette
suite d'artes une tape am et ne repasse plus par une de
es artes ensuite.
L'ide de la preuve du lemme
onsiste dire que quand le retard de M augmente,
'est
qu'il est en
on
urren
e ave
un message M pour traverser une des artes a1 , . . . , ak , et
don
que M est dans S ; on peut don
asso
ier
haque message de S une unit de retard
de M , il faut maintenant le faire de faon
e que la
orrespondan
e soit inje
tive.
Dnissons le retard d'un message avant de traverser l'arte al
omme le nombre
d'tapes
oules depuis le dbut de l'algorithme moins l. On va montrer que le retard
de notre message en sortie de ak est au plus |S|.
Notons d'abord que quand le retard de M passe de r r+1,
ela implique que le message
est en attente pour fran
hir l'arte al , et don
'est qu'un message (qui est n
essairement
dans S ) est en train de traverser l'arte al , ave
un retard qui est don
gal r .
Soit t l'tape maximale laquelle il existe un message de S de retard r donn (noter
que t est born
ar tous les messages arrivent (heureusement) leur destination) ; il existe
don
un message prt fran
hir l'arte t r . Ce message ne peut suivre l'arte t r + 1
l'tape suivante, et doit don
quitter
e stade le
hemin a1 , . . . , ak ; sans quoi, soit il n'est
pas bloqu et son retard
ette arte est nouveau r ; soit il est bloqu par un message
quittant atr+1 l'instant t+1, dont le retard est don
r . Ces deux possibilits
ontredisent
la maximalit de t.
haque unit de retard, on peut don
asso
ier un message dont la
route ren
ontre a1 , . . . , ak , de faon inje
tive. Le retard du message M est don
au plus
|S|,
e qui
on
lut la preuve du lemme.
Considrons la variable alatoire Hij qui vaut 1 si les routes de i t(i) et de j t(j) se
PN
PN
Pk
132
7. MTHODES PROBABILISTES
PN
j=1 Hij
(+1)n
7. Ha
hage parfait
L'un des rles prin
ipaux des fon
tions de ha
hage
onsiste orir la possibilit de
d
ider trs rapidement de l'appartenan
e d'un lment donn un ensemble E . Pour
e
faire, on
onstruit un tableau de boolens T , et pour
haque lment x de E , on met la
ase
h(x) de T vrai. Moyennant
e pr
al
ul, on peut d
ider si x est dans E en
onsultant
simplement T [h(x)].
Ce
i tant dit, on peut
onstater que les deux obje
tifs impli
itement d
rits
i-dessus
sont
ontradi
toires. On voudrait d'une part avoir un tableau le plus petit possible,
e qui
implique que h(x) ne prenne que de petites valeurs entires ; on voudrait par ailleurs que
h soit inje
tive
e qui entrane automatiquement que l'ensemble des valeurs de h soit plus
grand que son espa
e de dnition.
On dira qu'une fon
tion de ha
hage h est parfaite pour un sous-ensemble S de son
domaine de dnition si la restri
tion de h S est inje
tive. L'objet de
e paragraphe
est de prsenter une mthode probabiliste pour
onstruire une telle fon
tion de ha
hage
parfaite. On peut aussi introduire la notion de ha
hage quasi-parfait, pour lequel le nombre
d'ant
dents d'une valeur donne est born par une
onstante indpendante de |S|. Dans
e
as, on peut
haque
ase du tableau T asso
ier un tableau de boolens, qui
orrespondent
la valeur d'une se
onde fon
tion de ha
hage,
ense dis
riminer entre les
ollisions de
h (ou en
ore, on sto
ke dans la -ime
ase de T tous les y E tels que h(y) = .
On va montrer i
i
omment rsoudre le problme du ha
hage parfait. Comme d
rit
i-dessus,
ette solution la fois
onomique en temps et en espa
e utilise deux niveaux
de ha
hage. Soit M = {0, . . . , m 1} l'ensemble duquel proviennent les lments ha
her,
et soit V M de
ardinal v l'ensemble ha
her. Quitte augmenter1 m, on peut supposer
que p = m + 1 est un nombre premier. On xe un entier r v , et on introduit la fon
tion
7. HACHAGE PARFAIT
133
7.2.
Dmonstration. L'identit hk (x) = hk (y) quivaut au fait que r divise (kx mod p)
(ky mod p). En raison de notre abus de notation,
ette dernire quantit ne vaut pas
toujours k(x y) mod p, mais peut tre son oppos.
On sait don
que r divise (k(x y) mod p). Pour
ha
un des 2(p 1)/r multiples
non nuls de r de [1 p, p 1], si x et y sont xs, on peut trouver un seul et unique k
tel que k(x y) mod p ait la valeur pres
rite. Le nombre de
ouples (x, y) ave
x 6= y
tant v(v 1)/2, le nombre total de triplets (k, x, y) est don
(p 1)v(v 1)/r =
mv(v 1)/r .
7.1.
On peut maintenant
onstruire notre s
hma de ha
hage en deux temps. On
hoisit tout
d'abord un k tel que dans le
orollaire pr
dent, en tirant au hasard et en dnombrant le
ouple (x, y)
orrespondants. Deux tapes en moyenne seront n
essaires pour obtenir un
k valide. Pour
haque i de [0, r 1], on
hoisit alors une fon
tion hki = (ki x mod p) mod ri ,
o ri 2#{x/hk (x) = i}2 , pour ha
her nouveau l'ensemble des x tels que hk (x) = i. Le
orollaire pr
dent montre que pour la moiti des
hoix de ki , le nombre de
ouples (u, v)
tels que hki (u) = hki (v) est nul, et don
le se
ond ha
hage est parfait.
Thorme
O(r).
7.7.
134
7. MTHODES PROBABILISTES
8.
maxsat
On rappelle le
adre du problme maxsat. On se donne un
ertain nombre n de variables x1 , . . . , xn , et m
lauses de la forme yl,1 yl,2 yl,kl , o
ha
un des yl,j est soit
xt , soit xt . On suppose de plus qu'une variable et son
omplment n'interviennent pas dans
la mme
lause (sans quoi
elle-
i est automatiquement vraie). On
her
he dterminer le
plus grand nombre de
lauses pouvant tre satisfaites par une ae
tation de variables.
On va prsenter deux algorithmes probabilistes, l'un se
omportant parti
ulirement
bien quand le nombre de variables par
lauses est lev, l'autre se
omportant bien quand
e nombre est faible. On prouvera ensuite que l'un des deux algorithmes donne toujours,
en moyenne, un rsultat qui est au moins les 3/4 du nombre maximal de
lauses pouvant
tre valides. En d'autres termes, on
onstruit un algorithme probabiliste (1/4)-appro
h
pour maxsat.
8.1. Premier algorithme. Le premier algorithme suit l'ide la plus nave qui soit.
Pour
haque variable, on
hoisit une valeur de vrit 0 ou 1 au hasard, ave
probabilit
1/2, et l'on regarde le nombre de
lauses satisfaites. Il est bien
lair que si l'on prend une
lause k littraux, elle sera alors satisfaite si et seulement si l'une des variables (ou son
omplmentaire ventuellement) est vraie, et don
ave
probabilit 1 2k . Si pour
haque
k esti satisfaite, on
lause on dnit alors une variable alatoire Ck par Ck = 1 si la
lause
h
a E[Ck ] = 1 2k . Comme le nombre de
lauses satisfaites est E
Pm
j=1 Cj
m/2, on a
max m
j=1 zj
0y
1
i
,
0
1 P
j
iC + yi +
iC zj
j
8.
MAXSAT
135
On va alors arrondir les yi pour obtenir les valeurs ae
ter aux variables, en
hoisissant d'arrondir yi vers 0 ave
probabilit 1 yi . Cette te
hnique est une probabilisation
extrmement frquente pour les problmes de programmation linaire en nombres entiers :
supprimer les
ontraintes d'intgralits, et arrondir les rsultats du programme linaire en
utilisant les parties fra
tionnaires pour dnir les probabilits des deux entiers en
adrant
la valeur relle.
Considrons la j -ime
lause. On a y1 + + yk zj (en supposant, sans perte de
gnralit, que les variables de
ette
lause sont non
omplmentes). La probabilit que
ette
lause soit fausse est la probabilit que toutes les variables soient arrondies vers 0.
Qk
Qk
Cette probabilit est i=1 (1 yi ). La
lause est don
satisfaite ave
probabilit 1 i=1 (1
yi ). Or
ette dernire quantit est minimale, sous la
ontrainte que la somme des yi est au
moins zj , quand tous les yi sont gaux zj /k , et vaut alors
k
zj
1 1
1
1 1
k
k !
zk (1 1/e)zk .
cj S k
(1 2k )
cj S k
(1 2k )zj ,
n2
Il vient
X X
k
cj
S k
1
1 1
k
X X zj
(n1 + n2 )/2
2
k
k
cj S
22
k
zj .
k !
1
1
,
k
et il n'est pas di
ile de montrer que le terme intrieur la parenthse est au moins
gal 3/2 pour tout k
e qui
on
lut la preuve.
Il faut noter que le rsultat d'approximation n'est valide qu'en moyenne. Ce problme
peut en pratique moyennant une analyse probabiliste plus pr
ise tre
ontourn en
136
7. MTHODES PROBABILISTES
itrant plusieurs fois
ha
un des deux algorithmes, et en
onservant la plus grande de toutes
les valeurs.
8.4. Drandomisation.
Il est bon de dire un mot
e niveau de la notion de drandomisation. On peut voir un algorithme probabiliste pour un problme de NP
omme un
hemin dans l'arbre de
al
ul de la ma
hine non-dterministe
orrespondante,
haque bit
alatoire
orrespondant un
hoix non-dterministe. Dire que l'on dispose d'un algorithme
polynomial probabiliste pour rsoudre un problme revient estimer la probabilit de
tomber sur une feuille de l'arbre de
al
ul apportant une rponse,
e qui, si tous les
hoix
sont quiprobables, revient estimer le nombre de telles feuilles de l'arbre de
al
ul. C'est en
parti
ulier ainsi que l'on dnit les
lasses de
omplexit probabilistes, voir le
omplment.
Notre propos dans
e paragraphe est de montrer
omment l'on peut parfois exploiter
ette remarque pour transformer un algorithme probabiliste en algorithme dterministe.
haque sommet s de l'arbre de
al
ul, on peut asso
ier la probabilit Pr(s) qu'un
al
ul issu de
e sommet
onduise une rponse valide. Lors de l'utilisation d'un bit
alatoire (ou d'un
hoix non-dterministe), on peut alors des
endre d'un nud n vers un
nud n0 ou n1 , et l'on a Pr(n) = p0 Pr(n0 ) + p1 Pr(n1 ), o p0 et p1 sont les probabilits que
le bit alatoire prenne la valeur 0 ou la valeur 1. En parti
ulier, l'une des deux probabilits
Pr(n0 ) et Pr(n1 ) est au moins aussi grande que Pr(n). Si l'on est
apable,
haque nud
de l'arbre de
al
ul, de d
ider laquelle des deux bran
hes vrie
ette proprit, on peut
alors
onstruire un
hemin de
al
ul de la ra
ine une feuille le long duquel les probabilits
roissent ;
omme la probabilit de la ra
ine est non nulle (au moins,
'est prfrable), la
probabilit de la feuille est non nulle. Mais la probabilit d'une feuille ne peut tre que
0 (elle ne fournit pas de solution) ou 1 (elle fournit une solution). La seule possibilit est
don
que
ette probabilit vaille 1, et don
on obtient bien une solution.
On peut illustrer
ette mthode dans le
as de maxsat. Le premier algorithme probabiliste donn
orrespond,
haque tape,
hoisir la valeur 0 ou 1 d'une variable donne.
En fon
tion de
e
hoix, il est fa
ile, par le mme raisonnement que dans l'analyse de
l'algorithme, d'estimer la probabilit du sous-arbre
orrespondant, et de
hoisir la valeur
donnant la probabilit la plus forte. En suivant
e raisonnement, on obtient un algorithme
dterministe (1/2)-appro
h pour maxsat.
138
enn Di
ontient les lments qui n'ont pas t
ompars un autre lment et qui
peuvent don
tre maximum ou minimum.
Dans la suite on note par une lettre minis
ule xi le nombre d'lments de l'ensemble
Xi . Il est
lair que a0 = b0 = c0 = 0 et d0 = n d'autre part lorsque l'algorithme termine
aprs p
omparaisons, on a ap = bp = 1; cp = n 2 et dp = 0. Pour mesurer le degr
d'avan
ement de l'algorithme on introduit la fon
tion Ui = 2ai + 2bi + 3di qui passe de 3n
4 au
ours de l'ex
ution de l'algorithme (U0 = 3n, Up = 4).
Lorsque qu'une
omparaison est ee
tue la diren
e entre Ui et Ui+1 prend une valeur
dans l'ensemble {0, 1, 2, 3, 4}. La valeur est gale 4 si on
ompare un lment x de Ai
un lment y de Bi et que l'on obtient y > x
ar dans
e
as Ai et Bi perdent un lment.
Cette diren
e est gale 3 lorsqu'un lment de Di est trouv suprieur un lment de
Ai , ou symtriquement s'il est trouv infrieur un lement de Bi : en eet l'lement de
Di rempla
e alors dans Ai l'lment auquel il a t
ompar,
e dernier passant dans Ci+1
et on vrie que Ui diminue de 3. Dans tous les autres
as la diren
e est infrieure ou
gale 2.
Lemme 7.3. Pour tout algorithme donn, il existe une suite = a1 , a2 , . . . , an telle que
si la i + 1-eme opration
onsiste
omparer un lment de Di un lment de Ai ou Bi ,
ou un lment de Ai un lment de Bi on a alors Ui Ui+1 1.
7.8.
Preuve On vrie qu'il existe une suite telle que haque omparaison fait diminuer la
valeur de Ui d'au plus 2, en eet toutes les
omparaisons donnent une diren
e de 0,1 ou
2 sauf le
as d'une
omparaison d'un lment de Di un de Ai ou Bi ou de la
omparaison
d'lments de Ai et Bi ; mais le lemme assure que dans
e
as il existe une suite qui donne
une diren
e de 1. Comme on passe de 3n 4 le nombre de
omparaisons est au moins
gal 3n4
.
2
Troisime partie
Appli
ations
CHAPITRE 8
Algorithmes pour la biologie mol
ulaire
Les te
hniques de
on
eption algorithmique et preuves de NP-
ompltude tudies pr
demment s'utilisent
ouramment dans les domaines d'appli
ation de la'lgorithmique,
lesquels ne se retreignent pas l'informatique et tl
ommuni
ations. Dans
e
hapitre,
nous donnons quelques exemples d'appli
ations la biologie mol
ulaire.
1. Introdu
tion
L'ADN
ontient les instru
tions permettant la
ellule de fon
tionner. Il
onsiste en
deux brins formant une hli
e double.
142
La distan e entre deux squen es est la sommes des distan es ara tre par ara tre :
1i<jk 1|Si |
ave
fon
tion de distan
e de ({})2 vers les entiers positifs (distan
e, don
symtrique,
nulle pour tout (, ) et seulement pour
es paires, et satisfaisant l'ingalit triangulaire).
Cette distan
e modlise les similarits entre a
ides amins du point de vue de leurs proprits physi
o-
himiques. Par exemple, les 7 a
ides amins de
harge globale nulle mais
distribue irrgulirement sur l'a
ide amin ont tendan
e former des liens hydrognes
ave
l'eau, et sont don
similaires les uns aux autres.
Le problme de l'alignement de squen
es multiples peut tre rsolu en gnralisant l'algorithme d'alignement de deux squen
e, ave
i
i un tableau k dimensionnel ; mais la
omplexit de l'algorithme devient alors O(nk ) pour k squen
es de
longueur n,
e qui n'est pas polynomial en la taille des entres. Le thorme
i-dessous
montre que la re
her
he d'un algorithme polynomial est voue l'
he
si P 6= NP .
Thorme 8.1. Soit un alphabet x. Etant donn un entier k , une famille S1 , . . . , Sk
de
hanes de
ara
tres sur , une fon
tion de distan
e sur , et un entier C , d
ider
s'il existe un alignement de valeur au plus C est un problme NP -
omplet.
a b 0 1
0
1
1
1
1
2
2
1
2
2
2
0
2
1
1
0
1
1
2
1
2
1
1
0
2
2
2
2
1
1
2
0
2
1
2
2
1
2
1
2
0
2
2
2
2
2
1
2
0
143
Une 2-approximation.
dans S1 .
La
omplexit en temps est fa
ile
al
uler pour k squen
es de longueur n :
O(
X
k(k 1) 2
n +
O(jn n)) = O(k 2 n2 ).
2
2jk
S1 , . . . , Sk de l'algorithme a valeur :
X
X
X
X
D(Si , Sj )
D(Si, S1 )+D(S1 , Sj ) = (k1)
D(Si, S1 ) = (k1)
D(Si , S1 ).
1i<jk
1i<jk
1ik
1ik
1i<jk
D(Si , Sj )
1i<jk
D(Si , Sj ) =
1 XX
1 XX
kX
D(Si , Sj )
D(Si , S1 ) =
D(Si , S1 ).
2 i j6=i
2 i j
2 j
144
la mme famille. En revan
he, en gnral, lorsqu'on
ompare deux squen
es anonymes,
elles n'ont au
une raison de bien s'aligner, mais
ertaines de leurs se
tions internes (fa
teurs) peuvent se ressembler, dans des motis qui
orrespondent
ertaines proprits stru
turelles ou fon
tionnelles. Il est alors important, tant donn deux squen
es, de trouver
les motifs qui sont similaires dans l'une et l'autre des deux squen
es.
Dans le
as "pur" o il n'y a pas d'erreur, il faut reprer les motifsqui sont exa
tement
prsents dans les deux squen
es. Un
as traditionnel est
elui o le motif est dj
onnu.
La re
her
he d'un motif dans un texte est un grand
lassique de l'informatique.
4. SOUS-SQUENCES MAXIMALES
145
Tout l'ADN ne
ontient pas d'informations sur les gnes. Une rgion
de
odage est un fa
teur du mot qui reprsente un gne. Entre deux rgions de
odage, se
trouvent des zones intermdiaires. Typiquement, 90% du gnome d'un organisme prokariote
(mono-
ellulaire sans noyau) est "utile" (
odant des gnes). En revan
he, le m
anisme de
trans
ription des organismes eukariotes (tels que les plantes ou les animaux) utilise des
introns, lesquels o
upent une grande partie de l'ADN :
hez l'tre humain, les rgions de
odage de gnes o
upent moins de 3% du gnome.
Etant donn le gnome, on souhaite identier les fa
teurs qui sont probablement des
rgions de
odage, an d'identier de nouveaux gnes.
Une tape prliminaire pour
ela est d'identier de longs fa
teurs qui ne
ontiennent
pas de
odon "STOP". Puis on regarde le mot
odon par
odon, en utilisant nos
onnaissan
es pralables au sujet de gnes dj identis. Par exemple, si le
odon qu'on vient de
lire a frquen
e 7% parmi les gnes dj
onnus, mais seulement 4% dans l'ensemble du
gnome, on peut interprter
e fait
omme augmentant les
han
es que la rgion tudie
soit ee
tivement un gne. Ainsi, on peut supposer qu'on dispose d'une table attribuant
un s
ore
haque
odon ; plus le s
ore est lev, plus la prsen
e du
odon est signi
ative
et augmente les
han
es d'tre ee
tivement en train de lire un gne.
Dnition du problme.
Algorithme.
Ce problme se rsoud par re
her
he nave en temps O(n3 ), mais beau
oup plus rapidement par programmation dynamique.
Pour tout k {1, . . . , n}, soit ak le meilleur s
ore d'un fa
teur de X1 . . . Xk , et bk le
meilleur s
ore d'un suxe de X1 . . . Xk .
Initialement, pour k = 0, on a ak = bk = 0.
146
Les suites (ak ) et (bk ) peuvent tre dnies en utilisant la r urren e double i-dessous.
ak = max(ak1 , bk1 + Xk )
bk = max(bk1 + Xk , 0)
En implmentant
et algorithme ave
des tableaux pour a et pour b, il est ais de voir
que an se
al
ule en temps O(n).
Pour avoir, non seulement la valeur du meilleur fa
teur
andidat tre un gne, mais
galement sa position, il sut de garder en outre la tra
e de la position du fa
teur
onsidr
dans des variables auxiliaires :
147
Dnition du problme. Etant donn n esp
es, ave
pour
haque paire d'esp
e
{i, j}, une distan
e D(i, j) donnant le temps
oul depuis que
es esp
es ont diverg,
re
onstruire l'arbre d'volution de
es esp
es : les n esp
es sont les n feuilles de l'arbre,
haque noeud interne a au moins deux enfants et porte une tiquette reprsentant le temps
oul depuis que
ette esp
e a mut : pour toute paire de feuilles {i, j}, D(i, j) est
l'tiquette du plus pro
he an
tre
ommun i et j dans l'arbre ; et sur tout
hemin de
la ra
ine une feuille, les tiquettes sont stri
tement d
roissantes.
8.1.
Thorme 8.2. Etant donn n esp
es ave
leur matri
e D symtrique asso
ie, le
problme de re
onstru
tion de l'arbre d'volution a une solution si et seulement si D dnit
une ultra-mtrique.
S'il existe un arbre d'volution, et qu'on en ea
e tout
e qui n'est pas sur un plus
ourt
hemin entre i et j , j et k , ou k et i, on obtient un arbre 3 feuilles i, j, k . Si sa ra
ine u a
trois enfants, alors
'est le plus pro
he an
tre
ommun et D(i, j) = D(j, k) = D(k, i) est
l'tiquette de u. Sinon, u a deux enfants ; par exemple, un de ses deux sous-arbres
ontient
la fois i et j , et l'autre doit alors
ontenir k : on a alors D(i, k) = D(j, k). Ce
i dmontre
la dire
tion seulement si" du thorme.
Pour la r
iproque, la preuve est
onstru
tive. Soit i une esp
e. Soit d le nombre de
valeurs distin
tes parmi {D(i, j), j 6= i}. S'il existe un arbre d'volution asso
i D , alors
l'arbre doit avoir un
hemin de longueur d de la ra
ine i, et les valeurs de {D(i, j} partitionnent les n 1 autre feuilles en parties pour
ha
une desquelles on pourra rsoudre
r
ursivement le problme. On
ombine nalement les solutions de
es problmes en re
ollant
es arbres le long du
hemin. Il est fa
ile de voir que si D est une ultramtrique, alors
l'arbre ainsi
onstruit satisfera les proprits requises.
De
e thorme, on dduit l'uni
it de l'arbre d'volution ainsi qu'un algorithme en
148
Ce
i dnit un modle simpli d'volution sto
hastique. Notons qu'il est rversible : la
probabilit de la transition est gale la probabilit de la transition .
Si le plus pro
he an
tre
ommun aux deux gnomes et se trouve k gnrations
de distan
e, alors, par rversibilit, peut tre engendr partir de en 2k gnrations.
On est don
ramen au problme suivant : tant donn = (0) , on suit le modle
d'volution sto
hastique dni plus haut. Quelle est la valeur de 2k la plus probable,
nombre de gnrations pour avoir ?
L'appro
he statistique suivante se rvle e
a
e. Soit = g1 . . . gn . i forme une
oupe
si gi et gi+1 ne sont pas voisins dans . Soit D le nombre de i formant une
oupe.
Soit Dt le nombre de
oupes entre (t) et (0) , o (t) est le des
endant de (0) aprs t
mutations.
(1) On
al
ule E(Dt ) pour t = 1, 2, 3, . . . en pro
dant par r
urren
e.
(2) On
hoisit le t tel que |E(Dt ) D| soit minimum.
CHAPITRE 9
Algorithmes pour la physique statistique
1. Modle d'Ising
Ce modle tente d'expliquer la physique des transitions de phase, il est appel ainsi
aprs les travaux raliss dans les annes 20 par Ernst Ising. Les transitions de phase sont
des
hangements qualitatifs ma
ros
opiques qui se produisent dans
ertains tats d'un
systme lorsque l'on modie lgrement les paramtres (
onditions de temprature ou de
pression par exemple), et ne sont pas toujours bien expliqus. Le modle d'Ising d
rit les
intera
tions entre mol
ules dans un
ristal et permet de
al
uler
ertains paramtres de
hangement de phase,
omme la temprature
ritique par exemple. Il s'agit i
i de lier
es
problmes l'algorithmique de graphes.
On
onsidre un graphe non orient G = (X, E)
omportant n sommets et m artes.
Dan le
ontexte physique, le graphe G est souvent trs rgulier : grille en petite dimension
ou au
ontraire graphe alatoire.
149
150
Par exemple dans le modle de grille une dimension tous les sommets du graphe sauf
2 ont deux voisins, les deux sommets restant n'en ayant qu'un seul.
Fig. 1.
Fig. 2.
A
haque arte e E est asso
ie une nergie d'intera
tion relle J(e) qui est souvent
onsidre
omme
onstante (e, J(e) = J ) mais qui dans
ertains
as peut dpendre de
e. Une
onguration du graphe asso
ie
haque sommet un spin,
'est--dire un lment
de l'ensemble {1, 1}. On dnit l'nergie de la
onguration par
H() =
e={x,y}E
J(e)(x)(y) M
(x),
xX
Z=
dnie par :
eH()
P () =
eH()
.
Z
Sur
ette formule on
onstate que que lorsque la temprature tend vers l'inni, tend
vers 0, et la distribution devient uniforme, sans plus de
orrlation entre spins voisins
1. MODLE D'ISING
151
(tat dsordonn), alors que lorsque la temprature tend vers 0, tend vers l'inni, les
diren
es d'nergies sont ainsi magnies et la distribution se
on
entre sur l'tat ou les
tats d'nergie minimale.
G est
onstruite partir d'une partition de X en deux parties X1 et X2 , elle est
onstitue
de toutes les artes qui ont une extrmit dans X1 et l'autre dans X2 . Soit bj le nombre de
oupures j artes, et B(x) le polynme
B(x) =
m
X
bj xj .
j=0
9.1.
Z=
2
B(2 ),
m
On obtient
Z=
Z = 2e
m
X
j=0
bj e2jJ
152
et en posant = eJ on a :
m
2 X 2j
1
Z= m
bj = m B(2 ).
j=0
9.1.
Preuve : Z
2. Polynme de Tutte
Le
al
ul de la fon
tion de partition fait intervenir le polynme des
oupures d'un
graphe, on va pouvoir montrer dans
ette partie que
e polynme est de fait la valeur prise
en
ertains points par un polynme plus gnral, appel polynme de Tutte. Le nom du
polynme fait rfren
e W. T. Tutte qui l'a introduit dans les annes 50 en vue d'tudier
les
olorations des graphes, on a obtenu gra
e
e polynme de nombreux autres rsultats
en thorie des graphes, en
ombinatoire, en algorithmique mais aussi en thorie des nuds.
2. POLYNME DE TUTTE
153
Dfinition
9.1.
On montre que la dnition propose est
ohrente,
ar quelque soit l'ordre dans lequel
on ee
tue des suppressions ou des
ontra
tions d'artes on obtient le mme rsultat.
Pour s'entrainer
al
uler le polynme de
ertains graphes parti
ulier, on vrie simplement que le polynme de Tutte d'un arbre n sommets est xn1 , et que le polynme
de Tutte d'un
y
le de longueur n est xn1 + xn2 + . . . + x2 + x + y .
9.2.
1+x 1
, )
1x x
Ce rsultat s'obtient fa
ilement par r
urren
e une fois que l'on a prouv le lemme
ombinatoire suivant dont la preuve n
essite un
ertain soin.
9.1.
Dmonstration. La preuve de
e lemme est immdiate pour les deux premires parties.
Dans le
as o e est un isthme il faut remarquer qu'
haque
oupure de Ge en deux
sous-ensembles X et Y il
orrespond deux
oupures de G
onstruites de la manire suivante :
154
On suppose que X
ontient le sommet c obtenu par
ontra
tion de e = {a, b} et note
X1 et X2 les deux parties de X
orrespondant aux 2
omposantes de G obtenues si on
supprime e ; X1
orrespondant la
omposante
ontenant a et X2
elle
ontenant
b ; ainsi X = {c} X1 X2 .
De la mme faon on note Y1 et Y2 les parties de Y
orrespondant aux deux
omposantes de G relies par e.
La premire
oupure de G que l'on fait
orrespondre X, Y est {a, b} X1 X2 , Y ,
on vrie que la taille de
ette
oupure est c(X, Y )
La se
onde
oupure de G que l'on fait
orrespondre X, Y est {a} X1 Y1 , X2 , Y2 ;
on vrie que la taille de
ette se
onde
oupure est 1+c(X, Y ),
ar toutes les artes de
la
oupure (X, Y ) de Ge sont aussi
elles de
ette
oupure pour G et
elle-
i
ontient
aussi {a, b}.
Dans le denier
as on remarque que toute
oupure X, Y de G est aussi une
oupure de
G e. On note a et b les extrmits de e,
Si a et b sont dans le mme sous-ensemble alors les deux
oupures sont de mme
taille, et il en est de mme pour la
oupure de Ge obtenue par
ontration de e.
Si a et b sont dans des sous-ensembles distin
ts alors la diren
e des tailles des
oupures de G et G e est 1.
Ainsi tBGe
ompte
orre
tement les
oupures du deuxime type mais ave
un
oef
ient trop lev
elles du premier type, il faut don
orriger
ette inexa
titudes en
remarquant que les
oupures du premier type
orrespondent exa
tement
elles de
Ge .
Donnes : un graphe non-orient G = (X, E), et une for
e d'intera
tion J(e) sur
haque arte e E .
Rsultat : Un spin (x) {1, +1} pour
haque sommet x X , qui minimise
P
e={x,y}E J(e)(x)(y).
Fig. 3.
155
Proposition 9.1. Le problme de l'tat d'nergie minimale admet une solution telle
P
que H() = eE |J(e)| si et seulement si tout
y
le de G
ontient un nombre pair
d'artes ngatives.
Preuve :
156
-1
-1
-3
-3
Fig. 4.
-1
-1
La proposition qui pr
de donne un
ritre thorique di
ile vrier. Par
ontre il est
assez fa
ile de vrier qu'un graphe est quivalent au modle ferromagntique en utilisant
l'algorithme glouton suivant :
On attribue la valeur (x0 ) = +1 l'un quel
onque des sommets x0 .
on
al
ule de pro
he en pro
he la valeur des (x), en utilisant la rgle :
Si e = {x, y} et (y) est
onnu alors que (x) ne l'est pas alors on
hoisit (x)
de faon avoir :
(x)(y)J(e) 0
Une fois que l'on a dtermin les valeurs de (x) pour tous les sommets du graphe
on vrie que la
ondition (x)(y)J(e) 0 est satisfaite pour toutes les artes.
157
F1
F9
F2
F3
F4
F5
F1
F2
F7
F7
F3
F4
F5
F6
F8
F6
F8
Fig. 5.
Les artes d'un graphe planaire
onnexe dlimitent des domaines simplement
onnexes : les
fa
es. Une de
es fa
es est non borne on l'appelle la fa
e innie. A
ha
une de
es fa
es on
asso
ie le
y
le form des artes qui la sparent d'une autre fa
e. Ces
y
les jouent un rle
important,
ar tout
y
le d'un graphe planaire peut s'obtenir
omme diren
e symtrique
d'une famille de
y
les asso
is aux fa
es. Ainsi la proposition donne plus haut se simplie
pour les graphes planaires par :
9.2.
Une fa
e qui
ontient un nombre impair d'artes ngatives est dite frustre. Un graphe
asso
i
es fa
es va permettre de
al
uler une
onguration d'nergie minimale.
Pour toute
onguration on dit qu'une arte e = {x, y} est dite
ontrarie si :
J(e)(x)(y) < 0
Il est
lair que l'nergie d'une
onguration est dtermine par l'ensemble des artes
ontraries. Re
her
her une
onguration d'nergie minimale revient re
her
her un ensemble d'artes
ontraries dont la somme des valeurs absolues des valuations soit minimale.
L'ensemble des artes
ontraries asso
ies une
onguration est not C .
158
ensemble d'artes
ontraries vrient 1. et 2. est immdiat. Considrons la r
iproque : soit J dni par :
J (e) = J(e) si e appartient U , J (e) = J(e) sinon.
Alors J dni une valuation dans laquelle au
une fa
e n'est frustre, il existe alors une
onguration de spin pour laquelle au
une arte n'est
ontrarie pour J . Dans
ette
onguration les artes
ontraries pour J sont exa
tement les artes de U .
On asso
ie un graphe planaire son graphe dual G
onstruit de la faon suivante : les
sommets de G sont les fa
es de G ,(noter que la fa
e innie fait partie des fa
es de G).
Deux sommets sont relis dans G par une arte si et seulement si ils
orrespondent deux
fa
es de G adja
entes,
'est dire possdant une arte de G en
ommun sur leurs frontires.
Les artes du graphe dual G de G
orrespondent aux artes de G, les fa
es frustres dans
G donnent lieu des sommets frustrs dans G . La proposition pr
dente se traduit dans
G par.
Proposition 9.4. Un ensemble U d'artes forme un ensemble d'artes
ontraries pour
le graphe valu planaire G = (X, E, J) si et seulement si :
(1) Tout sommet frustr de G est in
ident un nombre impair d'artes de U .
(2) Tout sommet non frustr de G est in
ident un nombre pair d'artes de U .
4
1
10
11
12
2
2
159
Fig. 6.
Un sous ensemble C de l'ensemble des artes d'un graphe est un
ouplage parfait, si deux
artes de C n'ont pas d'extrmit
ommune et si tout sommet de G est extrmit d'une
arte de C . La valuation d'un
ouplage parfait est la somme des valuations des artes.
dtermine un ensemble d'artes
Un
ouplage parfait C de valuation minimale dans G
UC de G , en eet
haque arte de C est asso
i un
hemin dans G et UC et
onstitu
de l'union de tous les
hemins ainsi forms.
9.3.
Preuve
: Il est assez fa
ile de voir que l'on peut d
omposer les artes d'un graphe sans
y
le en une famille de
hemins disjoints qui relient deux deux les sommets de degr
impairs. Ces
hemins dterminent don
un
ouplage dans le graphe des fa
es frustres. Si
le
ouplage minimal est de valuation plus faible,
elui-
i dtermine des
hanes reliant des
sommets frustrs de G , il est fa
ile de voir que
es
hanes n'ont pas d'artes en
ommun
(sinon on pourrait amliorer le
ouplage) en
hoisissant l'ensemble des artes de
es
hanes
omme artes
ontraries on obtient une
onguration d'nergie infrieure.
160
X=
det(A) =
161
1 la transposition qui prend les deux sommets noirs sur
e
y
le et qui
hange leurs
images. On obtient 1 , et par r
urren
e on peut appliquer l'hypothse (1 , 2 ) .
Il ne reste plus qu' montrer que
162
6. Re
uit simul
Pour rsoudre
ertains problmes d'optimisation
ombinatoire, on pro
de par amliorations su
essives d'une
onguration. Dans le
ontexte
onsidr i
i
ela se traduit par
partir d'une
onguration quel
onque et tenter de l'amliorer en modiant l'une de ses
omposantes.
On obtient, en ritrant
e pro
d une
onguration qui est meilleure que toutes ses
voisines, on dit que l'on a atteint un optimum lo
al. Rien ne dit que
et optimum lo
al
soit l'optimum gnral ou mme qu'il en soit pro
he. Et
'est l l'in
onvnient de
ette
mthode.
Pour tenter de pallier
et in
onvnient, on modie l'algorithme en faisant intervenir une
part de hasard. On part d'une
onguration quel
onque , on
her
he une
onguration
voisine si
elle
i est telle que H( ) < H() on rempla
e par et on re
ommen
e
le pro
d. Si H( ) > H(), on tire au hasard un nombre ,
ompris entre des valeurs
dterminer, et on rempla
e par si H( ) > H() puis on rpte le pro
d. Tout
l'art rside dans la dtermination du ,
elui-
i peut d'ailleurs varier au
ours de l'ex
ution
de l'algorithme. L'algorithme se termine quand on est rest susamment longtemps sur la
mme
onguration. Cette faon de pro
der s'appelle la mthode du re
uit simul, elle est
utilise dans
ertains
as pour rsoudre de faon appro
he des problmes d'optimisation
ombinatoire NP
omplets.
Bibliographie
[1 Ausiello Giorgio, Cres
enzi Pierluigi, Gambosi Giorgio, Kann Viggo, Mar
hetti-Spa
amela Alberto,
Protasi Mar
o,
, Springer-Verlag, 1999.
[2 Berge Claude,
, Bordas, 1973.
[3 Chvtal Vasek,
M
Graw-Hill, 1983.
[4 Cormen Thomas, Leiserson Charles, Rivest Ronald,
, MIT Press, 1990.
[5 Cro
hemore Maxime, Rytter Woj
ie
h,
, Oxford University Press, 1994.
[6 Even Shimon,
, Computer S
ien
e Press, 1979.
[7 Garey Mi
hael, Johnson David, Computers and Intra
tability : A Guide to the Theory of NP
ompleteness. ISBN 0-7167-1045-5. Freeman, 1979.
[8 Gibbons Alan,
Cambridge University Press, 1985.
[9 Goldberg David,
, Addison Wesley 1989.
[10 Gondran Mi
hel, Minoux Mi
hel,
, Eyrolles, 1995.
[11 Ho
hbaum Dorit S.
PWS Publishing Company,
1997.
[12 Knuth Donald,
, Addison Wesley,
1973.
[13 Lawler, E. L, Lenstra J.K, Rinnooy K, Shmoys D. B,
, John Wiley and sons, 1985 .
[14 Lint J. van, Wilson Robert,
, Cambridge University Press, 1992.
[15 Lovasz L, Plummer M. D. Mat
hing Theory Annals of Dis
rete Mathemati
s, 29, North Holland,
1986.
[16 Mitzenma
her Mi
hael, Upfal Eli,
Cambridge University Press, 2005.
[17 Motwani R., Raghavan P.
. Cambridge University Press, 1995.
[18 Nemhauser Georges, Wolsley Lauren
e,
, John Wiley and sons
1988
[19 Oxley James,
, Oxford University Press, 1992.
[20 Papadimitriou Christos,
. ISBN 0-201-53082-1. Addison-Wesley, 1994.
[21 Papadimitriou Christos., Steiglitz K. Combinatorial Optimization. Prenti
e-Hall, 1982.
[22 Roth Alvin, Sotomayor Marilda,
, Cambridge University Press, 1990.
[23 S
hrijver, Alexander
, John Wiley and sons, 1986.
[24 S
hrijver, Alexander
3 volumes : A, B, C,
Springer, 2003.
[25 Tarjan Robert Endre,
, SIAM, Philadelphia, 1983.
[26 Vazirani Vijay,
, Springer 2001.
[27 Welsh Domini
,
, A
ademi
Press, 1976.
Complexity and Approximation. Combinatorial optimization problems and their approximability properties
Graphes et Hypergraphes
Linear Programming
Introdu
tion to Algorithms
Text Algorithms
Graph Algorithms
Index
somme de sous-ensemble,
NP- ompltude,
stable,
89, 90
voyageur de ommer e,
9698, 110
ae
tation, 45
de ressour
e, 15
algorithme
analyse d', 127, 128
on
eption d', 111, 124
d'approximation, 83, 105, 111116, 123, 134
dterministe, 130
glouton, 106, 112, 113
polynomial, 85
probabiliste, 112, 123
Las Vegas, 105, 125, 130
Monte-Carlo, 105, 125, 127, 129
pseudo-polynomial, 105, 110, 111
alignement, 42
approximation, 83
algorithme d', voir algorithme, d'approximation
seuil d', 115118
arte
ontrarie, 157
arbre, 9, 15
re
ouvrant, 10, 15
arbre de
al
ul, 106
ar
s, 9
ngatifs, 34
ar
s ngatifs, 34
ba
ktra
king, 83, 106109
base, 25
bi
oloration, 155
Boole, 37
borne infrieure, 83
bornes infrieures, 137
bran
h and bound, 83, 109110
apa
it, 45
165
166
INDEX
frustre, 158
ferromagntique, 155
ot
satur, 46
ots, 45
fon
tion
onomique, 59
fon
tion de partition, 150
Ford, 33
Ford-Fulkerson, 47
gnome, 41
glouton, 15
graphe
biparti, 23
orient, 9
symtrique, 9
hirar
hie, 101
hyperplan, 61
ingalit
de Chernov, 125, 131
de Markov, 125, 133
de T
hebit
hev, 125, 128
Ising, 149
jeu de Shannon, 26
Karmarkar, 80
Kat
hian, 78
Klee Minty, 77
Kruskal, 18
Las Vegas, 84
lois de Kir
ho, 45
longueur, 84
ma
hine
dterministe, 84
de Turing, 84
non-dterministe, 123
probabiliste, 102
ma
hine de Turing
dterministe, 100
matrode, 15
Monte Carlo, 84
motif, 92
nombre
hromatique, 11
non-approximabilit, 105
INDEX
167
DITION 2007
IMPRIM EN FRANCE