You are on page 1of 12

Chapitre 6

Rsolution approche des problmes difficiles

BL
I

Le but de ce chapitre est de prsenter une classe de mthodes pour rsoudre les problmes

d'optimisation combinatoire NP-difficiles : les heuristiques et les mta-heuristiques.

1. Les heuristiques : Prsentation gnrale

Une mthode approche ou heuristique pour un POC est un algorithme qui a pour but de

LA

trouver une solution ralisable, tenant compte de la fonction objectif, mais sans garantie

A
H

d'optimalit. On a vu prcdemment qu'on ne connat pas d'algorithmes polynomiaux pour les


problmes NP-difficiles et la conjecture P NP fait qu'il est peu probable qu'il en existe. Les

mthodes exactes ont une complexit exponentielle sur ces problmes, et seules les

heuristiques peuvent rsoudre des cas de grande taille.

En pratique, on trouve beaucoup de problmes mal formuls, ou ayant de nombreuses

SA

contraintes, ou encore de complexit inconnue. Mme si le problme est facile, l'ajout de


nouvelles contraintes peut le rendre NP-difficile. Dans ces conditions, il vaut mieux ds le

TE

dpart une approche heuristique, beaucoup plus facile modifier.

SI

Il existe un trs grand nombre d'heuristiques selon les problmes traiter, et il est ais d'en
inventer. On distingue cependant les grands types suivants qui vont tre dtaills.

ER

a) mthodes construisant une seule solution, par une suite de choix partiels et dfinitifs. On

IV

les appelle " mthodes gloutonnes " ( greedy ) quand elles cherchent chaque itration

faire le choix le plus avantageux.

b) Recherches locales, appeles recherches de voisinages (neighborhood or local search). On


part d'une solution initiale et par transformations successives, on construit une suite de
solutions de cots dcroissants. Le processus s'arrte quand on ne peut plus amliorer la
solution courante.
c) Recherches globales ( global search ). Une recherche locale peut tre pige dans un
minimum local. Les mthodes dites de recherche globale, appeles aussi " mtaheuristiques" sortent de ces piges en construisant aussi une suite de solutions, mais dans
laquelle la fonction conomique peut temporairement remonter.

Chapitre 6 : Rsolution approche des problmes difficiles

Module: Procdures PSE, PLNE, programmation dynamique et Mtaheuristiques, dispens par le Dr. DERBALA Ali.

100

2. Evaluation des heuristiques


Le problme de l'valuation des heuristiques est crucial. Elles n'offrent aucune garantie

d'optimalit : elles peuvent trouv l'optimum pour certaines donnes ou en tre trs loignes.

Supposons qu'on tudie un POC pour lequel on dispose dj d'une mthode exacte, optimale,

BL
I

de rfrence. Pour une heuristique H et une donne d, on note H(d) le cot de la solution
heuristique et OPT(d) le cot optimal.

H (d )
. Pour un problme
opt (d)

On appelle " performance relative " de H sur d le quotient RH(d) =

100 ( RH(d) -1 ). La performance

LA

On prfre parfois " la distance l'optimum " en % :

de minimisation, RH(d) 1.

relative peut tre borne priori ou tre imprvisible et constate posteriori, aprs excution

de l'algorithme.

2.1. Evaluation priori : performance relative au pire ( worst case performance ratio )

On appelle performance relative au pire PH d'une heuristique H sa plus mauvaise performance

SA

relative sur l'ensemble des donnes possibles, PH = max{R H (d)} .


{d}
C'est une garantie de performance, qu'on obtient mathmatiquement par analyse thorique de

TE

H et non par des statistiques ou par numration des donnes possibles.

SI

Les dmonstrations se font en deux temps : on borne RH(d) pour toute donne d, puis on

ER

construit une donne montrant que ce pire cas peut tre effectivement atteint. Ce genre de
rsultat est en gnral trs difficile obtenir et on n'en connat que pour quelques problmes.

IV

une heuristique H avec un PH = 1.5 pour un POC donn signifie que cette heuristique n'est

jamais plus de 50% de l'optimum.

un cart de 50% semble dcevant mais certains problmes difficiles n'ont mme pas

d'heuristique avec une performance relative au pire gale une constante c.


Les pires carts l'optimum sont souvent obtenus sur des problmes thoriques construits
exprs.
Les heuristiques peuvent tre trs bonnes en moyenne sur des problmes pratiques.
On n'a pas pu trouver pour les performances relatives au pire, l'quivalent de la transformation
polynomial des problmes NP-complets.
Par consquent, une bonne heuristique pour un problme NP-difficile ne permet pas d'en
dduire une aussi bonne pour un autre problme NP-complet.

