Professional Documents
Culture Documents
BL
I
Le but de ce chapitre est de prsenter une classe de mthodes pour rsoudre les problmes
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
mthodes exactes ont une complexit exponentielle sur ces problmes, et seules les
SA
TE
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
Module: Procdures PSE, PLNE, programmation dynamique et Mtaheuristiques, dispens par le Dr. DERBALA Ali.
100
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)
LA
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 )
SA
TE
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
un cart de 50% semble dcevant mais certains problmes difficiles n'ont mme pas
101
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
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.
Module: Procdures PSE, PLNE, programmation dynamique et Mtaheuristiques, dispens par le Dr. DERBALA Ali.
102
d'un moyen efficace pour trouver la meilleure ( ou une bonne ) solution dans le
BL
I
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
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
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 ".
103
Le " recuit simul" a t invent par Kirkpatrick, Gelatt et Vecchi ( 1983 ). Ils ont pu rsoudre
BL
I
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
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
SA
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
ER
puis on tire au sort une valeur p de [ 0, 1]. Si p a, la transformation est accepte bien
IV
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
105
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
On s'interdit de revenir sur une solution visite dans un pass proche grce une liste
LA
B
dans V(s) - T.
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,
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
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
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
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" = + )
107
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.
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
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
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
IV
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;
remplacer une partie de X(n) forme de solutions de basse qualit par des solutions
BL
I
LA
a) La slection
La slection aussi bien celle des individus de " haute qualit " que celle des individus de "
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
i =1
p i < ri
pi .
i =1
SI
ER
Cette procdure est appele " la roulette russe ". La procdure est itre jusqu' ce que l'on
IV
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.
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
BL
I
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
d'change, alors que l'ordre de parcours des autres tches n'a pas t chang. On procde de
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
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.
BL
I
LA
B
1983.
SA
IV
ER
SI
TE