You are on page 1of 11

I04

PREUVE COMMUNE DE TIPE 2014 - Partie D

TITRE :

Algorithmes approximatifs
Temps de prparation : ..2 h 15 minutes
Temps de prsentation devant les examinateurs : .10 minutes
Dialogue avec les examinateurs : ...10 minutes
GUIDE POUR LE CANDIDAT :
Le dossier ci-joint comporte au total : 11 pages
Document principal (11 pages, dont celle-ci) ;
Travail suggr au candidat :
Faire un expos synthtique, en expliquant le principe des algorithmes approximatifs ainsi que la
justification de leur utilit en cas de problmes difficiles. Pour ce faire, vous pouvez utiliser les
exemples proposs dans le dossier, en ajoutant vos propres arguments et clairer un peu plus les
passages qui ne vous semblent pas vidents. Les examinateurs apprcieront, le cas chant, vos
propres exemples dment justifis.
Attention : si le candidat prfre effectuer un autre travail sur le dossier, il lui est expressment
recommand den informer le jury avant de commencer lexpos.
CONSEILS GENERAUX POUR LA PREPARATION DE L'EPREUVE :
* Lisez le dossier en entier dans un temps raisonnable.
* Rservez du temps pour prparer l'expos devant les examinateurs.
-

Vous pouvez crire sur le prsent dossier, le surligner, le dcouper mais tout
sera remettre aux examinateurs en fin doral.
En fin de prparation, rassemblez et ordonnez soigneusement TOUS les
documents (dossier, transparents, etc.) dont vous comptez vous servir pendant
loral. En entrant dans la salle d'oral, vous devez tre prt dbuter votre expos.
A la fin de l'oral, vous devez remettre aux examinateurs le prsent dossier dans
son intgralit. Tout ce que vous aurez prsent aux examinateurs pourra tre
retenu en vue de sa destruction.

IL EST INTERDIT DE SORTIR LE DOSSIER DU SITE DE LEPREUVE

Algorithmes approximatifs
1. Introduction.

10

La combinatoire est la branche des mathmatiques qui tudie les structures discrtes, composes dun nombre fini dlments. Les questions classiques concernent lexistence ou le dnombrement : tant donn un certain ensemble, existe-t-il des lments de cet ensemble satisfaisant des
proprits ou contraintes donnes? et le cas chant combien y en a-t-il ?. Une autre question
plus rcente est de savoir quelle est la meilleure structure pour un critre donn ?.
Trivialement, une application quelconque dun ensemble fini E dans admet son maximum
(minimum) et pour cette raison trs souvent les thoriciens nattachaient pas beaucoup dimportance
la combinatoire.
De manire gnrale, le schma suivant est typique des problmes doptimisation combinatoire : on se donne un ensemble fini E et on sintresse une partie de P(E), famille des sousensembles de E. Si E compte n lments, P(E) en a 2n. Il est clair que la procdure triviale de recherche dune solution par numration, thoriquement possible, serait dune efficacit dsastreuse.

15

La distinction entre lexistence dobjets mathmatiques et leur construction est relativement


rcente. Le souci de prendre en considration le temps dexcution des algorithmes napparat que
dans les annes 19501960, dans plusieurs travaux, dont ceux de John von Neumann bien aprs les
travaux dAlan Turing, le concepteur du premier modle mathmatique de lordinateur. Lide de la
caractrisation des algorithmes efficaces remonte Jack Edmonds (1965).

20

Si lon peroit assez bien ce que fait un algorithme, on a plus de difficult voir ce quil est.
Dans les annes 30, le mathmaticien Alan Turing parvient formaliser lide intuitive quun algorithme est une procdure que lon peut excuter mcaniquement, sans rflchir. Il modlisa un processus de calcul par une machine, simple mais prcise, compose dun ruban infini divis en cases
et dune tte capable deffectuer seulement quatre actions lmentaires : quand la tte accde une
case elle peut : lire le contenu, crire un caractre en effaant lancien, se dplacer gauche, se
dplacer droite. Ainsi on peut ddier une machine toute procdure dcomposable en une squence des dites actions. La ralisation effective dune telle machine nest pas essentielle : une machine de Turing est une formulation mathmatique dun algorithme.