Chapitre 6 : Rsolution approche des problmes difficiles

101

2.2. Evaluation posteriori


a) bornes infrieures de l'optimum
Le plus souvent, on ne sait pas tablir mathmatiquement le comportement au pire. On ne
peut alors valuer les rsultats qu'aprs excution de l'heuristique H. Pour valuer le rsultat

pour une donne d, on peut calculer la performance relative RH(d) condition de connatre

l'optimum. Mais il n'existe pas de mthode exacte de complexit polynomiale pour les

BL
I

problmes NP-difficile. La valeur exacte de l'optimum n'est donc pas calculable en une dure
acceptable pour les POC de grande taille. On peut cependant obtenir une valuation moins

H (d )
H (d )

.
opt (d)
B(d)

LA
B

Alors RH(d) =

serre si on dispose d'une "valuation par dfaut", un minorant, B(d) pour l'optimum opt(d).

En particulier si H(d) = B(d), alors on s'est " posteriori" qu'on a atteint l'optimum. On peut

toujours trouver des bornes infrieures, mmes grossires, de l'optimum opt(d).

b) Evaluation statistique

Mme si on connat la performance relative au pire, elle peut tre trs mauvaise ou atteinte

seulement sur des cas particuliers. L'heuristique peut tre bonne en moyenne. Une valuation

SA

statistique est recommande. Pour valuer k heuristiques H1, H2,, Hk, on gnre
alatoirement une srie de problmes, qui comprend typiquement 100 problmes. Pour

TE

chaque matrice de donnes, on excute les k heuristiques valuer. On stocke dans des
tableaux ou sur un fichier le numro du problme, la borne infrieure calcule, et l'optimum

SI

opt(d) si on dispose d'une mthode exacte. Pour chaque problme et chaque heuristique, on

ER

note les rsultats de chaque heuristiques tester et le temps d'excution. L'exploitation des

N
IV

rsultats pour une srie de problmes peut se faire par le programme qui a excut les
heuristiques, par un programme spar ou par un logiciel de statistiques.

3. Recherches locale et globales


3.1. Mthodes de recherche locale
Une des ides les plus fcondes et les plus utilises dans les mthodes d'optimisation est de
procder, itrativement en examinant le voisinage de la solution courante, dans l'espoir d'y
dtecter des directions de recherche prometteuses. Dans les problmes d'optimisation sur un
espace continu, cette ide se concrtise, dans des mthodes de gradient ( steepest descent )
dont on peut prouver, sous certaines hypothses ( rgularit, convexit ou concavit de la

Module: Procdures PSE, PLNE, programmation dynamique et Mtaheuristiques, dispens par le Dr. DERBALA Ali.

102

fonction optimiser, la convexit de l'ensemble des solutions admissibles ), qu'elles


conduisent un optimum global. Lorsqu'on travaille sur un ensemble discret de solutions, on
peut appliquer, un algorithme de descente ( ou de plus forte descente ) si l'on dispose :
d'une notion de voisinage qui structure l'espace de solutions;

d'un moyen efficace pour trouver la meilleure ( ou une bonne ) solution dans le

BL
I

voisinage d'une solution quelconque.

Partant d'une solution initiale quelconque, on progresse alors " de proche en proche ", tant que

l'on trouve une solution meilleure que la solution courante dans le voisinage de celle-ci.

H
LA

Un schma gnral d'algorithme de descente est du type:

son voisinage. Ce qui est la dfinition d'un optimum local.

L'algorithme s'arrte lorsque la solution courante est meilleure que la solution courante dans

Algorithme 1 ( de descente )

TE

SA

On suppose que pour toute solution x , il est dfini un ensemble V() de solution
voisines de x .
Initialisation : soit x0 , une solution courante;
Etape n : soit xn , la solution courante;
Slectionner une solution x* V(xn );
Si F(x*) F(xn );
Faire xn+1 = x* et passer l'tape n + 1
Sinon xn est la meilleure solution trouve;
Stop.

SI

Si = ( 1, 2, , n ) est une permutation de tches :


le voisinage " 2-change" consiste en la permutation de 2 tches quelconques

le voisinage " k-opt" : toutes les permutations qui peuvent s'obtenir en rejetant k tches

IV

ER

de la permutation courante.

C'est ce type de voisinage qui est utilis dans une heuristique de descente.
3.2. Mthodes de recherche globale
Ces mthodes sont des recherches locales modifies dans l'espoir d'viter le pigeage dans un
minimum local. Leur conception commence par l'tude d'une recherche locale, dfinition
d'un voisinage avec transformations simples, que l'on promet en recherche globale si elle
s'avre insuffisante. Il s'agit des mthodes appeles aussi " Mta-heuristiques ".

Chapitre 6 : Rsolution approche des problmes difficiles

103

LE RECUIT SIMULE ( simulated annealing )

Le " recuit simul" a t invent par Kirkpatrick, Gelatt et Vecchi ( 1983 ). Ils ont pu rsoudre

BL
I

quasi-optimalement des problmes de voyageur de commerce 5000 sommets. Ils s'inspirent


de la mthode de simulation de Mtropolis ( 1950 ) en mcanique statistique. L'analogie
s'inspire du " recuit des mtaux " en mtallurgie. Un mtal refroidi trop vite prsente de

nombreux dfauts microscopiques, c'est l'quivalent d'un minimum local pour un POC. Si on
le refroidit lentement, les atomes se rarrangent, les dfauts disparaissent et le mtal a une

H
LA

structure ordonne, quivalent du minimum global pour un POC.

L'nergie d'un systme est reprsente par un rel T, la temprature. Une mthode de recuit
simul s'obtient :

On tire au sort une transformation, une solution s' de V(s) au lieu de chercher la

meilleure ou la premire solution voisine amliorante.


On construit la solution rsultante s' et sa variation de cot f = f(s') - f(s).

