Вы находитесь на странице: 1из 25

Universit de Tunis El Manar

Ecole nationale dingnieurs de Tunis


Dpartement Gnie Industriel
Projet en mta heuristique

Rsolution d'un problme de voyageur de


commerce avec le recuit simul

Ralis par :
ABIDI Oussama
BEN BRAHIM Ali

Classe :
3AGI3

Anne universiaire 2015/201

Sommaire :
Chapitre 1 : Revue de littrature.......................................................5
1.1. Problme de voyageur de commerce :.........................................................6
1.1.1. Dfinition du problme :........................................................................6
1.1.2. Formulation par un programme linaire binaire :...................................6
1.1.2.1. Formulation 1................................................................................... 6
1.1.2.2. Formulation 2:.................................................................................. 7
1.1.3. Applications :......................................................................................... 7
1.1.4. Caractristique :..................................................................................... 8
1.1.5. Rsolution :............................................................................................ 8
1.1.6. Exemples :............................................................................................. 8
1.1.7. Recherche dune solution approche :...................................................9
1.2. Le recuit simul :........................................................................................ 10
1.2.1. Historique :.......................................................................................... 10
1.2.2. Dfinition :........................................................................................... 10
1.2.3. Principes du recuit simul :..................................................................10
1.2.4. Analogie entre recuit thermique et recuit simul :...............................13
1.2.5. Lalgorithme du recuit simul :............................................................13
1.2.6. Etat initial de lalgorithme :..................................................................13
1.2.7. Paramtre de temprature:..................................................................14
1.2.8. Application du recuit simul au problme de voyageur de commerce :
....................................................................................................................... 14
1.2.9. Avantages et inconvnients:................................................................16

2. Chapitre 2 : Algorithme et Implmentation...............................17


2.1. Introduction :.............................................................................................. 18
2.2. Les lments de lalgorithme de recuit simul :.........................................18
2.2.1. Solution initiale : INITIAL ( ) ............................................................18
2.2.2. Voisinage VOISIN ( ) :......................................................................18
2.2.3. Algorithme principale MAIN_RECUIT ( ):...............................................19
2.3. Dfinition du problme et Rsolution:........................................................19
2.3.1. Dfinition de problme :.......................................................................19
2.3.2. Rsolution :.......................................................................................... 21
2.3.2.1. Rsolution approch(recuit simul)................................................21
2.3.2.2. Rsolution exacte :........................................................................22

Liste des figures


Figure
Figure
Figure
Figure
Figure
Figure
Figure
Figure

1: Blocage dune heuristique classique dans un minima local.....................9


2 : Diagramme de modlisation du recuit simul......................................12
3 : Un ensemble de villes (nuds) relis entre eux par des routes (arcs). 14
4: trajet de la solution initiale....................................................................21
5 : trajet de la meilleure solution trouve :................................................22
6 :Code Cplex............................................................................................ 23
7: donn du problme................................................................................ 23
8: La solution optimale fournie par Cplex pour la 1Instance n=10...........24

Liste des tableaux


Tableau 1 : coordonne des points.......................................................................20
Tableau 2 : distances entre les diffrents points :................................................20

Chapitre 1 : Revue de littrature

1.1. Problme de voyageur de commerce :


1.1.1.

Dfinition du problme :

Le nom du problme du voyageur de commerce vient de la situation fictive dun vendeur qui
dsire visiter un certain nombre de villes, dbutant et finissant son parcours dans la mme
ville en visitant chacune des autres villes une et une seule fois..
A lchelle dun pays comme les tats-Unis, le cot en argent et en temps dun tel voyage
peut devenir prohibitif si lon ne prvoit pas un trajet optimal lavance. Donc le dfi du
problme est que le voyageur de commerce veut minimiser la dure totale du voyage.
1.1.2. Formulation

par un programme linaire binaire :

1.1.2.1. Formulation 1
Variables de dcision :
xij = 1 si le client j est visit immdiatement aprs le client i
= 0 sinon.
Fonction objectif :
La fonction objective consiste minimiser distance parcourue par le voyageur.
n

d ijxij
Min
i=1 j=1
Sc
n