25

30

Pour ne pas alourdir le prsent dossier, nous proposons de remplacer la dfinition rigoureuse
dun algorithme, par une autre, suffisamment prcise pour le propos que nous voulons dvelopper :
DEFINITION 1 : Un algorithme de rsolution dun problme P donn est une procdure, dcomposable en oprations lmentaires, transformant une chane de caractres reprsentant les
donnes de nimporte quel exemple (I) du problme P en une chane de caractres reprsentant les
rsultats de (I).

35

40

Ainsi, nous nattendons pas dun algorithme quil rsolve le problme P gnral en termes de
paramtres littraux mais seulement, chaque fois que les donnes du problme ont t fixes
(linstance I), quil soit capable de donner la solution du cas correspondant.
Pour mesurer lefficacit dun algorithme donn, nous allons tenter dtablir une relation entre
la dure dexcution dudit algorithme, exprime en nombre dopration lmentaires, et la taille de
lexemple trait, exprime en nombre de caractres ncessaires pour coder les donnes de lexemple
trait.
1

On dit quun algorithme est polynomial si son comportement se dcrit de la faon suivante :
pour des donnes qui noccupent pas plus de n octets de mmoire dun ordinateur, lalgorithme
ncessite moins de cnk oprations lmentaires (c et k sont des constantes).
45

Cette dfinition impose seulement la manire dont le temps dexcution augmente en fonction
des donnes. Le terme algorithme polynomial vient du fait que la fonction cnk est un polynme
en n.
Un algorithme polynomial est dit efficace. Le problme pouvant tre rsolu par un tel algorithme est dit facile.
Ce choix de la fonction polynomiale tait fait principalement pour deux raisons :

50

1 la fonction polynomiale crot moins vite que toute fonction exponentielle (cest--dire
que si a >1 on ne peut pas trouver b tel que an < nb) ;
2 la classe de polynmes est ferme pour la composition : un polynme dun polynme
est un polynme.
Lensemble des problmes faciles forme une classe note P (comme polynomiale).

55

Nanmoins, la dfinition propose de lalgorithme polynomial pose deux problmes :


a) Quelles sont les oprations lmentaires quil faut prendre en compte ?
b) Quel codage des donnes permet de mesurer la taille de lexemple trait ?

60

65

Ad a) : on peut comptabiliser les quatre oprations lmentaires, les comparaisons, etc., mais
compte tenu de la proprit 2 ci-dessus on peut dnombrer les oprations de base de lordinateur
(affectation un registre, oprations sur les bits dun mot ) car, dans cette numration, une opration lmentaire sera remplace par une fonction polynomiale du nombre de bits ncessaire pour
coder les donnes. Cependant ce sont les oprations effectues quil faut comptabiliser et non les
instructions dun langage algorithmique. Dans les langages volus il est parfois difficile de dnombrer les oprations effectues par un algorithme rcursif.
Ad b) : un codage des donnes sera raisonnable si les nombres ne sont pas cods sous forme
unaire1. Pour stocker le nombre entier N il suffit de log2(N+1) bits si on utilise le codage binaire2
(le symbole x dsigne le plus petit entier suprieur ou gal x). Ainsi on considre quun entier
possde dune part sa valeur (= N) et dautre part sa taille (= log2(N+1) ). Mme en utilisant le

70

formalisme de la machine de Turing on ne sait pas donner de dfinition plus prcise du codage raisonnable.
Les trois exemples suivants daddition de deux entiers vont illustrer limportance du codage
choisi. Les donnes sont entres sous la forme : A ; B. Pour coder, on va utiliser 0, 1 et un sparateur ; en supposant que chacun de ces symboles occupe une case mmoire.

75