Si (f) 0, le cot diminue et on affecte la transformation amliorante comme dans une

SA

recherche locale ( s : = s' ).

Si (f) > 0, le cot remonte, c'est un rebond, qu'on va pnaliser d'autant plus que la

TE

temprature est basse et que (f) est grand. Une fonction exponentielle a les proprits

SI

dsires. On calcule une probabilit d'acceptation ( fonction de Bolzman ) a = e(f) /

ER

puis on tire au sort une valeur p de [ 0, 1]. Si p a, la transformation est accepte bien

IV

qu'elle dgrade le cot, et on fait s : = s'. Sinon, la transformation est rejete : on


conserve s pour l'itration suivante.

U
N

Pour assurer la convergence, T est diminue lentement chaque itration, par exemple T :
= n T, k < 1 mais proche de un. On peut aussi dcrotre T par paliers.
Pour tre efficace, un recuit doit diminuer T assez lentement, en plusieurs milliers ou
dizaines de milliers d'itrations. Il dure beaucoup plus longtemps qu'une recherche locale.
On s'arrte quand T atteint un seuil fix , proche de zro. Le rglage des paramtres est
assez dlicat. Il est prudent de prvoir deux tests d'arrt supplmentaires : un limitant le
nombre d'itrations une valeur MaxIter, et un limitant le nombre d'itrations sans
changement de cot une valeur MaxGel. MaxGel doit tre assez grand.
Contrairement une recherche locale, un recuit simul o un refroidissement trop rapide
donne une solution finale qui n'est pas la meilleure trouve.

Module: Procdures PSE, PLNE, programmation dynamique et Mtaheuristiques, dispens par le Dr. DERBALA Ali.

104

Il vaut mieux stocker en cours de route toute solution amliorante. Les valeurs typiques
sont MaxIter = 10.000, = 10-2, MaxGel = 200, k = 0.9995.

IV

ER

SI

TE

SA

D
BL
I
E
D
B

LA

Le schma gnral du recuit est :


Construire une solution initiale quelconque s
Z* : = f(s) { meilleur cot obtenu }
S* : = s { meilleure solution connue }
Initialiser T et
Initialiser MaxIter et MaxGel
NIter : = 0 { nombre d'itrations}
NGel : = 0 { nombre d'itrations sans amliorations }
Rpter
NIter : = NIter + 1
Tirer au sort une solution s' dans V(s)
Calculer la variation de cot (f).
Si (f) < 0
Alors Accept : = vrai
Sinon
Tirer au sort p dans [ 0, 1]
Accept : = p exp(-(f)/T)
FS
Si Accept alors
Si (f) = 0 alors NGel : = Ngel + 1
Sinon NGel : = 0
Si f(s') < Z' alors
Z* : = f(s')
S* : = s'
FS
S : = S'
FS
T : = kT
Jusqu' ( T ) ou ( NbIter = MaxIter ) ou ( NGel = MaxGel )

Algorithme 2 ( Gnral du recuit simul )

Chapitre 6 : Rsolution approche des problmes difficiles

105

LES METHODES TABOUES


a) principe
Les recherches taboues ont t invent par Glover ( 1985 ). Elles sont de conception plus

rcente que le recuit, n'ont aucun caractre stochastique et paraissent meilleures temps
A chaque itration, on examine compltement le voisinage V(S) de la solution actuelle

BL
I

d'excution gal. Elles sont caractrises par trois points:


s, et on va sur la meilleure solution s', mme si le cot remonte.

On s'interdit de revenir sur une solution visite dans un pass proche grce une liste

taboue T stockant de manire compacte la trajectoire parcourue. On cherche donc s'


-

LA
B

dans V(s) - T.

On conserve la meilleure solution trouve, contrairement au recuit, c'est rarement la

dernire. On stoppe aprs un nombre maximal d'itrations sans amliorer la meilleure

solution ou quand V(s) - T = . Il ne se produit que sur de trs petits problmes pour
Une mthode taboue chappe aux minima locaux, mme si s est un minimum local,

lequel le voisinage tout entier peut se retrouver enferm dans T.

l'heuristique va s'chapper de la rgion V(s) en empruntant un " col ".

SA

En dbut de calcul, la mthode trouve une suite de solutions amliores, comme une
recherche locale. On voit ensuite le cot osciller puis redescendre vers un meilleur

ER

b) la liste tabou

SI

TE

minimum local. Les amliorations deviennent de plus en plus rares au cours des itrations.

Le point dlicat est la capacit NT de la liste taboue T. Glover montre que NT de 7 20 suffit

N
IV

pour empcher les cyclages, quelle que soit la taille du problme.


T fonctionne comme une " mmoire court terme ".

A chaque itration, la NT-ime transformation de T, la plus ancienne, est crase par la


dernire effectue. En pratique, T se gre simplement avec une structure de donnes de type "
file ". En thorie, il faudrait stocker les NT dernires solutions sur lesquelles l'algorithme est
pass. En ordonnancement, il faudrait conserver les NT dernires permutations des n tches.
Si la solution actuelle es " s ", la prochaine solution sur laquelle on va se dplacer doit tre
dans V(s) - T. Il faut vrifier que la permutation gnre n'est pas dj dans T.

Module: Procdures PSE, PLNE, programmation dynamique et Mtaheuristiques, dispens par le Dr. DERBALA Ali.

106

Les voisinages considrs tant souvent grands, il est vident que le test rptitif de prsence
dans T est trs coteux, sans parler de la mmoire ncessaire pour coder le dtail de NT
solutions. Le stockage explicite des solutions n'est donc jamais pratiqu.
On recommande les critres moins coteux pour viter le cyclage. Ces critres sont aussi plus
restrictifs : ils peuvent interdire certains mouvements qui ne conduiraient pas un cyclage.

Les plus utiliss de ces critres consiste stocker dans T les transformations ayant permis de

BL
I

changer de solution, et d'interdire de faire les transformations inverses pendant NT itrations,

on stockerait les deux tches permutes chaque itration, et on s'interdirait de les remettre
dans une permutation pendant NT itrations. Un critre plus simple est d'interdire d'utiliser les

LA

Algorithme 3 : ( gnral Tabou )

NT dernires valeurs de la fonction objectif. Il suffit de stocker un nombre par itration.

IV
ER

SI
TE

SA

Construire une solution initiale " s " et calculer son cot Z = f(s)
Z* : = Z { meilleur cot obtenu }
S* : = s { meilleure solution connue }
Initialiser MaxIter { nombre maximum d'itrations }
T : = { la liste tabou T est vide }
NIter : = 0
Rpter
NIter : = NIter + 1 {exploration du voisinage V(s) de s }
Z" : = +
Pour toute solution s' de V(s)
Si s' T alors
{ si s' n'est pas taboue }
si f(s') < Z" alors { mise jour du voisin " le moins pire " }
s" : = s'
Z" : = f(s')
Stocker l'inverse de la transformation dans u
FS
FS
FP
Si Z" < + alors { si un voisin non tabou a t trouv }
S : = s"
Z : == Z"
Enlever la transformation en tte de T ( la plus ancienne )
Ajouter u en fin de T
Si Z < Z" alors { mise jour de la meilleure solution }
S* : = s
Z* : = Z
FS
FS
Jusqu' ( NIter = MaxIter ) ou ( Z" = + )

Chapitre 6 : Rsolution approche des problmes difficiles

107

Les algorithmes gntiques


Cette classe de mthodes a t invente par Holland dans les annes soixante, pour imiter les
phnomnes d'adaptation des tres vivants. L'application aux problmes d'optimisation a t
dveloppe ensuite par Goldberg.
Par analogie avec la reproduction des tres vivants, on part d'une population initiale de N

solutions alatoires. Le point dlicat est d'arriver coder chaque solution comme une chane

BL
I

de sous chanes appeles " gnes ", chacun codant une caractristique de la solution.

de caractres ( analogue un chromosome d'une cellule vivante ). Le chromosome est form


Une itration est appele " gnration ". A chaque gnration, on choisit au hasard NC < N

paires de chromosomes reproduire, avec une probabilit croissante avec leur adaptation.

Chaque paire ( x, y) choisie subit une opration de "croisement" ( cross-over ). Un gne est

choisi alatoirement dans x, puis permut avec le gne de mme position dans y. On pratique

LA

galement un faible " taux de mutation " : NM chromosomes sont choisis et subissent une

modification alatoire d'un gne. La nouvelle population est forme de la population

prcdente et des chromosomes nouveaux gnrs par mutation ou croisement.

On dfinit pour chaque solution une " mesure d'adaptation au milieu " appele " fitness ".

Pour un POC, cette fonction est la fonction objectif. On limine alors les solutions les moins

adaptes pour maintenir un effectif constant de N solutions. On recommence le mme

SA

processus pour l'itration suivante. L'intrt est que les bonnes solutions sont encourages
changer par croisement leurs caractristiques et engendrer des solutions encore meilleures.

TE

De plus, les solutions finales vont tre concentres autour des minima locaux, et la mthode

ER
SI

fournira donc un choix de plusieurs solutions possibles au dcideur.


Notons G la fonction d'valuation choisie. Pour engendre la gnration X(n+1) de solutions
partir de la population courante X(n), on applique le schma dcrit ci dessous.

IV

Slectionner dans X(n) un ensemble de paires de solutions de hautes qualits.

Appliquer chacune des paires de solutions slectionnes un oprateur de croisement qui

produit une ou plusieurs solutions " enfants ".


Remplacer une partie de X(n) forme de solutions de basse qualit par des solutions " enfants "
de bonne qualit;
La population X(n+1) est obtenue aprs avoir appliqu un oprateur de mutation aux solutions
ainsi obtenues.

Module: Procdures PSE, PLNE, programmation dynamique et Mtaheuristiques, dispens par le Dr. DERBALA Ali.

108

Algorithme 4 ( gntique )
Initialisation : soit X(0) X, une population initiale;
Etape n : soit X(n) X, la population courante;
slectionner dans X(n) un ensemble de paires de solutions da haute qualit;

appliquer chacune des paires de solutions slectionnes un oprateur de croisement


qui produit une ou plusieurs solutions " enfants ".

remplacer une partie de X(n) forme de solutions de basse qualit par des solutions

BL
I

enfants de haute qualit;


-

appliquer un oprateur de mutation aux solutions ainsi obtenues; les solutions

ventuellement mutes constituent la population X(n+1) ;


si la rgle d'arrt est satisfaite, stop;

LA

sinon, passer l'tape n + 1.

a) La slection

La slection aussi bien celle des individus de " haute qualit " que celle des individus de "

basse qualit ", comporte gnralement un aspect alatoire. Chaque individu xi de la

population parmi laquelle se fait la slection se voit attribuer une probabilit pi d'tre choisi

d'autant plus grande que son valuation est haute ( basse dans le cas d'une slection de "

SA

mauvais individus "). On tire un nombre " r " au hasard ( uniformment sur [ 0, 1] ).
k 1

TE

L'individu " k " est choisi tel que :

i =1

p i < ri

pi .

i =1

SI

La probabilit que xk soit choisi est aussi bien gale pk.

ER

Cette procdure est appele " la roulette russe ". La procdure est itre jusqu' ce que l'on

IV

chois un nombre fix d'individus.


b) Le croisement

Soit deux solutions x et y slectionnes parmi les solutions de haute qualit. Un oprateur de

croisement ( croosover) fabrique une ou deux nouvelles solutions x' et y' en combinant x et y.
Si x et y sont deux vecteurs de 0 et 1, un oprateur de croisement classique ( two-point
crossover ) consiste slectionner alatoirement deux positions dans les vecteurs et
permuter les squences de 0 et 1 figurant entre ces deux positions dans les deux vecteurs.
Pour des vecteurs x = 0 1 1 0 1 1 0 0 et y = 1 1 0 0 1 0 1 0, si les positions " aprs 2 " et "
aprs 5 " sont choisies, on obtient aprs croisement :
x' = 0 1 001100

et y' = 1 1 1 0 1 0 1 0.

Chapitre 6 : Rsolution approche des problmes difficiles

109

De nombreuses variantes d'un tel oprateur peuvent tre imagines. Ces variantes doivent tre
adaptes au codage des solutions et favoriser la transmission des " bonnes sous-structures "
des solutions parents aux enfants.
Pour le problme d'ordonnancement avec le codage liste des tches ne convient pas.
x = A B C D E F G H et y = B E F H A D G C, en croisant entre les positions " aprs 2 " et

" aprs 5 ", on obtiendrait : x' = A B F H A F G H et y' = B E C D E D G C qui ne

sont pas des permutations.

BL
I

Un oprateur de croisement spcialement conu pour les listes donnes ( OX-crossover )


implmente l'ide suivante. Les deux solutions parentes sont " prpares " avant l'change des

squences situes entre les deux positions choisies au hasard.

Dans cette exemple de tches, la zone d'change de x est prpare accueillir la squence des

villes F, H, A de y.

LA

Pour ce faire, on remplace chacune des villes F, H et A dans le vecteur x par une place vide

symbolise par une *, soit * B C D E * G * et en commenant la droite de la zone

d'change, on tasse les tches restantes de la permutation dans l'ordre de la permutation x en

oubliant les *, ce qui donne : D E * * * G B C. Les * se retrouvent ds lors dans la zone

d'change, alors que l'ordre de parcours des autres tches n'a pas t chang. On procde de

mme pour y : B * F H A * G * devient H A * * * G B F.

SA

On procde alors l'change des squences, ce qui donne deux permutations enfants x' et y' :
x' = D E F H A G B C et y' = H A C D E G B F.

TE

Un certain nombre de paires d'enfants sont ainsi gnrs et remplacent une partie des parents

ER

SI

choisis parmi les moins performants.


c) La Mutation

N
IV

Une mutation est une perturbation introduite pour modifier une solution individuelle, par
exemple la transformation d'un 0 en un 1 ou inversement dans un vecteur binaire.

Dans l'ordonnancement de type permutation, une mutation peut tre une permutation
arbitraire de deux tches. En gnral, on dcide de muter une solution avec une probabilit
assez faible. Le but de la mutation est d'introduire un lment de diversification et
d'innovation.

Module: Procdures PSE, PLNE, programmation dynamique et Mtaheuristiques, dispens par le Dr. DERBALA Ali.

110

Bibliographie
[Alj86] Alj, A et R, Faure. Guide de la R.O. Tome 1 : les fondements, Masson, 1986.
[Alj90] Alj, A et R, Faure. Guide de la R.O. Tome 2: les applications, Masson, 1990.
[Cha96] Charon, I; A, Germa et O, Hudry. Mthodes d'optimisation combinatoire. Masson,
[Des76] Desbazeille, G. Exercices et problmes de R.O. 2nd edition, Dunod, 1976.

[Gon95] Gondran, M et M, Minoux. Graphes et algorithmes. Eyrolles, 1995.

1996. [Che77] Chevalier, A. La programmation dynamique. Dunod dcision, Bordas, 1977.

BL
I

[Jac67] Jacobs, O.L.R. An introduction to dynamic programming. The theory of multistage


decision processes, Chapman and Hall LTD, 1967.

[Kau72] Kaufmann, A et D. Coster. Exercices de combinatoire avec solutions. Tome 3.

Mthodes d'optimisation. 1972.

LA
B

[ Kau66] Kaufmann, A et R. Faure. Invitation la R.O, Dunod, 1966.

[Min83] Minoux, M. Programmation mathmatique. Thorie et algorithmes. Tome 2, Dunod,

1983.

[Lau79] Laurire, J.L. Elments de programmation dynamique. Gauthier-villars. 1979.

[Per79] Perreault, Y.G. RO : techniques dcisionnelles. Gaetan monin Editeur, 1979.

[ Pri97] Prins, C. Algorithmes de graphes avec programmes en Pascal. Eyrolles, 1997.

SA

Polycope IV, ENSIMAG, Mai 1983.

[Sak83] Sakarovitch, M. Optimisation combinatoire, techniques mathmatiques de la RO,


[Tah75] Hamdy A.Taha. Integer programming, Theory, applications and computations.

IV

ER

SI

TE

Academic Press, INC, 1975.