Vous êtes sur la page 1sur 2

UV FUNS

P ROBLÈME DU VOYAGEUR DE COMMERCE

Un voyageur de commerce basé dans la ville v1 doit visiter les villes v2 , . . . , vm puis revenir en son
point de départ. Il connaît les distances séparant toutes ces villes et voudrait déterminer l’ordre dans lequel
il doit les visiter dans le but de minimiser la distance totale parcourue.

Nous supposons dans un premier temps que les positions des m villes sont tirées uniformément dans
le carré [0, 1]2 et de manière indépendante. La distance (à vol d’oiseau) entre les villes vi et vj est notée
d(vi , vj ). Soit σ = (σ1 , . . . , σm ) une permutation de l’ensemble {v1 , . . . , vm } : σ représente un chemin
ou une façon pour le voyageur de commerce de visiter une et une seule fois chacune des m villes dans un
ordre donné. Le problème du voyageur de commerce est de déterminer un chemin σ minimisant la distance
totale parcourue :
m−1
X
H(σ) := d(σi , σi+1 ) + d(σm , σ1 )
i=1
(le voyageur de commerce doit retourner au point de départ). La recherche de la configuration optimale
par énumération exhaustive de tous les chemins possibles est très vite impossible.

Question 1. Illustrer le phénomène d’explosion combinatoire en programmant la recherche exhaustive du


plus court chemin. Évaluer le temps de calcul de votre programme en fonction de m. Jusqu’à combien de
villes la recherche exhaustive est-elle envisageable ?

Les algorithmes d’optimisation stochastique, comme le recuit simulé, sont des algorithmes efficaces
pour résoudre ce genre de problèmes complexes.
Soit E l’ensemble des m! permutations de {v1 , . . . , vm }. On appelle mesure de Gibbs associée à la
fonction d’énergie H et à température T > 0, la loi de probabilité définie sur l’espace E par :
1 − 1 H(σ)
IPT (σ) := e T ,
ZT
1
où ZT est la constante de normalisation ZT := σ∈E e− T H(σ) . La particularité de cette loi de probabilité
P
est qu’elle se concentre, à basse température, sur les états d’énergie minimale. En effet, si on note Emin :=
{σ ∈ E : H(σ) ≤ H(σ ′ ), ∀σ ′ ∈ E} l’ensemble des éléments de E d’énergie minimale (ou l’ensemble
des plus courts chemins) alors on a le résultat suivant :
1
∀σ ∈ E, lim IPT (σ) = 11σ∈Emin .
T →0+ #Emin
Ainsi, en revenant au problème du voyageur de commerce, il devient naturel pour minimiser l’énergie H
qui correspond à la distance totale parcourue, de simuler la loi IPT pour une température T suffisamment
basse. Les réalisations de cette loi devraient être proches des éléments de Emin .

1
Malheureusement, il n’existe aucune formule explicite pour la constante de normalisation ZT , rendant
son calcul impossible lorsque #E est grand. Il est donc impossible de simuler directement la mesure
de probabilité IPT . Un moyen indirect (et extrêmement astucieux) d’y parvenir est de faire appel à une
méthode MCMC...

Question 2. Proposer une chaîne de Markov à espace d’états E dont la mesure stationnaire est exactement
la loi de probabilité IPT . On pourra utiliser la structure de graphe suivante : deux chemins sont voisins si on
peut passer de l’un à l’autre en permutant deux villes. Implémenter un algorithme permettant de simuler
(de manière approchée) IPT .

Le choix de la température T est important. Lorsque la température T est élevée, la chaîne explore
bien l’espace E (i.e. la chaîne saute souvent) mais ne reste pas sur les minima de l’énergie H. C’est
exactement le contraire lorsque la température T est basse : l’exploration est très lente et la chaîne peut
rester longtemps piégée dans un minimum local. L’algorithme du recuit simulé est un compromis entre
ces deux comportements : on fait décroître lentement la température T = T (n) en fonction du temps n.
La suite (T (n))n est appelé schéma de température. L’idée physique est qu’un refroidissement trop brutal
peut bloquer le métal dans un état peu favorable, alors qu’un refroidissement lent permettra aux molécules
de s’agencer au mieux dans une configuration stable.
Mais attention !!! Une température qui varie en fonction du temps n rend la chaîne de Markov non
homogène ! Le Théorème Limite vu en cours ne s’applique plus... Il existe néanmoins un résultat de
convergence pour un schéma de température bien précis :

Théorème 0.1 Soit h > 0. Considérons le schéma de température suivant :


1
∀k ∈ N∗ , ∀n ∈]e(k−1)h , ekh ], T (n) := .
k
T (n)
Alorsil existe h∗ > 0 tel que pour tout h > h∗ , l’algorithme du recuit simulé converge, i.e. IP Xn ∈
Emin → 1 quand n → ∞.

La constante h∗ est inconnue en pratique. Le paramètre h doit donc être ajusté expérimentalement. S’il
est choisi trop petit, l’algorithme peut ne pas converger vers les minima globaux et rester piégé dans un
minimum local. S’il est choisi trop grand, la convergence sera très lente.

Une liste d’une trentaine de villes est disponible sur MLS. Leurs longitudes et latitudes sont fournies.
Il n’est pas difficile de calculer la distance (à vol d’oiseau) entre 2 villes à partir de leurs longitudes et
latitudes.

Question 3. Implémenter l’algorithme du recuit simulé pour le problème du voyageur de commerce.


Proposer des critères d’arrêt. Tester votre programme pour différentes valeurs de m (20, 25, 30...) : quels
sont les plus courts chemins que vous pouvez trouver ? Comparer à l’algorithme de recherche exhaustive
pour m petit. Réaliser des représentations graphiques de l’exploration de l’espace d’états E, afin d’illustrer
l’influence du schéma de température.

Vous pouvez tester d’autres schémas de température. Tant pis s’ils ne sont pas supportés par un
théorème de convergence ! Soyons pragmatiques !

Vous aimerez peut-être aussi