EXEMPLE 1: Codage binaire, algorithme usuel (laddition bit par bit) : la taille des donnes est
n = log2(A+1) + log2(B+1) + 1; le nombre dopration est born par 3n : une addition par bit ou
deux, sil y une retenue, et une comparaison de la somme 1; cet algorithme est donc polynomial.
1

Le codage unaire reprsente tout entier naturel n par n occurrences de 1 suivies par un 0 faisant office de dlimiteur.
Dans un systme de numration utilisant la base 2, chaque entier naturel n est reprsent par une squence de bits ( binary
digits ) cest--dire une squence de chiffres binaires 0 ou 1, cela correspond au codage binaire de n.
2

EXEMPLE 2 : Codage binaire, algorithme compter sur ses doigts :


la taille de donnes est n = log2(A+1) + log2(B+1) + 1 mais lalgorithme propos est :
tant que A > 0 faire
AA1; BB+1
fin tant que

80

A la fin de lalgorithme la somme cherche vaut B. Le nombre dopration f(n) = A et, dans le plus
mauvais cas, si A = 2k et B = 0, cet algorithme nest pas polynomial.
EXEMPLE 3 : Codage unaire, algorithme compter sur ses doigts :

85

la taille des donnes est n = A+B+1; le nombre doprations est born par n et notre algorithme,
prcdemment exponentiel, devient polynomial suite au codage des donnes non raisonnable.

2. Problmes faciles.
Les problmes faciles existent. En voici un exemple :
90

EXEMPLE 4: On dispose de n tuyaux avec les longueurs b1, b2,, bn en plastique bleu pour leau
froide et de n tuyaux avec les longueurs r1, r2,, rn en plastique rouge pour leau chaude. On doit
les vendre par paire (rouge, bleu) mais il faut ajuster les longueurs, cest--dire raccourcir le tuyau
plus long. Le bout coup sera perdu. Comment coupler (ri , bj) pour minimiser la longueur totale des
bouts coups (longueur des chutes) ?

95

Ce problme est facile car il existe un algorithme efficace pour construire une solution optimale. En supposant que b1 b2 bn et r1 r2 rn nous allons prouver que le couplage
{(1;1), (2;2),, (n;n)} est optimal, cest--dire que :
|b1 r1| + |b2 r2| + + |bn rn| = min {|b1 r (1)| + |b2 r (2)| + + |bn r (n)|},

100

o est une permutation de (1, 2,, n). Il est facile de vrifier que lnonc est vrai pour n = 2. En
effet, notons = max{b1; r1} et = min{b2; r2}; si , alors
|b1 r1| + |b2 r2| = |b1 r2| + |b2 r1|,
sinon
|b1 r1| + |b2 r2| = |b1 r2| + |b2 r1| 2( ) < |b1 r2| + |b2 r1|.

105

110

115

Quand n 2 et le couplage est diffrent de {(1;1), (2;2),, (n;n)} alors il existe deux couples
inverss, cest--dire deux couples (i ; j ) et (k ; l ) avec i < k et j > l. Le nouveau couplage o les
couples (i ; j ) et (k ; l ) ont taient remplacs par (k ; j ) et (i ; l ) aura la longueur totale de chutes
infrieure ou gale la prcdente, comme le montre le raisonnement pour n = 2. En rptant cette
procdure tant quil existe des couples inverss, on voit que le couplage final {(1;1), (2;2),, (n;n)}
a la longueur totale de chutes infrieure ou gale celle du couplage initial.
Lalgorithme prcdent incite dfinir une famille dalgorithmes appels gloutons. Ce nom a
t propos par J. Edmonds en 1967 (greedy en anglais), car il consiste manger les lments
de lensemble considr dans un certain ordre sans jamais remettre en question un choix dj effectu (ce qui est mang est mang).
Supposons E = {e1, e2, , en} et que la famille S P(E) de solutions admissibles est hrditaire, cest--dire si A S et A A alors A S.
3

Le principe de lalgorithme glouton peut tre prsent de la manire suivante :


ALGORITHME GLOUTON :

120

125