ij

=1

ij

=1

i=1 et i j

j=1..n

(1)

i=1..n

(2)

j=1 et i j

j S et i S

ij

xij = 1 ou 0

|S|-1

S N tq 2 |S| N|-2

(3)

(4)

(1) Et (2) : traduit le faite que le voyageur de commerce doit passer par toutes les villes et une
seule fois.
(3) : oblige de ne pas avoir deux cycles ou plus qui ne sont pas li
(4) : contraintes dintgrits

1.1.2.2. Formulation 2:
Variables de dcision :
xij

= 1 si le client j est visit immdiatement aprs le client i


= 0 sinon.

ui est un variable avec lui on assure la formation dun seule tour


Avec u(i)>=1 et u(i) <= n
Fonction objectif :
La fonction objective consiste minimiser distance parcourue par le voyageur.
n

d ijxij
i=1 j=1

Min
Sc
n

i=1 eti j

=1

j=1..n

=1

i=1..n

ij

(1)

j=1 et i j

ij

u1=1; 2 ui n
ui-uj-n*xij (n-1)

i=2.. n
(3)

xij = 1 ou 0

(2)

i,j =1..n

i=1..n

j=1..n i,j< >1

(4)

(1) et (2) : traduit le faite que le voyageur de commerce doit passer par toutes les villes et une
seule fois.
(3) : oblige de ne pas avoir deux cycles ou plus qui ne sont pas li.
(4) : contraintes dintgrits.
1.1.3. Applications

Le problme de voyageur de commerce sapplique dans diffrent domaine tel que routage
autour des villes, Cblage informatique qui consiste relier les composantes informatiques en
minimisant lutilisation du fil de cblage, ordonnancement des taches afin de minimiser le
temps entre les taches.

1.1.4. Caractristique

Le nombre de chemins ou de cycles possibles dans notre problme est en (N-1)!/2 avec N le
nombre de villes, donc ce problme fait partie dune famille de problmes trop complexes
appel NP difficile pour quune solution soit recherche de faon systmatique parmi toutes
les solutions possibles [1].
Nombre de ville
5
20
30
1.1.5.

Nombre de possibilit
120
1018
1032

Rsolution :

La premire ide qui vient lesprit lorsque lon veut rsoudre le problme de voyageur de
commerce est certainement celle de la recherche exhaustive. Le principe en est trs simple,
mais au prix dune complexit en temps trs leve : il consiste dterminer toutes les
solutions, en valuer la valeur, puis slectionner la meilleure de ces solutions. Dans notre
contexte, cela se traduit par la recherche de tous les cycles hamiltoniens.
Or il y a (N-1)!/2 visites possibles, sachant que lvaluation dun tour ncessite un temps de
O(n), nous obtenons une complexit totale en temps de O (n!) [2]
1.1.6. Exemples

Nombre de ville
5

Nombre de possibilit
120

Temps dexcution
0,12 10-12

20

1018

40 min

30

1032

1010 ans

50 villes -> 49! Solutions possibles, i.e. 6,08.1062 tournes possibles


Prenons un ordinateur de 1 millimtre calculant un milliard de solutions par seconde. Sachant
que le diamtre quatorial de la terre est de 12 756 kilomtres, on peut mettre 12 756 000 000
de ces ordinateurs les uns la suite des autres sur l'quateur. On peut ainsi calculer

12 576 000 000 000 000 000 solutions par seconde (1,25. 10 19) Pour tre certain de trouver la
tourne la plus courte, il faut considrer toutes les tournes possibles. Il nous faudra alors
4,766.1043 secondes avec le super ordinateur que l'on vient de prsenter [3].
Note : 4,766.1042 est l'quivalent de 1,51.1034 sicle
Remarque :
La rsolution exacte dun tel problme avec n villes exige de vrifier (n-1)! Visites, ce qui
ncessite un grand temps et de matriels informatique de capacit norme mme pour les
petites instances ce qui parait inutile pour la plupart des problmes, donc lide est de faire
recours des rsolutions approches qui peuvent servir pour quelque problme.
1.1.7. Recherche

dune solution approche :

