You are on page 1of 168

Promotion 2004

Anne 3
Majeure 2
INF551

MAJEURE DINFORMATIQUE

Conception et analyse
dalgorithmes
Robert Cori, Guillaume Hanrot
Claire Kenyon, Jean-Marc Steyaert

dition 2007

Table des matires

Introdu tion

Terminologie de thorie des graphes

partie 1. Algorithmes

13

Chapitre 1. Algorithmes gloutons et matrodes


1. Stable maximum d'un graphe d'intervalles
2. Arbre de poids maximal d'un graphe
3. Condition d'optimalit de l'algorithme glouton
4. Matrodes : dnition et exemples
5. Dnitions quivalentes des matrodes
6. Jeu de Shannon

15
16
18
20
22
24
26

Chapitre 2. Plus ourts hemins, programmation dynamique


1. Plus ourts hemins d'origine donne
2. Plus ourts hemins entre tous les ouples de sommets
3. Gnralisation de l'algorithme
4. Programmation dynamique
5. Traitement de squen es

31
31
35
37
39
41

Chapitre 3. Flots et ouplages


1. Flots
2. Mthode de Ford-Fulkerson
3. Un algorithme en temps polynomial
4. Couplage dans un graphe biparti
5. Mariages stables.
6. Couplages gnraux
7. Couplages et interse tion de matrodes

45
45
47
51
51
54
55
57

Chapitre 4. Programmation linaire


1. Prsentation du problme
2. Un exemple simple
3. Prin ipes gnraux
4. Le as b = 0
5. Le as b quel onque
6. Un exemple

59
60
61
62
64
66
70
3

TABLE DES MATIRES

7. Obtention d'un sommet du polydre


8. Le simplexe sous forme de tableaux
9. Problmes quivalents
10. Relation entre le problme Primal et le Dual
11. Complexit du simplexe
12. Des algorithmes polynomiaux

partie 2. Complexit
Prambule
P et NP
NP- ompltude

71
72
75
76
76
78
81
83
84
85

Chapitre 5. NP- ompltude


Introdu tion
1. 3-sat
2. Stable
3. Cir uit hamiltonien
4. 3- olorabilit
5. Somme de sous-ensemble
6. Programmation entire
Complments

87
87
87
89
91
94
96
98
100

Chapitre 6. Traiter la NP- ompltude


Introdu tion
1. Ba ktra king et bran h-and-bound
2. Algorithmes pseudo-polynomiaux
3. Algorithmes d'approximation

105
105
106
110
111

Probabilits dis rtes

121

Chapitre 7. Mthodes probabilistes


Introdu tion et paradigmes
1. Quelques ingalits probabilistes
2. Las-Vegas et Monte-Carlo
3. Primalit
4. Sle tion du k -ime lment d'une liste
5. Vri ation d'identits polynomiales
6. Routage dans un hyper ube
7. Ha hage parfait
8. maxsat

123
123
124
125
126
127
129
130
132
134

Un exemple de dtermination d'une borne infrieure pour la omplexit

137

partie 3. Appli ations

139

TABLE DES MATIRES

Chapitre 8. Algorithmes pour la biologie mol ulaire


1. Introdu tion
2. Alignement de familles de squen es
3. Re her he d'un motif dans un mot, et alignement lo al
4. Sous-squen es maximales
5. Re onstru tion d'arbres d'volution
6. Estimation de distan e entre gnomes

141
141
141
144
145
146
147

Chapitre 9. Algorithmes pour la physique statistique


1. Modle d'Ising
2. Polynme de Tutte
3. Modle verre de spin et al ul de l'tat d'nergie minimale
4. Cal ul de la fon tion de partition dans le as planaire
5. Cal ul de la fon tion de partition et mthode de Monte Carlo
6. Re uit simul

149
149
152
154
160
161
162

Bibliographie

163

Index

165

Introdu tion

Ce ours est prin ipalement onsa r l'tude de la omplexit des algorithmes de


nature ombinatoire et quelques appli ations. Ce domaine est parti ulirement vivant
depuis les annes 70 aprs la mise en viden e de la lasse des algorithmes NP et de la
lbre onje ture P 6= NP. En eet, on peut dire que dans l'tat a tuel de nos onnaissan es thoriques et tant donn l'tat de l'art en matire de on eption et de ralisation de
ma hines, seuls les algorithmes dont le temps d'ex ution est major par une fon tion polynomiale de la taille des donnes sont utilisables dans la pratique : les problmes solubles
par un algorithme dont le temps d'ex ution est polynomial dans le pire as onstituent
la lasse P. Cette dnition, trs robuste, ne dpend pas des dtails du modle de al ul (Ma hine de Turing, PRAM, ma hine parallle . . .), lequel n'inuen e que les fa teurs
onstants et ventuellement le degr du polynme.
Les progrs de la vitesse des pro esseurs ne se traduisent en des gains d'e a it des algorithmes, et don en une amlioration tangible de la plus grande taille de problme soluble
en une se onde, que pour les algorithmes de omplexit polynomiale, omme l'illustre le
tableau i-dessous. On suppose que la vieille ma hine peut ex uter 10000 oprations en
une se onde, et que la nouvelle ma ine est dix fois plus rapide. La premire olonne donne
la omplexit de l'algorithme, la deuxime la plus grande taille de problme soluble en une
se onde sur la vieille ma hine, la suivante donne la plus grande taille de problme soluble
en une se onde sur la nouvelle ma hine. Il est lair que si l'algorithme utilis est de omplexit exponentielle, peu importe les progrs en ar hite ture des ma hines : le problme
restera de toute faon au-del des apa its du programme.

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


Le fait de ne pas onnatre d'algorithmes en temps polynomial pour rsoudre ertains


problmes d'optimisation ombinatoire est la fois une question intrigante sur le plan
on eptuel, et ru iale sur le plan pratique puisque de nombreux problmes de ette famille se posent tous les jours dans les appli ations et que l'on espre pouvoir les rsoudre
ee tivement : un grand nombre de es problmes sont runis dans la lasse NP.
7

INTRODUCTION

Lorsqu'il est pla devant l'impossibilit de rpondre la question thorique pose


et qu'il n'a pas sa disposition des algorithmes exa ts e a es, l'utilisateur se tourne
souvent vers des algorithmes probabilistes permettant en un temps polynomial d'obtenir une
solution ayant une probabilit raisonable d'tre optimale ou des algorithmes appro hs qui
donnent, ave une quasi ertitude, une solution situe une faible distan e de l'optimum.
Au long des neuf hapitres qui omposent e ours on s'intresse d'abord des mthodes
qui donnent naissan e des algorithmes e a es : la stratgie gloutonne et la programmation dynamique permettent ainsi de rsoudre bon nombre de problmes de faon lgante ;
es deux pro ds font l'objet des premiers hapitres. On s'intresse ensuite des problmes
lassiques d'algorithmique des graphes et rseaux. Plusieurs de es problmes, omme la
re her he d'un ot optimal dans un rseau, sont des as parti uliers de programmation
linaire. Vu son importan e, on onsa rera un hapitre entier au problme de la programmation linaire.
Les questions gnrales de omplexit sont abordes sous l'angle de lassi ation des problmes pratiques : on illustrera sur des exemples des proprits partages par tous les
systmes de al ul et on a ordera un peu de temps au problme fameux P 6= NP On
abordera rapidement le on ept d'algorithme probabiliste, qui onstitue l'un des plus ri hes
dveloppements du domaine.
Pour terminer on s'interessera deux domaines d'appli ations des te hniques mises en
oeuvre : d'une part les algorithmes d'approximation pour l'optimisation ombinratoire,
et d'autre part l'analyse de hanes de Markov de type Monte-Carlo qui sont utilises en
physique statistique.
Nous pensons que le le teur aura ainsi dvelopp un point de vue sur une problmatique
ri he et utile, qui fait aujourd'hui l'objet de nombreux travaux de re her he et de dveloppements industriels.

Terminologie de thorie des graphes

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 ) :

Les onditions suivantes sont quivalentes pour un graphe non-orient

(1) G = (X, T )

est onnexe et sans y le

(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

TERMINOLOGIE DE THORIE DES GRAPHES

10

11
Fig. 1.

Un graphe et un de ses arbres re ouvrants en traits gras

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 )

TERMINOLOGIE DE THORIE DES GRAPHES

Fig. 2.

11

Un des ensembles indpendants en lair et ouvrants en plus fon .

Un ouplage est un sous-ensemble C de E tel que deux artes de C ne possdent pas


d'extrmit ommune, soit :

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 :

{x, y} E c(x) 6= (y).

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

TERMINOLOGIE DE THORIE DES GRAPHES

10

8
Fig. 3.

Un graphe et un de ses ouplage en traits gras

Premire partie
Algorithmes

CHAPITRE 1
Algorithmes gloutons et matrodes

De nombreux problmes d'optimisation ombinatoire se prsentent sous la forme suivante :


On se donne un ensemble E ni et haque lment e de E est ae te
une valeur v(e) qui est un rel positif ; on se donne de plus une ondition
C sur l'ensemble des parties de E . Le problme onsiste onstruire un
sous-ensemble F de E tel que :

eF

v(e) est maximal parmi les parties F satisfaisant C .

Dans plusieurs as la ondition C est ferme par sous-ensemble : si F satisfait C alors il


en est de mme pour tout sous-ensemble de F . Il est alors naturel de proposer un algorithme
trs simple onsistant initialiser F par F = , puis ajouter su essivement des lments
F suivant un ertain ritre (par exemple par valeurs d roissantes), jusqu' obtenir un
ensemble auquel on ne peut plus ajouter d'lment sans ontredire C . On appelle algorithme
glouton e type d'algorithme, e quali atif d rit le fait qu'on se pr ipite sur l'lment le
plus intressant en premier sans se pro uper des onsquen es ultrieures de e hoix.
Cet algorithme donne trs rapidement un rsultat, en revan he e rsultat n'est pas
toujours la solution optimale. Nous allons voir que e n'est le as que pour des familles de
parties satisfaisant une ondition parti ulire : on appelle es familles matrodes. L'tude
de la stru ture algbrique des matrodes a fait l'objet de plusieurs travaux en ombinatoire
ar elle donne un adre mathmatique uni ateur des rsultats de thorie des graphes
et d'algorithmique. Plusieurs ouvrages lui ont t onsa rs, nous re ommandons en parti ulier elui de D. Welsh [27 ; une bonne introdu tion au sujet est aussi donne par le
hapitre 17 du manuel [4.
Les questions relatives l'ae tation d'une ou plusieurs ressour es des utilisateurs
( lients, pro esseurs, et .) onstituent une lasse importante de problmes qu'il est tentant
de rsoudre par un algorithme glouton. Nous allons montrer que dans ertains as trs
simples, l'algorithme glouton donne une solution optimale. Dans des as plus omplexes,
l'algorithme donne une solution appro he, dont on se ontente parfois, vu le temps de
al ul prohibitif de la re her he de l'optimum exa t. Aprs avoir trait e as simple nous
onsidrons un problme lassique sur les graphes : la re her he d'un arbre re ouvrant de
poids maximal (ou de manire quivalente minimal). La rsolution de elui- i par l'algorithme glouton amne la stru ture de matrode dont on donne quelques proprits.
15

16

1. ALGORITHMES GLOUTONS ET MATRODES

1. Stable maximum d'un graphe d'intervalles


Le problme d rit pr isment i-dessous peut tre rsolu par l'algorithme glouton
(mais, omme on le verra, l'algorithme glouton ne donne pas la solution optimale pour
d'autres formulations du problme, pourtant pro hes de elle- i). Il s'agit d'ae ter une
ressour e unique, non partageable, su essivement un ertain nombre d'utilisateurs qui en
font la demande en pr isant la priode exa te pendant laquelle ils souhaitent en disposer.
On peut illustrer e i en onsidrant la question de la lo ation d'une voiture. Des lients
formulent un ensemble de demandes de lo ation et, pour haque demande sont donns le
jour du dbut de la lo ation et le jour de restitution du vhi ule ; le but est d'ae ter le
vhi ule de faon satisfaire le maximum de lients (et non pas de maximiser la somme
des dures de lo ation). On vrie que e problme rentre dans le adre gnral onsidr
plus haut. L'ensemble E est elui des demandes de lo ation, pour haque lment e de E ,
on note d(e) la date du dbut de la lo ation et f (e) > d(e) la date de n. La valeur v(e)
de tout lment e de E est gale 1 et la ontrainte respe ter pour le sous-ensemble F
onstruire est la suivante, ( ette ontrainte exprime que deux lients ne peuvent disposer
en mme temps du vhi ule) :

e1 , e2 ,

e1 F et e2 F [d(e1 ), f (e1 )] [d(e2 ), f (e2 )] = .

L'algorithme glouton est d rit omme suit :


 Etape 1 :
Classer les lments de E par ordre de dates de n roissantes. Les lments de
E forment alors une suite e1 , e2 , . . . , en telle que f (e1 ) f (e2 ) . . . f (en )
 Etape 2 :
Initialiser F :=
Pour i variant de 1 n, ajouter la demande ei F si elle- i ne hevau he pas la
dernire demande appartenant F .
Thorme

1.1.

L'algorithme i-dessus donne une solution optimale.

Soit F = {x1 , x2 , . . . , xp } la solution obtenue par l'algorithme glouton et soit G = {y1 , y2 ,


. . . , yq }, q p une solution optimale telle que le ardinal de F G soit maximum. Dans G
et dans F nous supposons que les xi et yj sont lasses par dates de n roissantes. Nous
allons montrer que p = q . Soit k le plus petit entier tel que xk 6= yk ; ainsi i < k , on a
xi = yi . Par onstru tion de F on a alors f (yk ) f (xk ). On peut alors rempla er G par
G = {y1 , y2 , . . . yk1, xk , yk+1, yq } tout en satisfaisant la ontrainte de non hevau hement
des demandes, ainsi G est une solution optimale, de mme ardinalit que G, ayant plus
d'lments en ommun ave F que n'en avait G. En rptant ette opration susamment
de fois on trouve un ensemble H de mme ardinalit que G et qui ontient F . L'ensemble H
ne peut ontenir plus d' lments que F ar eux- i auraient t ajouts F par l'algorithme
glouton, e i montre bien que p = q .

1. STABLE MAXIMUM D'UN GRAPHE D'INTERVALLES

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

1. ALGORITHMES GLOUTONS ET MATRODES

2. Arbre de poids maximal d'un graphe


2.1. Expos du problme. Nous renvoyons aux prliminaires sur les graphes pour

la terminologie utilise i i.
1
3

3
4

5
4

7
6

7
6

8
6

10

7
10

11
Fig. 1.

Un arbre re ouvrant de poids maximum

Un exemple lassique d'utilisation de l'algorithme glouton est la re her he d'un arbre


re ouvrant de poids maximal dans un graphe symtrique, il prend dans e as parti ulier le
nom d'algorithme de Kruskal. Ce problme se ren ontre de fait en pratique sous la forme de
la re her he d'un arbre de ot minimal, par exemple pour raliser une onnexion de tous
les points d'un rseau ; nous avons hoisi de onserver une ohren e gnrale e hapitre
en prsentant tous les problmes sous forme de re her he d'un objet qui rend maximal
une ertaine fon tion, e i n'a toutefois pas une grande importan e ar il est fa ile dans e
as de transformer une re her he d'un poids maximal en elle d'un ot minimal par une
transformation simple. D rivons brivement le problme et l'algorithme.
On ae te aux artes d'un graphe symtrique un poids qui est un entier positif ; on note
v(e) le poids de l'arte e. Le poids v(T ) d'un arbre T est gal la somme des poids des
artes qui le omposent ; on her he un arbre re ouvrant de poids maximal. Une illustration
de e problme est la ralisation d'un rseau le trique ou informatique entre dirents
points, deux points quel onques doivent toujours tre relis entre eux ( onnexit) et on
doit minimiser le ot de la ralisation. Le poids d'une arte est, dans e ontexte, la
diren e entre un entier onstant assez grand et le ot de onstru tion de la portion du
rseau reliant ses deux extrmits. L'arbre de poids maximal va ainsi donner le rseau dont
le ot de onstru tion est minimal.
On peut fa ilement formuler le problme dans le adre gnral donn en dbut de
hapitre : E est l'ensemble des artes du graphe, la ondition C satisfaire par F est de
former un graphe sans y le, enn il faut maximiser la somme des poids des lments de
F.
Un exemple d'arbre re ouvrant de poids maximal est donn sur la gure i-dessus.

2. ARBRE DE POIDS MAXIMAL D'UN GRAPHE

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


v(e1 ) v(e2 ) . . . v(en )

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.

Un y le r par l'ajout d'une arte dans un arbre

Venons en au lemme :

Soient T et U deux arbres re ouvrants d'un graphe G et soit a une arte


de U qui n'est pas dans T . Alors il existe une arte b du y le r par a dans T telle
que U \ {a} {b} soit aussi un arbre re ouvrant de G.
Lemme

1.1.

Preuve : La suppression de a dans l'arbre U

divise et arbre en deux omposantes onnexes

U1 et U2 . Le y le r par a dans T ontient n essairement un nombre pair d'artes

20

1. ALGORITHMES GLOUTONS ET MATRODES

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.

Preuve de validit de l'algorithme : Soit T

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 .


3. Condition d'optimalit de l'algorithme glouton


Les deux problmes onsidrs i-dessus peuvent tre formuls dans un adre gnral.
On se donne un ensemble E ni et une famille non vide F de parties de E qui soit ferme
par sous-ensemble :
F F et F F F F

On se donne aussi une P


appli ation v de E dans l'ensemble des entiers naturels. On her he
F F tel que v(F ) = eF v(e) soit maximal
L'algorithme glouton s'exprime alors par :
 Etape 1 : Classer les lments de E par ordre des v(e)
d roissants. Ils onstituent alors une suite e1 , e2 , . . . en , telle que :

v(e1 ) v(e2 ), . . . v(en )

 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 :

Si l'algorithme glouton donne une solution optimale quelle que soit la


fon tion v alors la famille F vrie la proprit suivante :
Si F et G sont deux ensembles de F tels que G a un lment de plus que F , alors il
existe un lment x de G qui n'est pas dans F et tel que F {x} F .
Thorme

1.2.

Preuve : Pour dmontrer e rsultat on suppose donns F

et G et on onstruit une fon tion


de poids v telle que l'algorithme glouton donne une solution qui ontient stri tement F .

3. CONDITION D'OPTIMALIT DE L'ALGORITHME GLOUTON

21

Notons p le nombre d'lments ommuns F et G et q le nombre d'lments de F qui


ne sont pas dans G. On dnit la fon tion v suivante :
 Pour tout lment f de F , v(f ) = 2q + 2
 Pour tout lment g de G qui n'est pas dans F , v(g) = 2q + 1
 Pour tout lment h qui n'est ni dans F ni dans G, v(h) = 0
L'algorithme glouton appliqu pour es valeurs des poids donne un ensemble F qui
ontient n essairement F puisque les lments de F se prsentent en premier. Or on a
v(F ) = (p + q)(2q + 2) et v(G) = p(2q + 2) + (q + 1)(2q + 1) Ainsi v(G) = v(F ) + q + 1,
omme l'algorithme glouton donne un ensemble F ayant un poids maximal le poids de F
doit tre suprieur ou gal elui de G don stri tement suprieur elui de F . Ainsi F
ontient un lment qui n'est pas dans F et qui a un poids non nul, 'est don un lment
de G qui est le x her h.

En fait ette ondition est aussi susante omme le montre la r iproque i-dessous.

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).

De plus G a un lment de plus en ommun ave F que n'en a G, l'hypothse de


r urren e implique don v(F ) v(G ) v(G).


22

1. ALGORITHMES GLOUTONS ET MATRODES

4. Matrodes : dnition et exemples


Les proprits gurant dans le thorme i-dessus et sa r iproque suggrent l'introdu tion de la notion de matrode qui est une stru ture dnie par une famille de sous-ensembles
d'un ensemble E , famille qui vrie ertaines onditions. Cette dmar he est assez ourante
en mathmatiques, itons par exemple la topologie dnie par des ouverts, la thorie de
la mesure et ses ensembles mesurables, les espa es ve toriels et leurs ensembles indpendants de ve teurs. Dans le adre de la ombinatoire, prin ipalement on erne par des
stru tures mathmatiques nies, on a dvelopp es dernires annes des outils uni ateurs qui tendent prsenter sous une forme gnrale des rsultats qui paraissent dans un
premier abord trs pars. Une de es stru tures est elle de matrode, il n'est pas tonnant
de voir apparatre le nombre d'lments d'un sous-ensemble dans la dnition puisque la
ombinatoire s'intresse aux ensembles nis.

Dnition Un matrode est un ouple M = (E, F ) o E est un ensemble ni et o F

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.

F ontient au moins une partie de E


F F et F F F F
F, G F , |G| > |F | x G \ F, F {x} F

Les lments d'une telle famille F , sont appels ensembles

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 :

4.1. Familles de ve teurs indpendants dans un espa e ve toriel. Soit E un


espa e ve toriel sur un orps K , et soit F la famille des ensembles de ve teurs linairement indpendants de E . Il est fa ile de vrier que ette famille satisfait les onditions (I1), (I2) et (I3), pour les deux premires 'est immdiat. Vrions la dernire ; soit
F = {u1 , u2, . . . , uk } et G = {v1 , v2 , . . . , vk , vk+1 } deux ensembles ha un form de ve teurs
indpendants. Si haque vi dpendait linairement des uj l'ensemble G serait de dimension
k e qui ontredirait le fait qu'il est form de k + 1 ve teurs indpendants, il existe don
un vi qui ne dpend pas des uj , et F {vi } F .
4.2. Familles des parties sans y le dans un graphe.

Soit = (X, E) un graphe


non-orient, on dnit un matrode form par des sous-ensembles de l'ensemble E des
artes. Un ensemble indpendant est un sous-ensemble de E qui ne ontient pas de y le.
De manire quivalente on peut dnir un ensemble indpendant omme une union d'arbres
F = Fi (i = 1, . . . , p) dont les ensembles de sommets Xi sont disjoints et dont l'union

4. MATRODES : DFINITION ET EXEMPLES

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| =

4.3. Graphes bipartis.

Un graphe G = (X, E) est dit biparti si l'ensemble X des