X
pour i 1 n faire
si X {ei} S alors X X {ei}
fin si
fin pour
fin algorithme
Pour quun algorithme glouton soit efficace il faut que le test (X {ei} S ?) puisse tre ralis simplement et il faut que lordre de parcours des lments de E soit tel que lalgorithme glouton
donne une solution optimale, ce qui nest pas toujours le cas.

3. Problmes difficiles.
Pour certains problmes, bien connus et avec des applications industrielles trs importantes,
nous ne savons pas dmontrer quils sont faciles. En voici trois exemples :
130

135

140

145

EXEMPLE 5: le problme du VOYAGEUR DE COMMERCE. Un voyageur de commerce ayant n


villes visiter souhaite tablir une tourne qui lui permette de passer une seule fois dans chaque
ville pour finalement revenir son point de dpart, ceci en minimisant la longueur du chemin parcouru.
On voit aisment que beaucoup de problmes quotidiens sont quivalents ce problme, par
exemple les tournes du facteur ou le ramassage des ordures mnagres.
EXEMPLE 6 : le problme du SAC A DOS. On dispose de n objets ayant chacun un poids pi et une
valeur vi (i = 1, 2,, n). Un randonneur doit effectuer une slection (dterminer un sous-ensemble
de ces objets) dont le poids total soit infrieur ou gal une valeur donne (le poids maximum quil
peut supporter) et dont la somme des valeurs soit maximum. Ce problme doit son nom au scnario
qui est souvent utilis pour lintroduire, mais, en ralit, il est assez mal adapt la prparation des
randonnes, car il ne tient pas compte des utilits croises, cest--dire du fait que le dentifrice sans
la brosse--dents et la bote de sardines sans louvre-bote sont de faible utilit. Tout ceci nempche
pas ce problme davoir de nombreuses applications pratiques.
En associant chaque objet i (i =1, 2,, n) une variable qui prend la valeur 1 si le ime objet
fait partie de la slection et 0 sinon. Le problme du sac dos se formule ainsi :
Maximiser :

v1 x1 + v2 x2 + + vn xn
p1 x1 + p2 x2 + + pn xn b

sous :
xi {0, 1} i = 1, 2,, n.
150

EXEMPLE 7: le problme de la MISE EN BOITE . Trouver le rangement le plus conomique


possible pour un ensemble darticles dans des botes. Dans le problme classique, les donnes sont :
un nombre infini de botes de taille 1 et une liste 1, 2, , n darticles i de taille ai (correspondant
une fraction de la taille dune bote). On cherche trouver le rangement valide (la somme des tailles
des articles affects une bote doit tre infrieure ou gale 1) pour tous ces articles qui minimise
le nombre de botes utilises.
4

Essayons par exemple, dappliquer lalgorithme glouton pour le problme du sac dos sui-

155
vant :

Maximiser :
sous :

160

165

170

175

180

185

190

10x1 + 8x2 + 5x3


6x1 + 5x2 + 4x3 9
xi {0, 1} i = 1, 2, 3.

Supposons un ordre raisonnable donnons la priorit aux objets suivant la valeur du ratio
/poids vi/pi . On obtient la solution pas fameuse : x1 = 1, x2 = x3 = 0 de valeur 10 pendant que la
solution optimale a la valeur 13. Ainsi on voit bien quun algorithme glouton est une approche simpliste qui est loin de donner toujours une solution optimale.
utilit