Pour palier ces problmes, les chercheurs ont introduit des mthodes approches appeles
heuristiques, elles prsentent l'avantage d'un temps de calcul rduit mais ne donnent aucune
information sur la qualit de la solution trouve, de plus elles ne sont en gnral applicables
qu'a un seul type de problmes. (Autin, 2006) Par exemple la mthode de la descente consiste
partir dune solution S choisir une solution S dans un voisinage de S, telle que S
amliore la solution. La recherche sarrte donc au premier minimum (ou maximum) local
rencontr, cest l son principal dfaut. Pour amliorer les rsultats, on peut relancer plusieurs
fois lalgorithme mais la performance de cette technique dcrot rapidement. Ce qui a pouss
les chercheurs proposer de nouvelles mthodes gnrales (applicables la plupart des
problmes d'optimisation) appeles mta-heuristiques, dont la mthode du recuit simul ;
conu pour rechercher un optimum global parmi plusieurs minimas (ou maximas) locaux [4].

Figure 1: Blocage dune heuristique classique dans un minima local

1.2. Le recuit simul :


1.2.1. Historique

La mthode de recuit simul tait ralise par Metropolis et al. (1953) pour simuler l'volution
de ce processus de recuit physique (Metropolis53).
Elle a t mise au point par trois chercheurs de la socit IBM,. Kirkpatrick, C.D. Gelatt et
M.P. Vecchi en 1983 aux Etats-Unis, et indpendamment par V. erny en 1985 en Slovaquie.
Son utilisation pour la rsolution des problmes d'optimisation combinatoire est beaucoup
plus rcente. Ainsi, le recuit simul est la premire mtaheuristique qui a t propose pour ce
genre de problme.
1.2.2. Dfinition

La mthode du recuit simul (simulated annealing) s'inspire du processus du recuit physique.


Ce processus utilis en mtallurgie pour amliorer la qualit d'un solide cherche un tat
d'nergie minimale qui correspond une structure stable du solide.
En partant d'une haute temprature laquelle le solide est devenu liquide, la phase de
refroidissement conduit la matire liquide retrouver sa forme solide par une diminution

progressive de la temprature. Chaque temprature est maintenue jusqu' ce que la matire


trouve un quilibre thermodynamique. Quand la temprature tend vers zro, seules les
transitions d'un tat un tat d'nergie plus faible sont possibles.
1.2.3. Principes

du recuit simul :

Lalgorithme sappuie sur des rsultats de physique statistique :


Lorsque lquilibre thermodynamique est atteint une temprature T, la probabilit
pour un systme physique de possder une nergie E est proportionnelle au facteur de
Boltzmann : exp(-E/KT) (K=constante de Boltzmann).
Pour simuler lvolution dun systme physique vers son quilibre thermodynamique
une temprature T, on utilise lalgorithme de Metropolis :
Partant dune configuration initiale du systme on lui fait subir une modification
lmentaire. Si celle-ci diminue lnergie E elle est accepte. Sinon, si E > 0
elle est tout de mme accepte avec une probabilit exp(-E/T). ( basse
temprature seuls de trs faibles augmentations dnergie sont acceptes).
La suite des configurations converge vers un tat dquilibre thermodynamique
la temprature T.
On diminue lgrement la temprature et on reconverge vers un quilibre
thermodynamique. Si la temprature est abaisse trop vite la convergence est
ralentie.
Lorsque la temprature est proche de zro, on est proche dun minimum de
lnergie.

Figure 2 : Diagramme de modlisation du recuit simul

1.2.4. Analogie

entre recuit thermique et recuit simul :

Recuit thermique
Les tats du solide
Les nergies des tats
Ltat nergie minimale
Le refroidissement rapide

1.2.5.

Recuit simul
Les solutions ralisables
Les valeurs de la fonction objective calcules
sur ces solutions
Solution optimale du problme
Recherche locale

Lalgorithme du recuit simul :

Le recuit simul applique itrativement lalgorithme de Metropolis pour engendrer une


squence de configurations qui tendent vers l'quilibre thermodynamique :
1. Choisir une temprature de dpart T et une solution initiale s = s0.
2. Gnrer une solution alatoire s dans le voisinage de la solution actuelle s (s V(s)).
3. On calcule la variation de cot = (s) (s).
4. Si 0, le cot diminue et on effectue la transformation amliorante s := s.
5. Si >0, le cot remonte. On calcule une probabilit dacceptation a = e -/T, puis on
tire au sort p dans [0,1]. Si p a, la transformation est dclare accepte, bien
quelle dgrade le cot, et on fait s := s. Sinon, la transformation est rejete : on
garde s pour litration suivante.
6. Rpter 2 et 3 jusqu' ce que l'quilibre statistique soit atteint (atteindre un nombre
ditration m fixe davance par lutilisateur appel longueur de plateaux).
7. Dcroitre la temprature et rpter jusqu' ce que le systme soit gel.
Diminution de la temprature :
Diminution linaire : T T avec [0; 1 [
Critre darrt :
Ds que T < Tc on sarrte. La temprature critique Tc est dfinie par lutilisateur.
Et on rapplique le principe autant de fois que lutilisateur le veut (dpend du choix du
coefficient de refroidissement .
1.2.6. Etat

initial de lalgorithme :

La solution initiale peut tre prise au hasard dans l'espace des solutions possibles. cette
solution correspond une nergie initiale E=E0. Cette nergie est calcule en fonction du
critre que l'on cherche optimiser. Une temprature initiale T=T0 leve est galement
choisie.

1.2.7. Paramtre

de temprature:

Le paramtre T (temprature) est un rel positif.


La temprature permet de contrler lacceptation des dgradations :

Si T est grand, les dgradations sont acceptes avec une probabilit plus
grande.

A la limite, quand T tend vers linfini, tout voisin est systmatiquement


accept.

Inversement, pour T=0, une dgradation nest jamais accepte.

La temprature varie au cours de la recherche : T est leve au dbut, puis diminue et


finit par tendre vers une temprature critique.

1.2.8. Application

du recuit simul au problme de voyageur de commerce :

La mthode du Recuit Simul a permis de rsoudre des problmes trs complexes du type
voyageur de commerce o les mthodes dterministes sont rapidement piges dans des
minimums locaux. Le but est alors de trouver le circuit Hamiltonien de cot minimal dans un
graphe. Lnergie reprsentera la distance totale parcourir, et un tat du systme reprsentera
le chemin entre les villes.
Lalgorithme va donc tenter de minimiser la longueur totale du chemin, en modifiant lordre
des villes parcourir.
Soit le graphe suivant reprsentant un ensemble de villes:

Figure 3 : Un ensemble de villes (nuds) relis entre eux par des routes (arcs)

La solution la plus simple est de parcourir les villes dans lordre :

Figure 4: Une premire solution (parcours suivant l'ordre des villes).

Figure 5: Le rsultat obtenu : on a dlac un sommet vers son plus proche voisin.

Figure 6: Le rsultat obtenu en changeant les sommets 2 et 3.


Dans la Figure 4, la distance totale a augment. Pour une heuristique classique cette solution
est rejete car la distance doit tre minimise, mais le recuit simul laccepte si la temprature
est encore leve, et cette solution qui est mauvaise par rapport la premire va lui
permettre de trouver une solution meilleure :

Figure 7: Le rsultat obtenu en changeant les sommets 5 et 2.


En rsum : Le recuit simul, en acceptant une mauvaise solution, russi chapper au
minimum local et obtenir une solution meilleure.
1.2.9. Avantages

et inconvnients:

Les avantages:

Facile implmenter.
Elle est prte aussi loptimisation combinatoire que continue.
Elle donne des excellents rsultats pour des problmes de grande taille.
La thorie dmontre que la mthode converge presque srement (i.e. avec une
probabilit 1) vers un minimum global si la temprature ne dcrot pas plus vite
que C/log(t), o Cest une constante dpendant de la profondeur des puis
dnergie .

Cest un trs bon algorithme itratif pour loptimisation de fonctions continues


non convexes.
Les inconvnients:

Trs coteuse en temps de calcul.


La difficult de dterminer la temprature initiale.
Non-convergence vers l'optimum peut se rencontrer assez vite.
L'impossibilit de savoir si la solution trouve est optimale.
Dgradation des performances pour les problmes o il y a peu de minimums
locaux.

2. Chapitre 2 : Algorithme et
Implmentation

2.1. Introduction :
Dans ce chapitre nous allons expliquer lalgorithme et le code avec lequel on a fait la rsolution

2.2. Les lments de lalgorithme de recuit simul :


2.2.1. Solution

initiale : INITIAL ( )

Pour les algorithmes de gnration de la solution initiale nous avons choisi lalgorithme de
glouton. En fait, cet algorithme est utilis pour avoir une bonne solution initiale ds le dbut.
Lalgorithme est dcrit comme suit :
On choisit une premire ville au hasard et on construit un chemin en allant vers la ville la plus
proche nappartenant pas dj au chemin.

E= {1,2,10}
S(10) = vide
r= rand(1,10)
S(1) = r
E=E/{r}
Pour i=1 10 faire
J= le plus proche de S (i-1) dans E
S(i)=j
E=E/ {j}
Fin pour
Retourner S
2.2.2. Voisinage

VOISIN ( ) :

La notion de voisinage est relativement simple. On dsigne par voisinage dune solution
donne lensemble des solutions du problme TSP obtenues partir dune lgre perturbation
lmentaire dune solution. Nous allons adopter dans notre mthodologie de rsolution
linversion entre deux villes (ou sommets ) exemple si la solution S=[x,y,z,t,w] le voisin
peut tre S=[w,y,z,t,x] permutation entre w et x.

k1 := rand(1,10)
k2 :=rand(1,10)
avec (k1< >k2)
s(x) = {x avec permutation de x(k1) et x(k2) }
2.2.3. Algorithme

principale MAIN_RECUIT ( ):

x* := INITIAL (), x := INITIAL ()


T := T initiale,
Alpha in [0,1]

while (T > Tmin) do


for m :=1 m :=longueur des plateaux do
s(x) :=choisir voisin(x)
f:= (f(s(x))-f(x))

if f 0 then x=s(x)
else
tirer p dans [0,1] ;
if p e(- f/T) then x=s(x)
if f(x*) > f(x) then x*=x
T :=T*Alpha
Retourner x*, f(x*)
f (x): reprsente la distance totale dun cycle donnes x.
Les diffrents paramtres que nous allons choisir pour rsoudre le problme TSP sont :

Alpha
Longueur des plateaux
T min
T initiale

2.3. Dfinition du problme et Rsolution:


Tout dabord on a vrifi que l'algorithme glouton et le recuit simul sont corrects et
efficace. Le langage de programmation VBA a t utilis pour la programmation de la Meta
heuristique sur Excel 2013.
2.3.1. Dfinition

de problme :

La premire instance est compos par 10 villes, le tableau ci-dessus reprsente les
coordonnes des villes (x, y).

i
1
2
3
4
5

x
41
35
55
55
15

y
49
17
45
20
30

6
7
8
9
10

25
20
10
55
30

30
50
43
60
60

Tableau 1 : coordonne des points


A partir de ces coordonnes on a calcul automatiquement par VBA on utilisant la fonction
distance (), les distances entre les diffrentes villes.
1
_
32,56
14,56
32,20
32,20
24,84
21,02
31,58
17,80
15,56

1
2
3
4
5
6
7
8
9
10
7
21,02
36,25
35,36
46,10
20,62
20,62
_
12,21
36,40
14,14

2
32,56
_
34,41
20,22
23,85
16,40
36,25
36,07
47,42
43,29

8
31,58
36,07
45,04
50,54
13,93
19,85
12,21
_
48,10
26,25

14,56
34,41
_
25,00
42,72
33,54
35,36
45,04
15,00
29,15
9

17,80
47,42
15,00
40,00
50,00
42,43
36,40
48,10
_
25,00

4
32,20
20,22
25,00
_
41,23
31,62
46,10
50,54
40,00
47,17

5
32,20
23,85
42,72
41,23
_
10,00
20,62
13,93
50,00
33,54

10
15,56
43,29
29,15
47,17
33,54
30,41
14,14
26,25
25,00
_

Tableau 2 : distances entre les diffrents points :

2.3.2. Rsolution

2.3.2.1. Rsolution approch (recuit simul)


La solution initiale est trouve avec utilisation du lalgorithme de gloutonne.

6
24,84
16,40
33,54
31,62
10,00
_
20,62
19,85
0,00
30,41

Figure 4: trajet de la solution initiale


Solution actuelle (s)
Distan
172,019
ce

10

On constate que le point de dpart cest le point 9 ( il est choisie de manire alatoire
lapplication de lalgorithme de glouton donne la solution ci-dessus.
Remarque la solution initiale varie selon le choix du point de dpart.
Solution finale :
Dans cette partie on va changer les paramtres du lalgorithme dans le but la solution
trouve :
Paramtre (Tinit

Fonction objectif

solution

Temps dexcution

alpha,nb-pla,Tmin,
(25,0.9, 2,7)

172,019

(9,3,1,10,7,8,5,6,2,4,9

(30,0.9, 2, 7)

169,27

)
(3,1,9,10,7,8,5,6,2,4,3

10

(40,0.9, 2, 5)

173,64

)
(9,1,10,7,8,6,5,2,4,3,9

14

160,26

)
(3,9,1,10,7,8,5,6,2,4,3

40

(100,0.95, 15, 7)

160,26

)
(3,9,1,10,7,8,5,6,2,4,3

60

(120,0.96, 20, 3)

160,26

)
(3,9,1,10,7,8,5,6,2,4,3

100

(70,0.9, 10, 5)

(seconde)

Figure 5 : trajet de la meilleure solution trouve :


Meilleure solution
trouve (s*)
Distance

10

160,263

Daprs le tableau ci-dessus, on modifiant les paramtres de lalgorithme (augmentation de


Tinit et de alpha et de nombre des plateaux) on constate qu partir dun certain moment la
fonction objectif se stabilise pour une valeur gale 160,26. et une solution
x*=(3,9,1,10,7,8,5,6,2,4,3)
2.3.2.2. Rsolution exacte :
Afin de pouvoir valuer les rsultats de la mthode approche, nous avons rsolu le
problme loptimalit en utilisant le logiciel doptimisation Cplex (Figure 1)

Figure 6 :Code Cplex

Figure 7: donn du problme

Figure 8: La solution optimale fournie par Cplex pour la 1Instance n=10


La solution optimale est x=(3,9,1,10,7,8,5,6,2,4,3) cest la mme solution trouv par le mta
heuristique avec les paramtres Tinit= 120, alpha=0.96,P= 20, Tmin= 3)
Interprtation :
Plus on augmente le temps de calcul, plus la solution livre par le mta heuristique
sapproche de la solution optimale donne par Cplex.
Le choix des paramtres comme alpha et le nombre des plateaux assure une recherche plus
efficace de la solution optimale mais ce choix augmente la mmoire alloue lexcution de
lalgorithme et le temps dexcution.

[1] http://tchiling.iiens.net/Documents/TIPE/Dossier.pdf
[2] http://www.lamsade.dauphine.fr/~monnot/index_fichiers/chap/ChapTSP.pdf
[3] Optimisation combinatoire Mtaheuristiques, Original Pierre Brezellec
Laboratoire Gnome et Informatique, Evry (Modifi par Jol Pothier)
http://abiens.snv.jussieu.fr/OBI/OBI2/Optimisation_combinatoire.pdf
[4]https://rfia2012.files.wordpress.com/2011/12/amine_le_recuit_simulc3a9.pdf
[5] Les mtaheuristiques en optimisation combinatoire [Rapport] : Mmoire de fin d'etudes /
aut. Autin Baptiste / Conservatoire National Des Arts et Metiers. - PARIS : [s.n.], 2006.
[6] Mthode du recuit simul [Rapport] : complment TD/TP Recherche stochastique / aut.
Olivier D.. - 2001.
[7] Optimization by Simulated Annealing [Article] / aut. Kirkpatrick, Gelatt et Vecchi //
Science, New Series. - 13 Mai 1988. - 4598. - pp. 671-680.

Вам также может понравиться