sommets est runion de deux sous-ensembles disjoints Y et Z tels que toute arte e E
a une extrmit dans Y et l'autre dans Z . On dnit un matrode en prenant omme
ensembles indpendants les sous-ensembles F de E tels que deux artes de F ne sont pas
in identes un mme sommet appartenant Y . On peut par symtrie dnir un autre
matrode en remplaant Y par Z .
Un ouplage dans un graphe biparti est un sous-ensemble M de l'ensemble des artes tels
que tout ouple d'artes de M n'a pas de sommet ommun. On vrie que l'ensemble des
ouplages ne forme pas un matrode, par ontre un ouplage est un lment qui appartient
la fois aux deux matrodes dnis i-dessus, ainsi l'ensemble des ouplages est l'interse tion
de deux matrodes.

4.4. Transversal d'une famille d'ensembles. Soit A = A1 , A2 , . . . , Ak une famille


de sous-ensembles de E , les transversaux de A sont les parties de T = {x1 , x2 . . . , xl } de
E telles qu'il existe des entiers distin ts i1 , i2 , . . . , il satisfaisant xj Aij . Noter que les
transversaux sont aussi appels systmes de reprsentants distin ts.
Un exemple simple est le suivant : E = {1, 2, 3, 4, 5, 6},
A1 = {1, 3, 4}, A2 = {3, 5, 6}, A3 = {1, 4}, A4 = {2, 5}, A5 = {3, 4}, A6 = {1, 3}

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

1. ALGORITHMES GLOUTONS ET MATRODES

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.

4.5. Ralisation de ta hes sur un pro esseur squentiel.

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.

5. Dnitions quivalentes des matrodes


Nous avons dni les matrodes par des ensembles indpendants mais il y a d'autres
ensembles remarquables dans un matrode : les bases et les ir uits. Ceux- i peuvent tre
dnis partir des ensembles indpendants mais on peut aussi inversement retrouver les
ensembles indpendants l'aide des bases ou l'aide des ir uits. Une notion intressante
est aussi elle de rang d'un sous-ensemble qui asso ie un entier tout sous-ensemble de
E . L'quivalen e entre es dirents on epts peut alors tre utilise pour vrier qu'une
famille onstitue bien un matrode, il est en eet parfois plus simple de retrouver une
famille d'ensembles indpendants, d'autres fois une famille de bases, ou de ir uits. Les
ara trisations sont donnes par 3 thormes dont les preuves te hniques sont omises.

5. DFINITIONS QUIVALENTES DES MATRODES

25

Soit M = (E, F ) un matrode, on appelle base de M une partie maximale de F . Ainsi


la famille B des bases de M est ompose des ensembles B tels que

B F , B F, F F

On vrie le thorme suivant :


Thorme

(Ba)

1.3.

B=F

La famille B des bases d'un matrode M satisfait la ondition :

B1 , B2 B, x B1 \ B2 , y B2 \ B1

R iproquement Si B

tel que

(B1 y) \ x B

satisfait la ondition (Ba), alors la famille F des parties F de E


telles qu'il existe B B satisfaisant F B vrie les onditions (I1), (I2), (I3).
La notion de ir uit joue aussi un rle important dans ette thorie. Soit F une
famille de parties indpendantes de M, on appelle ir uit de M une partie minimale qui
n'appartient pas F , ainsi la famille C des ir uits de M est ompose des ensembles C
tels que
C
/ F , et
F C, F 6= C F F
On vrie alors la ara trisation suivante :

1.4. La famille C des ir uits d'un matrode M vrie les onditions :


 Si C1 et C2 sont deux ensembles distin ts de C alors C1 n'est pas in lus dans C2 .
 Si C1 et C2 sont deux ensembles distin ts de C et si x C1 C2 , alors il existe C3
tel que C3 (C1 C2 ) \ x.
Thorme

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 |

On a alors le thorme suivant :


Thorme 1.5. Une appli ation de l'ensemble des parties de E dans l'ensemble N
des entiers naturels est la fon tion rang d'un matrode M si et seulement si :
 () = 0,
 A B (A) (B),
 (A {x}) = (A {y}) = (A) (A {x, y}) = (A).

26

1. ALGORITHMES GLOUTONS ET MATRODES

Dans les exemples donns plus haut on retrouve es direntes notions :


Pour les ensembles indpendants de ve teurs, les bases orrespondent la notion habituelle de base d'un sous-espa e ve toriel, la fon tion rang orrespond la dimension,
enn les ir uits sont les ensembles de ve teurs dpendants tels que la suppression de l'un
quel onque d'entre eux donne une famille indpendante.
Pour les graphes onnexes, on vrie fa ilement que les y les lmentaires de G satisfont les onditions sur les ir uits d'un matrode. Les bases sont alors les arbres re ouvrants,
et le rang d'un sous-ensemble A de l'ensemble E des artes est gal n c. I i n est le
nombre total de sommets du graphe, c est le nombre de omposantes onnexes du graphe
ayant X omme ensemble de sommets et A omme ensemble d'artes un sommet sans arte
dans A ompte pour une omposante onnexe).

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

Trois graphes, G1 faible, G2 rsistant, G3 neutre

6.3. Cara trisation des situations gagnantes.

On a le rsultat suivant d A.

Lehman :

Le graphe G ave les sommets u et v est faible si et seulement s'il


existe deux arbres A1 = (Y, T1 ), A2 = (Y, T2 ) tels que :
Thorme

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.

Il est utile e niveau d'introduire deux oprations importantes sur


les graphes qui joueront aussi un rle dans la suite. La premire est la suppression d'une
arte e ; elle onsiste rempla er le graphe G = (X, E) par G e qui le mme ensemble de
sommets X et une arte de moins. La se onde est la ontra tion d'une arte e = {x, y} une
arte de G ; le ontra t Ge de G suivant e est le graphe obtenu en supprimant le sommet
y et remplaant haque arte {y, z} dont l'une des extrmits est y par une arte {x, z}.
On peut noter qu'une telle opration peut amener onstruire des artes multiples entre
x et un sommet z qui est reli dans G x et y .b La gure i-dessous illustre les notions
introduites.

28

1. ALGORITHMES GLOUTONS ET MATRODES

2
1

3
3

Suppression de {4.7}

5
5

Contraction
de {4,7}
1

Fig. 4.

La suppression et la ontra tion d'une arte

La stratgie de l'attaquant s'explique bien l'aide de es notions ; elle onsiste, lorsque


le dfenseur supprime une arte qui dis onne te un des arbres T1 ou T2 , hoisir une arte
e dans l'autre arbre de telle faon que Ge ontienne deux arbres disjoints pour les artes
ayant mme ensemble de sommets, e qui se traduit plus en dtail par l'algorithme suivant :
Si l'arte rendue rouge par le dfenseur n'appartient au un des deux arbres T1 ou T2 ,
olorier en vert n'importe quelle arte.
Si l'arte rendue rouge appartient T1 , on onsidre les deux parties onnexes Y1 et Y2
de T1 ainsi res, on hoisit une arte f de T2 qui relie un sommet de Y1 un sommet de
Y2 , et l'on olorie f en vert.
Si l'arte rendue rouge appartient T2 , on ee tue un hoix similaire en hangeant T1
et T2 .
On poursuit alors le jeu dans le graphe obtenu en supprimant l'arte rouge et en ontra tant l'arte verte, e graphe possde en ore deux arbres qui satisfont les mmes onditions
que T1 et T2 , le jeu se termine quand les deux sommets u et v sont relis par une arte,
lorsque 'est le tour du onqurant de jouer.

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

Dans e hapitre on s'intresse la re her he de hemins de longueur minimale dans


des graphes orients ou symtriques en supposant que haque ar (ou haque arte) est
muni d'une longueur. On suppose onnus les algorithmes sur les par ours de graphes qui
onstruisent des hemins entre les sommets sans la ontrainte de minimalit, eux- i gurent dans le ours d'algorithme et programmation du tron ommun.
On verra que la re her he de hemins minimaux partant d'un sommet distingu donn
fait appel des te hniques du style de l'algorithme glouton. Par ontre si l'on re her he
l'ensemble des hemins minimaux entre tous les ouples de sommets une nouvelle te hnique
est mise en uvre. Celle- i se ren ontre dans des problmes de nature dirente on l'appelle pour des raisons historiques programmation dynamique, le terme programmation est
employ i i dans le sens de mthode et non pas dans elui de ralisation d'un programme
informatique.
La re her he de plus ourts hemins peut tre vue aussi omme la rsolution d'un
systme d'quations linaires dans un anneau parti ulier pour lequel ette rsolution se
limite au al ul de la puissan e d'une matri e. Une introdu tion ette thorie qui est
largement dveloppe par ailleurs est donne.
La mthode de la programmation dynamique est explique dans ses grandes lignes au
paragraphe suivant, elle est applique ensuite pour rsoudre plusieurs problmes d'optimisation dont l'un intervient dans le adre de l'analyse du gnome.

1. Plus ourts hemins d'origine donne


Dans la suite, on onsidre un graphe orient G = (X, A) ayant X omme ensemble de
sommets et A omme ensemble d'ar s. Les appli ations or et ext asso ient tout ar a de
A son origine et son extrmit respe tivement. On se donne une appli ation de A dans
l'ensemble des entiers naturels, (a) est la longueur de l'ar a. La longueur d'un hemin
est gale la somme des longueurs des ar s qui le omposent. tant donn un sommet
x0 , le problme onsiste dterminer pour haque sommet xi X , le plus ourt hemin,
s'il existe, qui joint x0 xi . Par exemple dans le graphe donn i-dessous les plus ourts
hemins partir du sommet x2 sont dessins en traits gras.
Le ara tre trs simple des algorithmes de re her he de plus ourts hemins partant
de x0 repose sur la proprit suivante : si un hemin f de longueur minimale joint x0 x
tout fa teur gau he de e hemin se terminant par l'ar a est un hemin minimal qui joint
x0 ext(a).
31

32

2. PLUS COURTS CHEMINS, PROGRAMMATION DYNAMIQUE

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; }
}

1.1. Algorithme de Dijkstra.

Cet algorithme ommen e par initialiser l'appli ation


d en posant d[x0 ] = 0 et pour x 6= x0 , d[x] = . Ensuite, pour haque sommet tel que
d[x] est minimum, il ee tue la relaxation de tous les ar s issus de x. On onstruit une
le de priorit F qui ontient au dpart tous les sommets et sur laquelle on ee tue deux
oprations :
 re her he et suppression de l'lment x tel que d[x] soit minimum ;
 modi ation de la valeur de ertains d[x].
Il s'exprime de faon plus dtaille omme suit :