Mais de quels arguments pouvons-nous disposer pour affirmer quun problme est difficile ?
Le fait quon ne connaisse pas aujourdhui dalgorithme efficace pour rsoudre ce problme provient-il de notre inaptitude en dcouvrir un ou signifie-t-il quun tel algorithme ne peut exister car
le problme est intrinsquement complexe ?
Pour comparer les difficults des diffrents problmes combinatoires, on peut essayer de
transformer un problme en un autre. On dit quon peut transformer le problme doptimisation P
en un autre problme doptimisation P, sil existe un algorithme polynomial qui transforme les
donnes de chaque instance (exemple) I de P en donnes dune instance (exemple) I de P de faon
telle que lon puisse toujours dduire facilement la solution optimale de I si on connat la solution
optimale de linstance transforme I. Il nest pas ncessaire datteindre toutes les instances de P;
en revanche, il est indispensable de transformer toutes les instances de P en instances de P et ceci
sans connatre la solution optimale. Il faut souligner quon sintresse seulement aux transformations efficaces, cest--dire o la taille des donnes du problme transform est borne par une fonction polynomiale de la taille des donnes du problme initial. Si cette transformation existe on va
dire que le problme P se rduit polynomialement au problme P. En consquence, sil existe un
algorithme polynomial pour rsoudre le problme P, alors il existe un algorithme polynomial pour
rsoudre le problme P. En attendant la dcouverte ventuelle de cet algorithme polynomial pour
P, lexistence dune rduction polynomiale de P en P, nous permet de dire que le problme P est
au moins aussi difficile que P.
Pour illustrer le concept de rduction sur des exemples, nous allons utiliser les termes de la
thorie des graphes. Un graphe G est un couple (X, E) o X = {x1, x2,..., xn} est un ensemble fini non
vide dlments appels sommets de G (parfois nuds ou points) et E = {e1, e2, ..., em} est une famille de paires (non ordonnes) dlments de X, appels artes de G. Pour une arte e = {x, y}, x et
y sont ses extrmits. Si larte {x, y} existe on dit que les sommets x et y sont adjacents. Un sommet xX et une arte eE sont incidents si x est une extrmit de e. Le degr d(x) dun sommet x
est le nombre dartes incidentes x.
On dit que le graphe H = (Y, F) est un sous-graphe du graphe G = (X, E) induit par Y lorsque
Y X et F est form de la totalit des artes de E ayant leurs deux extrmits dans Y. On note G x
le sous-graphe induit par X {x}.
Une chane de longueur k est une squence alterne de sommets et dartes = (x0, e1, x1, e2, ...,
xk1, ek, xk) telle que, pour tout i, les extrmits de ei sont xi1 et xi.

195

200

Etant donns un graphe G = (X ; E) et deux sommets particuliers a et b, appelons P1 le problme de trouver la plus courte chane reliant a et b (cest--dire une chane qui commence en a et
finie en b, et pour laquelle la longueur k est la plus petite possible).
On obtient un graphe orient G = (X ; A) lorsque, pour toute arte e E dun graphe non orient
G = (X ; E) ses extrmits sont ordonnes. Chaque arte se transforme en un arc qui est un couple
de sommets (initial et terminal). Si a = (x, y) est un arc, on dit que y est un successeur de x et x
est un prdcesseur de y.
Un chemin de longueur k est une squence alterne de sommets et darcs = (x0, e1, x1,
e2, ..., xk1, ek, xk ) telle que, pour tout i, ei admet xi1 comme sommet initial et xi comme extrmit
terminale.

205

210

Etant donns un graphe orient G = (X ; A) et deux sommets particuliers a et b, appelons P2 le


problme de trouver le plus court chemin de a b.
Sans rsoudre les problmes P1 et P2 nous allons rduire le problme P1 au P2 : chaque
graphe non orient G = (X ; E) on va associer un graphe orient G = (X ; A) en remplaant chaque
arte e = {x, y} par deux arcs opposs a1 = (x, y) et a2 = (y, x). Cette transformation est polynomiale
car le nouveau graphe a le mme nombre de sommets et le nombre darcs est le double du nombre
dartes. Ainsi chaque graphe non orient est transform en un graphe orient de faon telle que :
si, dans le graphe original (non orient), il existe une chane de longueur k reliant a et b
alors il existe un chemin de longueur k de a b dans le graphe transform (orient) ;

215

sil existe un chemin de longueur k de a b dans le graphe transform alors il existe une
chane reliant a et b dans le graphe original (non orient).
La transformation propose, permet didentifier facilement une plus courte chane dans le
graphe original (non orient) quand on connait le plus court chemin dans le graphe transform.

220

