Chapitre 4 : Algorithmes d`optimisation stochastiques. 1 Algorithme

publicité
Aix Marseille Université.
M2 MI3S.
.
Algorithmes Stochastiques.
Fabienne Castell.
.
Chapitre 4 : Algorithmes d’optimisation stochastiques.
Le but de ce chapitre est de présenter deux algorithmes stochastiques d’optimisation d’une
fonction V : E → R où E est un espace de cardinal fini, mais dont le cardinal est tellement
grand qu’il est impossible de l’explorer entièrement pour y trouver le minimum de V .
1
Algorithme du recuit simulé.
L’observation à la base de l’algorithme du recuit simulé est le fait que lorsqu’on refroidit
lentement un système physique, celui-ci se fige dans un état d’énergie minimale. Ceci se voit
facilement sur la loi de Gibbs d’un système de Hamiltonien V :
V (e)
1
exp −
,
∀e ∈ E , ΠT (e) =
ZT
T
où
V (e)
ZT =
exp −
.
T
e∈E
X
Notons M l’ensemble des miminima de V . Quand T → 0,
Vmin
ZT ' |M| exp −
, où Vmin := min V (e) ;
e∈E
T
et pour tout e ∈ E,

 0
V (e) − Vmin
1
1
exp −
ΠT (e) '
−→

|M|
T
|M|
si V (e) > Vmin , i.e. e ∈
/M
si V (e) = Vmin , i.e. e ∈ M .
Ainsi ΠT converge quand T tend vers 0, vers Π0 qui est la loi uniforme sur M. Supposons
que l’on veuille minimiser une fonction V : E → R. L’idée de l’algorithme de recuit est
— de voir V comme l’énergie d’un système ;
— de générer une chaı̂ne de Markov (Xn ) irréductible apériodique de probabilité invariante ΠT (par exemple par la dynamique de Métropolis) ;
— de laisser évoluer cette chaı̂ne jusqu’à ce qu’elle soit proche de sa mesure invariante ;
— d’abaisser la température.
Au bout du compte, la chaı̂ne doit se trouver dans un état de M. On a en effet
Proposition 1.1 Soit Xn une chaı̂ne irréductible apériodique de probabilité invariante ΠT .
Quelle que soit la mesure initiale de la chaı̂ne,
lim lim PT (Xn = e) = Π0 (e)
T →0 n→+∞
où Π0 est la mesure uniforme sur M = {minima globaux de V }.
1
Démonstration. Xn étant irréductible apériodique sur E, on sait que ∀e0 ∈ E, ∀e ∈ E,
lim PT (Xn = e|X0 = e0 ) = ΠT (e) .
n→+∞
On a vu de plus que limT →0 ΠT (e) = Π0 (e).
Le terme de “recuit simulé” vient de la physique de la matière condensée. Le recuit est un
procédé qui consiste à réchauffer un solide jusqu’à une température assez élevée pour que
les particules à l’intérieur du solide se réarrangent, et ensuite à le refroidir lentement. Lors
de ce processus, les particules se réarrangent dans un état d’énergie minimale.
Rappelons que dans ce cadre, la dynamique de Métropolis associée à un noyau Q, consiste
partant d’un état e à choisir un nouvel état e0 suivant le noyau Q. Si V (e0 ) < V (e), e0 devient
le nouvel état de la chaı̂ne. Si V (e0 ) ≥ V (e), e0 est le nouvel état de la chaı̂ne avec probabilité
exp(−(V (e0 ) − V (e))/T ), autrement la chaı̂ne reste en e. On peut donc voir cet algorithme
comme une sorte de recherche locale du minimum, ou de descente de gradient pour lequel les
pas qui se font vers des valeurs plus basses de la fonction V sont automatiquement effectués.
Si seuls ces pas étaient autorisés, l’algorithme resterait coincé sur des miminimas locaux
de V . Pour éviter cela, l’algorithme autorise des pas dans la mauvaise direction, avec une
probabilité d’autant plus faible que T est petit. Ainsi, l’algorithme peut sortir des puits de
V , mais il peut rester piégé très longtemps dans un puits de potentiel avant d’en sortir.
En pratique, au lieu de faire n → +∞, puis T −→ 0, on aimerait pour des raisons évidentes
de gain de temps, effectuer les deux limites en même temps, i.e. prendre T (n) −→ 0. On
n→+∞
0
obtient alors une chaı̂ne inhomogène, dont les transitions sont P (Xn+1 = e |Xn = e) =
PT (n) (e, e0 ). Comment choisir T (n) pour que la chaı̂ne inhomogène continue à converger en
loi vers Π0 ? Il est intuitivement clair que T (n) ne doit pas décroı̂tre trop vite vers 0, pour
laisser le temps à la chaı̂ne d’approcher sa mesure invariante. Le théorème suivant dû à Hajek
(88) donne une condition nécessaire et suffisante sur T (n) pour assurer la convergence. Pour
l’énoncer, nous avons besoin de la définition suivante :
Définition 1.2 Soit h > 0. On dit que i ∈
/ M communique avec M à hauteur h, s’il existe
un chemin e0 = i, e1 , · · · , el ∈ M tel que
∀i ∈ {1, · · · l} , Q(ei−1 , ei ) > 0 , et V (ei ) ≤ V (i) + h .
La hauteur de communication h∗ est la plus petite hauteur h pour laquelle tout état de E \ M
communique avec M à hauteur h.
Théorème 1.3 L’algorithme de recuit simulé associé à la dynamique de Métropolis de
noyau Q, et au schéma de température T (n) converge si et seulement si
∞
X
h∗
= ∞.
lim T (n) = 0 , et
exp −
n→∞
T
(n)
n=1
Démonstration on consultera [M. Duflo, Algorithmes stochastiques, chapitre 6, collection
Mathématiques et Applications no 23].
On prendra donc des schémas de température du type T (n) = h/ log(n) avec h ≥ h∗ , ou du
type T (n) = 1/k pour n ∈ [e(k−1)h ; ekh [ (k ≥ 1 et h ≥ h∗ ). Malheureusement, en pratique
h∗ n’est pas connue, et de plus ce théorème est un résultat asymptotique qui ne donne pas
d’indication sur le temps d’atteinte de M par la chaı̂ne.
2
2
Algorithmes génétiques.
Les algorithmes génétiques sont apparus quelques années avant l’algorithme de recuit simulé,
et partent cette fois d’une constatation de nature biologique : la sélection naturelle selon
laquelle l’évolution d’une population a tendance à maximiser l’adaptation au milieu dans
lequel elle vit. On va donc plutôt voir ici le problème d’optimisation comme un problème
de maximisation d’une fonction V : E 7→ R, qui sera interprétée comme une fonction
d’adaptation. On notera toujours M l’ensemble des maximas de V .
Les algorithmes génétiques simulent une population de m individus qui évoluent de façon
markovienne, i.e. une chaı̂ne de Markov dont l’espace d’état est E m , et dont la mesure
invariante est une probabilté sur Mm . L’évolution de cette population se fait selon deux
mécanismes qui s’inspirent des mécanismes de la sélection naturelle. Supposons qu’à l’étape
n, les m individus de la population se trouve dans l’état Xn ∈ E m , et décrivons le passage
de Xn à Xn+1 .
— Etape 1 : la mutation. Chaque individu de la population mute de façon indépendante
des autres individus avec probabilité p = e−a/T (où a > 0 et T > 0 sont des paramètres
de l’algorithme). S’il décide de muter, il passe de l’état e ∈ E dans lequel il se trouve
à un autre état e0 choisi suivant une matrice de transition Q sur E (Q est un autre
paramètre de l’algorithme). A l’issue de l’étape de mutation, on se retrouve avec m
nouveaux individus dont les états sont Yn ∈ E m .
— Etape 3 : la sélection. Les m individus de Xn+1 sont choisis de façon indépendante
parmi les individus de Yn avec un poids qui dépend de leur adaptation au milieu. Si
Yn = (e1 , · · · , em ), la probabilité de choisir ei est donnée par
exp cV T(ei )
.
Pm
cV (ej )
j=1 exp
T
Ainsi, comme pour le recuit simulé, les algorithmes génétiques couplent une exploration
aléatoire de l’espace d’états (étape de mutation) avec une recherche de l’optimum dans
l’espace exploré (étape de sélection).
Notez que lorsque T = 0, l’ étape de mutation disparait. Quant à l’étape de sélection, elle
consiste alors à choisir dans les individus présents à l’étape n ceux qui ont une adaptation
maximale et cela de façon uniforme. Dans ce cas, il est clair que l’algorithme va converger
vers une population constituée des individus d’adaptation maximale parmi les individus
de départ. Si l’état qui maximise V ne se trouve pas dans la population de départ, il est
impossible de le trouver.
Lorsque T > 0, l’étapes de mutation permet d’introduire de nouveaux types d’individus
dans la population. Quant à l’étape de sélection, elle permet à des individus sous-optimaux
de survivre à l’étape suivante, avec une probabilité strictement positive mais d’autant plus
petite qu’ils sont “inadaptés”.
Les paramètres de l’algorithme sont m, V, T, a et Q, ce qui fait beaucoup !
Il est clair que si Q est une matrice de transition sur E irréductible, la chaı̂ne (Xn ) l’est
également. Elle admet donc une unique mesure invariante ΠT sur E m . De plus, si a, c et T
sont strictement positifs, il y a une probabilité non nulle de rester sur place ; (Xn ) est alors
apériodique, et sa loi à l’instant n converge vers ΠT . Le problème est maintenant de voir
que lorsque T → 0, ΠT se concentre sur Mm .
Théorème 2.1 Il existe une taille de population critique mc = mc (a, c, V, Q) telle que si
m > mc , limT →0 ΠT (Mm ) = 1.
3
On peut avoir une description assez précise de la dépendance de mc en fonction des autres
paramètres. Malheureusement, comme mc dépend de V , elle n’est pas calculable en pratique.
Comme la loi de Xn converge vers ΠT , on déduit du théorème 2.1 que pour m > mc ,
lim lim P [Xn ∈ Mm ] = 1 .
T →0 n→∞
Comme dans le cas du recuit simulé, on souhaite effectuer les deux limites simultanément,
i.e. trouver des schémas de températures T (n) tels que la chaı̂ne inhomogène associée (notée
T (n)
Xn ) a une loi qui se concentre sur Mm .
Le théorème suivant est dû à R. Cerf.
Théorème 2.2 Il existe des constantes h∗1 et h∗2 (dépendant de m, a, c, V ) telles que si
X
X
h∗2
h∗1
= +∞ et
exp −
< +∞ ,
exp −
T
(n)
T
(n)
n
n
alors limn→∞ P
h
T (n)
Xn
∈M
m
i
= 1.
L’algorithme ne peut donc converger que si h∗1 < h∗2 , ce qui revient à dire que m > mc . Un
schéma de température du type
T (n) =
1
si e(k−1)h ≤ n ≤ ekh , ,
k
(1)
va donc converger si h∗1 < h < h∗2 . Là encore, ce résultat théorique n’est pas très utile en
pratique car les constantes h∗1 et h∗2 dépendant de V , elles ne sont pas calculables en pratique.
Toutefois l’écart h∗2 − h∗1 est une fonction croissante de m, et on a donc intérêt à choisir m le
plus grand possible, tout en restant compatible avec la taille de la mémoire dont on dispose,
et la vitesse d’exécution du programme.
3
TP : Application au problème du voyageur de commerce.
Le problème du voyageur de commerce est un problème classique que l’on peut formuler
de la façon suivante : un voyageur ayant n villes à visiter, souhaite établir une tournée au
départ de la ville v1 , qui lui permet de passer une fois et une seule par chaque ville tout en
minimisant la distance parcourue.
On choisira pour E l’ensemble des n-listes
Lσ = [vσ(1) , vσ(2) , ..., vσ(n) ],
de ces villes ayant pour premier terme vσ(1) = v1 , σ étant une permutation laissant 1 invariant. L’espace E contient donc (n − 1)! listes qui représentent chacune une tournée.
La fonction V à optimiser est définie sur E par
V (Lσ ) =
i=n
X
dist(vσ(i) , vσ(i+1) )
i=1
où l’on note vσ(n+1) = v1 .
4
3.1
recuit simulé
Pour mettre en œuvre la méthode du recuit simulé sur ce problème, il nous faut encore
choisir la matrice Q. Pour cela, on dira que deux tournées L et L0 sont voisines, s’il existe
une transposition τi,j sur [L1 , .., Ln ] avec 2 ≤ i < j ≤ n, permutant Li et Lj , telle que
τi,j (L) = L0 . Q(L, L0 ) est alors la probabilité uniforme sur les (n − 1)(n − 2)/2 voisins de L.
La relation de voisinage étant symétrique, la matrice de transition Q(L, L0 ) l’est aussi. De
plus, comme les transitions engendrent les permutations, tous les points de E communiquent.
Implémentation. Une liste L de villes sera représentée par une matrice n × 2 donnant les
coordonnées des villes.
1. Ecrire la fonction d=dist(L) qui calcule la distance parcourue le long de la tournée
L.
2. Ecrire une fonction LL=transp(L,i,j) qui prend en argument une liste de longueur
n, deux entiers i, j tels que 2 ≤ i < j ≤ n et retourne la liste voisine τ(i,j) (L).
3. Ecrire une fonction LL= rvois-ville(L) qui prend une liste L en argument et retourne aléatoirement une liste voisine de L au sens précédent, de telle sorte que
rvois-ville(L) simule une variable de loi uniforme sur l’ensemble des voisins de L.
4. Ecrire une fonction [Lmin,LL,eLL]=recuit(voisin,energie,T,L0,P), qui prend
comme arguments
— voisin, chaı̂ne de caractères contenant le nom du générateur aléatoires de voisins.
— energie, chaı̂ne de caractères contenant le nom de la fonction à minimiser ;
— T, suite des températures, vecteur (N-1)x1 ;
— L0, état initial de la chaı̂ne ;
— P, paramètres éventuels de la fonction energie ;
et rend
— Lmin, état qui minimise la fonction energie parmi ceux visités par la chaı̂ne.
— LL, état final de la chaı̂ne.
— eLL, suite des énergies (vecteur Nx1) ;
5. Mettre en œuvre le recuit simulé pour T (n) = e−n , T (n) = k log(n). Le tester d’abord
sur de petites valeurs de n pour lesquelles on pourra calculer le miminum.
3.2
Algorithme génétique.
Ici, on va cherche à maximiser −V . Une population est constituée par m tournées. Une
tournée va être ici représentée par une ligne d’entiers entre 2 et n qui représentent l’ordre
dans lequel on effectue la tournée. Ainsi pour n = 3, la ligne (3, 2) signifie qu’on effectue la
tournee (ville 1, ville 3, ville 2, ville 1). On aura pris soin au préalable de définir un tableau
Villes de taille 2 × n contenant les abscisses et les ordonnées des différentes villes.
Une population sera représentée par un tableau m×(n−1) d’entiers entre 2 et n qui donnent
sur chaque ligne une tournée.
Pour l’étape de mutation, on va choisir pour Q la matrice utilisée pour le recuit qui consiste
à échanger deux villes dans une tournée.
On devra écrire :
— une fonction d=dist(pop,Villes), qui pour chaque tournée de la population pop,
calcule la distance parcourue lors de la tournée. d est donc un vecteur colonne de
dimension m, qui contient les distances associées à chaque tournée de pop.
5
— une fonction pop2=perm(pop1), qui à une population pop1, associe une population
pop2, obtenue en permutant aléatoirement et de façon indépendante, 2 villes sur
chaque tournées de pop1 ;
— une fonction pop2=mutation(pop1,a,T) qui implémente une étape de mutation et
fait donc appel à la fonctionn perm ;
— une fonction pop2=selection(pop1,c,T) qui implémente une étape de selection et
fait donc appel à la fonction dist ;
— une fonction d= genetique(pop1,a,c,h, k) qui implémente l’algorithme génétique,
associé au schéma de température donné par (1). Les paramètres d’entrée sont
— a : paramètre de mutation ;
— c : paramètre de sélection ;
— pop1 : population de départ ;
— h : paramètre définissant le schéma de température ;
— k : paramètre marquant la fin de l’algorithme. On simule Xn jusquà n0 = exp(kh).
Le paramètre de sortie d est un tableau m × n0 contenant les distances associées à
chaque population simulée, ou si m ou n0 sont trop grands, un vecteur colonne m × 1
contenant les distances correspondant à la dernière population simulée.
4
Application en traitement d’images.
On se replace dans le cadre de la section 6 du chapitre 3. Une image x de taille N × N est
un élément de E = GS , où S = {1, · · · , N }2 est l’ensemble des pixels, et G est l’ensemble
des valeurs prises par un pixel, par exemple les niveaux de gris en restauration, ou les labels
en segmentation. On observe une image y ∈ E, version bruitée de l’image x. Le problème
de la restauration ou de la segmentation est de ”retrouver” l’image originelle x à partir de
l’observation de y. Rappelons que d’après la formule de Bayes,
P(X = x|Y = y) =
P(Y = y|X = x)P(X = x)
P(Y = y, X = x)
=
.
P(Y = y)
P(Y = y)
Pour résoudre le problème de problème de la restauration ou de la segmentation, on peut
chercher un estimateur du maximum de vraisemblance X̂ de X, i.e. on cherche une fonction
ψ : E 7→ E qui maximise la fonction x 7→ P(X = x|Y = y), ou de façon équivalente la
fonction x 7→ P(Y = y|X = x)P(X = x). On peut alors mettre en oeuvre un algorithme de
recuit pour maximiser cette fonction.
Exemple pratique : intervention de Claire Coiffard.
6
Téléchargement