1. Algorithmes d’approximation et
Algorithmes randomis´s
e
Nicolas.Schabanel@ens-lyon.fr
5-6 mai 2003 – CIRM
Table des mati`res
e
I Algorithmes d’approximation 2
1 Pr´liminaires et d´finitions
e e 2
1.1 Algorithmes d’approximation vs algorithmes exacts . . . . . . . 2
1.2 Vocabulaire et d´finitions . . . . . . . . . . . . . . . . . . . . .
e 2
2 Un exemple : le probl`me du repr´sentant de commerce (TSP)
e e 4
2.1 Le TSP non-m´trique est non-approximable . . . . . . . . . . .
e 5
2.2 Un minorant pour le TSP m´trique . . . . . . . . . . . . . . . .
e 5
2.3 Une 2-approximation pour le TSP m´trique . . . . . . . . . . .
e 6
2.4 Exercice : Une 3/2-approximation pour le TSP m´trique . . . .
e 7
3 2`me exercice : couverture par ensembles
e 9
II Algorithmes randomis´s
e 11
4 D´finitions
e 11
´
5 Evaluation d’un arbre de jeu Bool´en
e 12
6 Le probl`me de la coupe maximum
e 14
6.1 Un algorithme randomis´ pour la coupe maximum . . . . . . .
e 14
6.2 Un paradigme de d´randomisation . . . . . . . . . . . . . . . .
e 15
6.3 Un algorithme glouton pour la coupe maximum . . . . . . . . . 17
6.4 Exercice : Algorithme randomis´ et d´randomis´ pour Max-SAT
e e e 18
1
2. Premi`re partie
e
Algorithmes d’approximation
1 Pr´liminaires et d´finitions
e e
1.1 Algorithmes d’approximation vs algorithmes exacts
L’approche en algorithmique d’approximation diff`re assez largement de
e
celle de l’algorithmique exacte. Contrairement ` la r´solution d’un probl`me
a e e
de la classe P , o` la solution est connue et o` il s’agit de l’obtenir le plus vite
u u
possible, l’approximation d’un probl`me d’optimisation N P -difficile (grosso
e
modo, insoluble en temps polynomial, ` moins que P = N P , ce qui serait une
a
petite r´volution) repose sur l’obtention d’informations sur une solution qu’on
e
ne connait pas, et qu’on ne pourra jamais connaˆ (sauf par une irr´alisable
ıtre e
´num´ration exponentielle).
e e
L’id´e est, en g´n´ral, de r´soudre un autre probl`me que le probl`me ori-
e e e e e e
ginal, puis de transformer la solution optimale du second probl`me en une
e
solution du premier. Tout l’art de l’approximation est d’assurer qu’` chaque
a
´tape, on ne s’´loigne pas trop de l’optimum original. Voici une illustration du
e e
principe g´n´ral de l’approche :
e e
Solution optimale inconnue
OPT
Contrairement à l'algorithmique exacte,
mais on garantit qu'on n'est on ne sait pas où elle est...
pas loin de la solution optimale
Solution approchée
Solution optimale connue
OPT'
d'un problème plus simple, dit relâché
Le second probl`me est souvent qualifi´ de relˆch´, car il est souvent ob-
e e a e
tenu en relˆchant des contraintes du probl`me original. Les sections suivantes
a e
illustrent ces principes sur des exemples.
1.2 Vocabulaire et d´finitions
e
Commen¸ons par quelques d´finitions.
c e
D´finition 1 Nous cherchons ` r´soudre des probl`mes d’optimisation, i.e.,
e a e e
nous recherchons dans un ensemble fini A, muni d’une fonction de poids 1
sur ses ´l´ments, un ´l´ment a ∈ A de poids minimum, dans le cas d’un
ee ee
probl`me de minimisation, ou de poids maximum, dans le cas d’un probl`me
e e
de maximisation. Voici quelques exemples :
– Dans un graphe non-orient´ G = (V, E),2 muni d’une fonction de poids
e
1
ou de coˆt, les deux termes sont utilis´s indiff´remment.
u e e
2
Rappel : On appelle graphe G = (V, E) une relation binaire non-r´flexive E sur un
e
ensemble fini de sommets V . Les relations (u, v) ∈ E sont appel´es les arˆtes du graphe.
e e
Lorsque la relation E est sym´trique, on dit que le graphe est non-orient´, et chaque arˆte
e e e
(u, v) est not´e simplement uv. Lorsque la relation E n’est pas sym´trique, on dit que le
e e
graphe est orient´, et les arˆtes sont appel´es des arcs. Un graphe non-orient´ est habituel-
e e e e
lement repr´sent´ par des traits reliant des points : les points sont les sommets et les traits,
e e
les relations. Lorsque le graphe est orient´, chaque arc (u, v) est repr´sent´ par une fl`che
e e e e
partant de u et pointant vers v. On note habituellement n = |V | le nombre de sommets, et
2
3. sur ses arˆtes, rechercher l’arbre couvrant de poids minimum. Il s’agit ici
e
d’un probl`me de minimisation. A est l’ensemble des arbres couvrants de
e
G et le poids d’un arbre est la somme des poids de ses arˆtes.
e
– On se donne un graphe non-orient´ G = (V, E), muni d’une fonction de
e
poids sur les arˆtes. Une coupe de G est un ensemble C d’arˆtes tel qu’il
e e
existe une partition des sommets en deux ensembles S et V S telle
que C soit l’ensemble des arˆtes entre les deux composantes de cette
e
partition, i.e., C = {uv : u ∈ S et v ∈ V S}. On recherche une coupe
de poids maximum. Il s’agit d’un probl`me de maximisation. Ici, A est
e
l’ensemble des coupes de G, et le poids d’une coupe est la somme des
poids des arˆtes qui la composent.
e
Le premier de ces deux exemples est « facile » : l’arbre couvrant de poids
minimum se trouve en temps O(m log n) (et mˆme O(m + n log n)) avec un
e
algorithme glouton. Ce probl`me est dit polynomial, car il se r´soud en un
e e
temps polynomial en la taille de l’entr´e n + m. On note P la classe des
e
probl`mes polynomiaux.
e
Le second exemple est « difficile » : le probl`me de la coupe maximum
e
est N P -difficile. La classe N P est l’ensemble des probl`mes dont on peut
e
v´rifier une solution en temps polynomial. Ici, on peut v´rifier en temps po-
e e
lynomial qu’une coupe C a bien un poids sup´rieur ` une constante K. Bien
e a
entendu, P ⊂ N P . Dans la classe N P , certains probl`mes sont consid´r´s
e ee
comme « maximaux », ce sont les probl`mes N P -difficiles. Tous les autres
e
probl`mes de la classe s’y r´duisent : si on sait r´soudre en temps polyno-
e e e
mial un probl`me N P -difficile, alors tous les probl`mes de N P se r´solvent en
e e e
temps polynomial grˆce ` cette r´duction. Le probl`me de la coupe maximum
a a e e
`
est N P -difficile. A moins que P = N P , il est impossible de r´pondre ` la
e a
question “Existe-t-il une coupe de poids ≥ K dans G ?” en temps polynomial
pour tout K et G ; il est donc, en particulier, impossible de trouver une coupe
maximum. La conjecture P = N P est l’un des grands probl`mes ouverts en
e
informatique (sa r´solution a d’ailleurs ´t´ mise ` prix pour 1 000 000 $).
e ee a
Il est donc d´sesp´r´ de trouver un algorithme efficace pour r´soudre un
e ee e
probl`me d’optimisation N P -difficile. Or, la plupart le sont : en biologie, en
e
r´seau, en ´lectronique,... une immense majorit´ de ces probl`mes sont N P -
e e e e
difficiles. Une solution est de rechercher des heuristiques admettant des ga-
ranties de performances. Un exemple de telle garantie est, pour un probl`me e
de minimisation, que la solution construite par l’heuristique ait toujours un
poids ≤ K · OPT pour une certaine constante K > 1. Nous sommes alors
sˆrs de ne jamais payer plus de K fois le poids optimal. Pour un probl`me de
u e
maximisation, une garantie ´quivalente est que l’heuristique produise toujours
e
une solution de poids ≥ K · OPT, pour une certaine constante K < 1.
D´finition 2 On appelle facteur d’approximation d’une heuristique polyno-
e
miale A pour un probl`me de minimisation Π, la borne sup´rieure sur toutes
e e
les instances I du probl`me Π, du quotient du poids A(I) de solution construite
e
par A sur l’instance I, par le poids OPT(I) de la solution optimale pour I :
sup{A(I)/ OPT(I) : I ∈ Π}.
Pour une heurisitique polynomiale, lorsque le facteur d’approximation est
born´, major´ par une constante K (K > 1), l’heuristique est appel´e al-
e e e
m = |E| le nombre d’arˆtes. Naturellement : m ≤ n(n − 1)/2 pour un graphe non-orient´.
e e
Le degr´ d(u) d’un sommet u d’un graphe non-orient´ G est le nombre d’arˆtes qui lui sont
e e e
incidentes : d(u) = |{e ∈ E : u ∈ e}|.
3
4. gorithme d’approximation, ou plus pr´cis´ment K-approximation. Parfois, le
e e
facteur d’approximation d´pend de la taille de l’instance du probl`me (v. sec-
e e
tion 3), i.e., il existe une suite Kn telle que sup{A(I)/ OPT(I) : I ∈ Π et |I| =
n} ≤ Kn , on parle alors de Kn -approximation.
Pour un probl`me de maximisation, le facteur d’approximation se d´finit
e e
sym´triquement par :
e
inf{A(I)/ OPT(I) : I ∈ Π}.
On parle de mˆme de K-approximation ou Kn -approximation, lorsque le fac-
e
teur d’approximation est minor´ par K ou Kn (ici, K < 1 et Kn < 1).
e
Pour une K-approximation, K quantifie la qualit´ de l’approximation : plus
e
K est proche de 1, meilleur est l’approximation. La constante K est souvent
le fruit d’une analyse des performances de l’algorithme. Pour d´terminer si
e
cette analyse est bonne, c’est-`-dire pr´cise, il est utile d’obtenir des instances
a e
critiques.
D´finition 3 Une instance critique d’une K-approximation A pour un pro-
e
bl`me d’optimisation Π, est une instance I telle que A(I)/ OPT(I) ≈ K. Une
e
famille F d’instances critiques est un ensemble infini d’instances tel que :
– sup{A(I)/ OPT(I) : I ∈ F} = K, si Π est un probl`me de minimisation,
e
– inf{A(I)/ OPT(I) : I ∈ F } = K, si Π est un probl`me de maximisation.
e
La recherche d’instances critiques est une activit´ cruciale pour bien com-
e
prendre les faiblesses d’un algorithme ou de son analyse, et entreprendre leurs
am´liorations.
e
Exercice 1.1 D´finissez “instance critique” et “famille d’instances critiques”
e
pour une Kn -approximation :
♦
`
A l’instar des classes P et N P en algorithmique exacte, il existe diff´rentes
e
classes pour les probl`mes d’optimisation, quantifiant leurs capacit´s ` ˆtre
e e a e
« approxim´s » par des algorithmes polynomiaux. De mˆme, il existe dans
e e
chacune de ces classes des probl`mes « maximaux », tels que si on sait les
e
approcher ` un certain facteur, alors il en est de mˆme pour tous les probl`mes
a e e
de la classe. Les d´finitions et ´tudes de ces classes ne font pas l’objet de cette
e e
le¸on.
c
2 Un exemple : le probl`me du repr´sentant de com-
e e
merce (TSP)
e e ´
Probl`me 1 (Repr´sentant de commerce (TSP)) Etant donn´ un gra- e
phe complet G muni d’une fonction de poids positive sur les arˆtes, trouver
e
un cycle de poids minimum passant par chaque sommet exactement une fois.
Un tel cycle est appel´ tour du repr´sentant de commerce.3
e e
3
Traveling salesman problem, en anglais.
4
5. Voici un ensemble de points du plan et son tour optimal. Sur cet exemple,
le poids de chaque arˆte est sa longueur dans le plan Euclidien.
e
2.1 Le TSP non-m´trique est non-approximable
e
Dans toute sa g´n´ralit´, on ne peut garantir aucune approximation pour
e e e
TSP, ` moins que P = N P .
a
Th´or`me 1 Quelque soit α(n), calculable en temps polynomial, il n’existe
e e
pas de α(n)-approximation pour TSP, ` moins que P = N P .
a
Preuve. L’id´e est de r´duire polynomialement, le probl`me N P -difficile de
e e e
l’existence d’un cycle Hamiltonien,4 ` celui de la recherche d’un cycle court
a
ou long. Prenons G = (V, E) une instance du cycle Hamiltonien. Construisons
le graphe complet G = (V, E ) sur le mˆme ensemble de sommets V , et o` le
e u
poids de l’arˆte e est 1 si e ∈ E, et α(n) · n sinon.
e
Supposons par l’absurde qu’il existe une α(n)-approximation pour le TSP.
2.2 Un minorant pour le TSP m´trique
e
Probl`me 2 (Repr´sentant de commerce m´trique (TSP m´trique))
e e e e
Il s’agit de la restriction du probl`me du repr´sentant de commerce aux graphes
e e
munis d’une fonction de poids m´trique sur les arˆtes, i.e., telle que pour tout
e e
u, v, w ∈ V , poids(uw) ≤ poids(uv) + poids(vw).
Lemme 2 Si G est m´trique, le poids minimum d’un arbre couvrant de G est
e
un minorant du poids optimal d’un tour du repr´sentant de commerce de G.
e
Preuve.
4
Un cycle Hamiltonien d’un graphe G est un cycle qui passe par tous les sommets du
graphe, une fois et une seule. D´terminer si un graphe non-orient´ admet un cycle Hamilto-
e e
nien est un probl`me N P -difficile.
e
5
6. 2.3 Une 2-approximation pour le TSP m´trique
e
D´finition 4 Un graphe Eul´rien est un graphe, o` tous les sommets sont de
e e u
degr´ pair. Ces graphes sont exactement ceux qui admettent un cycle qui passe
e
par toutes les arˆtes, une fois et une seule. De plus, nous savons construire un
e
tel cycle tr`s facilement, par un simple parcours des arˆtes en temps lin´aire.
e e e
L’algorithme suivant pour le TSP m´trique, repose sur la transformation
e
d’un arbre couvrant de poids minimum de G en un graphe Eul´rien.
e
Algorithme 1 (TSP m´trique – 2-approximation)
e
1. Calculer un arbre couvrant de poids minimum T de G.
2. Dupliquer toutes les arˆtes de T pour obtenir un graphe Eul´rien.
e e
3. Calculer un cycle Eul´rien T de ce graphe.
e
4. Retourner le cycle C qui passe par tous les sommets de G dans l’ordre
de leur premi`re occurence dans T .
e
Voici un exemple d’ex´cution de cet algorithme sur notre ensemble de points
e
dans le plan Euclidien. Sont illustr´s l’arbre de poids minimum, le graphe
e
Eul´rien, et le tour obtenu en partant du sommet dessin´ en blanc.
e e
Th´or`me 3 L’algorithme 1 est une 2-approximation pour le probl`me du
e e e
repr´sentant de commerce m´trique (TSP m´trique).
e e e
Preuve.
Exercice 2.1 Prouvez que la famille de graphes complets, illustr´e pour n = 6
e
ci-dessous, est une famille d’instances critiques pour cet algorithme. Les arˆtes
e
en gras coˆtent 1, les autres coˆtent 2. Sont repr´sent´s, le graphe, un tour
u u e e
6
7. optimal, et un arbre couvrant de poids minimum avec un tour obtenu ` partir
a
de cet arbre couvrant :
♦
2.4 Exercice : Une 3/2-approximation pour le TSP m´trique
e
L’id´e de cet algorithme est de n’ajouter que le minimum d’arˆtes (au
e e
sens du poids) n´cessaires pour obtenir un graphe Eul´rien ` partir de l’arbre
e e a
couvrant de poids minimum.
Lemme 4 Tout graphe G admet un nombre pair de sommets de degr´ impair.
e
Preuve.
D´finition 5 Un couplage d’un graphe G = (V, E) est un ensemble d’arˆtes
e e
M ⊂ E tel que pour toutes arˆtes e, e ∈ M , e = e ⇒ e ∩ e = ∅. Un couplage
e
M est dit parfait, s’il couvre tous les sommets de G, i.e., si pour tout x ∈ V ,
il existe e ∈ M , telle que x ∈ e. Il existe des algorithmes polynomiaux tr`s e
simples pour calculer un couplage parfait de poids minimum dans un graphe
ayant un nombre pair de sommets.
L’am´lioration de notre algorithme pour le TSP repose sur un nouveau
e
minorant du poids d’un tour optimal.
Lemme 5 Soit M un couplage d’un sous-graphe induit par des sommets de
G, alors le poids de M est inf´rieur ` la moiti´ du poids du tour optimal.
e a e
Preuve.
7
8. Voici l’algorithme :
Algorithme 2 (TSP m´trique – 3/2-approximation)
e
1. Calculer un arbre couvrant de poids minimum T de G.
2. Calculer un couplage parfait de coˆt minimal M du sous-graphe induit
u
par les sommets de degr´ impair de T . Ajouter M ` T pour obtenir un
e a
graphe Eul´rien.
e
3. Calculer un cycle Eul´rien T de ce graphe.
e
4. Retourner le cycle C qui passe par les sommets de G dans l’ordre de
leur premi`re occurrence dans T .
e
Les figures ci-dessous illustrent le d´roulement de cet algorithme sur notre
e
ensemble de points du plan Eul´rien. Sont illustr´s, l’arbre couvrant de poids
e e
minimum, l’arbre compl´t´ par un couplage de poids minimum, et le tour
ee
obtenu en partant du sommet dessin´ en blanc.
e
Th´or`me 6 (Christofides, 1976) L’algorithme 2 est une 3/2-approximation
e e
pour le probl`me du repr´sentant de commerce.
e e
Preuve.
Exercice 2.2 D´montrez que le graphe suivant d´finit une famille d’instance
e e
critique pour cet algorithme. Il a n sommets, avec n impair :
1 ... 1
1 1 1 1 1 1
1 1 ... 1 1
(n+1)/2
L’arbre couvrant trouv´ ` la premi`re ´tape est dessin´ en gras.
ea e e e
♦
8
9. 3 2`me exercice : couverture par ensembles
e
e ´
Probl`me 3 (Couverture par ensembles) Etant donn´s un univers U de
e
n ´l´ments, une collection de sous-ensembles de U , S = {S1 , . . . , Sk }, et une
ee
fonction de coˆt c : S → Q+ , on appelle couverture par ensembles 5 de U ,
u
tout sous-ensemble C de S qui couvre tous les ´l´ments de U , i.e., tel que
ee
S∈C S = U . Le probl`me est de trouver une couverture par ensembles de
e
coˆt minimum.
u
Voici un algorithme glouton : choisir l’ensemble de coˆt efficace mini-
u
mum, ´liminer les ´l´ments couverts et it´rer jusqu’` ce que tous les ´l´ments
e ee e a ee
soient couverts. Soit C l’ensemble des ´l´ments d´j` couverts au d´but d’une
ee ea e
it´ration. Le coˆt efficace d’un ensemble S, durant cette it´ration, est le coˆt
e u e u
moyen auquel il couvre de nouveaux ´l´ments, i.e., c(S)/|S − C|. Le prix
ee
d’un ´l´ment est le coˆt efficace moyen auquel il peut ˆtre couvert. De fa¸on
ee u e c
´quivalente, on peut imaginer que, quand un ensemble S est choisi, son coˆt
e u
est r´parti uniform´ment parmi les nouveaux ´l´ments couverts.
e e ee
Algorithme 3 (Couverture par ensembles)
1. C ← ∅.
2. Tant que C = U faire
Soit S, l’ensemble de coˆt efficace minimum de l’it´ration courante.
u e
coˆt(S)
u
Poser α = |S−C| , le coˆt efficace de S.
u
S´lectionner S et, pour chaque u ∈ S − C, poser prix(u) = α.
e
C ← C ∪ S.
3. Retourner les ensembles s´lectionn´s.
e e
L’analyse de cet algorithme n’utilise pas de minoration explicite du coˆt u
optimal, mais le coˆt optimal directement.
u
Num´rotons u1 , . . . , un , les ´l´ments de U dans l’ordre dans lequel ils sont
e ee
couverts par l’algorithme (les ex æquo sont class´s arbitrairement).
e
Lemme 7 Pour tout k ∈ {1, . . . , n}, prix(uk ) ≤ OPT/(n − k + 1).
Preuve. Remarquons qu’` la k-`me it´ration, les ensembles non-s´lectionn´s
a e e e e
de la solution optimale couvrent les ´l´ments restants pour un coˆt total
ee u
inf´rieur ` OPT. Or il reste |C| ´l´ments ` couvrir,
e a ee a
5
Set cover, en anglais.
9
10. Th´or`me 8 L’algorithme glouton 3 est une Hn -approximation pour le probl`me
e e e
1 1
de la couverture par ensembles minimum, avec Hn = 1 + 2 + · · · + n .
Preuve.
Exercice 3.1 D´montrez que l’instance suivante d´finit une famille d’ins-
e e
tances critiques pour l’algorithme 3 (les poids sont indiqu´s ` cˆt´ des en-
e a oe
sembles) :
...
1+ε
1/n 1/(n-1) 1/(n-2) 1/2 1
♦
De fa¸on surprenante, on peut d´montrer que l’algorithme naturel ci-dessus
c e
est essentiellement ce qu’on peut esp´rer de mieux pour le probl`me de la cou-
e e
verture par ensembles, car obtenir une « meilleure » approximation conduirait
a
` une « catastrophe » similaire ` P = N P .
a
10
11. Deuxi`me partie
e
Algorithmes randomis´s
e
4 D´finitions
e
Un algorithme d´terministe base ses d´cisions sur le r´sultat de tests, essen-
e e e
tiellement des comparaisons d’entiers ou de rationnels. Un algorithme rando-
mis´ prend certaines d´cisions « au hasard ». On peut formaliser un algorithme
e e
randomis´ ainsi.
e
D´finition 6 Un algorithme randomis´ est un algorithme (d´terministe !) qui
e e e
prend deux entr´es : la suite de bits de l’instance du probl`me ` r´soudre ;
e e a e
et une suite de bits al´atoires, tir´s uniform´ment et ind´pendamment dans
e e e e
{0, 1}. La suite de bits al´atoires est diff´rentes pour chaque ex´cution de
e e e
l’algorithme. Notez que l’algorithme randomis´ s’ex´cutera de la mˆme fa¸on
e e e c
si on lui soumet la mˆme suite de bits al´atoires pour la mˆme instance.
e e e
Instance du
problème
Instance du Un algorithme Un algorithme
Résultat Résultat
problème déterministe randomisé
Suite de bits
aléatoires
Les performances d’un algorithme randomis´ se mesurent selon diff´rents
e e
param`tres :
e
– Performance en temps : L’esp´rance du temps de calcul sur une ins-
e
tance donn´e, o` la moyenne est prise sur la suite de bits al´atoires. Quel
e u e
est le temps moyen d’ex´cution de l’algorithme en fonction de la taille de
e
l’instance du probl`me ?
e
– Performance en recours ` l’al´atoire : L’esp´rance du nombres de
a e e
bits al´atoires utilis´s, o` la moyenne est prise sur la suite de bits al´atoi-
e e u e
res. Quel est le nombre de bits al´atoires requis par l’algorithme en fonc-
e
tion de la taille de l’instance du probl`me ? Les bits al´atoires doivent-ils
e e
ˆtre totalement ind´pendants, ou seulement 2-`-2 ind´pendants, k-`-k
e e a e a
ind´pendants,... ?
e
– Qualit´ de la solution : Pour un probl`me d’optimisation, l’esp´rance
e e e
du poids de la solution produite pour une instance donn´e, o` la moyenne
e u
est prise sur la suite de bits al´atoires. Quelle est la valeur du quotient
e
de l’esp´rance du poids de la solution construite sur le poids optimal, en
e
fonction de la taille de l’instance du probl`me ?
e
Les algorithmes randomis´s sont plus puissants que les algorithmes d´-
e e
terministes, car tout algorithme d´terministe est un algorithme randomis´,
e e
qui choisit d’ignorer la suite de bits al´atoires. On peut donc en esp´rer de
e e
meilleures performances. Les algorithmes randomis´s sont souvent bien plus
e
simples ` ´crire et ` analyser que leurs ´quivalents d´terministes.
ae a e e
La section 5 pr´sente un probl`me qu’un algorithme randomis´ r´sout beau-
e e e e
coup vite que n’importe quel algorithme d´terministe. La section 6 pr´sente
e e
une 1/2-approximation randomis´e pour le probl`me de la coupe maximum.
e e
Cette section aborde ´galement un point important : la d´randomisation, i.e.
e e
une m´thode pour ´liminer le recours ` l’al´atoire dans un algorithme rando-
e e a e
mis´, et obtenir une 1/2-approximation d´terministe et non randomis´e.
e e e
11
12. 5 ´
Evaluation d’un arbre de jeu Bool´en
e
D´finition 7 On appelle arbre de jeu Bool´en Tk , l’arbre binaire complet
e e
de profondeur 2k, dont les nœuds internes ` distance paire de la racine sont
a
´tiquet´s “ET”, et les noeuds internes ` distance impaire, “OU”.
e e a
Probl`me 4 (Arbre de jeu Bool´en) Une instance du probl`me est un
e e e
arbre de jeu Tk muni de valeurs Bool´ennes sur ses n = 2
e 2k = 4k feuilles.
Le but est d’´valuer Tk , c’est-`-dire de calculer la valeur de la racine, sachant
e a
que la valeur d’un nœud est la conjonction ou la disjonction (suivant l’´tiquette
e
du nœud) des valeurs de ses enfants.
Voici une instance du probl`me pour k = 2 :
e
ET
OU OU
ET ET ET ET
OU OU OU OU OU OU OU OU
0 1 1 0 0 0 1 0 1 1 0 0 1 0 0 1
´
Exercice 5.1 Evaluez l’arbre ci-dessus.
Imaginons qu’obtenir la valeur d’une feuille soit une op´ration tr`s coˆteuse.
e e u
Nous mesurerons donc les performances de chaque algorithme par le nombre
de feuilles visit´es sur la pire instance.
e
Th´or`me 9 Pour tout algorithme d´terministe ´valuant les arbres de jeu
e e e e
Bool´ens Tk , il existe une instance de Tk telle que l’algorithme inspecte toutes
e
les n = 4k feuilles.
Exercice 5.2 Prouvez ce th´or`me.
e e
♦
Nous allons d´montrer qu’il existe un algorithme randomis´ ´l´mentaire, qui
e eee
visite beaucoup moins de feuilles quelque soit l’instance, i.e., ind´pendamment
e
de l’instance. Il ne s’agit pas d’analyse en moyenne sur les instances, mais
12
13. d’une analyse en moyenne pour une instance donn´e ; la moyenne est prise
e
sur la suite de bits al´atoires donn´e en entr´e.
e e e
L’algorithme ´value l’arbre r´cursivement, mais choisit au hasard quel sous-
e e
arbre fils, il va ´valuer en premier : si le premier sous-arbre s’´value ` 1 et que
e e a
l’´tiquette du nœud est “OU”, alors il renvoie 1, sans ´valuer le second ; si le
e e
premier sous-arbre s’´value ` 0 et que l’´tiquette est “ET”, alors il renvoie 0,
e a e
sans ´valuer le second ; dans tous les autres cas, il ´value le second et en revoie
e e
la valeur.
Algorithme 4 (Arbre de jeu Bool´en) e
´
1. Proc´dure Evalue nœud(x) :
e
Si x est une feuille, alors Retourner la valeur de x,
sinon :
Tirer uniform´ment r ∈ {0, 1}.
e
Si r = 1,
´
alors v ← Evalue nœud(fils gauche de x),
´
sinon v ← Evalue nœud(fils droit de x).
Si (´tiquette(x)=“OU” et v = 1) ou (´tiquette(x)=“ET” et v = 0),
e e
alors Retourner v,
sinon si r = 1,
´
alors Retourner Evalue nœud(fils droit de x),
´
sinon Retourner Evalue nœud(fils gauche de x).
´
2. Evalue nœud(racine).
Th´or`me 10 Pour toute instance de Tk , l’esp´rance du nombre de feuilles
e e e
inspect´es par l’algorithme randomis´ 4 est major´e par 3k = nlog3 2 = n≈0.793 .
e e e
Preuve. Notons Yk l’esp´rance du nombre de feuilles visit´es pour un arbre
e e
Tk . Proc´dons par r´currence sur k.
e e
Notre algorithme visite donc en moyenne nlog3 2 = n≈0.793 feuilles, au lieu de
n pour n’importe quel algorithme d´terministe. On peut d´montrer qu’aucun
e e
algorithme randomis´ ne peut faire mieux. La preuve utilise une adaptation du
e
th´or`me min-max de Von Neumann : Yao remarqua que le th´or`me de Von
e e e e
13
14. Neumann peut ˆtre adapt´ au cadre des algorithmes randomis´s, et dit alors
e e e
que “l’esp´rance du temps de calcul sur la pire instance du meilleur algorithme
e
randomis´ est ´gale au temps de calcul du meilleur algorithme d´terministe
e e e
pour la pire des distributions d’instances”. Ainsi en choisissant judicieusement
une distribution pour les valeurs des feuilles des arbres Tk et en d´terminant
e
les performances du meilleur algorithme d´terministe pour cette distribution,
e
nous obtenons le th´or`me suivant :
e e
Th´or`me 11 Pour tout algorithme randomis´, il existe une instance Tk pour
e e e
laquelle l’esp´rance du nombre de feuilles visit´es est Ω(3k ).
e e
6 Le probl`me de la coupe maximum
e
Soit G = (V, E) un graphe non-orient´, muni d’une fonction de poids sur
e
ses arˆtes.
e
D´finition 8 Une coupe de G est un ensemble d’arˆtes C ⊂ E, tel qu’il
e e
existe une partition des sommets en deux ensembles S et V S, telle que
C soit l’ensemble des arˆtes entre les deux composantes de la partition, i.e.,
e
C = {uv ∈ E : u ∈ S et v ∈ V S}. Le poids d’une coupe est la somme des
poids des arˆtes qui la composent.
e
e ´
Probl`me 5 (Coupe maximum (Max-Cut)) Etant donn´ un graphe non-
e
orient´ G avec des poids sur les arˆtes, trouver une coupe de G de poids
e e
maximum.6
Ce probl`me est N P -difficile. Nous recherchons donc des algorithmes d’ap-
e
proximation.
6.1 Un algorithme randomis´ pour la coupe maximum
e
Commen¸ons par d´finir la notion de K-approximation randomis´e. Il existe
c e e
essentiellement deux types d’algorithmes d’approximation randomis´s.
e
D´finition 9 Un algorithme A est dit Las Vegas si son temps d’ex´cution
e e
d´pend de la suite de bits al´atoires, mais pas son r´sultat. Un algorithme A
e e e
est dit Monte-Carlo si son r´sultat d´pend de la suite de bits al´atoires, mais
e e e
pas son temps de calcul. On dira qu’un algorithme randomis´ est polynomial
e
si l’esp´rance de son temps de calcul est polynomial en la taille de l’instance
e
(cette d´finition s’applique aux deux types d’algorithmes).
e
D´finition 10 Soit A un algorithme randomis´ polynomial pour un probl`me
e e e
de minimisation Π. On appelle facteur d’approximation randomis´ de A, la
e
borne sup´rieure sur toutes les instances I, du quotient de l’esp´rance du poids
e e
E[A(I)] de la solution construite par A pour I sur le poids optimal OPT(I)
d’une solution pour I : sup{E[A(I)]/ OPT(I) : I ∈ Π}. Si ce facteur est major´ e
par une constante K, on dit que A est une K-approximation randomis´e. Si la
e
majoration Kn du facteur d’approximation d´pend de la taille n de l’instance
e
consid´r´e, on dit que A est une Kn -approximation randomis´e.
ee e
Exercice 6.1 D´finissez les notions de K-approximation randomis´e et Kn -
e e
approximation randomis´e pour un probl`me de maximisation Π :
e e
6
Maximum cut, en anglais.
14
15. ♦
Voici un algorithme randomis´ ´l´mentaire pour la coupe maximum.
eee
Algorithme 5 (Coupe max – 1/2-approximation randomis´e)
e
1. S ← ∅ et S ← ∅.
2. Pour chaque sommet u ∈ V , placer ` pile-ou-face u dans S ou dans S .
a
3. Retourner la coupe C d´finie par la partition (S, S ).
e
Th´or`me 12 L’algorithme 5 est une 1/2-approximation randomis´e pour le
e e e
probl`me de la coupe maximum.
e
Preuve.
Exercice 6.2 Quel majorant de OPT avons-nous utilis´ dans cette analyse ?
e
♦
Exercice 6.3 On appelle graphe biparti tout graphe G = (X ∪ Y, E) non-
orient´, tel que X ∩ Y = ∅ et tel que pour tout e ∈ E, e = xy avec x ∈ X et
e
y ∈ Y . Montrez que l’ensemble des graphes bipartis est une famille d’instances
critiques pour cet algorithme.
♦
6.2 Un paradigme de d´randomisation
e
Il existe des liens entre certains algorithmes randomis´s et certains algo-
e
rithmes d´terministes. Ces liens peuvent s’´tablir en montrant que l’un est
e e
une version randomis´e ou d´randomis´e de l’autre.
e e e
Commen¸ons par quelques rappels sur les probabilit´s.
c e
D´finition 11 La probabilit´ d’un ´v´nement B conditionn´e par l’´v´nement
e e e e e e e
A est d´finie par :
e
Pr{A ∩ B}
Pr{B|A} =
Pr{A}
15
16. L’esp´rance d’une variable al´atoire discr`te X conditionn´e par l’´v´nement
e e e e e e
A est d´finie par :
e
E[X|A] = x Pr{X = x|A}
x
Propri´t´ 13 Soient X et Y deux variables al´atoires discr`tes :
e e e e
E[X] = Pr{Y = y}E[X|Y = y] ≤ max E[X|Y = y]
y
y
Pla¸ons-nous dans la perspective d’un probl`me de maximisation. Une
c e
technique classique de d´randomisation est la m´thode de l’esp´rance condi-
e e e
tionnelle. Il s’agit de remplacer chaque d´cision al´atoire par « le meilleur
e e
choix al´atoire ». Repr´sentons l’ex´cution d’un algorithme randomis´ par
e e e e
un arbre de d´cision dont les nœuds sont les tirages al´atoires et les fils
e e
sont les diff´rentes ex´cutions possibles suivant le r´sultat du tirage al´atoire.
e e e e
´
Etiquetons chaque nœud par l’esp´rance de la valeur du r´sultat, conditionn´e
e e e
par les r´sultats des tirages al´atoires pr´c´dents. Pour chaque nœud x de
e e e e
l’arbre, l’esp´rance conditionnelle en x est la moyenne des esp´rances condi-
e e
tionnelles de ses fils. Ainsi, le fils ayant la plus grande esp´rance conditionnelle
e
a une esp´rance sup´rieure ` celle de son p`re. C’est donc, dans la perspective
e e a e
d’un probl`me de maximisation, le « meilleur choix al´atoire » !
e e
Ainsi, lorsqu’il est possible de calculer, en temps polynomial, l’esp´rance de
e
la valeur du r´sultat, conditionn´e par les d´cisions pr´cedentes, on peut trans-
e e e e
former un algorithme randomis´ en un algorithme glouton qui remplace chaque
e
tirage al´atoire par le choix maximisant l’esp´rance conditionnelle de la valeur
e e
du r´sultat. Par r´currence imm´diate, la valeur du r´sultat de l’algorithme
e e e e
glouton sera sup´rieure ` l’esp´rance de la valeur du r´sultat de l’algorithme
e a e e
randomis´. e
La figure suivante illustre la m´thode : en chaque sommet, l’algorithme
e
randomis´ va ` droite ou ` gauche ` pile-ou-face ; l’esp´rance conditionnelle
e a a a e
des nœuds est inscrite au centre de chaque nœud ; la valeur des feuilles est
celle du r´sultat de l’ex´cution de cette branche. La branche dessin´e en gras
e e e
est celle suivie par l’algorithme glouton maximisant l’esp´rance conditionnelle,
e
elle conduit ` une solution valant 20$, qui n’est pas la solution optimale (40$)
a
mais qui est sup´rieure ` l’esp´rance de l’algorithme randomis´ (14$).
e a e e
14$
13$ 15$
4$ 22$ 10$ 20$
4$ 40$
Plusieurs remarques. Cette m´thode ne permet pas de trouver la solution
e
optimale : sur l’exemple ci-dessus, l’algorithme glouton trouve une solution
valant 20$, alors que l’optimum est 40$. Ensuite, nous obtenons un algorithme
16
17. glouton polynomial, seulement si l’esp´rance conditionnelle se calcule en temps
e
polynomial.
Exercice 6.4 Reprendre la m´thode de l’esp´rance conditionnelle dans le
e e
cadre d’un probl`me de minimisation.
e
♦
Plutˆt que de th´oriser plus longuement, mettons cette m´thode en pratique
o e e
sur notre algorithme randomis´ pour la coupe maximum.
e
6.3 Un algorithme glouton pour la coupe maximum
Pour u ∈ V et A ⊂ V , notons E(u, A) l’ensemble des arˆtes entre u et A :
e
E(u, A) = {e ∈ E : e = uv et v ∈ A}.
Commen¸ons par ´valuer l’esp´rance du poids de la coupe finale condi-
c e e
tionn´es par les d´cisions pr´c´dentes.
e e e e
´
Lemme 14 Etant donn´s S, S ⊂ V dans l’algorithme randomis´ 5, pour tout
e e
u ∈ V (S ∪ S ),
E[poids de la coupe|u ∈ S, S, S ]
= E[poids de la coupe|u ∈ S , S, S ] + poids(E(u, S )) − poids(E(u, S)).
Preuve.
Nous en concluons que l’algorithme glouton naturel suivant est la version
d´randomis´e de l’algorithme randomis´ 5 ! Ces deux algorithmes sont donc
e e e
“les mˆmes”, ce qui n’´tait pas ´vident au premier regard.
e e e
Algorithme 6 (Coupe maximum – 1/2-approximation gloutonne)
1. S ← ∅ et S ← ∅.
2. Pour chaque sommet u ∈ V , placer u dans la composante, S ou S , qui
maximise le poids de la coupe courante entre S et S .
3. Retourner la coupe C d´finie par la partition (S, S ).
e
Par la m´thode de l’esp´rance conditionnelle, la propri´t´ suivante est un
e e ee
un corolaire direct du th´or`me 12.
e e
Corollaire 15 L’algorithme glouton 6 est une 1/2-approximation.
17
18. Exercice 6.5 Proposez une preuve directe du facteur d’approximation de l’al-
gorithme glouton 6.
♦
On pourrait penser que l’algorithme glouton d´randomis´ est bien meilleur
e e
que l’algorithme randomis´. L’exercice suivant d´montre qu’il n’en est rien.
e e
Exercice 6.6 Montrez que le graphe suivant d´finit une famille d’instances
e
critiques pour l’algorithme glouton 6, pour peu qu’il commence par les deux
sommets blancs.
...
♦
Exercice 6.7 Pouvez-vous encore poursuivre la d´terminisation de l’algo-
e
rithme 6 ? Quel serait l’algorithme obtenu ? Analysez-le et exhibez une famille
d’instances critiques.
♦
6.4 Exercice : Algorithme randomis´ et d´randomis´ pour Max-
e e e
SAT
e ´
D´finition 12 Etant donn´es n variables Bool´ennes x1 , . . . , xn , on appelle
e e
litt´ral, une variable xi ou sa n´gation xi . Une clause est une disjonction de
e e
litt´raux : par exemple, x1 ∨ x2 ∨ x3 . La taille d’une clause est son nombre de
e
litt´raux. On ´limine les clauses triviales (e.g., x1 ∨ x2 ∨ x1 ) et les litt´raux
e e e
redondants (e.g., x1 ∨ x3 ∨ x1 ).
18
19. e ´
Probl`me 6 (Satisfaction maximum (Max-SAT)) Etant donn´ un en- e
semble de m clauses pond´r´es sur n variables Bool´ennes x1 , . . . , xn , trouver
ee e
une instanciation des xi qui maximise le poids total des clauses satisfaites.7
On propose l’algorithme randomis´ na¨ suivant :
e ıf
Algorithme 7 (Max-SAT – 1/2-approximation randomis´e)
e
1. Pour chaque variable xi , tirez la valeur de xi uniform´ment dans {0, 1}.
e
2. Retourner l’instanciation calcul´e.
e
`
Lemme 16 A la fin de l’algorithme 7, pour toute clause c, si taille(c) = k,
alors Pr{c est satisfaite} = 1 − 2−k .
Exercice 6.8 Prouvez ce lemme.
♦
Th´or`me 17 L’algorithme 7 est une 1/2-approximation randomis´e pour le
e e e
probl`me de la satisfaction maximum.
e
Exercice 6.9 Prouvez ce th´or`me.
e e
♦
Propri´t´ 18 Si toutes les clauses sont de tailles sup´rieures ` k, alors l’al-
e e e a
gorithme 7 est une (1 − 2−k )-approximation randomis´e.
e
Exercice 6.10 Prouvez cette propri´t´.
ee
♦
Exercice 6.11 Proposez un algorithme pour calculer, en temps polynomial,
l’esp´rance du poids de l’instanciation conditionn´e par les variables d´j` in-
e e ea
tanci´es. En d´duire un algorithme glouton obtenu par d´randomisation de
e e e
l’algorithme 7. Exhibez des familles d’instances critiques pour chacun de ces
algorithmes.
7
Maximum satisfaction, en anglais.
19
20. ♦
R´f´rences
ee
[1] T. Cormen, C. Leiserson, et C. Stein. Introduction to algorithms, 2`mee
Vijay V. Vazirani
´dition. MIT press, 2001, ISBN 0-262-03293-7. Traduit en fran¸ais : Dunod,
e c
Collection IRIS 2002, ISBN 2-100-03922-9.
[2] R. Motwani et P. Raghavan. Randomized algorithms. Cambrige university
press, 1995, ISBN 0-521-47465-5.
[3] V. V. Vazirani. Approximation algorithms, 2`me ´dition. Springer, 2003,
e e
ISBN 3-540-65367-8.
[4] V. V. Vazirani. Algorithmes d’approximation. Traduction de [3] par N.
Algorithmes Schabanel. Springer, ` paraˆ en d´cembre 2003.
a ıtre e
d’approximation
Traduction: Nicolas Schabanel
20