Sil existe un algorithme polynomial pour rsoudre P2, nous avons, grce la rduction prsente ci-dessus, un algorithme polynomial pour P1. Nous dirons que P2 est au moins aussi difficile
que P1.
Voici un autre exemple. On appelle stable un ensemble de sommets deux deux non adjacents (voir la figure 1).
Le nombre maximum de sommets dun stable dsign par [alpha] (G ) sappelle nombre de
stabilit.

225

Appelons STABLEMAX le problme doptimisation combinatoire qui consiste dterminer le


nombre de stabilit dun graphe donn (cest--dire dterminer la plus grande taille dun stable).

230
Fig.1 : Un stable dun graphe G (ici (G ) = 3).

Fig.2 : Un transversal dun graphe G (ici (G ) = 4 ).

235

On dnote par T X un ensemble transversal cest--dire un ensemble de sommets tel que


toute arte de G ait au moins une de ses extrmits dans T (voir la figure 2). Le nombre minimum
de sommets dun transversal dsign par [tau] (G ) sappelle le nombre de transversalit. Appelons
TRANVERSALMIN le problme doptimisation combinatoire qui consiste dterminer le nombre de
transversalit dun graphe donn (cest--dire dterminer la plus petite taille dun transversal).
On peut dduire directement des dfinitions les proprits suivantes :

240

245

250

PROPRIETE 1: Si T X est un transversal, alors X \ T est un stable.


La rciproque est vraie aussi :
PROPRIETE 2: Si S X est un stable, alors X \ S est un transversal.
CONCLUSION : (G ) + (G ) = | X |.
Grace ces proprits on voit clairement quon peut rduire STABLEMAX en TRANVERSALMIN. Si un transversal de cardinalit minimum est trouv (mme difficilement), nous pouvons en
dduire rapidement un stable de cardinalit maximum. Cela veut dire que sil existe un algorithme
polynomial pour rsoudre TRANVERSALMIN, il permet en mme temps de rsoudre STABLEMAX. Il
ny a pas vraiment de transformation : les donnes restent les mmes (le mme graphe) mais cela
nest pas ncessaire on peut se permettre daugmenter raisonnablement (polynomialement) la taille
de donnes transformes par rapport la taille du problme original. Ainsi on peut dire que TRANVERSALMIN est au moins aussi difficile que STABLEMAX.
On constate aisment que TRANVERSALMIN se transforme en STABLEMAX : si un stable de
cardinalit maximum est trouv (mme difficilement), nous pouvons en dduire rapidement un
transversal de cardinalit minimum. En plus, sil existe un algorithme polynomial pour rsoudre
STABLEMAX, le mme algorithme, avec notre dduction, permet de rsoudre TRANVERSALMIN.

255

260

265

Cet exemple montre que parfois deux problmes avec les formulations a priori diffrentes
peuvent avoir la mme difficult. En gnral, lide de la rduction polynomiale permet dintroduire
dans lensemble des problmes combinatoires une relation dordre : tre au moins aussi difficile
que.
On pourrait sattendre ce que la difficult ainsi dfinie augmente sans cesse, mais ce nest
pas le cas, car la difficult atteint un maximum. A notre surprise il existe une famille de problmes
les plus difficiles, appels P-difficiles (le sigle P vient de polynomial non-dterministe un
formalisme mathmatique pour caractriser plus prcisment les problmes dont on veut tudier la
difficult). Les cinq problmes cits ci-dessus : le problme du VOYAGEUR DE COMMERCE, du SAC A
DOS, de la MISE EN BOITES , STABLEMAX et TRANVERSALMIN appartiennent cette famille. Une
grande partie des problmes appliqus se retrouve dans la famille des problmes P-difficiles plus
de mille sont connus ce jour. Ces problmes sont aussi appels universels car la dcouverte de
lalgorithme polynomial pour lun deux impliquerait automatiquement lexistence des algorithmes
polynomiaux pour tous les autres.

4. Consquences de la P-difficult dun problme.


270

Le chercheur ou lingnieur confront un nouveau problme doptimisation combinatoire va