Pour tout sommet x faire {


pere[x = x; d[x = Maxint;
Ajouter (x, F);
}
d[x0 = 0;
Tant que (F non vide) {
Re her her x de F tel que d[x minimum;
Supprimer x de F;
Pour tout (a tel que (or[x == a)) faire Relaxation (a);
}

1. PLUS COURTS CHEMINS D'ORIGINE DONNE

x2

33

x3

2
3

x1

x4
2

x5
1

x7

1
Fig. 1.

x6

Plus ourts hemins issus du sommet x2

On peut onsidrer l'algorithme de Dijkstra omme un algorithme glouton (on traite


haque tape le sommet le plus intressant) mais qui remet jour la valeur de haque
lment aprs la ralisation d'une tape.

Remarques :

1. Une ralisation e a e de F onsiste utiliser la notion de tas introduite dans le


ours d'algorithmes. Pour un graphe ayant n sommets et m ar s, on ee tue n suppressions
et m modi ations de valeurs de d, haque suppression demande log n oprations de mme
que haque modi ation de valeur, puisuqe elle- i revient une suppression suivie d'une
insertion, la omplexit de l'algorithme est en O(n log n + m log n).
2. On peut terminer l'algorithme ds que tous les lments x situs dans F sont tels que
d[x] = ; au un de es lments ne sera atteint par un hemin d'origine x.

3. L'algorithme a t d rit pour des graphes orients ; si le graphe est symtrique il


faut onsidrer une arte omme tant forme de deux ar s opposs.

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.

1.2. Algorithme de Ford.

Cet algorithme est parti ulirement simple : il onsiste


ee tuer pour un graphe n sommets, n 1 fois la pro dure de relaxation sur tous les
ar s. Soit plus pr isment :

34

};

2. PLUS COURTS CHEMINS, PROGRAMMATION DYNAMIQUE

Pour tout sommet x {


Pere[x = x; d[x = Maxint;
}
d[x0 = 0;
Pour i=1 jusqu'a n-1 {
Pour tout ar a du graphe G faire Relaxation(a)

On peut dmontrer que et algorithme donne le hemin minimal d'origine x0 . Plus


exa tement, on vrie qu'aprs l'ex ution de la i-me itration de la bou le on a obtenu
tous les hemins minimaux omposs de i ar s. Ce rsultat est valide mme en prsen e
d'ar s de longueur ngative, la seule ondition est que tout ir uit soit de longueur positive
ou nulle. Ce ritre se vrie une fois l'algorithme de Ford ex ut en testant la prsen e
d'un ar a tel que d[ext[a > d[or[a + l[a. On trouve un tel ar si et seulement
si le graphe possde un ir uit de longueur ngative.

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.

2. PLUS COURTS CHEMINS ENTRE TOUS LES COUPLES DE SOMMETS

35

2. Plus ourts hemins entre tous les ouples de sommets


On her he i i dterminer tous les plus ourts hemins et non pas uniquement eux
d'origine x0 . Nous ommenons par donner un algorithme qui dtermine les longueurs de
es plus ourts hemins. La longueur du plus ourt hemin entre xi et xj est note (xi , xj ).
On onvient de poser (xi , xj ) = s'il n'existe pas de hemin entre xi et xj (en pratique
il sut dans la suite de rempla er par un nombre susamment grand par exemple la
somme des longueurs de tous les ar s du graphe). La onstru tion ee tive des hemins
sera examine ensuite, elle se dduit simplement du al ul de . On suppose qu'entre deux
sommets il y a au plus un ar . En eet, s'il en existe plusieurs, il sut de ne retenir que
le plus ourt. On note (i, j) la longueur de l'ar a (le plus ourt) qui a pour origine xi et
pour extrmit xj , (i, j) = s'il n'existe pas de tel ar .

Les algorithmes de re her he de hemins les plus ourts reposent sur l'observation trs
simple mais importante suivante :

Remarque Si f est un hemin de longueur minimale joignant x y et qui passe par z,

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.

Les relations suivantes sont satisfaites par les k :


k+1 (xi , xj ) = min(k (xi , xj ), k (xi , xk ) + k (xk , xj ))

Soit un hemin de longueur minimale satisfaisant Pk+1 , ou bien il


ne passe pas par xk et on a
Dmonstration.

k+1 (xi , xj ) = k (xi , xj )


ou bien il passe par xk et, d'aprs la remarque prliminaire, il est ompos d'un hemin de
longueur minimale joignant xi xk et satisfaisant Pk et d'un autre minimal aussi joignant
xk xj . Il a don pour longueur : k (xi , xk ) + k (xk , xj ).

L'algorithme pour la re her he du plus ourt hemin met jour une matri e delta[i,j
qui a t initialise (i, j). haque itration de la bou le externe, on fait rotre l'indi e
k du k al ul.

36

2. PLUS COURTS CHEMINS, PROGRAMMATION DYNAMIQUE

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:=

delta[i[k + delta[k[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)]].

Ce i est exa tement le al ul de la puissan e de la matri e ontenant les (i, j) si on


utilise des oprations parti ulires pour la somme et le produit des oe ients. Il faut en
eet rempla er la somme par min et le produit par +. On est ainsi amen introduire la
notion de semi-anneau.

3.1. Semi-anneaux. Dnition. Un semi-anneau est un ensemble S muni de deux


lois de ompositions notes i i et telles que ;
(1) La loi est asso iative, ommutative et possde un lment neutre not 0
(2) La loi est asso iative, et possde un lment neutre not 1

(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

2. PLUS COURTS CHEMINS, PROGRAMMATION DYNAMIQUE

3. L'ensemble N {} des entiers

naturels augment de , pour les lois min et +. Les


lments neutres sont respe tivement et 0 pour es deux lois. On vrie simplement que
min est asso iative, ommutative et possde omme lment neutre, d'autre part + est
asso iative d'lment neutre 0 ; enn on a bien :

a + min(b, c) = min(a + b, a + c),

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.

5. Le dernier exemple est un peu plus nouveau. On onsidre un alphabet A et l'ensemble

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 .

3.2. Puissan es de matri es.

On peut dnir des matri es arres n n dont les


oe ient sont dans un semi-anneau S ; le produit de deux telles matri es P et Q est alors
la matri e M dont le oe ient Mi,j est donn par :

Mi,j = nk=1 (Pi,k Qk,j )


Le al ul des plus ourts hemins dans un graphe se gnralise elui de graphes dont
les ar s sont valus par des lments d'un semi-anneau S . Soit G = (X, A, ), o (X, A)
est un graphe orient et une appli ation de A dans un semi-anneau S . La valuation se
gnralise des ar s aux hemins en posant, pour tout hemin f = a1 , a2 , . . . , ak , (f ) gale
au  produit  i=1,k (ai ). Soit M la matri e dont le oe ient Mi,j est gal la  somme
 (par ) des (a) pour tous les ar s a d'origine xi et d'extrmit xj , Mi,j est gal 0 s'il
n'existe pas de tel ar . On a alors le thorme suivant :
k
de la puissan e k-ime de la matri e M est gal la 
L'lment Mi,j
somme  par des (f ) pour tous les hemins f d'origine xi , d'extrmit xj et de longueur
k.
Thorme

2.1.

La preuve de e rsultat s'ee tue par r urren e sur k .

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

On dit alors que M est quasi-inversible, son quasi-inverse est M =


a:

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

2. PLUS COURTS CHEMINS, PROGRAMMATION DYNAMIQUE

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.

L'algorithme de programmation dynamique s'exprime de la faon


suivante : pour haque ouple d'tats , on note k (, ) le ot minimal d'une suite de
transitions onduisant de l'instant 0 l'instant k ; e ot est inni si une telle
suite n'existe pas. On a alors la formule de r urren e suivante qui permet de rsoudre le
problme de manire itrative :

k (, ) = min[k1 (, ) + ck (, xk )]

Dans ette formule xk satisfait k (, xk ) = .


On remarque qu'il sut alors de onserver les valeurs de k1 pour obtenir elles de k ,
il n'est pas n essaire de onnatre les valeurs de i pour i < k 1, la mmoire n essaire
est bien en O(n2 ) o n est le nombre d'tats du systme.

4.4. Le sa dos.

Le problme du sa dos est onnu omme tant NP- omplet en


gnral, toutefois dans le as parti ulier o les poids des objets emporter sont des entiers
on peut obtenir un algorithme polynomial en fon tion de la apa it totale du sa . Pr isons
le problme : on se donne des entiers p1 , p2 , . . . , pk reprsentant les poids de ertains objets
et un nombre P reprsentant le poids maximal des objets que l'on peut emporter dans le
sa ; pour haque objet i (i = 1, . . . , k), ai est l'indi e de satisfa tion obtenu si on emporte i
dans le sa . Le problme onsiste trouver le sous-ensemble d'objets qui maximise la somme
des indi es de satisfa tion et tel que la somme des poids des objets qui le omposent est
infrieure ou gale P .
Ave la terminologie du paragraphe pr dent on onsidre des gains et non pas des
ots. L'tat du systme est la apa it qui reste dans le sa dos, ainsi l'tat initial est
P , lorsque l'on prend l'objet i on passe d'une apa it p la apa it p pi . Les direntes
d isions sont reprsentes par une variable qui prend les valeurs 0 et 1, xi = 1 si on met
l'objet i dans le sa xi = 0 sinon. Ainsi i (p, x) = p xpi et gi (p, x) = ai . L'algorithme de

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.

Pour p = 1 jusqu'a P faire benefi e[p = 0;


Pour i = 1 jusqu'a k faire {
q = poids[i;
Pour p = q jusqu'a P faire
Si (benefi e[p-q < benefi e[p + a[i)
benefi e[p-q = benefi e[p + 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.

5.1. Sous-squen e ommunes. Un exemple simple onsiste dterminer la plus


longue sous-squen e ommune deux squen es donnes. Pr isons tout d'abord quelques
dnitions. Une squen e (ou un mot) est une suite nie de symboles (ou lettres) pris dans
un ensemble ni (ou alphabet). Si u = a1 an est une squen e, o a1 , . . . , an sont des
lettres, l'entier n est la longueur de u. Une squen e v = b1 bm est une sous-squen e
de u = a1 an s'il existe des entiers i1 , . . . , im , (1 i1 < im n) tels que aik = bk
(1 k m). Une squen e w est une sous-squen e ommune aux squen es u et v si w est
sous-squen e de u et de v . Une sous-squen e ommune est dite maximale si sa longueur
est maximale parmi toutes les sous-squen es ommunes.
On her he d'abord dterminer la longueur d'une sous-squen e ommune maximale
u = a1 an et v = b1 bm . Pour ela, on note L(i, j) la longueur d'une sous-squen e
ommune maximale aux mots a1 ai et b1 bj , (0 j m, 0 i n). On peut montrer
que :
L(i, j) =

si ai = bj
1 + L(i 1, j 1)
max(L(i, j 1), L(i 1, j)) sinon.

En eet, soit w une sous squen e de longueur maximale, ommune a1 ai1 et


b1 bj1 si ai = bj , wai est une sous-squen e ommune maximale a1 ai et b1 bj .
Si ai 6= bj alors une sous-squen e ommune a1 ai et b1 bj est ou bien ommune
a1 ai et b1 bj1 (si elle ne se termine pas par bj ) ; ou bien a1 ai1 et b1 bj ,
(si elle ne se termine par ai ). On obtient ainsi l'algorithme qui permet de dterminer la
longueur d'une sous squen e ommune maximale a1 an et b1 bm

42

2. PLUS COURTS CHEMINS, PROGRAMMATION DYNAMIQUE

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.

5.2. Alignement de squen es.

Soit u et v deux mots rits l'aide de l'alphabet A


(on prend souvent A = {G, T, A, C} en bioinformatique), on appelle alignement de u, v un
ouple de mots u , v sur l'alphabet A{e} (o e
/ A reprsente le ara tre d'espa ement),
ouple qui satisfait les onditions suivantes
 les deux mots u et v ont mme longueur (|u | = |v |) ;
 la suppression de e dans u et dans v donne u et v respe tivement ;
 les lettres e ne se retrouvent pas en mme position dans u et v .
Un exemple d'alignement de u = CGAT T AG et v = GAT CGA est

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

o n est la longueur ommune u et v .


Par exemple, pour l'exemple pr dent lorsque p(a, b) = 1 pour a 6= b, p(a, a) = 5 et
q = 2 on trouve un s ore de 13.
La dtermination du s ore le plus lev d'un alignement s'ee tue gr e un algorithme
de programmation dynamique bas sur la remarque suivante :
Le meilleur alignement de ua et vb s'obtient soit partir de elui de u et v en alignant
a et b, soit partir de elui de ua et v en alignant b ave un espa ement, soit enn partir
de elui de u et vb en alignant a ave un espa ement.
On onstruit ainsi pas pas un tableau ms (pour meilleur s ore) l'aide de la r urren e
suivante :

5. TRAITEMENT DE SQUENCES

43

Soit n la longueur de u et m elle de v , on note par msi,j (pour 0 i n, 0 j m)


le s ore d'un meilleur alignement entre u1 u2 ui et v1 v2 vj . Par onvention on pose
ms0,j = qj, msi,0 = qi orrespondant un aligenment dans lequel tous les ara tres de
l'une des squen es sont des espa ements.

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.

5.3. Distan e d'dition. Un problme voisin du pr dent onsiste dterminer e


qu'on appelle la distan e d'dition entre deux mots f et g . Cette notion est introduite en
onsidrant les trois oprations suivantes permettant de transformer une squen e en une
autre :
(1) La suppression d'une lettre (note S )
(2) L'ajout d'une lettre (note A)
(3) Le rempla ement d'une lettre par une autre (note R)
Cha une de es oprations a un ot et il s'agit de dterminer la suite d'oprations
ayant un ot minimum permettant de passer d'un mot un autre. Ainsi pour passer de

44

2. PLUS COURTS CHEMINS, PROGRAMMATION DYNAMIQUE

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

et ette restri tion ne gne pas dans la pratique

45

46

3. FLOTS ET COUPLAGES

deux proprits suivantes :


(1)
(2)

(x,y)A

0 (x, y) (x, y) , pour tout ar (x, y) A,


X
(x, y) =
(y, z) , pour tout sommet y 6= s, t.
(y,z)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

apa it , (S, T ), d'une oupure

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).

La preuve se fait en onsidrant une oupure (S, T ) et en la transformant en (S{x}, T \{x})


pour x T . On vrie alors que la nouvelle oupure possde la mme valeur de ot en
appliquant la loi de Kir ho sur le sommet x.
Une onsquen e immdiate est alors que le ot maximal ne saurait ex der la apa it
d'une oupure.
Proposition

3.2. max min(S,T ) (S, 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 :

(x, y) A et (x, y) < (x, y)


(y, x) A et (x, y) > 0
De plus on a les nouvelles apa its donnes par

(x, y) (x, y) si (x, y) < (x, y)
(x, y) =
(y, x)
si (y, x) > 0
Un hemin c dans G joignant s t permet d'obtenir un ot qui amliore . Soit
u la plus petite valeur de (x, y) pour tous les ar s appartenant au hemin c, on al ule
alors par

si (x, y)
/c
(x, y)
(x, y) + u si (x, y) A et (x, y) c
(x, y) =

(y, x) u si (x, y) A et (y, x) c


(x, y) A si

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 :

Soit un ot de s vers t dans un graphe G. Les


trois onditions suivantes sont quivalentes :
1. le ot est maximal ;
2. le graphe d'amlioration G ne ontient pas de hemin joignant s t ;
3. la valeur de est gale la apa it (S, T ) pour une ertaine oupure (S, T ).
Thorme

3.1 (Maxow-Min ut).

Preuve : (1) entraine (2) ar si G avait un hemin amliorable on pourrait augmenter


le ot d'aprs la proposition pr dente.
(2) entraine (3) ; onsidrons l'ensemble S des sommets a essibles de s dans G par un
hemin form d'ar s de apa it non nulle , et soit T = X\S , son omplmentaire, qui est
bien sr non vide puisque ontenant t. S tant maximal, les artes de S T ont toutes une
apa it nulle dans G . Et don = (S, T ).
Enn, (3) entraine (1) puisque le maximum possible est atteint.

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.

Appli ation de l'algorithme de Ford-Fulkerson

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

La omplexit de ette mthode dpend beau oup de la faon dont les


amliorations sont ee tues. Sur le graphe pathologique suivant dont le ot maximal est
de 200.000, le hoix systmatique d'un hemin passant par la diagonale (x, y) de apa it
1 onduit faire 200.000 d'itrations alors que le hoix dire t des hemins (s, x, t) puis
(s, y, t) permettrait de on lure en 2 tapes.

x
100.000

100.000

100.000

100.000

1
1

1
2

Fig. 3.

Un exemple de al ul trs long

4. COUPLAGE DANS UN GRAPHE BIPARTI

51

3. Un algorithme en temps polynomial


Pour rendre le omportement de l'algorithme moins dpendant des donnes il faut
pr iser la stratgie de hoix des hemins sur lesquels se font les augmentations du ot.
Nous en d rivons deux, et il est mme possible de al uler le ot maximal en temps O(n3 ).

3.1. L'algorithme d'Edmonds-Karp. Edmonds et Karp ont pr is la mthode de


Ford et Fulkerson pour en faire un vritable algorithme dont la omplexit est polynomiale
en fon tion de la taille du graphe. Dans ette version, le hemin qu'il faut amliorer
haque tape est le plus ourt hemin (en nombre d'ar s) de G qui relie s t. On ee tue
don un par ours de re her he en largeur des sommets a essibles depuis s dans e graphe
G an de d'eterminer le hemin le plus ourt.
Proposition

ne d rot jamais.

3.3.

Dans l'algorithme d'Edmonds-Karp, la longueur du hemin amlior

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.

Appelons phase une su ession d'augmentations du ot pendant lesquelles la longueur


des hemins amliors reste xe. Le nombre de phases est au plus le nombre n de sommets
du graphe. De plus dans haque phase une arte (x, y) ne peut tre ritique (dterminant
l'augmentation du hemin hoisi) qu'une seule fois, puisqu'il aura fallu modier entre temps
(y, x) pour permettre un nouvel usage de (x, y) : du mme oup x s'loigne de s et la
longueur des hemins rot. Il y a don O(nm) amliorations apportes au ot, d'o le
thorme :
Thorme

3.2.

Le ot de l'algorithme de Edmonds-Karp est O(nm2 ) oprations.

En eet le ot de la re her he en largeur d'un hemin amliorable est proportionnel au


nombre d'artes du graphe.

4. Couplage dans un graphe biparti


La re her he d'un ot maximal dans un graphe a beau oup d'appli ations dont ertaines semblent loignes de la notion de ot, une appli ation parti ulire est la notion
de ouplage. Celle- i peut tre dnie sur un graphe (non orient) quel onque mais nous
verrons que 'est surtout pour les graphes bipartis que la notion de ot est utile.

52

3. FLOTS ET COUPLAGES

Fig. 4.

Un ouplage (non maximum)

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 :

et D deux ouplages de G = (X, E), alors la diren e symtrique

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 :

4. COUPLAGE DANS UN GRAPHE BIPARTI

53

G
Le rseau de transport asso i la re her he d'un ouplage maximal
dans un graphe biparti
Fig. 5.

L'ensemble des sommets de G est X = X Y {s, t} o s et t sont deux nouveaux


sommets. L'ensemble des ar s de G est onstitu des artes de G orientes de X vers Y ,
d'ar s ayant pour origine s et pour extrmit haque sommet de X , d'ar s reliant haque
sommet de Y t. On suppose de plus que toutes les apa its sont gales 1. Il est assez
fa ile de vrier qu' tout ouplage C dans G on asso ie un ot C dans G en posant
c (u, v) = 1 si et seulement l'une des onditions suivantes est satisfaite :
 {u, v} C
 u = s et v X est oupl (il existe y Y tel que {v, y} C
 v = t et u Y est oupl (il existe x X tel que {x, u} C
si au une de es onditions n'est vrie C (u, v) = 0. On vrie que C est un ot et
que sa valeur est gale au nombre d'artes dans C , r iproquement tout ot dans G
dtermine un ouplage de G.
La notion de hemin amliorable dans le graphe des ots se traduit simplement en
terme de ouplage. Un hemin P = e1 , e2 , . . . ek est alternant si e2i+1
/ C et si e2i C pour
i k/2. En reprenant la notion de sommet satur (extrmit d'une arte du ouplage) :

Un ouplage est maximal dans un graphe biparti si et seulement s'il


n'existe pas de hemin alternant reliant deux sommets non saturs, l'un est alors dans X
et l'autre dans Y .
Thorme

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 :

Initialiser C par l'ensemble vide


Tant qu'(il existe un hemin P ameliorable)
{ Ameliorer (P);}
Noter que dans e as le nombre d'tapes d'amlioration est born par n2 , ainsi l'algorithme
est en O(mn) ; e i vient du fait que les apa its sont toutes gales 1.

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.

Exemple : Considrons le as p = q = 3 et les listes


F1 : y2 y1 y3
F2 : y1 y3 y2
F3 : y1 y2 y3

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}.

6.2. Couplages maximaux.

Un thorme de Berge ara trise les ouplages maximaux. Dmontrons d'abord un lemme te hnique.

Soient C et C deux ouplages distin ts d'un graphe G = (X, A). Soit


B = C C et = (X, B) le graphe onstruit sur et ensemble B d'artes. Les omposantes
onnexes de sont soit des points isols, soit des y les ou des hemins alterns d'artes
de C et C .
Lemme

3.1.

Preuve : Le degr maximal de est 2.


Ce lemme permet de prouver la ondition susante.

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.

Un ouplage C est maximal si et seulement s'il n'existe pas de hemin

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.

6.3. Cy le rdu teur pour le al ul d'un ouplage maximal.

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

7. COUPLAGES ET INTERSECTION DE MATRODES

57

sommet non satur, au moins une des extrmits x de P n'appartient pas . Si P ne


ren ontre pas , alors P est un hemin augmentant de C dans G/ ; sinon la partie P
de P qui relie un sommet de est un hemin d'augmentation de C . Dans les deux
as C n'est pas maximal.

R iproquement si C n'est pas un ouplage maximal de G/, alors il existe un


ouplage D de G/ qui ontient plus d'lments que C , l'ajout D de k artes de
donne un ouplage D de qui a plus d'artes que C .

6.4. Algorithme d'Edmonds.

Les grandes lignes de et algorithme sont les sui-

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.

7. Couplages et interse tion de matrodes


Soit G = (X, Y, E), un graphe biparti et soit C la famille des sous-ensembles C de E qui
sont des ouplages. Alors la famille E, C ne onstitue pas un matrode. En eet, onsidrons
le graphe biparti G ompos de 4 sommets 1, 2, 3, 4, X = {1, 3} et Y = {2, 4}, et de 3 artes
(1, 2), (2, 3), (3, 4), alors sur les ensembles C1 = {(1, 2), (3, 4)} et C2 = {(2, 3)} on onstate
que C1 possde un lment de plus que C2 et pour tout e C1 , C2 {e} n'est pas un
ouplage e qui ontredit les axiomes des matrodes. Par ontre on a :

58

3. FLOTS ET COUPLAGES

Proposition

3.4.

La famille C est l'interse tion de deux matrodes.

Preuve : Considrons les deux familles de parties F et G de E telles que F F si


et seulement si deux artes de F n'ont pas une extrmit ommune dans X . De mme
on dnit G omme l'ensemble des parties G de E telles que G F si et seulement si
deux artes de G n'ont pas une extrmit ommune dans Y . Il est alors lair que C est un
ouplage si et seulement si C F et C G .
L'algorithme de re her he du ouplage maximum se gnralise pour dterminer tant
donns deux matrodes (E, F ) et (E, G) l'ensemble C de ardinal maximal qui appartienne
la fois F et G . On utilise la notion de ir uit dans un matrode (E, F . Rappelons qu'un
ensemble C est un ir uit de (E, F ) si C
/ F et si tout sous-ensemble stri t de C est dans
F . Il est alors lair que tout sous ensemble U de E qui n'est pas dans F ontient un ir uit.

Pour obtenir le sous-ensemble de ardinal maximal de on dnit la notion suivante :


Soit F un ensemble qui appartient F et G , on asso ie une suite d'lments e1 , e2 , . . . , ep
les ir uits Ci et Di . Ci est un ir uit in lus dans F {ei } pour le matrode (E, F ) ; il est
dni haque fois que et ensemble n'est pas dans F . Symtriquement Di est un ir uit
in lus dans F {ei } pour le matrode E, G ; il est dni haque fois que et ensemble n'est
pas dans G .
Une suite P = {e1 , e2 , . . . ep } est augmentante si les onditions suivantes sont satisfaites :
 F {e1 } F
 Pour tout i pair ompris entre 2 et k ei F Di1 . De plus ei n'appartient pas Dj
pour j impair stri tement plus petit que i 1.
 Pour tout i impair ompris entre 3 et k , ei
/ F et ei1 Ci . De plus ej1 n'appartient
pas Ci pour j impair stri tement plus petit que i.
 F P est un lment de G .
On onstate alors que F P appartient aussi F et possde un lment de plus que F .
L'itration de ette augmentation donne un ensemble appartenant l'interse tion de taille
maximum.

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

Reprsentation graphique d'un problme linaire simple

3. Prin ipes gnraux


3.1. Remarques gomtriques.

les ontraintes :

On note R l'ensemble des points de Rn qui satisfont

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.

3.2. Grandes lignes d'un algorithme.

La proposition pr dente nous permet de


donner le anevas d'un algorithme de re her he de l'optimum ( 'est en fait un pseudoalgorithme ar la terminaison n'en est pas n essairement assure) de rsolution du problme P .
Pour un point P on note (P ) la valeur de la fon tion onomique en P .
1. Si R est vide Alors pas de solution Sinon dterminer un sommet

P0

du

polydre des ontraintes.

= 0;

2. Tant qu'il existe un sommet

(Pi ) faire
{Pi+1 = Q; ++i ;

Si on trouve une dire tion o


3. Le sommet

voisin de

Pi

Pi

Q adja ent Pi , non visit, tel que (Q)


(x)

tend vers l'infini alors arrt.

du polydre tel que

(Q) < (Pi )

pour tout sommet

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.

Soit A une matri e de Rm,n et c un ve teur de Rn ombinaison linaire


des lignes de A, alors l'une des deux assertions ex lusives suivantes est satisfaite :
Thorme

4.1.

(1)

u, tel que cu > 0 et Au 0

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

un ensemble d'indi es tel que

engendr par les lignes de


des lignes

Li , i I

A,

exprimer

Li , i I forme une base de l'espa e


c omme une ombinaison linaire

c=

yi Li

iI

Tant qu'il existe


Soit

faire

le plus petit indi e tel que

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

satisfait (1) ; Exit.

s le plus petit tel que Ls u > 0 ;


poser I := I {h} {s} et exprimer c omme plus
trouvs sont positifs ou nuls alors y satisfait (2). }
Sinon hoisir

haut. Si tous les

yi

Noter que l'algorithme al ule haque tape des yi et un u ar


la sous matri e des lignes dont les indi es sont dans I est toujours non singulire. Cet u
satisfait cu > 0 haque tape puisque cu = yh Lh u. Si l'algorithme s'arrte 'est que l'on
a obtenu un y satisfaisant (2) ou un u satisfaisant (1).
Il nous reste don montrer que l'algorithme termine en vriant haque tape
que le sous ensemble I al ul est dirent de eux al uls avant lui. Supposons qu'au
ontraire on obtienne le mme I deux tapes direntes, montrons que l'on aboutit une
ontradi tion. Notons r le plus grand indi e qui sort de I entre es deux tapes et posons
I = Ip au moment o r sort, omme on retrouve le mme I plus tard 'est que r est aussi
rentr entre les P
deux tapes onsidres, notons Iq la valeur de I lorsque r entre dans I .

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

Si l'un des deux problmes suivants

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.

Le orollaire qui suit nous sera utile dans la suite :

Corollaire

si pour tout y :

4.2.

Le systme d'inquations Ax b admet une solution si et seulement


y 0, yA = 0 yb 0

On onsidre la matri e A dont la d omposition en blo est [Id A


A], o Id est la matri e identit.
On montre d'abord que Ax b a une solution si et seulement s'il existe u 0 tel que
A u = b. En eet, s'il existe un u 0 tel que A u = b alors u s' rit [v u u ] et x = u u
satisfait Ax + v = b soit Ax b. R iproquement si x satisfait Ax b on peut poser
x = u u ave u 0, u 0, en notant v = Ax b on observe que [v u u ]A = b.
D'aprs le orollaire 4.1 A u = b admet une solution u 0, si et seulement si y 0 et
yA 0 implique yb 0. Mais omme les olonnes de A sont onsistues de elles de A,
leurs opposes et elles de la matri e identit, yA 0 est quivalent y 0 et yA = 0 e
qui permet de on lure.

Dmonstration.

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.

Si l'un des deux problmes suivants


(P)
(D)

max{cx | Ax b}
min{yb | y 0, yA = c}

admet une solution nie alors il en est de mme pour l'autre et on a :


min{yb | y 0, yA = c} = max{cx | Ax b}.

5. LE CAS

QUELCONQUE

67

Dmonstration. Si P n'admet pas de solution par e que Ax b n'en a pas, alors


d'aprs le orollaire 4.2 il existe z 0 tel que zA = 0 et zb 0. Ce i montre que pour
> 1, l'ajout de z a toute solution y de yA = c donne une autre solution y ave y b < yb,
e qui interdit une solution nie D .

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.

Si D n'admet pas de solution par e que y 0, yA = c n'en a pas alors, d'aprs le


thorme du paragraphe pr dent, il existe un z tel que zc 0 et Az 0 et l'ajout de z
pour > 1 un x qui satisfait Ax b donne x = x + z tel que Ax b et cx > cx.
Si D n'admet pas de solution par e qu'il existe y 0 tels que yA = c et yb plus petit
que toute valeur donne, il ne peut exister de x tel que Ax b ar alors yAx = cx 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

et puisque y 0 et Ax b ela donne :

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

Comme y, v et u sont positifs et que b Ax on a zb uAx ; or uA = 0 e qui


termine la preuve.

5.2. Algorithme du simplexe.

On se propose d'abord de donner un algorithme qui


rsout le problme P dans le as o l'on onnat un sommet du polydre des ontraintes,
'est un point x tel que Ax b et x est solution d'un systme d'quations extrait de la
matri e A des ontraintes Li x = bi pour i I . On verra plus loin omment al uler une
tel point de dpart. I i et dans la suite I dsigne un ensemble d'indi es de lignes et AI
la sous matri e de A qui ontient les lignes dont les indi es sont dans I , au ours de tout
l'algorithme ette matri e est inversible, ainsi x = A1
I b.
On itre la bou le suivante jusqu' obtenir y 0 ou v < 0

y tel que yi = (cA1


/ I.
I )i pour i I et yj = 0 pour j
Si y 0 alors x est solution du systme.
Sinon soit h le plus petit indi e tel que yh < 0 et soit Uh la olonne
1
orrespondante de AI ;
dterminer pour haque ligne Lj de la matri e A la valeur vj = Lj Uh .
Si j
/ I, vj < 0 alors cx est non born pour Ax b
bs Ls x
Sinon soit s tel que
soit minimum pour les vj positifs.
vs
On pose alors I := I {h} {s} et on al ule x, interse tion des hyperSoit

plans orrespondants.

Preuve de validit de l'algorithme du simplexe :

5. LE CAS

QUELCONQUE

69

Si l'algorithme termine en obtenant y 0 alors on a bien l'optimum.


En eet, on note J le omplmentaire de I et on a :

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 .

Si l'algorithme termine en obtenant Lj Uh 0, alors l'optimum est l'inni.


En eet, dans e as, la olonne Uh de la matri e A1
I satisfait :

yh = cUh < 0 et AUh 0

Don pour tout rel > 0 on a

A(x Uh ) b AUh b

et c(x Uh ) = cx cUh peut tre rendu arbitrairement grand.

Le passage de I I {h} {s} revient transformer x en :


x = x +

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

mais omme Uh est une olonne de la matri e A1


et que h 6= i on a Li Uh = 0 et don
I
Li x = Li x = bi D'autre part

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}.

Le point x est un sommet du polydre R et amliore la fon tion onomique.


Il sut de vrier que x satisfait les ontraintes ; on a pour j J :

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

Enn x amliore la fon tion onomique ar

x = cx +

bs Ls x
cUh
Ls Uh

et Ls Uh < 0, cUh < 0 implique cx cx.

La preuve de e que l'algorithme du simplexe termine se fait de la mme faon que


pour la preuve du thorme 4.1.

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

On al ule cAI 1 qui vaut (1, 2,


1), on
devra don supprimer la ligne 2 la olonne

1 . Le produit de ette olonne par l'oppose de


est alors
orrespondante dans AI
1
ha une des lignes de la matri e A donne 0, 1, 0, 1, 2, 1. Seul le produit ave la ligne
L6 donne un nombre positif, on fait don entrer 6 dans I et on obtient : I = {1, 3, 6}. On
obtient

1 0 0
1 0 0
1 1 AI 1 = 1
1 1
AI = 2
1 0 1
1 0 1
1

Etape 2.

Le point x est gal (0, 12, 8)


On al ule cAI 1 qui vaut (1, 1,
2), ondevra don supprimer la ligne 1, la olonne

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

pour les lignes 4 et 5, on doit don al uler :

7. OBTENTION D'UN SOMMET DU POLYDRE

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.

On trouve le point x = (3, 9, 11) et on a A1


I c =
atteint l'optimum qui vaut 23 pour e point x.

1
(8, 1, 13)
6

qui est positif on a don

7. Obtention d'un sommet du polydre


Pour que l'algorithme du simplexe soit omplet, il nous faut obtenir un sommet du
polydre e i an d'initialiser le par ours de l'ensemble de ses sommets qui se tremine par
la d ouverte de l'optimum.
Dans le as o toutes les entres de A, b et c sont positives ou nulles on remarque
immdiatement que le sommet qui atteint l'optimum est aussi oordonnes positives ou
nulles ; on ne modie don pas elui- i si on ajoute les ontraintes xi 0. Ave es nouvelles
ontraintes l'origine est un des sommet du polydre et on peut initialiser la re her he par
elle- i.
Dans le as o les bi sont positifs ou nuls mais pas n essairement les cj ni les Ai,j on
ddouble les variables en remplaant xi par xi yi . On a alors un problme stri tement
quivalent au pr dent pour lequel l'origine i, xi = yi = 0 est un sommet du polydre.

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

Aprs avoir introduit les variables ti on onsidre le nouveau problme linaire P


suivant o J dsigne l'ensemble des indi es j o bj < 0 et I elui o bi 0 :

AI
0
AJ Id

[x , t]

bI
bJ

max d[x, t] = jJ (Lj x tj )


o Lj est la ligne de AJ orrespondant l'indi e j .

x, t 0

72

4. PROGRAMMATION LINAIRE

On remarque les points suivants sur e nouveau programme :

Pour tout point du polydre des ontraintes de P on a


d.[x, t] jJ bj

En eet la ontrainte pour haque j J s' rit :

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.

Si l'optimum de P atteint en [x , t ] donne pour valeur jJ bj , on vrie que x est


un sommet du polydre des ontraintes de P . En eet [x , t ] est un sommet de elui de P ,
il est don l'interse tion de n + |J| hyperplans des ontraintes et don x est l'interse tion
de n hyperplans de P .

8. Le simplexe sous forme de tableaux


Nous avons prsent l'algorithme du simplexe dans le adre de l'algbre linaire qui
nous a permis de donner les preuves des rsultats sans faire trop appel des dtails de
al ul te hniques.
On prsente souvent le simplexe sous la forme de mise jour de tableaux en traduisant l'algorithme plus haut en une suite d'instru tions simples. Nous nous proposons de
reprendre i i ette formulation qui permet de gagner dans la omplexit de l'algorithme de
hangement de sommet du polydre ; elle- i passe en eet de O(n3 ) O(n2 ).
On onsidre un problme linaire se prsentant sous la forme

Ax b, x 0, max cx

et on a vu que tout problme peut se ramener ette forme.


On suppose ainsi que les ontraintes (ou de manire quivalente les hyperplans) sont
au nombre de n + m et que les n premires sont xi 0 ; les m suivantes orrespondent
aux lignes de A.
L'algorithme du simplexe se prsente alors sous la forme de la mise jour de 3 tableaux
, , dont la valeur est initialise A, b, c respe tivement. On utilise aussi un ensemble
d'indi es I initialis {1, 2, . . . , n}, son omplmentaire J = {n + 1, n + 2, . . . , n + m} est
appel la base pour une raison que nous verrons plus loin.
L'algorithme du simplexe s'exprime de la faon suivante dont on notera l'analogie ave
la formulation pr dente.
Tant qu'il existe

iI

tel que

i > 0

faire

8. LE SIMPLEXE SOUS FORME DE TABLEAUX

I tel que h > 0 ;


j J faire
j
Cal uler j =
pour j,h 6= 0
j,h
Si tous les j al uls sont ngatifs alors optimum
tel que s soit minimum positif.
Poser I = I {h} {s}, J = J {s} {h} ;
Faire Pivot(, , , h, s)
Soit

73

le plus petit indi e de

Pour tout

l'infini. Sinon soit

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

De plus la fon tion optimiser s' rit au ours de ette tape

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

On reporte dans les autres :

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

On prend enn i i h = 3 et s = 8 et on ee tue le dernier pivotement :


Ce qui donne le nouveau systme ;

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.

Laisse en exer i e en utilisant les thormes donns plus haut.

76

4. PROGRAMMATION LINAIRE

10. Relation entre le problme Primal et le Dual


On onsidre le problme suivant que l'on appelle primal

max cx
(P) Ax b .
x0

Le problme dni i-dessous est alors appel dual :

(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 :

Si le problme P reprsente la onfe tion de produits soumis des


limites dues des quantits de matires premires, alors l'augmentation P
du gain obtenue
par un leger a roissement i de es matires premires est donne par i yi o yi est
la solution du problme dual
Proposition

4.2.

Si on modie lgrement les valeurs de bi , on remarque que les


ontraintes yA = c du dual n'ont pas t modies
P ; on peut alors admettre que la solution yi
du
dual
qui
minimisait
la
fon tion
onomique
yibi minimise en ore la nouvelle fon tion
P
yi (bi + i ). Cette nouvelle valeur est aussi le maximum atteint par le problme
primal
P
i yi .
ave les nouvelles ontraintes, on voit bien que l'augmentation obtenue est

Dmonstration.

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 .

11. COMPLEXIT DU SIMPLEXE

77

Un as extrme V. Klee et G. J. Minty ont propos le problme suivant en dimension n.


Pn

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 :

max 100x1 + 10x2 + x3

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 , x5 , x6 . On obtient alors mis dans une forme un peu dirente

max 100x1 + 10x2 + x3

x4 = 1 x1
.
(KM ) x5 = 100 20x1 x2

x6 = 10000 200x1 20x2 x3

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

max 100 100x4 + 10x2 + x3


x1 = 1 x4
.
(KM 1)
x5 = 80 + 20x4 x2

x = 9800 + 200x 20x x


6
4
2
3

Le pivot maintenant se fait sur x2 et la deuxime quation :

max 900 + 100x4 10x5 + x3


x1 = 1 x4
.
(KM 2)
x2 = 80 + 20x4 x5

x = 8200 200x + 20x x


6
4
5
3

et il faudra en ore 5 pivots, que le le teur est onvi ee tuer, avant d'obtenir

max 10000 100x1 10x2 x6


x4 = 1 x1
(KM 7)
,
x5 = 100 20x1 x2

x = 10000 200x 20x x


3
1
2
6

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.

12. Des algorithmes polynomiaux


Depuis de nombreux travaux ont t publis sur le sujet. Popularise par la ontribution de S. Smale, l'appro he sto hastique la omplexit moyenne du problme mit en
viden e que e as extrme est bien peu frquent et que le nombre moyen de pivots reste
polynomial en la dimension du problme.
De plus, Kat hian puis Karmarkar ont donn des algorithmes polynomiaux. On a mme
montr que la programmation linaire tait omplte dans la lasse des problmes polynomiaux pour la rdu tion en espa e logarithmique, plaant ainsi trs pr isment le
problme dans les hirar hies de omplexit.
12.0.1. La mthode de Kat hian. L'algorithme a t onu pour rsoudre des systmes
d'inquations. Il peut galement s'appliquer la programmation linaire soit en r rivant
le systmes d'quations omme systme d'inquations, soit en utilisant une mthode dite
de fon tion obje tif glissante , qui est une simple variante de la mthode. En voi i une
des ription simplie.
On veut don rsoudre le systme :

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.

On travaille i i ave les rels des ordinateurs, et don on peut normaliser


les entres du systme an d'en faire des entiers, par simple multipli ation par une puissan e
onvenable de 10. On ne se pose pas i i la question de la qualit de l'approximation que
l'on va obtenir, et des risques d'erreur ons utifs un mauvais onditionnement de la
matri e. Soit L le nombre total de bits n essaire l' riture du systme.
On montre que le systme (2) suivant :

Ax b + 2L ,

(2)

o on ajoute don la quantit 2L haque membre droit d'inquation, a une solution


si et seulement si (1) en a une. Intuitivement, la perturbation est tellement faible qu'elle
n'ae te pas la nature du rsultat. De plus, on peut obtenir la solution de (1) en temps
polynomial partir de elle de (2). Enn, le systme (2) est plus fa ile traiter ar s'il a
une solution, il existe une boule de rayon 22L dont tous les points sont solution.
La mthode de re her he des solutions s'exprime gomtriquement par la onstru tion
d'une suite d'ellipsodes embots, dans lesquels, haque tape, on sle tionne un point
dont on espre qu'il satisfait le systme. Si tel n'est pas le as, la k -ime ontrainte tant

12. DES ALGORITHMES POLYNOMIAUX

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.

La mthode de Karmarkar. Aprs une amlioration de Megiddo, le pas d isif fut


ee tu par Karmarkar qui amliore notablement la mthode de Kat hian en proposant
une vision gomtrique de type gradient, dont on donne une ide.
La pro dure de base est un algorithme rapide pour rsoudre les problmes du type :

max vx, pour x U S,


+
.
(K ) U = {x | Ax = 0}

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.

On suppose de plus que :


 U est dni par des quations homognes ;
 la valeur minimale de x est 0 ;
 le entre de la sphre S , le point de oordonnes 1/n dans haque dimension, est solution
du systme ;  on onnat un paramtre entier q qui permet d'arrter les itrations ds que
vzk 2q vz0 .
P
vx
La suite des solutions zk est telle que la fon tion dite de potentiel f (x) =
, diminue
log x[i]
haque itration d'une onstante (d'o la onvergen e rapide).
Gomtriquement, la transformation proje tive applique
haque tape de S sur S applique zk sur le point n1 e qui dans e nouveau systme de
oordonnes permet de minimiser la fon tion d'obje tif.
On obtient ainsi une solution optimale pour le systme K en un temps O(n3.5 L2 ).

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

lassique  et e titre un algorithme dont la omplexit est proportionnelle n n'est


pas polynomial. En revan he, si  une matri e n m oe ients {0, 1} gure parmi les
donnes, la taille de l'entre est nm, et un algorithme polynomial peut avoir une omplexit
proportionnelle nm tout en tant polynomial. Certains problmes peuvent mme sp ier
des donnes d'entre sous une forme parti ulire ; ainsi la donne d'une matri e M de taille
n m sous forme reuse est la donne de tous les ouples (i, j) tels que le oe ient Mij
soit non nul. Si l'on suppose que les oe ients sont entiers et borns par A, la taille de
l'entre est alors O(w log A), o w est le nombre de oe ients non nuls de M , tandis que
si les donnes du problme indiquent juste une matri e M , ette taille est O(mn log A).
La notion d'algorithme polynomial peut alors direr suivant le format de l'entre, par
exemple si w = O(log(mn)).

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

dni i-dessous est NP- omplet.

sat

Donnes

: un ensemble de variables {x1 , . . . , xn } et une formule logique sous forme


normale onjon tinve : F = C1 C2 C , ave la haque lause Ci = (yi,1 yi,2 yi,k ),
o ha un des yi,j est un littral, 'est--dire yi,j = xp ou yi,j = xp .

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,

3Sur la dnition de la notion de rdu tion, voir les omplments au hapitre 5.

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.

Donnes : un ensemble de variables {x1 , . . . , xn } et une formule F = C1 C ave

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

est satisfaisable par une ae tation de valeurs de vrit

aux variables.

Thorme

5.1.

Le problme

3-sat

V/F

est NP- omplet.

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

On peut remarquer que 3 est la limite de la mthode : la transformation de la formule

y1 = (x1 x2 ) produit automatiquement une lause trois littraux. De fait, omme

mentionn dans le prambule, on peut montrer que

2-sat

est soluble en temps polynomial.

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

Donnes : un ensemble de variables {x1 , . . . , xn } et un ensemble de lauses yi1


yi2 yiki , o pour tout (i, j), yij est soit un des xi , soit un des xi .
Rponse : d ider s'il existe une ae tation de valeurs de vrit aux xi de sorte que
haque lause ontienne au moins un littral vrai et au moins un littral faux ( 'est--dire :
i, j, k tels que yij = V et yik = F )
Thorme

5.2.

naesat

est NP- omplet.

Dmonstration. naesat appartient NP ar la donne d'une ae tation valide est


un erti at vriable en temps polynomial.
On va rduire sat naesat. Soit F une formule pour sat sur les variables {x1 , . . . , xn }.
On ajoute es variables une nouvelle variable z et l'on forme des lauses pour naesat
en transformant haque lause Ci = yi1 yiki de F en Ci = yi1 yiki z .
Le ara tre polynomial de ette rdu tion est vident.
Si l'instan e donne de sat est satisfaisable, la mme ae tation de valeurs aux variables, tout en ae tant z la valeur F , fournit une ae tation valide pour naesat.
Inversement, supposons que l'instan e onstruite de naesat soit satisfaisable. Si la
valeur de vrit de z dans l'ae tation orrespondante est F , les valeurs des variables xi
orrespondent une ae tation valide pour l'instan e de sat d'origine (dans la lause
onsidr, au moins l'un des yij ou z vaut V , et e n'est pas z ). Si au ontraire z vaut V ,
on hange les valeurs de toutes les variables dans l'ae tation. L'ae tation reste valide
pour naesat, ar au moins une variable par lause valait F dans l'ae tation initiale, et
vaut don maintenant V , tandis que z vaut F . On a don onstruit une ae tation dans
laquelle z vaut F , et en vertu du as pr dent l'instan e de sat initiale est satisfaisable.
On a don bien prouv l'quivalen e entre satisfaisabilit de l'instan e initiale de sat
et de l'instan e orrespondante de naesat. Don naesat est NP- omplet.


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-

est NP- omplet.

Dmonstration. On va rduire nae4sat nae3sat. Soit C = x y z t une


lause 4 littraux. On introduit une nouvelle variable uC , et on forme les deux lauses
C1 = x y uC et C2 = z t uC . En pro dant ainsi pour toutes les lauses, on onstruit
une instan e F de nae3sat.
Supposons que F soit une instan e positive de nae3sat, et onsidrons l'ae tation
de valeurs de vrit orrespondante. Si u = V , alors x ou y est F , et z ou t est V , don

2.

STABLE

89

(x y z t) a au moins un littral V et au moins un littral F ; de mme si u = F ; don


F est une instan e positive de nae4sat.
Inversement, si F est une instan e positive de nae4sat, onsidrons l'ae tation de
valeurs de vrit orrespondante. Dans (x y z t), si x et y sont tous deux V , on
ae te u V ; sinon, si x et y sont tous deux F , on ae te u F ; sinon, on ae te u la
valeur de vrit adquate pour la lause (u z t). On voit que e i donne une assignation
dmontrant que F est une instan e positive de nae3sat.
L en ore, la rdu tion est polynomiale et nae3sat est dans NP de faon triviale. 

Instan es parti ulires et variantes. Pour ha un des problmes d rits dans e


hapitre, on s'eor era de joindre un  bestiaire  dis utant la NP- ompltude de ses
variantes, et d'ventuelles instan es ( as parti uliers) polynomiales ou NP- ompltes. Dans
le as de sat, ela donne :
Instan es et variantes polynomiales : 2-sat, Horn-sat (toutes les lauses doivent tre

des lauses de Horn, 'est--dire de la forme (x1 x2 xn y), ou en ore (x1 x2


xn y), ave tous les littraux ngatifs sauf un). Le as de sat o haque variable
apparat au plus deux fois sur l'ensemble des lauses est galement polynomial ; on peut
mme autoriser haque variable apparatre 3 fois dans le as de 3-sat.

Instan es et variantes NP- ompltes : k-sat, k 6= 2 ;

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.

Donnes : un graphe G = (V, E) non orient et un entier k.


Rsultat : D ider s'il existe V V , ard(V ) = k, tel que u, v V (u, v) / E .
Thorme

5.3.

stable

est un problme NP- omplet.

est bien dans NP, ar la donne de V est un erti at


aisment vriable en temps polynomial.
On va rduire le problme 3-sat stable, 'est--dire tant donn une formule boolenne F du type 3-sat, onstruire en temps polynomial un graphe G, de sorte que l'existen e d'une lique dans G soit quivalente l'existen e d'une ae tation de valeurs de
vrit satisfaisant
V F.
Soit F = 1jp (x1j x2j x3j ). Dnissons un graphe G. G a 3k sommets, un pour
haque o uren e d'un littral dans une lause. Contraintes de ohren e : pour tout i, G
a une arte entre haque sommet asso is un littral xi et haque sommet asso i un
Dmonstration. 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

Donnes : un graphe G = (V, E) et un entier k.


Rsultat : existe-t-il V0 V de ardinal k tel que pour tout (i, j) V0 V0 , (i, j) E ?
Corollaire

5.2.

Le problme

lique

est NP- omplet.

Passage au omplmentaire.

Dmonstration.

re ouvrement par sommets

Donnes : un graphe G = (V, E) et un entier k.


Rsultat : existe-t-il V0 V de ardinal k tel

que toute arte de E ait au moins

une extrmit dans V0 ?


Corollaire

5.3.

Le problme

re ouvrement de sommets

est NP- omplet.

Dmonstration. Complmentaire du stable de G.



On tudie maintenant un problme assez dirent, mais restant dans le mme esprit.
oupure maximale :

Donnes : un graphe G = (V, E) et un entier k.


Rponse : existe-t-il une partition V = V1 V2 telle que le nombre d'artes entre V1

et V2 soit au moins k ?
Thorme

5.4.

oupure maximale

est NP- omplet.

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

rempla er la lause u v par (u v w) (u v w), on peut en outre supposer que


haque lause ontient exa tement 3 littraux (si une lause ontient un seul littral, la
formule n'est pas satisfaisable). Enn si l'on a deux lauses (u v w) et (u v z), on
peut, en introduisant deux variables t1 et t2 et en pro dant omme pour rduire nae4sat
nae3sat, r rire es deux lauses omme (u t1 t2 ) (v w t1 ) (v z t2 ). On
peut don supposer que deux lauses donnes ont au plus une variable en ommun.
Notons {x1 , . . . , xn } les variables de la formule F .
On va onstruire un graphe G = (V, E) de la faon suivante : G a 2n sommets. On
onstruit alors l'ensemble d'artes E ; on pla e une arte entre haque ouple de sommets
(u, v) tels que u et v apparaissent dans la mme lause, et une arte entre les sommets u et
u pour toute variable u. Ce i dnit G. Les rdu tions opres dans le premier paragraphe
de la preuve permettent de voir qu' haque lause orrespond un triangle et que deux de
es triangles ont des artes distin tes.
Si l'on note n le nombre de variables et m le nombre de lauses, G a don 2n sommets
et 3m + n artes. Il est alors fa ile de voir que le nombre d'artes dans une oupure
orrespondant une ae tation nae3sat-valide est 2m + n : l'arte entre u et u pour
haque variable u, et deux des artes du triangle uvw pour haque lause (u v w).
Inversement, toute oupure de G a au plus ette valeur, ar une oupure ne peut in lure
que deux artes par triangle asso i une lause ; il s'ensuit qu'une oupure de valeur
2m + n fournit immdiatement une ae tation naesat valide.
On a don montr que rsoudre nae3sat sur le problme initial revenait rsoudre
oupure maximale sur (G, 2m + n). Il s'ensuit don , la rdu tion tant polynomiale
et oupure maximale tant manifestement dans NP, que oupure maximale est

NP- omplet.

Instan es parti ulires et variantes. Instan es et variantes polynomiales : re ou-

(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

Instan es et variantes NP- ompltes : ensemble indpendant reste NP- omplet si


le graphe est suppos de degr donn d 4 (la rdu tion donne i-dessus onstruit une
instan e de degr 4).

3.

Cir uit hamiltonien

Le problme d rit dans ette se tion sert souvent prouver la


proprits lies aux hemins dans les graphes.

NP- ompltude

ir uit hamiltonien

de

Donnes : un graphe G = (V, E).


Rsultat : existe-t-il un ir uit hamiltonien, 'est--dire un hemin de G passant une

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

est NP- omplet.

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 :

NP- ompltude de nom-

voyageur de ommer e

Donnes : un ouple (n, M), o M est une matri e n n de rels


P et un rel k .
Rponses : existe-t-il une permutation de [1, n] telle que 1in1 M(i)(i+1) +

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

est NP- omplet.

On rduit ir uit hamiltonien voyageur de ommer e.


Pour e faire, tant donn G = (V, E), on pose V = {x1 , . . . , xn }. On onsidre alors la
matri e n n telle que

1 si (i, j) E
Mij =
2 sinon
Dmonstration.

Montrons alors que

voyageur de ommer e(

n, M, n) =

ir uit hamiltonien(

V, E ).

S'il existe un ir uit hamiltonien dans G, on peut en eet onstruire la permutation


omme d rivant l'ordre
Pdans lequel les sommets de G sont par ourus. La onstru tion de
M implique alors que 1in1 M(i)(i+1) + M(n)(1) = n. Inversement, tant donn une
permutation ave ette proprit, le fait que les n 1 termes de la somme soient au moins
gaux 1 implique qu'ils sont en fait tous gaux 1, et que don les artes (x (i), x(i+1) )
existent dans le graphe G ; on a don bien onstruit un ir uit hamiltonien.

ir uit le plus long

Donnes : un graphe G valu, et un entier r.

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.

ir uit le plus long

est NP- omplet.

On va rduire ir uit hamiltonien ir uit le plus long.


Pour e faire, tant donn un graphe G pour ir uit hamiltonien, on asso ie haque
arte le poids 1. La re her he d'un ir uit hamiltonien est alors trivialement identique la
re her he d'un ir uit de longueur n dans le graphe.

Dmonstration.

Instan es parti ulires et variantes. Instan es et variantes polynomiales : ir uit


hamiltonien

est polynomial dans un graphe de degr au plus 2.

Instan es et variantes NP- ompltes : hemin

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

Le problme de la olorabilit onsiste dterminer, tant donn un graphe, le nombre


de ouleurs utiliser pour pouvoir olorier les sommets du graphe, de faon e que deux
sommets adja ents soient toujours oloris de deux ouleurs direntes. Le plus petit tel
nombre est appel le nombre hromatique du graphe. Dans le as des graphes planaires
(par exemple les artes gographiques, si l'on suppose les pays onnexes et simplement
onnexes), on peut montrer  'est un rsultat trs profond  que 4 ouleurs susent
toujours.
3- olorabilit

Donnes : un graphe G = (V, E).


Rponse : existe-t-il une appli ation : V {1, 2, 3} telle que (u, v) E, (u) 6=

(v) ?

Thorme

5.6.

3- olorabilit

est NP- omplet.

4.

3-COLORABILIT

95

Dmonstration. On va rduire 3-sat 3- olorabilit. On se donne don une


onjon tion de lauses 3 littraux, et il nous faut partir de l onstruire un graphe.
Comme dans les autres rdu tions de 3-sat, il faut parvenir traduire deux ontraintes :
une variable peut prendre la valeur 0 ou 1 d'une part, et les rgles d'valuation d'une lause
d'autre part.
On onstruit un graphe ayant 3 + 2n + 5m sommets, les trois permiers sont nots
vrai, faux, nsp. Ces trois sommets sont relis deux deux en triangle, de sorte qu'ils
doivent tre tous trois de ouleurs direntes. On appelera les ouleurs orrespondantes
vrai, faux, nsp.
On asso ie un sommet haque variable et au omplmentaire de haque variable.
Pour assurer qu'une variable prenne la valeur vrai ou faux, pour haque variable xi on
onstruit un triangle dont les sommets sont xi , xi et nsp. Cela impose que soit (xi ) = vrai
et (xi ) = faux, soit (xi ) = faux et (xi ) = vrai.
Il nous reste don en oder les rgles d'valuation d'une lause. Pour e faire, on
introduit le sous-graphe suivant, qui orrespond une lause x y z :

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

L'existen e d'une 3- oloration du graphe est don quivalente la satisfaisabilit de la


formule initiale. La rdu tion est manifestement polynomiale ; on a don bien prouv que

3-sat se rduisait 3- olorabilit ; e dernier est don bien NP- omplet.
Noter que l'on peut obtenir une preuve lgrement plus simple en utilisant une rdu tion
de nae3sat ; on laisse e fait en exer i e au le teur.

Instan es parti ulires et variantes. Instan es et variantes polynomiales :

2- olorabilit, 4- olorabilit
graphes de degr 3.

planaire

(toujours vrai). k - olorabilit pour les

Instan es et variantes NP- ompltes : 3- olorabilit reste NP- omplet dans le as


planaire, mme si l'on suppose le degr 4. k - olorabilit est NP- omplet pour tout
k 3.

5.
Le problme dit

Somme de sous-ensemble

somme de sous-ensemble

est le suivant :

somme de sous-ensemble

Donnes : un ensemble ni d'entiers E et un but t N.


P
Rponse : existe-t-il E E tel que xE x = t ?
Thorme

5.7.

somme de sous-ensemble

est NP- omplet.

Dmonstration. Le fait que somme de sous-ensemble est dans NP provient du


fait que la donne de E onstitue un erti at pouvant tre vri en temps polynomial.
On va maintenant rduire une version de re ouvrement de sommets dans laquelle on her he onstruire une ouverture de taille exa tement k somme de sousensemble. Il est fa ile de voir que ette version de re ouvrement de sommets est
essentiellement quivalente la version lassique, ar il sut de d ider pour haque l l0
s'il existe une ouverture de taille l pour savoir s'il existe une ouverture de taille au plus
l0 .
On se donne un graphe G = (V, E) dans lequel on souhaite onstruire un re ouvrement
de sommets de taille k . On numrote les sommets et artes ; soit B = (bij ) la matri e
d'in iden e sommets-artes, 'est--dire que bij = 1 si l'arte i est in idente au sommet j ,
bij = 0 sinon.
On va onstruire un ensemble F d'entiers, tel que haque sommet orresponde un
entier de F . On veut pouvoir lire sur la somme des lments d'un sous-ensemble les artes
dont un des sommets au moins appartient au sous-ensemble, de faon e qu'on ait bien
une ouverture de sommets si et seulement si 'est le as pour toutes les artes.
Cela peut se faire en exprimant les entiers P
dans une base b xer ultrieurement, et
en faisant orrespondre au sommet sj l'entier
bij bi . On veut aussi pouvoir ompter le
nombre de sommets prsents dans la ouverture  qui doit tre gal k ; pour e faire, il
sut d'ajouter un terme bn , si les artes sont numrotes de 0 n 1.

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

Donnes : un ensemble de poids a1 , . . . , an , un ensemble de valeurs v1 , . . . , vn, un poids

limite A, et un entier V .

Rponse : existe-t-il une suite i {0, 1} telle que


Corollaire 5.6. sa --dos est NP- omplet.
Dmonstration.

On se donne une instan e de

i ai A et

i vi V ?

somme de sous-ensemble,

E = {e1 , . . . , en }, t. Il sut alors de prendre vi = ai = ei , et V = A = t dans

soit

sa --

dos.

On obtient aussi de la mme faon la


partition

NP- ompltude du problme de la partition :

Donnes : un ensemble A ni d'entiers.

98

5.

NP

-COMPLTUDE

Rponse : existe-t-il A A tel que xA x =


Thorme 5.8. partition est NP- omplet.
P

x6A

x?

Dmonstration. On va rduire somme de sous-ensemble partition. Soit (E, t)


P
une instan e de somme de sous-ensemble. Posons S =
xE x. Quitte hanger t en
S t ( e qui revient hanger l'ensemble obtenu en son omplmentaire), on peut supposer
que 2t S .
L'ide naturelle onsisterait ajouter l'lment u = S 2t E ; le rsultat de partition
serait alors deux sous-ensembles (A et sont omplmentaire) de somme S t ; l'un des deux
ontient l'lment S 2t, don en enlevant e dernier, on trouve un ensemble de termes de
E de somme t. Malheureusement, ette te hnique houe si S 2t est dj dans E .
Au lieu de ela, on prend le nombre X = 2S et X = S +2t, et on applique partition
E = E {X, X }. Il existe une partition de E si et seulement s'il existe un sous-ensemble
de E de somme t. En eet, s'il existe une partition de E , il existe deux sous-ensembles
omplmentaires de somme 2S + t. Cha un des deux sous-ensembles doit ontenir soit X ,
soit X , ar sinon sa somme ne peut ex der S ; don un des deux ensembles ontient X et
non X , et on obtient en enlevant X un sous-ensemble F de E de taille t. R iproquement,
tant donn un tel F , (F {X}, E F {X }) onstitue une partition de E .
On a don bien rduit somme de sous-ensemble partition. Reste justier que
la rdu tion est bien polynomiale. L'essentiel de la rdu tion est le al ul de X et X , qui
est bien polynomial en la taille des entres (l'addition de k nombres de n bits se fait en
temps O(k log n)).

rangement optimal

Donnes : n objets de poids si Z, une apa it B et un entier k.


Rponse : Est-il possible de ranger les objets dans k botes de apa it B ?
Corollaire 5.7. rangement optimal est NP- omplet.
Dmonstration. Il est bien lair que rangement optimal est dans NP,

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.


Instan es parti ulires et variantes. Instan es et variantes polynomiales : somme

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.

Instan es et variantes NP- ompltes :

6.

produit de sous-ensemble.

Programmation entire

Le problme de la programmation entire est l'exa t analogue du problme tudi


au hapitre 12.0.2, e i prs que les variables sont restreintes tre entires. C'est un

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

est NP- omplet.

Dmonstration. On va rduire 3-sat programmation entire. On introduit


deux variables entires yi et wi par variable boolenne xi , lies par yi + wi = 1. L'une
des deux variables reprsente la valeur de vrit de xi , l'autre elle de xi . Les ontraintes
de satisfaisabilit s' rivent alors toutes sous la forme Fj (yi , wi ) 1, o Fj est la somme
des 3 variables orrespondant aux dirents termes d'une lause. On peut transformer
es ingalits en galits, de la mme faon que pour la programmation linaire lassique
(en r rivant haque ingalit omme Fj (yi , wi ) zj = 1). Ce pro essus de rdu tion est
manifestement polynomial, don programmation entire est NP-di ile.
Montrons maintenant que programmation entire est dans NP. La di ult a
priori vient du fait qu'on ne dispose d'au une borne sur la taille des xi , et qu'on ne peut
don on lure que la donne de es derniers onstitue un erti at de taille polynomiale.
On doit don prouver le lemme suivant.

Si A = (aij est une matri e m n et b = (bj ) un ve teur de taille m, tels


que max(|aij |, |bj |) a, et si le systme Ax = b a une solution oe ients entiers positifs,
alors il a une solution (xi ) oe ients entiers positifs telle que max xi 2n2 (ma)2m+1 .
Lemme

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))).

La prsente preuve du lemme est due Papadimitriou.


Posons M = (ma) , et soit x une solution en entiers positifs telle que max xi est
minimal. Si ette quantit est au plus M , le rsultat est prouv. Dans le as ontraire,
supposons que les k premires omposantes de x sont plus grandes que M . Soit v1 , . . . , vk
les k premires olonnes de A.
P
Supposons d'abord qu'il existe des i entiers dans [0, M] tels que
i vi = 0, on peut
alors rempla er x par (x1 1 , . . . , xk k , xk+1 , . . . , xn ), e qui ontredit la minimalit de
x.
Dans le as ontraire, les vk sont linairements indpendants. Soit V une matri e k k
inversible extraite des vk ; on peut rsoudre le systme t V u = 1 ; en ompltant le ve teur
u obtenu par des 0, et en transposant, on obtient un ve teur ligne h de taille m tel que
h (vk ) = 1. Les formules de Cramer montrent que les oordonnes de h sont des rationnels,
qui, rduits au mme dnominateur (le dterminant de V ) ont des numrateurs au plus
gaux (ka)k M . En multipliant tous les termes par le dnominateur ommun, on a
don un ve teur h d'entiers de [0, M] tel que h (vk ) 1.
Dmonstration.

100

5.

NP

-COMPLTUDE

On multiplie alors Ax = b gau he par h ; il vient


k
X
j=1

et don

k
X
j=1

xj

k
X
j=1

h (vj ) xj = hb

n
X

j=k+1

h (vj ) xj ,

h (vj ) xj mMa + n2 maM 2 2n2 (ma)2m+1 ,

e qui on lut la preuve du lemme et du thorme.

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.

On peut envisager, pour ha une de es lasses, de dnir des problmes omplets


omme on l'a fait pour NP. Toutefois, pour les lasses de  faible  omplexit, la rdu tion
en temps polynomial n'a pas de sens, ar la rdu tion ontient alors dj toute la apa it
de al ul de la lasse, voire plus. On demande alors usuellement que les rdu tions se fassent
en espa e logarithmique (on ne sait d'ailleurs pas si les deux notions de rdu tion dirent ;
e n'est en parti ulier pas le as si L = P... le le teur vriera que toutes les rdu tions
prsentes dans e hapitre sont bien en espa e logarithmique, de sorte que les problmes
restent NP- omplet sous ette notion de rdu tion).

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).

6.2. Ora les.

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

C moyennant des appels un ora le O est note CO .

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.

Il est bon, pour on lure e hapitre, de mentionner quelques beaux


et di iles rsultats obtenus r emment par la thorie de la omplexit dans le domaine
des preuves intera tives. Dans e ontexte, on substitue au modle de al ul habituel un
modle bas sur la notion de vrieur, ma hine qui tant donn un problme et une entre
x, y , d ide si y onstitue bien un erti at du fait que x est une instan e rponse positive
du problme de dpart. Ainsi, on peut voir la lasse NP omme la lasse des problmes
admettant un vrieur en temps polynomial.
La lasse PCP(f (n), g(n)) est dnie omme la lasse des ma hines polynomiales
probabilistes fon tionnant sur une entre x de taille n en utilisant O(f (n)) bits alatoires,
a dant O(g(n)) bits de la preuve fournie ; on exige en outre que es ma hines valident
toutes les preuves orre tes, et rejettent les preuves in orre tes ave probabilit 1/2 au
moins. Ce que dit la remarque de la n du paragraphe suivant, 'est que NP = PCP(0,
poly(n)). Le rsultat suivant est beau oup plus profond et illustre la puissan e des mthodes
probabilistes (que nous tudierons plus en dtail au hapitre 3) :

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. Ba ktra king et bran h-and-bound


La mthode de ba ktra king exploite l'existen e d'un arbre de al ul de profondeur au
plus polynomiale rsolvant le problme, et s'eor e de par ourir et arbre de al ul jusqu'
avoir trouv une solution. Dans la mesure o l'arbre de al ul a gnralement un nombre
exponentiel de sommets, on peut s'attendre ee tuer un nombre exponentiel d'tats, et
ela risque fort d'tre le as, surtout si une seule bran he de l'arbre onduit une solution.
Dans le as, toutefois, ou de nombreuses bran hes de l'arbre onduisent une solution, on
peut s'attendre obtenir un rsultat de faon relativement e a e.
Il onvient de bien garder l'esprit que, omme toute stratgie de type gnrique, le
ba ktra king ne doit tre utilis qu'en dernier re ours. Dans le as de la non-primalit des
entiers, le ba ktra king orrespond par exemple l'algorithme naf onsistant essayer de
diviser l'entier donn par tous les nombres plus petits que lui, algorithme qui n'est e a e
que pour des entiers de trs petite taille.
Toutefois, pour de nombreux problmes, au une autre stratgie n'existe. Le ba ktra king est don en pratique d'une relle utilit, d'autant qu'il est on eptuellement simple
et fa ilement implant. Nous allons tenter d'en formaliser un peu le adre et de donner les
prin ipales heuristiques permettant d'en amliorer l'e a it.

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

dans la d omposition), un sous-problme une seule lause onduit une solution, et


un sous-problme de la forme z z est faux. Comment rduire ? En hoisissant un des
sous-problmes ouranst, et en le d omposant en deux sous-problmes selon qu'une des
variables intervenant a pour valeur vrai ou faux. Quel problme et quelle variable hoisir ? En vertu du prin ipe gnral non i-dessus, les lauses les plus restri tives tant les
lauses ayant le moins de littraux, le problme hoisi sera un de eux ontenant la plus
petite lause, et la variable une de elles intervenant dans une de es lauses.
1.2.2. ir uit hamiltonien. Pour illustrer le ba ktra king, donnons une mthode
s'appliquant au as du ir uit hamiltonien.
Un sous-problme est dni par un hemin allant de a b, et passant par une suite de
noeuds T V {a, b}. L'obje tif onsiste alors trouver un autre hemin de a b ne
passant que par les noeuds de V T . On initialise le pro essus en hoisissant a = b un
noeud arbitraire et T = .
La d omposition en sous-problmes est simple : on hoisit au hasard un sommet de
V T , disons c, reli par une arte b. Le nouveau sous-problme est alors dni par a, c
et T {b}.
Un exemple de test possible pour d ider si une bran he est ondamne par avan e
peut tre de regarder si le graphe subsistant est onnexe, ou s'il admet un noeud de degr
1 autre que a et c  auquel as on ne peut pas la fois entrer et sortir de e noeud, don
pas onstruire un hemin de a c. Inversement, s'il ne reste dans le graphe qu'un hemin
de a c, on a gagn.

1.3. Optimisations. On d rit dans ette partie quelques optimisations possibles


(liste non limitative). La plupart des optimisations sont toutefois inventer au as par
as.
Symtries. Les symtries du problme se reportent souvent dans l'arbre de al ul.
Savoir les exploiter peut onduire une diminution substantielle la taille de la partie de
l'arbre explorer, et don du temps de al ul.
Re ensement. La remarque faite plus haut on ernant le lien ave la programmation
dynamique n'est pas inno ente. On peut s'en inspirer pour tenter d'optimiser un peu le
par ours de l'arbre, en essayant de dte ter des sous-arbres identiques (ou symtriques)
eux dj traits. Pour e faire, le plus pratique est en gnral de remplir un tableau,
index par un ha h des sous-problmes ren ontrs, pour signaler eux qui ont dj t
traits.
Randomisation.

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.

1.4. Bran h and bound.

La version bran h-and-bound du ba ktra king orrespond


au as des problmes d'optimisation. La philosophie gnrale en est la mme, savoir se
reposer sur le par ours de l'arbre de al ul. Toutefois, alors que dans le as pr dent, on
pouvait, lorsque l'on ne her hait qu'une seule solution, se dispenser d'examiner une bonne
partie de l'arbre une fois une solution trouve, dans le as prsent, dans la mesure o l'on
souhaite obtenir la meilleure solution, il peut sembler n essaire de par ourir l'intgralit
de l'arbre.
On peut toutefois mettre en pla e un m anisme analogue au test heuristique
utilis dans le ba ktra king. Simplement, il faut onstruire un pro d d'valuation
heuristique, qui, tant donn une bran he, peut garantir que toute solution issue de
ette bran he a un ot (ou un obje tif) asso i gal au plus (ou au moins) une valeur
donne.
Comment utiliser ette valuation heuristique. Supposons que l'on dispose a priori
d'une solution, mme de mauvaise qualit. Cela nous permet de disposer d'une borne
suprieure sur le ot (ou infrieure sur l'obje tif). On peut don se dispenser de s'intresser
aux solutions don le ot ou l'obje tif sont moins bons que es bornes. C'est l que
l'valuation heuristique intervient. On peut se dispenser d'examiner une bran he de
l'arbre de al ul si la pro dure d'valuation retourne une valeur moins bonne que la borne
dj onnue.
Dans le as o l'on n'a pas de solution initiale, il faut par ourir l'arbre exhaustivement
jusqu' en trouver une.
Il va sans dire que les bornes onnues sur la meilleure solution doivent tre remises
jour en fon tion et au fur et mesure des solutions trouves jusqu'alors, i.e. si l'on trouve
une solution qui amliore la borne, ette dernire est rempla e par la valeur de ladite
solution.

1.5. Exemple : programmation linaire en nombres entiers.

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

d'algorithme pseudo-polynomial. De faon informelle, un algorithme pseudo-polynomial est


un algorithme dont la omplexit est polynomiale en la taille des entres et en le maximum
des nombres apparaissant dans es entres. L'intrt de ette notion vient du fait que
les instan es que l'on peut ren ontrer des problmes de nombres seront frquemment des
instan es mettant en jeu de petits entiers. Cette notion n'a de sens que si ertaines des
entres sont des nombres, omme pour les problmes onsidrs dans le prsent paragraphe,
ou pour le problme primalit voqu dans le prambule.
Cela revient dire que l'on rel he l'exigen e de ara tre polynomial (rappelons que la
longueur du nombre a est max(0, log2 (a)) + 1 pour les variables entires. En parti ulier,
si un problme n'a pas d'entiers parmi ses donnes ( f. ir uit hamiltonien), les notions
d'algorithmes polynomial et pseudopolynomial on ident.
Ce n'est en revan he pas toujours le as. Noter par exemple que primalit admet
trivialement un algorithme pseudo-polynomial (numrer tous les diviseurs possibles de
n se fait en un temps born par n). En parti ulier, la plupart des problmes donne
numrique tudis au hapitre 5 admettent des algorithmes pseudo-polynomiaux.
Thorme 6.1. sa --dos, partition et somme de sous-ensemble admettent des
algorithmes pseudo-polynomiaux.
Dmonstration. partition et somme de sous-ensemble sont des as parti uliers
de sa --dos. Il sut don de le prouver pour e dernier. Dnissons P (i, v) le poids
minimum d'un sa rempli ave un sous-ensemble de {1, . . . , i} et de valeur au moins v . On
a la r urren e

P (i + 1, v) = min(P (i, v), P (i, v vi+1 ) + pi+1 ),

3. ALGORITHMES D'APPROXIMATION

111

selon que l'on prend ou ne prend pas le (i + 1)-me objet.


P
La taille de la table de programmation dynamique est alors O(n i vi ), soit en ore
O(n2 max vi ) ; omme haque ase prend O(1) remplir partir des pr dentes, le prsent
2
algorithme s'ex ute en temps
P O(n maxPvi ). Cette omplexit n'est pas polynomiale en
gnral (l'entre est de taille
lg(ai ) + lg(vi ), ave lg(x) = log2 (x) + 1 si x entier non
nul. La omplexit montre bien, en revan he, que et algorithme rentre dans le adre des

algorithmes pseudo-polynomiaux tudis dans e paragraphe.

2.1. NP- ompltude au sens fort.


Dfinition 6.1. On dira qu'un problme est NP- omplet au sens fort si l'instan e de
e problme o les donnes entires sont de taille borne par un polynme en les autres
donnes est NP- omplte.

Le thorme suivant est une onsquen e fa ile de la dnition.

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

est NP- omplet au sens fort.

Il sut de noter que la rdu tion de 3-sat programmation


onstruit une instan e o tous les oe ients de la matri e et du ve teur sont
dans {1, 0, 1}, et que ette instan e est don dj NP- omplte.

On peut aussi montrer :
Dmonstration.

entire

Thorme

6.4.

rangement optimal

est NP- omplet au sens fort.

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.

Si A est le bn e obtenu par l'heuristique gloutonne et A

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.

Aopt Aj + (C Vj )aj /vj < Aj + aj .


Si aj Aj , le rsultat s'ensuit trivialement. Dans le as ontraire, aj amax , o amax est
l'lment de bn e maximal parmi eux qui rentrent dans le sa , et don Aopt < 2aj
2amax , et l'on obtient en ore le rsultat, gr e la modi ation te hnique apporte en n
d'algorithme.

On illustre maintenant l'usage de te hniques de programmation linaire. Considrons le
problme re ouvrement de sommet pondr, qui est identique re ouvrement
de sommet, hormis que l'on atta he un poids ha un des sommets et que l'on her he
minimiser e poids. re ouvrement de sommet orrespond au as parti ulier o tous
les poids valent 1, et re ouvrement de sommet pondr (ou tout au moins le problme de d ision asso i) est don bien NP- omplet. Le programme linaire en nombres
entiers suivant est quivalent re ouvrement de sommet pondr((V, E), pi ), o les
variables xvi valent 1 si vi est dans le re ouvrement optimal, 0 sinon :

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.

Rsultat : existe-t-il une partition V = V1 V2 telle que le nombre d'artes (v1 , v2 )


ave v1 V1 et v2 V2 soit au moins k ?
On onstruit, partant d'une oupure donne (par exemple V1 = V , V2 = ) une mthode
d'amlioration omme suit : les voisins d'une situation (V1 , V2 ) donns sont obtenus soit
omme (V1 {a}, V2 {a}) pour a V1 , soit omme (V1 {a}, V2 {a}) pour a V2 . On
hoisit haque tape le a qui amliore le plus la valeur de la oupure.

3. ALGORITHMES D'APPROXIMATION

Thorme 6.8. Si c
l'algorithme, alors on a

opt

115

est la valeur optimale et c la valeur de la oupure obtenue par


copt 2c.

Il sut de prouver que la oupure lo alement optimale onstruite


ontient au moins la moiti des artes du graphe. Soit, pour ette oupure optimale, a1 le
nombre d'artes de V1 , a2 le nombre d'artes de V2 . On a alors trivialement que a1 + a2 + c
est le nombre d'artes du graphe.
La proprit d'optimalit lo ale signie que tout lment de V1 a plus de voisins dans
V1 que dans V2 , et de mme pour les lments de V2 . Par onsquent, en sommant sur tous
les sommets de V1 , le nombre total d'artes de V1 , ompt ave un fa teur 2 (une arte est
ompte pour ha une de ses extrmits) est au plus gal c, et de mme pour V2 . Il en
rsulte que a1 + a2 c, e qui, ombin ave le fait que a1 + a2 + c est le nombre d'artes
du graphe, on lut la preuve.

Dmonstration.

3.2. Dnitions.

Ce paragraphe formalise quelques-unes des notions tudies dans


les paragraphes pr dents autour des algorithmes d'approximation.

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

max(c(A(x))/P,c (x), P,c (x)/c(A(x))) .


2On peut aussi onsidrer des problmes de maximisation ; le ot est alors traditionnellement baptis

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

Seul le as de rangement optimal est non trivial, ar le +1 de


la borne suprieure n'est a priori pas pris en ompte dans la dnition d'un algorithme
-appro h. On peut toutefois noter que l'algorithme donn est exa t dans le as ou l'on
n'a qu'une seule bote ; ette remarque montre que l'on peut supposer kopt 2, et don que
3kopt /2 + 1 2kopt . Il peut paratre d evant de n'tre pas apable de faire mieux qu'une
borne de 2 pour le nombre de botes, mais rappelons que d ider si 2 botes exa tement
susent ontient le problme partition, lui-mme NP- omplet. Voir en ore sur e point
le Thorme 6.13.

Dmonstration.

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.

Dmonstration. Ce rsultat vient du fait que la di ult de sa --dos provient


essentiellement de la taille des valeurs v1 , . . . , vn . Dans le as o es valeurs sont bornes
par une quantit xe, il existe un algorithme polynomial simple et e a e, bas sur la
programmation dynamique, voir le hapitre 2. L'algorithme d'approximation repose sur
ette ide ; on va en fait simplement appro her le problme, en remplaant les valeurs vi
par des valeurs tronques. On forme les wi = vi 2k , k tant un entier hoisir, et l'on
tudie le problme
obtenir une solution
P du sa --dos donn par les ai et les wi . On2 sait
k
optimale W =
iwi , i {0, 1} de e problme
en
temps
O(n
2
max
vi ).
P

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

a un seuil d'approximation au plus

Dmonstration. On peut dduire e rsultat du thorme 6.7, mais nous en donnons


une preuve dirente.
Rappelons que le problme onsiste trouver un ensemble minimal de sommets S d'un
graphe non-orient G = (V, E) tel que toute arte ait un sommet dans S .
On propose l'algorithme simple suivant : une tape donne de l'algorithme, on hoisit
une arte (u, v) de G, on ajoute la fois u et v S , et l'on supprime les sommets u et v
ainsi que les artes adja entes. On s'arrte quand G ne ontient plus au une arte.
Montrons que et algorithme est un algorithme 1/2-appro h. Le nombre d'artes de
G reliant des sommets de S est |S|/2. Tout re ouvrement de E doit ontenir au moins un
des sommets de ha une de es artes, don est de ardinal au moins |S|/2 ; ela implique
que, si |O| est le ardinal d'un re ouvrement minimal, on a ||O| |S|| |S|/2, e qui est
pr isment la dnition d'un algorithme de minimisation 1/2-appro h.


Thorme 6.12. Le problme du voyageur de ommer e dans le as o la distan e


vrie l'ingalit triangulaire a un seuil d'approximation d'au plus 1/2.

On onsidre le graphe G orrespondant, et l'on onstruit au moyen


d'un algorithme glouton ( f. hapitre 1) un arbre re ouvrant de poids minimal en temps
O(n2 ). On onstruit alors une tourne en faisant le par ours en profondeur de l'arbre
re ouvrant minimal. Dans e par ours, haque arte est d rite deux fois. Si c est le ot
de l'arbre re ouvrant minimal, on obtient don une tourne de ot 2c. On peut, dans ette
tourne, rempla er haque par ours de type a b a c, orrespondant au sous-arbre
de ra ine a dont les ls sont b et c, par le par ours a b c ; ela ne peut que diminuer
le ot de la tourne, en vertu de l'ingalit triangulaire.
Soit maintenant une tourne optimale ; si l'on enlve une arte ette dernire, on
obtient un arbre re ouvrant pour le graphe, de ot infrieur au ot de la tourne, et
de ot suprieur au ot de l'arbre re ouvrant minimal. Le ot de la tourne que nous
avons onstruite au paragraphe pr dent, est don au plus le double du ot d'une tourne
optimale, e qui on lut la preuve.

Dmonstration.

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

admet un algorithme -appro h pour

La preuve repose sur le fait que tout algorithme -appro h pour


ommer e peut tre utilis pour rsoudre le problme ir uit hamil-

Dmonstration.
voyageur de
tonien.

Supposons en eet qu'il existe un algorithme polynomial -appro h pour voyageur


et posons n = (1 )1 . Soit maintenant une instan e du problme du
ir uit hamiltonien, donne par un graphe G = (V, E) non orient. On onsidre alors le
graphe G = (V, V V ) valu par v(x, y) = 1 si (x, y) E , v(x, y) = |V |n + 1 sinon. Il est
bien lair dans es onditions que G admet un ir uit hamiltonien dans si et seulement si
le problme du voyageur de ommer e pour G a une solution de ot infrieur |V |. Dans
le as ontraire, le ot d'une tourne de G est au moins gal |V |n + 1.
de ommer e,

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

Si l'on applique l'algorithme -appro h G , on obtient une tourne dont le ot est


au plus (1 )1 opt. Par suite,
 Si G admet un ir uit hamiltonien, on obtient don une tourne de ot infrieur
n|V | ;
 si G n'admet pas de ir uit hamiltonien, on obtient une tourne de ot au moins
gal n|V | + 1.
L'algorithme -appro h appliqu G permet don de d ider s'il existe un ir uit
hamiltonien en temps polynomial, e qui on lut la preuve.

Noter que la preuve pr dente repose en ore une fois sur le mme prin ipe, en ore
que la te hnique de rdu tion depuis le problme NP- omplet sous-ja ent soit un peu plus
subtile.
Con ernant sa --dos, on peut se demander s'il est possible d'amliorer en ore la
situation ; on sait dj qu'on peut rendre, en proportion, l'erreur aussi petite que l'on veut.
Est-il possible de borner ette erreur par une onstante ?
Thorme 6.15. Si sa --dos admet un algorithme polynomial donnant un rsultat
distant de l'optimum d'au plus une onstante xe, alors P= NP.
Dmonstration. Supposons qu'il existe un algorithme polynomial donnant un rsultat distant de l'optimum d'au plus k . On onstruit alors une nouvelle instan e (pi , ai (k+1)).
Le hoix optimal n'est pas modi, seul l'obje tif a t multipli par k+1. Le nouvel optimal
est don maintenant (k + 1) Aopt . Mais toute solution non optimale a un ot multiple de
k + 1 et stri tement suprieur (k + 1) Aopt , don distant de (k + 1) Aopt de stri tement
plus de k . Par suite, la seule valeur pouvant tre renvoye par l'algorithme est l'optimum.
Par suite, si l'on sait trouver un algorithme polynomial donnant un rsultat distant de
l'optimum d'au plus k , on peut l'utiliser pour onstruire un algorithme polynomial pour
sa --dos, et P= NP.


Probabilits dis rtes

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.

L'ingalit de Chebyshev en est un orollaire :

Pr(|X E(X)| a) V (X)/a2 .

Il est souvent n essaire en analyse d'algorithmes de faire appel des ingalits un


peu plus sophistiques, de type grande dviation. Voi i l'une des plus simples et des plus
ouramment utilises. Soient X1 , X2 , . . . Xn n variables alatoires indpendantes valeurs
P
dans {0, 1}, ave Pr(Xi = 1) = pi , et soit X = X1 + + Xn . Soit = E(X) =
i pi .
Alors :
2
Pr(X < (1 )) < e( /2) , et

Pr(X > (1 + )) <


pour (0, 1].

121

e
(1 + )(1+)

CHAPITRE 7
Mthodes probabilistes

Introdu tion et paradigmes


L'tude des algorithmes probabilistes est d'importan e ru iale dans l'algorithmique.
Ils permettent frquemment d' happer, ou du moins de rduire, les situations de pire as,
et fournissent don frquemment de bons algorithmes d'approximation pour des problmes
NP- omplets (voire de omplexit en ore suprieure). Il arrive aussi que l'on prfre
implanter un algorithme probabiliste, de omplexit en moyenne orrespondant la omplexit dans le as le pire du meilleur algorithme dterministe, mais bien plus simple
implanter.
La vision de la thorie de la omplexit sur les algorithmes probabilistes onsiste
onsidrer une ma hine de Turing non-dterministe que l'on normalise de sorte que haque
hoix non-dterministe soit fait parmi deux possibilits ; on onstruit ainsi, dans le as
polynomial, un arbre binaire (que l'on peut toujours supposer omplet) de al ul, ayant
2p(|x|) feuilles sur une entre x (p polynme), et l'on onsidre ha un de es al uls omme
quiprobables, 'est--dire que ha un des bran hements de l'algorithme se fait ave probabilit 1/2. Plus simplement, on peut onsidrer un algorithme probabiliste omme un
algorithme disposant en plus d'une fon tion alea, qui retourne des valeurs 0 ou 1 ave
probabilit 1/2, ette fon tion tant utilise pour oprer des hoix.
Le prin ipal intrt d'utiliser le hasard vient du fait que e dernier permet de se pla er
dans une situation gnrique. Ce prin ipe sous-tend la majorit des algorithmes probabilistes. On peut illustrer e i sur un exemple. Le pire des as de l'algorithme de tri qui ksort
orrespond la situation o la liste donne en entre est trie. On peut alors imaginer,
avant de dmarrer qui ksort, d'appliquer une permutation alatoire la liste trier. Cela
permet de transfrer le as le pire vers une situation n'ayant pas de stru ture  a priori .
Mme si ela ne modie pas la rpartition des omplexits, d'un point de vue pratique
ette ide s'avre souvent utile.
Il importe toutefois de rester ir onspe t fa e des rsultats de omplexit bien suprieurs via des algorithmes probabilistes ; il est en eet peu lairant de omparer omplexit
dans le pire des as de l'algorithme dterministe et omplexit en moyenne de l'algorithme
probabiliste, mme si ladite moyenne porte sur la suite d'ala utilise par l'algorithme
et non sur les donnes d'entre. Quand l'algorithme probabiliste est juste un algorithme
dterministe probabilis de faon plus ou moins arti ielle, on pourrait obtenir le mme
rsultat en xant une distribution de probabilit des entres et en tudiant la omplexit
123

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.

1. Quelques ingalits probabilistes


On renvoie le le teur son poly opi de probabilits o l'un ou l'autre des ouvrages
du ommer e traitant de la thorie des probabilits, ou en ore l'appendi e C de [17 pour
les rappels lmentaires sur variables alatoires (nous n'tudierons dans le as prsent que
le as dis ret), mesure de probabilit, moments, indpendan e, probabilits onditionnelles,
et . Notons toutefois qu'une appro he intuitive de es notions nous semble largement sufsante dans le adre du prsent ours, mme si l'tude plus approfondie des algorithmes
probabilistes n essite une matrise assez ne des te hniques de la thorie des probabilits.
L'objet de e paragraphe est juste de rappeler trois rsultats lmentaires permettant
de borner la taille des queues de distribution, suivant les renseignements dont on dispose.

2. LAS-VEGAS ET MONTE-CARLO

125

En rgle gnrale, lorsqu'on analyse un algorithme probabiliste, on peut obtenir assez


fa ilement des renseignements sur la moyenne et la varian e du rsultat ou du temps de
al ul, mais il est beau oup plus dli at d'obtenir un rsultat de distribution pr is. Il se
trouve que les renseignements sur les deux premiers moments susent montrer que la
probabilit de ren ontrer des as trs loigns du as moyen ( 'est--dire en pratique des
as o l'algorithme fournit un mauvais rsultat, ou en ore est trs lent) est faible.
C'est pr isment e qu'arment les ingalits de Markov et de T hebit hev, que nous
donnons sans preuves (au demeurant fa iles) :
Thorme

ne ; on a

7.1.

(ingalit de Markov) Soit X une variable alatoire positive de moyen-

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

Dans le as parti ulier d'une somme de variables alatoires indpendantes valeurs

{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 :

Soit n un nombre premier, et posons n 1 = 2s t ave t impair.


Alors pour tout 1 a < n, on a
 soit at = 1 mod n,
k
 soit il existe k < s tel que a2 t = 1 mod n.
Proposition

7.1.

La dmonstration onsiste essentiellement fa toriser l'expression


a 1, en remplaant n1 par 2s t ; le petit thorme de Fermat montre alors que n divise
e produit, et si n est premier il doit don diviser l'un des fa teurs, e qui est exa tement
la on lusion du lemme.

Dmonstration.

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.

Si n est ompos, il y a au plus n/4 faux tmoins pour n dans l'intervalle

[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

LMENT D'UNE LISTE

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 :

Thorme. Si l'hypothse de Riemann gnralise est vraie, il existe une onstante c

telle que si n est pseudo-premier fort en base a pour a c log2 n, alors n est premier.

4. Sle tion du k-ime lment d'une liste


On prsente dans ette partie un algorithme de re her he du k -ime lment d'une
liste bas sur une te hnique d' hantillonage. Une ide analogue peut tre dveloppe par
exemple pour le problme de la re her he de la distan e minimale entre deux points d'un
nuage.
L'ide de l'algorithme est la suivante : extraire un sous-ensemble alatoire de petite
taille ( hantillon) de l'ensemble S initial, en tudier la stru ture (en l'o urren e le trier),
et en dduire un petit sous-ensemble de S dans lequel se trouve la rponse au problme
initial. On peut alors trier e petit sous-ensemble pour obtenir la rponse. Le but est, bien
entendu, d'viter d'avoir trier S tout entier, opration dont le ot ne serait pas linaire
en la taille de S .
On donne l'algorithme sous forme brute, et on le ommentera ensuite.
(1) Choisir un ensemble R de S en tirant n3/4 lments de e dernier, au hasard et
ave remise.
(2) Trier R. On pose x = kn1/4 , l = max(x

n, 1), h = min(x +

n, n3/4 ).

(3) Dterminer a et b, les l et h-imes lments de R. Par ourir S pour dterminer le


rang de a et b omme lments de S .
(4) Construire P selon

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

Si P est de ardinal suprieur 4n3/4 + 2, retourner en 1, et de mme si P ne


ontient pas le k -ime lment de S .
(5) Trier P et en dduire le k -ime lment de S .
Signalons que tous les al uls ee tus i i sont de omplexit O(n3/4 log n), l'ex eption
de l'valuation des rangs de a et b dans S , de omplexit 2n.
Expliquons un peu le fon tionnement de l'algorithme. On tire la premire tape un
ensemble R de ardinal n3/4 ,  reprsentatif  de S . L'hypothse  ave remise  n'est i i
que pour simplier l'analyse. Cela implique que R a une  densit  n1/4 dans S . Par

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

R. On onsidre alors un intervalle de largeur au plus 2 n de R en adrant ette valeur.


Il doit orrespondre l' hantillonage d'un intervalle de S de taille environ 2n3/4 , qui est
dsign par P dans l'algorithme (on ne s'intresse dans ette expli ation qu'au se ond
as de la dnition de P ; les deux autres as sont analogues). e stade, on vrie que
les hypothses heuristiques i-dessus sont valides, savoir que P ontient bien le k -ime
lment et qu'il n'est pas trop gros. La preuve i-dessous montrera que 'est bien le as ave
probabilit 1 O(n1/4 ). On peut ensuite trier P , et en dterminer le k r(A) + 1-ime
lment.
L'tude de la omplexit de et algorithme se fait via le thorme suivant :

Thorme

O(n1/4 ).

7.3.

Le nombre de passages par la bou le

Dmonstration.

14

est 1 ave probabilit 1

On se limite l en ore au se ond as de la dnition de P .

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]| > )

var(X)/2 . Dans le as prsent, pour = n, il vient

P (|X kn1/4 | >

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

que kn1/4 n = n1/4 kl 3 n (on peut trivialement arter le as kl = 1). L'ingalit


de T hebit hev montre que ette probabilit est en ore O(n1/4 ).


5. VRIFICATION D'IDENTITS POLYNOMIALES

129

5. Vri ation d'identits polynomiales


Supposons donns deux polynmes P et Q, sous deux formes direntes (par exemple,
l'un sous forme dveloppe usuelle, l'autre sous forme fa torise ou sous forme de dterminant), et supposons que nous voulions tester l'galit de es deux polynmes. Dans le as
de deux polynmes en une variable, il sut pour e faire de majorer leurs degrs par M et
de les valuer en M + 1 points. Dans le as de plusieurs variables, on ne peut transposer
l'algorithme tel quel : si P (X, Y ) = X 2 Y 2 et Q(X, Y ) = X Y , alors pour tout point
(x, x), P (x, x) = Q(x, x) = 0, tandis que Q 6= P . En revan he, un hoix alatoire de points
(x, y) permet de d ider ave une probabilit d'erreur faible si P = Q. L'algorithme onsiste
don tirer k points, omparer P (xi , yi ) et Q(xi , yi ) pour tout i et d larer les deux
polynmes gaux s'il y a galit pour tout i. Reste analyser la probabilit d'erreur (qui
ne peut intervenir que dans le as o P 6= Q).
Thorme 7.4. Soit Q K[X1 , . . . , Xn ] un polynme de degr total d. Pour tout
ensemble ni E de ardinal k de K, et pour (x1 , . . . , xn ) hoisi uniformment dans E n , on
a

Pr (Q(x1 , . . . , xn ) = 0|Q 6= 0)

d
.
k

Dmonstration. Par r urren e sur n. Le as n = 1 revient dire qu'un polynme


de degr d a au plus d ra ines. Supposons le rsultat vrai pour les polynmes en n 1
variables. On rit

Q(x1 , . . . , xn ) =

j
X

Ql (x1 , . . . , xn1 )xln .

l=0

Si l'on prend pour j le degr en xn de Q, et si Q 6= 0, on a Qj (x1 , . . . , xn1 ) 6= 0. Par


l'hypothse de r urren e, on a

Pr(Qj (r1 , . . . , rn1 ) = 0)

dj
.
k

Supposons maintenant que Qj (r1 , . . . , rn1 ) 6= 0. Alors on peut former le polynme


q(x) = Q(r1 , . . . , rn1 , xn ), polynme de degr j en xn . Il s'ensuit que la probabilit que
q(rn ) = 0 vaut au plus j/k .
Comme

Pr(Q(r1 , . . . , rn ) = 0) Pr(Q(r1 , . . . , rn ) = 0|Qk (r2 , . . . , rn ) 6= 0) + Pr(Qk (r2 , . . . , rn ) 6= 0),


le rsultat s'ensuit par r urren e.

Il onvient de signaler une di ult dans la mise en uvre de ette mthode. Dans
le as o K = Q, par exemple, l'valuation des polynmes peut mettre en jeu des al uls
trs lourds. On peut nouveau probabiliser ette valuation en la faisant modulo plusieurs
petits nombres premiers alatoires et en omparant les rsultats.
On laisse l'analyse de ette variante au le teur.

130

7. MTHODES PROBABILISTES

6. Routage dans un hyper ube


On onsidre dans e paragraphe le problme du routage de donnes dans un rseau
de ma hines. Le problme est le suivant : N ma hines {m1 , . . . , mn } sont onne tes un
rseau dont la topologie est d rite par la donne des artes (mi , mj ) orrespondant aux
liaisons existantes. l'instant initial, haque ma hine mi dispose d'un message envoyer
la ma hine mf (i) . Durant haque tape, un message peut tre a hemin par une liaison
donne. L'obje tif est de onstruire un algorithme de routage par lequel haque message
arrive en un temps minimum sa destination.
Dans le as o le graphe est omplet, il est bien lair que l'a heminement des messages
peut se faire en une seule tape, mais ela suppose une infrastru ture importante (N 2 liaisons...). Dans toute autre onguration, il est sus eptible de se produire des  bou hons ,
'est--dire que plusieurs messages passent par le nud mi un moment donn.
On se limitera dans ette partie au routage in ons ient, dans lequel le hemin suivi par le
message Mi ne dpend que de i et de la destination f (i), sans tenir ompte des destinations
des messages mis par les voisins. On suppose aussi que f est une permutation, 'est--dire
qu'il n'y a pas deux messages mis pour le mme destinataire. On peut montrer dans e
adre le thorme suivant :

Tout algorithme dterministe in ons ient pour e problme n essite


au moins c N/d tapes dans le as le pire, o c est une onstante absolue, dans le as o
tous les nuds du graphe sont de degr d.
Thorme

7.5.

Considrons en parti ulier le as de l'hyper ube. Dans e as, il y a N = 2n sommets et


il y a une arte du graphe entre i et j si i et j dirent d'un hire dans leur reprsentation
binaire.
En parti ulier, haque nud est de degr n ; le thorme arme don qu'il faut
p
n
c 2 /n tapes dans le as le pire.
Cette situation ontraste ave la situation probabiliste :

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.

6. ROUTAGE DANS UN HYPERCUBE

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.

Considrons un message M dont le hemin est a1 , . . . , ak . Soit S l'ensemble


des messages dont le trajet passe par au moins une de es artes. La somme des temps
d'attente subis par M aux sommets est alors au plus |S|.
Lemme

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

ren ontrent. Le paragraphe pr dent montre que le retard de i est


j=1 Hij . Les routes
tant hoisies indpendamment et alatoirement (le hoix de la destination peut tre vu
PN
omme le hoix de la route), on va pouvoir appliquer la borne de Chernov
j=1 Hij .

PN

Pk

Notons maintenant que


l=1 R(al ), o R(al ) est le nombre de routes
j=1 Hij
ontenant l'arte al . Par symtrie de l'hyper ube, E[R(al )] est indpendant de l'arte. La
PN n
longueur moyenne d'une route est n/2, le nombre de routes est N , don
l=1 E[R(al )] =
Nn/2 (noter que l'hyper ube a Nn artes) ; il s'ensuit que E[R(al )] = 1/2, et don que
P
E[ N
j=1 Hij ] k/2 n/2.

132

7. MTHODES PROBABILISTES

L'appli ation de la borne de Chernov

PN

j=1 Hij
(+1)n

montre alors que la probabilit que

, et don la probabilit qu'un des 2n


ette variable dpasse ( + 1)n est au plus 2
messages ait un retard dpassant ( + 1)n est au plus 2n . Par suite, ave probabilit
infrieure 1/N , un message atteint sa destination temporaire en ( + 2)n tapes au
plus (rajouter la longueur de la route au retard). Par suite, ave probabilit au plus 2/N ,

haque message atteint sa destination nale en (2 + 4)n au plus.
Noter que pour tre rigoureux, il faut bloquer les paquets leur destination temporaire
jusqu' e que tous les autres paquets aient atteint leur destination temporaire (don
jusqu' e que ( + 2)n tapes se soient oules), sans quoi l'interfren e possible entre les
deux phases peut rendre la preuve i-dessus in orre te.

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

hk (x) = (kx mod p) mod r,


o par abus de notation x mod y dsigne le reste de la division eu lidienne de x par y .
Il nous faut maintenant ompter le nombre de ollisions.
1on peut montrer que ette augmentation est d'un fa teur linaire 2 au plus.

7. HACHAGE PARFAIT

133

Le nombre de triplets (k, x, y) de [1, p 1] [0, m 1]2 tels que x 6= y et


hk (x) = hk (y) est au plus mv(v 1)/r .
Lemme

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 .

Le orollaire suivant est immdiat ( 'est l'ingalit de Markov dguise) :

Pour au moins la moiti des k de [1, m 1], le nombre de ouples


(x, y) tels que hk (x) = hk (y) est au plus gal 2v(v 1)/r .
Corollaire

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.

Le pro d de ha hage i-dessus pro de en temps O(1) et en espa e

Le ha hage d'un lment onsiste valuer deux fon tions h , e


qui se fait en temps O(1). Reste estimer l'espa e o up. La table de ha hage primaire
o upe un espa e O(s) ; posons si = #{x/hk (x) = i}. pour l'ensemble des tables de ha hage
Pr1 2
se ondaire, il nous faut estimer
i=0 si .
Cette quantit est relie au nombre de ollisions : une ollision (x, y) est un ouple ave
x
=
6
k (y) = i pour un ertain i. Le nombre total de ollisions est don
Pr1
Pr1y et hk (x) = i, hP
r1 2
i=0 si /2. La se onde somme vaut au plus le nombre
i=0 si /2
i=0 si (si 1)/2 =
total de x de [0, r 1], soit r , et le nombre total de ollisions est, en vertu du orollaire
dans le as v = r , au plus 2(r 1). Il s'ensuit que la taille totale des tables de ha hage
se ondaire est au plus 6r 4, soit O(r). Le sto kage des ls ki est aussi en espa e O(r),
e qui on lut la preuve.

Notons que l'argument prsent i i est probabiliste dans l'esprit dfaut de l'tre dans
la forme : on estime la moyenne du nombre de ollisions, et on utilise ette estimation pour
montrer qu'un hoix alatoire des ki onduit en peu d'tapes un hoix orre t. Les ls
de ha hage ki peuvent tre onstruites et ra tualises  la vole , 'est--dire que si
l'on s'aperoit d'une ollision en route, on essaie un nouveau ki , et on re-ha he la table
se ondaire. Cela se produit en prin ipe au plus une fois en moyenne, et n'augmente don
la omplexit que d'un fa teur linaire.
Dmonstration.

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

une approximation un fa teur 1/2 prs.


Notons que le problme de et algorithme rside dans les lauses 1 lment. En
l'absen e de es dernires on a dj un algorithme donnant au moins une proportion 3/4
du vrai rsultat.

8.2. Se ond algorithme.

Le se ond algorithme repose sur des ides plus ranes.


On traduit le problme maxsat en un problme linaire en nombres entiers en introduisant
une variable entire xi par variable, et une variable yj par lause. Le problme maxsat
peut alors s' rire

max m

j=1 zj

0y
1
i
,
0

1 P
j

iC + yi +
iC zj
j

o les variables sont de plus ontraintes tre entires.


Dans la dernire ontrainte, Cj+ est l'indi e des variables apparaissant dans la lause
j , et Cj l'indi e des variables dont le omplmentaire apparat dans la lause j . Cette
dernire ontrainte traduit que si zj = 1, alors soit un des yi de Cj+ vaut 1, soit un des yi
de Cj vaut 0, don que la lause j est ee tivement satisfaite.
On oublie alors la ontrainte d'intgralit, et l'on rsout le systme par la mthode lassique du simplexe (ou tout autre mthode type ellipsode). On obtient alors des solutions
de [0, 1] omme valeur pour les yi et zj , que l'on notera respe tivement yi et zj .

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 .

Le nombre moyen de lauses satisfaites est don (1 1/e)


zk . Noter que la somme
est un majorant pour le nombre de lauses satisfaites ( 'est le maximum de la somme sur
tous les points rels du simplexe, au lieu des points entiers).
Noter aussi que ette mthode fon tionne moins bien pour les grandes valeurs de k ,
mais trs bien pour les petites valeurs.

8.3. Combinaison des deux algorithmes. Soit n1 le nombre moyen de lauses


satisfaites dans le premier algorithme, et n2 e nombre pour le se ond algorithme. Si l'on
peut prouver que l'on a toujours (n1 + n2 )/2 3/4, alors l'ex ution simultane des deux
algorithmes donne au moins 3/4 du nombre maximal de lauses satisfaites, en moyenne.
On a
X X
X X
n1

cj S k

(1 2k )

cj S k

(1 2k )zj ,

o l'on a spar les lauses selon leur nombre de variables.


Par ailleurs
!

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.

Un exemple de dtermination d'une borne infrieure pour la


omplexit

La question de dtermination de bornes infrieures pour la omplexit d'un problme


est des plus di iles en algorithmique. Une des te hniques utilises onsiste onsidrer
des stratgies adverses , 'est dire imaginer qu'une fois votre algorithme mis au point
un adversaire trouvera les donnes les plus gnantes qui rendront le temps de al ul le plus
lev possible. On illustre i i ette stratgie de preuve sur un exemple simple.
Le problme suivant est un lassique, il s'agit tant donne une suite de nombres
a1 , a2 , . . . , an de trouver le plus petit de es nombres et le plus grand en ee tuant un
nombre minimum de omparaisons.
Nous supposons que n = 2p, dans le as n = 2p + 1 on utilise l'algorithme pour
dterminer le maximum et le minimum parmi les n 1 premiers lments on ompare
ensuite le n-ime aux extrema trouvs.
L'algorithme se divise en deux phases ; au ours de la premire on ompare les nombres
deux deux : a1 ave a2 , a3 ave a4 et ainsi de suite jusqu' an1 ave an ; aprs haque
omparaison on met le plus grand des deux nombres dans un ensemble A et le plus petit
dans un ensemble B .
On a ainsi fait p omparaisons et on a onstitu deux sous-ensembles A et B de p
lments ha un. Pour trouver le maximum on examine tous les lments de A en les
omparant un maximum partiel, e i se fait en p 1 omparaisons ; symtriquement on
obtient le minimum en par ourant B et en ee tuant aussi p 1 omparaisons. Au total on
aura fait 3p 2 omparaisons. Si n = 2p + 1, il faudra omparer le nombre an au maximum
et eventuellement au minimum e qui donne 3p omparaisons dans le as le pire.
La question est maintenant de savoir s'il y a un algorithme qui utilise moins de omparaisons. Nous allons dmontrer qu'il n'en est rien, pour ela on utilise un argument de
stratgie adverse. Aprs la i-eme omparaison, notons Ai , Bi , Ci et Di (pour i = 1, . . . , p,
o p est le nombre total de omparaisons), les ensembles donns par :
 Ai ontient les lments qui ont t ompars au moins un autre lment et qui
sont suprieurs tous les lments auxquels ils ont t ompars,
 Bi ontient les lments qui ont t ompars au moins un autre lment et qui
sont infrieurs tous les lments auxquels ils ont t ompars,
 Ci ontient les lments pour lesquels on a trouv un lment plus grand et un lment
plus petit.
137

138

UN EXEMPLE DE DTERMINATION D'UNE BORNE INFRIEURE POUR LA COMPLEXIT

 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.

Preuve On suppose l'algorithme donn et on imagine un adversaire tout puissant qui


onnat les Ai , Bi , Ci , Di et qui hosit les nombres omparer de faon telle que Ui diminue
le plus faiblement possible tout en restant onsistant ave les omparaisons dj ee tues.
Si une omparaison on erne un lment x de Di et un lment y de Ai l'adversaire s'arrange
pour que l'lment de x soit plus petit que y , e i est toujours possible puisque x n'a en ore
t ompar au un autre lment, au une ondition de onsistan e n'est vrier ; la
proprit est aussi satisfaite par symtrie pour la omparaison d'un lment de Di et Bi .
Lorsque la omparaison on erne un lment de Ai et un lment de Bi , l'adversaire peut
augmenter l'lment de Ai sans modier les rsultats pr dents, en eet et lment a t
trouv suprieur tous les lments auxquels il a t ompars et le fait de l'augmenter ne
modie pas ette proprit.
Pour tout algorithme dterminant le plus petit et le plus grand lment
d'une suite de taille n il existe une telle suite pour laquelle sont ee tues au moins 3n4
2
omparaisons.
Thorme

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.

2. Alignement de familles de squen es


Motivation.

Les bases de donnes pour les protines les regroupent habituellement en


familles. Lorsqu'on squen e un nouveau gne, sa trans ription est un mot sur l'alphabet
{A, C, G, U} ; on ommen e par le traduire en une suite d'a ides amins en utilisant une
table qui haque groupe de trois lettres ons utives prises parmi {A, C, G, U}, arro ie
l'un des 61 odons odant l'un des 20 amino-a ides (ou l'un des 3 odons "STOP" odant la
n du gne.) Ce i dnit une nouvelle protine. Quelles sont les fon tions de ette protine,
et omment est-elle stru ture en trois dimensions ? Pour rpondre ette question, la
mthode usuelle onsiste onsulter une base de donnes de protines dj analyses,
pour y trouver une famille de protines qui " ressemblent " la nouvelle protine. On
postule alors que la nouvelle mol ule partagera probablement la plupart des proprits
observes hez les autres membres de la famille. Pour mener bien e projet, une possibilit
est d'avoir, pour haque famille, une reprsentation onsistant en un alignement multiple
alignant les squen es de tous ses membres.

Dnition du problme. L'alphabet onsidr est i i l'ensemble des a ides amins,


alphabet de taille 20. Le problme se prend en entre un entier k et une famille de k hanes
de ara tres S1 , S2 , . . . , Sk (les protines de la famille), et donne en sortie un alignement
des k squen es, 'est--dire k nouvelles hanes de ara tres S1 , S2 , . . . , Sk , sur l'alphabet
augment o on a ajout le ara tre espa e blan " not , sa hant que tous les Si doivent
avoir mme longueur, et que Si se dduit de Si par ea ement des blan s.
Il s'agit de trouver le meilleur alignement ; une dnition populaire de ette notion
est l'alignement qui minimise la somme des distan es entre toutes les paires de squen es.
141

142

8. ALGORITHMES POUR LA BIOLOGIE MOLCULAIRE

La distan e entre deux squen es est la sommes des distan es ara tre par ara tre :

(Si [], Sj []),

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.

Alignement de deux squen es. Lorsque k = 2, on se trouve ave le problme


d'alignement de deux squen es vu au hapitre 2. Ce problme se rsoud par programmation
dynamique en utilisant un tableau 2-dimensionnel, et l'algorithme a omplexit O(1 2 )
pour l'alignement de deux squen es de longueurs 1 et 2 respe tivement.
NP- ompltude.

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.

Le problme est lairement dans NP.


La rdu tion se fait partir du problme de ouverture des artes d'un graphe par des
sommets.
On utilise l'alphabet = {a, b, 0, 1, c, d} et la fon tion i-dessous, qui est lairement
une distan e.
a
b
0
1

d

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

Soit G le graphe n sommets et artes, et K l'entier donn en entre du problme


de ouverture par sommets.
Pour haque arte {vi , vj } de G, ave i < j , on dnit la squen e a3i ba3(ji)2 ba3(nj)+3 ,
de longueur 3n+3. On ajoute de multiples opies de deux squen es parti ulires, C1 opies

2. ALIGNEMENT DE FAMILLES DE SQUENCES

143

de t = c(001)n 00c de longueur r = 3n + 4, et C2 opies de x = cdK c, o C1 et C2 sont


hoisis de manire approprie. Ce i dnit une famille F de squen es.
L'ide prin ipale de la preuve qu'on a une rdu tion valide est de montrer que tout
alignement optimal de F doit avoir une forme parti ulire : il doit avoir longueur r , le
blan des squen es odant les artes doit tre ou bien tout au dbut ou bien tout la
n, les squen es identiques sont alignes identiquement, l'alignement de x ne ommen e
ni ne nit par un blan , et les d de x sont aligns ave des 1 de t. Minimiser le ot
de l'alignement revient alors aligner les b des squen es-artes ave les d des x, autant
que possible ; mais, pour une squen e-arte donne, on ne peut aligner les deux b ave
un d, et on ne pourra don en aligner que 0 ou 1 ; il sera possible d'aligner un des b de
toute squen e-arte ave un d si et seulement si G possde un ouverture omportant K
sommets.
On se borne alors re her her un algorithme d'approximation.

Une 2-approximation.

Voi i un algorithme d'approximation pour l'alignement d'une


famille de k squen es, appel l'"algorithme d'alignement toil au entre".
(1) Pour haque paire i, j telle que 1 i < j k , en utilisant l'algorithme d'alignement de deux squen es, al uler D(Si , Sj ).

(2) Soit S le Si qui minimise


j6=i D(Si , Sj ). La hane de ara tres S est appele
le entre de la famille. Quitte renumroter, on peut supposer que S = S1 . On
pose S1 S1 .

(3) Pour j allant de 2 k faire :

 Aligner Si et S1 en utilisant l'algorithme d'alignement de deux squen es.


 Ce i dnit Si et modie S1 en y insrant des blan s.

 Mettre jour S2 , . . . , Si1


en y insrant des blan s aux mmes endroits que

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

L'analyse de la valeur de l'alignement demande un peu plus de travail. Le rsultat

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

La premire ingalit d oule de l'ingalit triangulaire, et la dernire d oule du ot nul


de l'alignement des blan s : (, ) = 0.
Soit S1 , . . . , Sk l'alignement optimal. Sa valeur satisfait :

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

8. ALGORITHMES POUR LA BIOLOGIE MOLCULAIRE

La dernire ingalit d oule de la dnition du entre S1 .


En omparant es deux expressions, on en dduit que la valeur de l'alignement multiple
obtenu par notre algorithme ex de la valeur optimale d'un fa teur au plus 2(k 1)/k < 2,
et on a don bien une 2-approximation.

3. Re her he d'un motif dans un mot, et alignement lo al


Motivation. L'alignement global de deux protines a un sens lorsqu'elles appartiennent

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.

Re her he de motif dans un texte.

Etant donn un motif P de longueur m et un


texte T de longueur n, on souhaite d ider si P est un fa teur de T . L'algorithme naf
pour ela a omplexit O(mn). L'algorithme de Knuth, Morris et Pratt rappel i-dessous
a omplexit O(m + n).
Pour i {1, . . . , m}, soit s(i) le nombre de ara tres du plus grand suxe de P [1 . . . i]
qui soit galement un prxe de P , sous la ontrainte supplmentaire que P [i + 1] soit
dirent de P [s(i) + 1]. Supposons ette fon tion i 7 s(i) dj pr al ule.
L'algorithme essaie d'aligner P sous T [k + 1 . . . k + m] sa hant que les i premiers ara tres de P on ordent ave eux de T [k + 1 . . . k + m].
Il ompare P [i + 1] T [k + i + 1].
S'il y a galit, on s'est ramen au problme de l'alignement de P sous T [k + 1 . . . k + m]
sa hant que les i + 1 premiers ara tres on ordent.
S'il n'y a pas galit, il faut essayer un autre alignement en dplaant P vers la droite
du texte T . De ombien de ara tres ? Soit P le motif d al. Lorsqu'il y a re ouvrement
partiel entre P et P , le dbut de P doit galement tre un suxe de P [1 . . . i] pour
pouvoir o"n ider ave le texte. En fait, il faut d aler P vers la droite d'exa tement
i s(i) ara tres vers la droite, et on s'est ramen au problme de l'alignement de P sous
T [k + 1 + i s(i)...k + m + i s(i)], sa hant que les s(i) premiers ara tres on ordent
ave eux de P .
Il est fa ile de voir que l'algorithme est orre t, 'est--dire qu'il essaie tous les alignements o P a une han e de on order ave T .
Sa omplexit en temps se voit en analysant le nombre de omparaisons entre motif et
texte.
Quand un ara tre du texte est ompar ave un ara tre du motif, et qu'il y a galit,
ette information est mmorise et utilise par l'algorithme, qui ne regardera plus jamais la
valeur du texte ette position. Il y a don au plus n omparaisons ouronnes de su s.

4. SOUS-SQUENCES MAXIMALES

145

Toute omparaisons aboutissant un he rsulte en un d alage du motif d'au moins


une position vers la droite. Le motif peut tre d al au plus n fois sous le texte. Il y don
au plus n telles omparaisons.
Au total, le nombre de omparaisons est don d'au plus 2n.
L'algorithme utilise un pr al ul de la fon tion i 7 s(i). Cette fon tion dpend uniquement du motif. Elle peut se al uler en temps linaire O(m). L'algorithme a t prsent
en Majeure 1.

Alignement lo al. Etant donn deux hanes de ara tres S1 et S2 de longueurs m


et n respe tivement, ainsi qu'un fon tion f de similarit entre les ara tres (plus f est
grande, plus les ara tres se ressemblent), il s'agit de trouver un fa teur de S1 et un
fa teur de S2 qui ont un alignement de valeur totale maximale.
Ce problme peut tre rsolu en O(mn) par programmation dynamique, en gnralisant
l'algorithme d'alignement global de S1 et S2 vu au hapitre 2.
4. Sous-squen es maximales
Motivation.

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.

Etant donn un mot, ave pour haque lettre un s ore,


X1 X2 . . . Xn , o Xi reprsente le s ore (positif ou ngatif) de la i-ime lettre du mot, il
s'agit de trouver un fa teur duP
mot dont le s ore umul est maximum : 'est--dire un
fa teur Xi . . . Xj qui maximise
ikj Xk .

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

8. ALGORITHMES POUR LA BIOLOGIE MOLCULAIRE

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 :

a[0= 0 ; b[0=0 ; debutb=1 ; debuta = 1;


for (k = 1; k <= n; k++) {
if (b[k-1+X[k>a[k-1) {
a[k = b[k-1+X[k;
debuta = debutb ;
fina = k
}
else a[k = a[k-1;
if (b[k-1+X[k<0){
b[k = 0 ;
debutb = k+1;
}
else
b[k = b[k-1+X[k
}
// resultat: fa teur X[debuta...fina de valeur a[n.

Variantes. En fait, on souhaiterait trouver en temps linaire, non pas simplement un


seul andidat, qui serait la rgion qui a la plus forte probabilit de oder un gne, mais
arrment un ensemble de fa teurs disjoints qui soient des andidats probables.
Rsoudre e problme pour X1 . . . Xn , 'est d'une part trouver un fa teur Xi . . . Xj
de s ore maximum, d'autre part rsoudre le problme pour X1 . . . Xi1 ainsi que pour
Xj+1 . . . Xn . Ce i dnit r ursivement le problme rsoudre.
Par utilisation d'une stru ture de donnes hane bien onue, il est possible de rsoudre e problme galement en temps linaire.
5. Re onstru tion d'arbres d'volution
Motivation. Supposons que l'on onnaisse le gnome d'un ensemble d'esp es a tuellement vivantes. Supposons de plus qu'on sa he mesurer la similarit entre es gnomes.
Les gnomes d'esp es pro hes l'une de l'autre dans l'arbre d'volution de la vie doivent
tre similaires, et on devrait don pouvoir en dduire l'arbre d'volution le plus probable.

6. ESTIMATION DE DISTANCE ENTRE GNOMES

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.

Une matri e (n, n) dnit une ultra-mtrique si pour tout triplet


{i, j, k}, le maximum de D(i, j), D(j, k) et D(k, i) est atteint par au moins deux de es
trois valeurs.
Dfinition

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

O(n2 ) pour re onstru tion d'arbre d'volution.

6. Estimation de distan e entre gnomes


La se tion pr dente suppose onnue une mesure de similarit entre gnomes al ulant
le temps oul depuis que les esp es ont diverg. Mais omment faire ette mesure ?
Comment al uler la distan e entre deux gnomes en terme d'volution ?
Supposons onnue l' riture du gnome omme suite de gnes, i i suppose ir ulaire
pour simplier les dtails te hniques. Des esp es pro hes s'avrent avoir les mmes gnes,
mais dans un ordre dirent le long du gnome. Lors d'une mutation, l'une des prin ipales modi ations observes onsiste a prendre un mor eau du gnome et le renverser :
g1 g2 . . . gi . . . gj . . . gn devient g1 . . . gi1 gj gj1 . . . gi gj+1 . . . gn .
Soit (i, j) = la probabilit d'une telle mutation lorsque la longueur jP
i + 1 du
segment renvers est gale : puisqu'il y a n segments de longueur , on a
n = 1.

148

8. ALGORITHMES POUR LA BIOLOGIE MOLCULAIRE

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

Le al ul de fon tions de partition ou de valeurs ritiques en physique statistique amne


souvent ee tuer de longs al uls. Il est don important d'tudier la omplexit des algorithmes mis en uvre pour es al uls. Le modle d'Ising est l'un des modles de base.
Le rsoudre signie al uler sa fon tion de partition : ela n'a pu tre fait expli itement
de manire rigoureuse que pour des graphes trs parti uliers, et il reste en ore faire pour
venir ompltement bout du al ul ; il en est ainsi pour les rseaux 3 dimensions. Dans
e qui suit on va montrer que plusieurs des problmes poss par les al uls de la physique
statistique sont NP- omplets, en parti ulier les al uls lis au modle d'Ising. Une ex eption notable est elle du al ul de la onguration d'nergie optimale dans le problme du
verre de spin lorsque le graphe est planaire. On tudiera des algorithmes d'approximation
de type Monte-Carlo. Enn on verra que si la physique a fourni des problmes trs intressants l'algorithmique elle lui a aussi apport des heuristiques e a es, en eet la
mthode dite du re uit simul donne dans de nombreux as des solutions appro hes des
problmes d'optimisation ombinatoire.

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

9. ALGORITHMES POUR LA PHYSIQUE STATISTIQUE

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.

Un rseau une dimension

Dans le rseau deux dimensions le graphe onsidr est une grille :

Fig. 2.

Un rseau deux dimensions

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

o M est une nergie due un hamp magntique extrieur.


Un des problmes prin ipaux onsiste dterminer la

Z=

fon tion de partition Z

dnie par :

eH()

o la somme est prise sur les 2 ongurations possibles et o = 1/(kT ), T tant la


temp'erature et k la onstante de Boltzmann. En eet, la physique statistique postule que
les ongurations de spins sont rparties selon la distribution de Gibbs, selon laquelle la
probabilit d'une onguration donne est gale

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.

Fon tion de partition et polynme des oupures.

Rappelons qu'une oupure de

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

On remarque que haque sous-ensemble Y de X donne deux oupures de mme taille


(l'une ave X1 = Y , l'autre ave X2 = Y ,ainsi B(1) = 2n1 o n est le nombre de sommets
du graphe.

Soit G un graphe m artes o l'nergie d'intera tion J est onstante


et o le hamp magntique M est nul. Alors la fon tion de partition Z satisfait :
Thorme

9.1.

Z=

2
B(2 ),
m

o = eJ et B est le polynme des oupures de G.


Preuve : Soit une onguration. Soit X1 l'ensemble des sommets de spin 1 et X2
l'ensemble des sommets de spin 1. Soient mi (i = 1, 2) le nombre d'artes qui joignent
les sommets de Xi entre eux, et c(X1 , X2 ) le nombre d'artes de la oupure dnie par
(X1 , X2 ). Le produit des spins vaut +1 pour les artes internes aux Xi et 1 pour les
artes de la oupure. Ainsi :

On obtient

H() = J(m1 + m2 c(X1 , X2 ))


m
= m1 + m2 + c(X1 , X2 )
H() = mJ + 2Jc(X1 , X2 )

et pour la fon tion de partition :

Z=

emJ e2c(X1 ,X2 )

Or haque d omposition de X en X1 X2 donne deux ongurations de mme nergie


(en hangeant les spins +1 et 1), ainsi :
mJ

Z = 2e

m
X
j=0

bj e2jJ

152

9. ALGORITHMES POUR LA PHYSIQUE STATISTIQUE

et en posant = eJ on a :
m
2 X 2j
1
Z= m
bj = m B(2 ).
j=0

Le al ul de la fon tion de partition est de omplexit quivalente


la dtermination du polynme des oupures B du graphe G.
Corollaire

9.1.

Preuve : Z

se al ule dire tement partir de B ; r iproquement, si on onnat la


valeur de Z pour m valeurs de , une formule d'interpolation lassique permet d'obtenir

les oe ients de B .
Un prliminaire au al ul de la fon tion de partition est de onnatre sa valeur lorsque la
temprature tend vers 0. Elle est alors dtermine par la onguration d'nergie minimale
(tat de base du systme), qui est aussi, toute temprature, l'tat le plus probable selon
la distribution de Gibbs. Mme e problme trs prliminaire pose dj des questions
algorithmiques intressantes.
Prenons la situation o il n'y a pas de hamp magntique extrieur (M = 0) et o les
intera tions sont onstantes.
Si J < 0, on est dans le as anti-ferromagntique (les spins de sommets voisins tendent
s'opposer l'un l'autre), et l'tat d'nergie minimale orrespond la oupure ontenant
le plus d'artes : il s'agit du problme de la oupure maximale, dont on a vu qu'il tait
NP-di ile.
Si J > 0, on est dans le as ferro-magntique (les spins de sommets voisins tendent
s'aligner l'un l'autre), et (pour G graphe onnexe) il y a exa tement deux tats d'nergie
minimale, l'un o tous les spins sont gaux +1, et l'autre o tous les spins sont gaux
1. Exprimentalement, on observe ee tivement qu' haute temprature, la somme des
spins est pro he de 0, mais qu' faible temprature, la somme des spins est, ou bien pro he
de +n, ou bien pro he de n, es deux situations ayant gale probabilit : on parle alors
de magntisation spontane puisqu'elle survient mme en l'absen e de hamp magntique
extrieur.
Lorsque les intera tions ne sont pas onstantes, le problme est plus di ile mais peut
pour ertains graphes tre rsolu de manire satisfaisante.

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

Dnition. A haque graphe onnexe est asso i un polynme deux variables, on


utilise une dnition r ursive faisant intervenir les suppressions et ontra tions d'artes
dont la dnition a te introduite la n du hapitre 1 dans le adre du jeu de Shannon.
Rappelons que l'on note G e le graphe obtenu partir d'un graphe G, en supprimant
une de ses artes e ; on note aussi Ge le graphe obtenu en ontra tant l'arte e.
On a besoin de dnir un isthme dans un graphe onnexe, il s'agit d'une arte dont la
suppression dis onne te le graphe ; une bou le est une arte dont les deux extrmits sont
onfondues.
On a alors la dnition r ursive suivante du polynme de Tutte pour un graphe onnexe
G, e polynme est not TG (x, y)
Le polynme de Tutte du graphe G est donne par :
La valeur est 1 si G n'a qu'un sommet et pas d'arte,
Si e est une bou le : TG (x, y) = yTGe(x, y),
Si e est un isthme : TG (x, y) = xTGe (x, y),
Si e n'est ni une bou le ni un isthme : TG (x, y) = TGe (x, y) + TGe (x, y).

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 .

Cal ul du polynme des oupures.

Le polynme de Tutte est un outil important


dans de nombreux hapitres de la thorie des graphes : olorations, ots non nuls, orientations a y liques. Nous l'utilisons i i pour le al ul du polynme des oupures :

Le polynme des oupures BG (x) d'un graphe onnexe G (ayant n


sommets et m artes) s'obtient partir du polynme de Tutte de G par la formule :
Thorme

9.2.

BG (x) = xmn+1 (1 x)n1 TG (

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.

Le polynme des oupures BG (x) du graphe onnexe G se dtermine de


faon r ursive par la mthode suivante :
 La valeur de BG (x) est 1 si G n'a qu'un sommet et pas d'arte,
 Si e est une bou le : BG (x) = BGe (x),
 Si e est un isthme : BG (x) = (1 + x)BGe (x),
 Si e n'est ni une bou le ni un isthme : BG (x) = xBGe (x) + (1 x)BGe (x).
Lemme

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

9. ALGORITHMES POUR LA PHYSIQUE STATISTIQUE

 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 .

3. Modle verre de spin et al ul de l'tat d'nergie minimale


Dans le as des verres de spin le ristal est un alliage ontenant dirents omposants
ainsi les direntes artes e du graphe ont des nergies d'intera tion J(e) diverses. Il s'agit
de trouver la onguration pour laquelle H() est minimale.
Etat d'nergie minimale.

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).

Par exemple si l'on onsidre le graphe onstitu de 6 sommets et 7 artes formant


deux arrs voisins (voir Figure), dans lequel J(e) = 1 sauf J{1, 2} = J{5, 6} = 3. Une
solution optimale ave H() = 9 est donne par :

(1) = (3) = (5) = +1

(2) = (4) = (6) = 1

3. MODLE VERRE DE SPIN ET CALCUL DE L'TAT D'NERGIE MINIMALE

Fig. 3.

155

Conguration d'nergie optimale

Dans le as gnral le problme est NP - omplet puisqu'il gnralise le problme de la


oupure maximale, et il est don illusoire de her her un algorithme qui donne rapidement
une solution exa te. Cependant, dans le as parti ulier o le graphe est planaire, nous
allons voir qu'on a un algorithme polynomial.
Lorsqu'il existe une onguration 0 telle que 0 (x)0 (y)J(e) est positive pour toute arte
e du graphe on dit que le as est quivalent au modle ferro-magntique. Il est relativement
fa ile de d eler e type de situation. Une arte est dite ngative si J(e) < 0.
:

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 :

On onstruit le graphe G obtenu en ajoutant un nouveau sommet de degr


2 sur ha une des artes e de G telles que J(e) > 0. On vrie que (G, J) est quivalent
au modle ferromagntique si et seulement si les sommets de G peuvent tre partags en
deux lasses X1 et X2 telles que toute arte de G ait une extrmit dans X1 et une autre
dans X2 . Ce i signie que le graphe G est ainsi 2- oloriable. Une ondition n essaire et
susante pour qu'un graphe soit 2- oloriable est que tous ses y les soient de longueur
paire. La preuve se termine en remarquant que G a tous ses y les de longueur paire si et
seulement si tout y le de G ontient un nombre pair d'artes ngatives.


156

9. ALGORITHMES POUR LA PHYSIQUE STATISTIQUE

-1
-1

-3

-3

Fig. 4.

-1

-1

Un graphe valu et le graphe bi olorier asso i

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.

3. MODLE VERRE DE SPIN ET CALCUL DE L'TAT D'NERGIE MINIMALE

157

Algorithme dans le as planaire.


F9

F1

F9

F2

F3

F4

F5

F1

F2

F7

F7
F3

F4

F5

F6
F8

F6
F8

Fig. 5.

Un graphe planaire et son dual

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 :

Un graphe valu G = (X, E, J) planaire est quivalent au modle


ferromagntique si et seulement si toute fa e de G ontient un nombre pair d'artes ngatives.
Proposition

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

9. ALGORITHMES POUR LA PHYSIQUE STATISTIQUE

Proposition 9.3. Soit G = (X, E, J) un graphe valu planaire et U un sous-ensemble


d'artes de E , U forme un ensemble d'artes ontraries pour une onguration si et
seulement si :
(1) Toute fa e frustre ontient un nombre impair d'artes dans U .
(2) Toute fa e non frustre ontient un nombre pair d'artes dans U .

Preuve : Le fait qu'un

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 .

Comme onsquen e immdiate on obtient que le nombre de sommets frustrs de G (et


don que le nombre de fa es frustres de G) est pair. On a aussi :
Proposition 9.5. Si est une onguration d'nergie minimale alors l'ensemble des
artes ontraries forme un sous graphe sans y le de G .

Preuve : S'il existe un y le dans U

on onsidre l'ensemble U obtenu en supprimant dans


U les artes du y le, U vrie les onditions de la proposition ar la suppression d'un
y le ne modie pas la parit des degrs des sommets, et la onguration dnie par U
est d'nergie plus faible.


onstruit de la faon suivante :


Au graphe G on asso ie le graphe G
est onstitu des sommets frustrs de G
 L'ensemble des sommets de G
est onstitu de toutes les paires {x, y} de sommets de
 L'ensemble des artes de G
.
G
 Chaque arte {x, y} est value par la longueur du plus ourt hemin qui joint x y
dans G , o la longueur d'un hemin est la somme des valeurs absolues |J(ei )| des
artes ei qui en font partie.

3. MODLE VERRE DE SPIN ET CALCUL DE L'TAT D'NERGIE MINIMALE

4
1

10

11

12

2
2

159

Fig. 6.

Un graphe planaire valu G et le graphe G

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.

Un ouplage parfait C de valuation minimale dans G dtermine un


ensemble d'artes UC qui forme un ensemble d'artes ontraries pour une onguration
de G, ette onguration est d'nergie minimale.
Thorme

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.

Consquen e Dterminer une onguration d'nergie minimale revient dterminer un


il existe des algorithmes permettant d'ee tuer e i en
ouplage minimal dans le graphe G
temps polynomial ; ils ont t voqus dans le hapitre 3 (Flots et Couplages).
Sur la gure i-dessus on a reprsent un graphe rgulier 20 sommets, les intera tions
sont telles que J(e) = 1 (traits normaux) ou J(e) = 1 (traits en pointills).

160

9. ALGORITHMES POUR LA PHYSIQUE STATISTIQUE

4. Cal ul de la fon tion de partition dans le as planaire


Une avan e majeure dans l'tude du modle d'Ising, due Kasteleyn, Fisher et Temperley dans les annes 60, rsoud le modle dans le as o le graphe est planaire, en
ramenant le problme l'valuation d'un ertain dterminant.
Une transformation lo ale du graphe rduit le problme l'tude de oupages parfait
sur un autre graphe planaire G , plus pr isment, au al ul de la somme, sur tous les
ouplages parfaits de G , du poids du ouplage ; le poids d'un ouplage est le produit des
poids de ses artes.
Prenons un as parti ulier simple o la dmonstration ontient dj des ides essentielles. Comment al uler le poids des ouplages parfaits de la grille de t n ?
La grille tant un graphe biparti, olorions ses sommets en noir et blan , et onsidrons un ouplage parfait omme une bije tion de l'ensemble des N sommets noirs vers
l'ensemble des N sommets blan s. Le poids total des ouplages parfaits est alors :

X=

w1 (1) w2 (2) . . . wN (n) .

Considrons maintenant la matri e A, matri e N N dont l'entre {i, j} vaut 0 si le


sommet noir i n'est pas adja ent au sommet blan j , et a pour norme w s'ils sont relis
par une arte de poids w . On pose alors ai,j = w si l'arte {i, j} de la grille est verti ale,
et ai,j = i, la ra ine arre de 1, si l'arte est horizontale.
La proprit essentielle de ette matri e ( elle qui l'on peu gnraliser lrosqu'on onsidre un graphe planaire biparti quel onque, au lieu de la grille), est que le produit des aij
autour de n'importe quelle fa e est gal 1 fois le produit des poids wij orrespondants.
Par dnition, le dterminant de A vaut :

det(A) =

( )a1 (1) a2 (2) . . . aN (n) .

On va montrer par r urren e que

( )a1 (1) a2 (2) . . . aN (n)


w1 (1) w2 (2) . . . wN (n)
est onstant, indpendamment de , d'o on dduit que la norme du dterminant de A est
la valeur X re her he.
Considrons deux permutations quel onques 1 et 2 . Cha une orrespond un ensemble
d'artes de la grille. Leur superposition dnit des y les. Parmi es y les, onsidrons
un y le C qui soit le plus interne possible dans e graphe planaire, 'est--dire que les
sommets l'intrieur de e y le ont tous la mme image par 1 et par 2 . Dnissons la
distan e entre 1 et 2 omme la somme des surfa es des y les les plus internes, o la
surfa e d'un y le est le nombre total de sommets stri tement l'intrieur du y le.
On onsidre une fa e de la grille qui soit l'intrieur de C et qui tou he C , et laisse
globalement invariante par 1 ou par 2 . (Il n'est pas di ile de montrer qu'il en existe
n essairement une). Sans perte de gnralit, supposons que e soit 1 . Appliquons alors

5. CALCUL DE LA FONCTION DE PARTITION ET MTHODE DE MONTE CARLO

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

(1 )a11 (1) a21 (2) . . . aN 1 (n)


(1 )a11 (1) a21 (2) . . . aN 1 (n)
=
.
w11 (1) w21 (2) . . . wN 1 (n)
w11 (1) w21 (2) . . . wN 1 (n)
Ces deux expressions ne dirent que sur la fa e utilise. Puisqu'on a appliqu une
transposition, (1 ) = (1 ). Quand aux rapports des oe ients aux poids, autour de la
fa e il vaut 1 pour 1 et i2 = 1 pour 1 , ou l'inverse (selon que 'est 1 ou 1 qui utilise les
deux artes verti ales du arr). Dans les deux as, on a bien (1)1 = i2 ou (1)i2 = 1,
e qui termine la dmonstration.
Ainsi, gr e un al ul de dterminant, on peut valuer le poids total des ouplages
parfaits sur une grille arre dont les artes ont un poids quel onque.
Cette appro he se gnralise n'importe quel graphe planaire biparti : il sut de hoisir
les poids des artes autour des fa es de faon que le produit des poids autour de n'importe
quelle fa e soit gal 1, selon le signe de la permutation lmentaire asso ie.
Dans le as de graphes planaires non bipartis, une gnralisation plus te hnique rsoud
le problme en exprimant le poids total des ouplages parfaits omme une somme de quatre
dterminants.

5. Cal ul de la fon tion de partition et mthode de Monte Carlo


Au del du as planaire, les hoses se ompliquent, et en trois dimensions les solutions
sont gnralement numriques. Une appro he populaire onsiste faire une mar he alatoire dans l'espa e des ongurations, o une tape onsiste hoisir un sommet au hasard
et modier son spin ave une ertaine probabilit, hoisie de faon que la distribution
stationnaire de la hane de Markov ainsi dnie soit bien la distribution de Gibbs (On
parle alors d'un hantillonneur de Gibbs ou d'une dynamique de Glauber). On simule
alors ette mar he alatoire, en s'arrtant au bout d'un temps susamment long pour
onsidrer que la distribution e stade est pro he de la distribution stationnaire, et don
que la onguration obtenue et instant est peu prs un hantillon de la distribution
de Gibbs. Cela permet alors de al uler la fon tion de partition. Un problme de ette
appro he est son manque de rigueur : en parti ulier, on ne peut de manire raliste simuler
la hane de Markov que pendant un temps polynomial en la taille du graphe d'entre,
alors que le nombre de ongurations est exponentiel. Au moment o on s'arrte, on risque
d'tre en ore loin de la distribution stationnaire, et don d'avoir une mauvaise image de
la distribution de Gibbs. Ce problme s'attaque en dnissant la distan e entre deux distributions, et en montrant, pour des hanes de Markov bien hoisies, que le temps de
onvergen e vers la distribution stationnaire est polynomial.
Les outils de on eption et d'analyse rigoureuse de tels algorithmes ont t dvelopps ave une parti ipation a tive des informati iens depuis le dbut des annes 90, mais
demandent des onnaissan es de probabilits qui dpassent le adre de e ours.

162

9. ALGORITHMES POUR LA PHYSIQUE STATISTIQUE

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

Algorithmi Graph Theory


Geneti Algorithms
Graphes et Algorithmes
Approximation Algorithms for NP-Hard Problems
The Art of Computer Programming, Vol 3 : Sorting and Sear hing
The Travelling Salesman Problem : a Guided
Tour of Combinatorial Optimization
A ourse in Combinatori s
Probability and Computing
Randomized Algorithms
Integer and Combinatorial Optimization
Matroid Theory
Computational omplexity
Two sided mat hing
Theory of Linear and Integer Programming
Combinatorial Optimization, Polyhedra and E ien y
Data Stru tures and Network Algorithms
Approximation Algorithms
Matroid Theory
163

Index

somme de sous-ensemble,

NP- ompltude,

85, 87, 93, 97


au sens fort, 111
k - olorabilit, 96
2- olorabilit, 96
3- olorabilit, 9496
4- olorabilit planaire, 96
hemin hamiltonien, 94
hemin le plus ourt, 94
ir uit hamiltonien, 9194, 108
ir uit le plus long, 93, 94
lique, 90, 91
oupure maximale, 90, 91, 114, 116
ensemble indpendant, 91
fa teur, 94
fa torisation, 84
one-in-three sat, 89
partition, 97, 98, 110
primalit, 84, 110, 126
produit de sous-ensemble, 98
programmation entire, 98, 99, 111
qsat, 101
rangement optimal, 98, 111, 112, 116, 118
re ouvrement d'artes, 91
re ouvrement de sommets pondr, 116
re ouvrement de sommets, 90, 92, 96, 97, 113
re ouvrement par sommets, 90
sa --dos, 97, 98, 105, 110, 116
sat, 85, 8789
k -sat, 89
2-sat, 85, 88, 89
3-sat, 85, 8789, 95, 96, 99, 107
Horn-sat, 89
ir uit-sat, 89
max2sat, 89
maxsat, 89, 105, 134
nae3sat, 8891, 96
naesat, 88, 91
3-sat, 89

stable,

89, 90

voyageur de ommer e,

9698, 110

93, 94, 118

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

erti at, 89, 98, 99


hemin, 9
lmentaire, 9
plus ourt, 31
unique, 9
ir uit
d'un matrode, 25
dans un graphe, 9
ir uit hamiltonien, 91
lasse
NP, 83, 84
P, 84
DTIME(f ), 84
EXP, 100
IP, 102
L, 100
NEXP, 100, 102
NL, 100
PCP(f , g ), 102
PSPACE, 100, 101
de omplexit, 83, 84, 100
olorabilit, 94
oloration, 11
omplexit, 83, 86, 100, 128
dans le as le pire, 123
en moyenne, 123
on eption, voir algorithme, on eption d'
onnexe, 9
ontra tion, 26, 27
onvexe, 62
ouplage, 11, 23, 45, 51, 159
parfait, 159
oupure, 46, 90, 114, 151
y le, 9
prin ipal, 10
drandomisation, 136
Dijkstra, 32
distan e d'dition, 43
dual
d'un graphe, 157
hantillonage, 124, 127
ellipsode, 78
ensemble
ouvrant, 10
ensemble indpendant, 10
entre, 84, 85
fa e, 62

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

parties sans y le, 22


physique statistique, 149
pivot, 73
planaire, 156
polydre, 59
polynme des oupures, 152
polynme de Tutte, 152
polytope, 62
preuves intera tives, 102
primal-dual, 76
probabiliste, 102
problme
NP- omplet, 123
NP- omplet, 85
NP-di ile, 85, 99
PSPACE- omplet, 101
P- omplet, 101
omplet, 101
d'optimisation, 83, 84, 105, 125
de al ul, 84, 125
de d ision, 84, 105, 106
de maximisation, 84
programmation
dynamique, 31, 106, 112
linaire, 59, 112, 113
programmation entire, 98, 109
programmation linaire, 101
en nombres entiers, 99, 100
programme linaire, 60
prouveur, 102
pseudo-polynomial, 110
pseudo-premier, 126
puissan e d'une matri e, 36

qui ksort, 123


rdu tion, 83, 85, 8790, 93, 9698, 100
en espa e logarithmique, 100
ora les, 101
rdu tions, 83
rsultats ngatifs, 83, 101
rang, 25
re uit simul, 162
relaxation, 32
reprsentation, 84
reprsentants distin ts, 23
sa dos, 40
semi-anneau, 37

167

seuil d'approximation, voir approximation, seuil


d'
simplex, 60
simplexe, 63
sommet, 62
sous-squen es, 41
stable, 10
stratgies adverses, 137
suppression, 26, 27
suppression d'arte, 26
tmoin, 124, 126
ta hes sur pro esseur, 24
tas, 33
thorme
de Cook, 85
de Shamir, 102
thorme de dualit, 66
transversal, 23
Tutte, 152
vrieur, 102
ve teurs indpendants, 22
verre de spin, 154

DITION 2007

Achev dimprimer le 10 janvier 2007 sur les presses


du Centre Poly-Mdia de lcole Polytechnique.

Dpt lgal :1er trimestre 2007


N ISBN 978 2 7302 1392 9

IMPRIM EN FRANCE

You might also like