dabord essayer de dcouvrir un algorithme polynomial. En cas dinsuccs il va tenter de montrer
que le problme considr est P-difficile pour viter de perdre du temps rechercher un algorithme polynomial.
7

275

280

Si cette proprit est prouve on sait quau cas o les exemples traiter sont de trop grande
taille, on est autoris faire appel aux algorithmes heuristiques. On prfre avoir rapidement une
mauvaise solution que pas de solution du tout. Ensuite on peut tenter damliorer la solution obtenue avec des procdures supplmentaires, simples et rapides.
Un algorithme est dit heuristique (ou approximatif ) sil conduit toujours une solution ralisable (cest--dire qui vrifie les contraintes du problme) mais pas ncessairement une solution
optimale.
Un algorithme approximatif est une procdure trs prcisment dfinie (pas approximativement du tout). Ce qui est approch cest la solution trouve par cet algorithme.
Les mthodes approximatives sont trs souvent spcifiques des problmes quelles se proposent de rsoudre.

285

290

Traditionnellement, linventeur dun algorithme approximatif se contentait dillustrer les performances de son heuristique sur quelques exemples. Cette manire de faire prsente des inconvnients vidents. Si lalgorithme est utilis avec un jeu de donnes diffrent, on na aucune ide de la
qualit de la solution qui pourra en sortir. On pourrait essayer dexaminer cet algorithme sur une
batterie de tests tirs au hasard, mais on constate quavec les donnes alatoires cet algorithme est
presque toujours trs performant. Et sur un plan thorique, on na aucune indication sur les raisons
pour lesquelles les performances risqueraient de se dgrader dans certaines conditions. Ainsi, pour
valuer des algorithmes approximatifs, le critre du plus mauvais cas est le mieux adapt.

5. Algorithmes approximatifs avec performance garantie.


295

300

Pour caractriser la performance dun algorithme approximatif sur lexemple I dun problme
P nous pouvons utiliser lerreur relative R(I) = | AP(I) OPT(I) | / OPT(I) en cas de minimisation et
R(I) = |OPT(I) AP(I)| / AP(I) en cas de maximisation o AP(I) dsigne la valeur de la solution
obtenue en appliquant notre algorithme approximatif et OPT(I) la valeur optimale (que lon suppose
positive sans perte de gnralit).
Sil existe 0 tel que R(I) pour tous les exemples I du problme P, alors on dit que
lalgorithme est une -approximation. Un algorithme est une f(n)-approximation quand R(I) f(n)
pour tous les exemples I du problme P, o f(n) est une mesure de la taille des donnes de
lexemple I.
Essayons lalgorithme glouton suivant pour rsoudre TRANSVERSALMIN :

305

310

Donnes : graphe G = (X, E);


Rsultat : un transversal.
algorithme1:
T;
tant que E faire
choisir un sommet x X avec le plus grand degr;
G G x et T T {x}.
fin tant que
fin algorithme1.

315

Cet algorithme est polynomial, car le nombre doprations est born par n le nombre de
sommets du graphe donn. Evidemment, il va falloir perdre du temps pour ordonner les sommets
suivant les degrs dcroissants (nlog2(n)). Cet algorithme choisit successivement les sommets qui
sont incidents au maximum dartes alors, intuitivement, il devrait fournir une bonne solution
(mme quand elle nest pas optimale). Cependant, on verra bien sur une famille dexemples spcialement choisis que les performances de lalgorithme 1 ne sont pas fameuses.

320

325

330

a1

a2

a3

a4

a5

a6

b1

b2

b3

b4

b5

b6

c1

c2

c3

c4

c5

c6

c7

c8

Fig.3 : Exemple de contreperformance de lalgorithme1.

Lapplication de cet algorithme au graphe de la figure 3 nous amne choisir dans lordre les
sommets c8, c7, c6, c5, c4, c3, c2, c1 et pour obtenir un transversal il faudra encore choisir un sommet de
chaque arte {ai, bi} pour i =1, 2, , 6. On a ainsi trouv un transversal comportant 14 sommets
alors que les 6 sommets bi suffisent. Lerreur relative est de 8/6 133,33%. Pire encore, cet
exemple peut tre tendu et conduire lalgorithme1 des erreurs arbitrairement grandes. En effet,
remplaons les 6 artes de lexemple prcdent par les n artes {ai, bi} (i =1, 2, , n). Ajoutons
n

ensuite les /2 sommets cj (le symbole . dsigne la partie entire) relis aux deux sommets b2j1 et
n

335

b2j (le sommet bn ne sera pas utilis si le nombre n est impair), puis les /3 nouveaux sommets ci
relis aux trois sommets des triplets successifs et ainsi de suite avec les quadruplets etc., jusquau
dernier sommet cL reli aux n 1 sommets bi. Pour chaque n, lalgorithme1 conduit un transversal
n
n
n
comportant L(n) + n sommets o L(n) /2 + /3 + + /n1 est le nombre des sommets c
ajouts. Lerreur relative L(n)/n croit aussi vite que ln(n). On peut dmontrer que lalgorithme propos est une ln(n)-approximation.

340

345

350

On serait plutt intress par une heuristique avec lerreur relative borne.
Pour rsoudre TRANSVERSALMIN considrons alors une autre heuristique gloutonne :
Donnes : graphe G = (X, E);
Rsultat : un transversal.
algorithme2:
T;
tant que E faire
choisir une arte e ={x, y} E ;
G G x y et T T {x}{y}.
fin tant que
fin algorithme2.
Cet algorithme ne parat pas a priori trs bon : pourquoi mettre les deux extrmits de e dans
T alors quune seule suffirait ? Cependant les diffrentes artes choisies par lalgorithme sont deux
deux non adjacentes. Il sensuit quun transversal de taille minimum contiendra au moins autant de
9

355

sommets que lalgorithme a appel dartes cest--dire |T |. Ainsi OPT(I) AP(I) ; ce qui implique R(I) 1, qui signifie que lalgorithme 2 est une 1-approximation.
Il peut se faire quun algorithme A dont on est intuitivement persuad quil est presque toujours meilleur que lalgorithme B puisse conduire, sur des exemples spcialement conus, des
performances dsastreuses tandis que lalgorithme B a une performance garantie.

6. Conclusions.
360

365

Actuellement les algorithmes approximatifs polynomiaux avec des performances garanties


pour les problmes P-difficiles font lobjet de nombreuses recherches.
En ce qui concerne le VOYAGEUR DE COMMERCE on a trouv dabord une 1-approximation. En
1976 N. Christofides a propos une 0,5-approximation. Il aura fallu attendre 36 ans (A. Sebo, J.
Vygen 2012) pour obtenir une 0,4-approximation. Les amliorations sont difficiles obtenir, car il a
tait dmontr que lexistence dun algorithme approximatif polynomial avec une trop bonne performance garantie pour un problme P-difficile impliquerait lexistence dun algorithme polynomial exact.
Pour le problme de la MISE EN BOITES on connat une 2/9-approximation.
Pour le SAC A DOS :

370

Maximiser :
sous :

v1 x1 + v2 x2 + + vn xn
p1 x1 + p2 x2 + + pn xn b
xi {0, 1} i = 1, 2,, n

375

il existe mme un algorithme approximatif avec une prcision quelconque garantie. Plus prcisment, >0 on peut trouver une solution (x1 ; x2 ; ; xn) avec xi{0;1} i=1, 2, , n et
p1x1 + p2x2 + + pnxn b telle que :
v1x1++ vn xn (1) max{v1x1 + + vnxn | p1x1 + + pnxn b, xi{0;1} i = 1, 2, , n}.
1

380

Linconvnient est que cet algorithme est polynomial mais par rapport la valeur / . Nous savons
dj que les donnes de taille k (k cases de mmoire avec les 1), reprsentent la valeur 2k1. Ainsi
cet algorithme est exponentiel (non polynomial) par rapport la taille des donnes. La P-difficult
persiste !

10