0% ont trouvé ce document utile (0 vote)
127 vues23 pages

Meta Heuristique

Le document présente les méta-heuristiques, en particulier l'algorithme de recuit simulé, utilisé pour résoudre des problèmes d'optimisation complexes tels que le problème du voyageur de commerce. Il explique les concepts de base, le fonctionnement de l'algorithme, et fournit un exemple d'implémentation en Python. Le recuit simulé permet d'explorer efficacement l'espace des solutions en évitant les minima locaux grâce à un processus d'acceptation probabiliste des solutions moins optimales.

Transféré par

Amine Oulghazi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
127 vues23 pages

Meta Heuristique

Le document présente les méta-heuristiques, en particulier l'algorithme de recuit simulé, utilisé pour résoudre des problèmes d'optimisation complexes tels que le problème du voyageur de commerce. Il explique les concepts de base, le fonctionnement de l'algorithme, et fournit un exemple d'implémentation en Python. Le recuit simulé permet d'explorer efficacement l'espace des solutions en évitant les minima locaux grâce à un processus d'acceptation probabiliste des solutions moins optimales.

Transféré par

Amine Oulghazi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Introduction Définition et Concepts de base Algorithme de Recuit Simulé Exemple d’application

Meta Heuristique
Filière : MP

EL BOUNI FATIMA-ZAHRA

elbouni97@[Link]
Classes préparatoires aux grandes écoles
Lycée Moulay Ali Cherif-ERRACHIDIA

December 16, 2024

EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Meta Heuristique December 16, 2024 1 / 23
Introduction Définition et Concepts de base Algorithme de Recuit Simulé Exemple d’application

1 Introduction

2 Définition et Concepts de base

3 Algorithme de Recuit Simulé

4 Exemple d’application
Problème du voyageur de commerce
Implémentation de recuit simulé appliqué au TSP en Python

EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Meta Heuristique December 16, 2024 2 / 23
Introduction Définition et Concepts de base Algorithme de Recuit Simulé Exemple d’application

1 Introduction

2 Définition et Concepts de base

3 Algorithme de Recuit Simulé

4 Exemple d’application

EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Meta Heuristique December 16, 2024 3 / 23
Introduction Définition et Concepts de base Algorithme de Recuit Simulé Exemple d’application

Introduction

Les problèmes NP-difficiles sont des problèmes d’optimisation complexes, car


aucun algorithme exact n’est connu pour les résoudre en temps polynomial.
Ces problèmes se manifestent dans des domaines variés, tels que la planification
d’itinéraires, la conception de réseaux ou encore le placement de composants
électroniques...

EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Meta Heuristique December 16, 2024 4 / 23
Introduction Définition et Concepts de base Algorithme de Recuit Simulé Exemple d’application

Introduction

Dans les approches étudiées jusqu’ici, chacune présente des forces, mais
également des limites :
Algorithmes gloutons : Bien que rapides et simples à implémenter, ils ne
garantissent pas toujours une solution optimale.
Programmation dynamique : Elle est efficace pour certains problèmes, mais peut
entraîner une consommation élevée de mémoire et des temps de calcul importants
lorsque le nombre de sous-problèmes devient très grand (problème d’explosion
combinatoire).
Ces limites justifient la recherche d’autres solutions approchées comme les
heuristiques qui sont des solutions de bonne qualité obtenues en un temps
raisonnable, même si elles ne sont pas garanties comme optimales.
Les heuristiques sont des méthodes basées sur des règles simples et empiriques,
souvent issues de l’expérience ou d’analogies avec des problèmes similaires.

EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Meta Heuristique December 16, 2024 5 / 23
Introduction Définition et Concepts de base Algorithme de Recuit Simulé Exemple d’application

1 Introduction

2 Définition et Concepts de base

3 Algorithme de Recuit Simulé

4 Exemple d’application

EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Meta Heuristique December 16, 2024 6 / 23
Introduction Définition et Concepts de base Algorithme de Recuit Simulé Exemple d’application

Définition et Concepts de base

Définition
Les méta-heuristiques sont des algorithmes d’optimisation avancés et souvent
stochastiques, qui combinent différentes approches heuristiques pour mieux explorer
l’espace des solutions.

En plus de rechercher des solutions de haute qualité, les méta-heuristiques visent à


éviter les minima locaux et à s’approcher de l’optimum global, en équilibrant
exploration et exploitation.
Il existes des méthodes peuvent être appliquées à une large gamme de problèmes
complexes, avec une flexibilité élevée telles que :
Le recuit simulé.
Les algorithmes génétiques.
Colonie de fourmis (Ant Colony Optimization)...

EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Meta Heuristique December 16, 2024 7 / 23
Introduction Définition et Concepts de base Algorithme de Recuit Simulé Exemple d’application

Définition et Concepts de base

Formalisation
Soit S un ensemble de solutions à un problème d’optimisation et soit f une
fonction qui mesure la qualité f (s) de chaque solution s ∈ S.
Le but des méta-heuristiques est de déterminer une solution s ∈ S de valeur f (s)
minimale. En d’autres termes, le problème est de déterminer la valeur suivante :

min f (s)
(s∈S)

Un voisinage est une fonction N qui associe un sous-ensemble de S à tout solution


s ∈ S.
Une solution s′ ∈ N(s) est dite voisine de s.
Une solution s ∈ S est un minimum local relativement à N si f (s) ≤ f (s′ ) pour tout
s′ ∈ N(s), alors qu’il s’agit d’un minimum global si f (s) ≤ f (s′ ) pour tout s ∈ S.

EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Meta Heuristique December 16, 2024 8 / 23
Introduction Définition et Concepts de base Algorithme de Recuit Simulé Exemple d’application

1 Introduction

2 Définition et Concepts de base

3 Algorithme de Recuit Simulé

4 Exemple d’application

EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Meta Heuristique December 16, 2024 9 / 23
Introduction Définition et Concepts de base Algorithme de Recuit Simulé Exemple d’application

Recuit Simulé

La méthode de de Recuit Simulé est inventée en 1983 par S. Kirkpatrick et ses


collègues chez (IBM).
Son principe repose sur la technique expérimentale du recuit(réchauffage),
employée par les métallurgistes pour obtenir un état solide "bien ordonné",
d’énergie minimale, en évitant les structures métastables.
Cette technique consiste à porter le matériau à haute température, puis à abaisser
lentement celle-ci.

EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Meta Heuristique December 16, 2024 10 / 23
Introduction Définition et Concepts de base Algorithme de Recuit Simulé Exemple d’application

Recuit Simulé

Principe :
Initialisation : Commence par un état aléatoire du système avec une énergie
initiale et une température élevée T .
Processus Itératif : A chaque itération, une petite modification est apportée à l’état
actuel, générant un nouvel état:
Si le nouvel état a une énergie inférieure (meilleure solution), il est accepté (p = 1).
Si l’énergie est supérieure (solution de moindre qualité), il peut être accepté avec une
∆f (x)
probabilité p = e− T .
Refroidissement : La température est progressivement diminuée, réduisant la
probabilité d’accepter des solutions de moins bonne qualité.
Critère d’Acceptation : La probabilité diminue au fur et à mesure du
refroidissement. Cela permet d’éviter de rester bloqué dans un minimum local,
favorisant ainsi l’exploration de l’espace des solutions de manière plus exhaustive.

EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Meta Heuristique December 16, 2024 11 / 23
Introduction Définition et Concepts de base Algorithme de Recuit Simulé Exemple d’application

Recuit Simulé

Pseudo-code
i := i0 (* Solution initiale *)
T := T0 (* Température initiale *)
Tant que la condition d’arrêt n’est pas vérifiée
Tant que la fin du palier n’est pas atteinte
Générer une nouvelle solution j et Calculer ∆ = e(j) − e(i)
Si ∆ < 0 alors
i := j
Sinon
i := j avec une probabilité p = exp − ∆
¡ ¢
T
Fin si
Fin tant que
Abaisser T
Fin tant que
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Meta Heuristique December 16, 2024 12 / 23
Introduction Définition et Concepts de base Algorithme de Recuit Simulé Exemple d’application

Implémentation de l’algorithme en Python


 
1 import math
2 import random

3 def R_S (F , int_solv , int_tmp , cool_rate , stop_tmp , max_iter ) :

4 i = int_solv
5 T = int_tmp
6 while T > stop_tmp :
7 for _ in range ( max_iter ) :
8 j = i + random . uniform ( - 1 , 1)
9 delta = F ( j ) - F ( i )
10 if delta < 0:
11 i = j
12 else :
13 if random . random () < math . exp ( - delta / T ) :
14 i = j
15 T *= cool_rate
16 return i
 
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Meta Heuristique December 16, 2024 13 / 23
Introduction Définition et Concepts de base Algorithme de Recuit Simulé Exemple d’application

Exemple

On souhaite trouver le minimum global de la fonction :


1 |x−0.5| 2 |x+0.5|
f (x) = − e− 0.5 − e− 0.2 , x ∈ R
3 3
On utilisant l’algorithme recuit simulé sur l’espace d’états E discret défini par :
E = {xk }1≤k≤N . Où N ≥ 2 est un entier, et x1 < x2 < ... < xN est une suite croissante de réels
régulièrement espacés sur l’intervalle [−2, 2] avec x1 = −2 et xN = 2.

Le graphique ci-dessus illustre la convergence de l’algorithme du recuit simulé vers le


minimum global.
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Meta Heuristique December 16, 2024 14 / 23
Introduction Définition et Concepts de base Algorithme de Recuit Simulé Exemple d’application

1 Introduction

2 Définition et Concepts de base

3 Algorithme de Recuit Simulé

4 Exemple d’application
Problème du voyageur de commerce
Implémentation de recuit simulé appliqué au TSP en Python

EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Meta Heuristique December 16, 2024 15 / 23
Introduction Définition et Concepts de base Algorithme de Recuit Simulé Exemple d’application

1 Introduction

2 Définition et Concepts de base

3 Algorithme de Recuit Simulé

4 Exemple d’application
Problème du voyageur de commerce
Implémentation de recuit simulé appliqué au TSP en Python

EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Meta Heuristique December 16, 2024 16 / 23
Introduction Définition et Concepts de base Algorithme de Recuit Simulé Exemple d’application

Problème du voyageur de commerce

Le problème du voyageur de commerce (TSP) consiste à trouver le plus court


itinéraire permettant à un vendeur de visiter un ensemble de villes, en partant
d’une ville donnée, en visitant chaque ville une seule fois, et en revenant à la ville
de départ.
Formulation du problème : Soit un ensemble de n villes V = {v1 , v2 , . . . , vn } et une
matrice de distances D où D(i, j) représente la distance entre la ville vi et la ville vj .
L’objectif est de trouver un itinéraire C = (v1 , v2 , . . . , vn , v1 ) qui minimise la distance
totale parcourue :

n−1
X
Distance totale = D(vi , vi+1 ) + D(vn , v1 )
i=1

où vn+1 = v1 .

EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Meta Heuristique December 16, 2024 17 / 23
Introduction Définition et Concepts de base Algorithme de Recuit Simulé Exemple d’application

Recuit Simulé appliqué au TSP

Représentation de la solution :
Une solution au TSP peut être représentée par une permutation des villes
π = (π1 , π2 , . . . , πn ), où πi est l’indice de la ville visitée à la i-ème position.
Énergie (coût) de la solution :
Le coût de la solution est la distance totale parcourue par le vendeur.
Il s’agit de la somme des distances entre chaque paire de villes successives dans la
permutation, avec le retour à la ville de départ.

n−1
D(πi , πi+1 ) + D(πn , π1 )
X
E(π) =
i=1

Où D(i, j) est la distance entre les villes vi et vj .

EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Meta Heuristique December 16, 2024 18 / 23
Introduction Définition et Concepts de base Algorithme de Recuit Simulé Exemple d’application

Recuit Simulé appliqué au TSP

Transition
À chaque itération, on génère une solution voisine en modifiant légèrement la
permutation actuelle.
Une façon courante de faire cela est d’échanger deux villes dans la permutation.
Critère d’acceptation
Si la nouvelle solution est meilleure (coût réduit), on l’accepte toujours.
Si elle est moins bonne (coût plus élevé), elle est acceptée avec une probabilité
donnée par la fonction de Boltzmann :

∆E
µ ¶
P(∆E) = exp −
T

Où ∆E est l’augmentation du coût et T est la température actuelle.

EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Meta Heuristique December 16, 2024 19 / 23
Introduction Définition et Concepts de base Algorithme de Recuit Simulé Exemple d’application

1 Introduction

2 Définition et Concepts de base

3 Algorithme de Recuit Simulé

4 Exemple d’application
Problème du voyageur de commerce
Implémentation de recuit simulé appliqué au TSP en Python

EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Meta Heuristique December 16, 2024 20 / 23
Introduction Définition et Concepts de base Algorithme de Recuit Simulé Exemple d’application

Implémentation de recuit simulé appliqué au TSP en Python

Calcul de la distance :
 
1 def euc_dis ( v1 , v2 ) :

2 return math . sqrt (( v1 [0] - v2 [0]) **2+( v1 [1] - v2 [1]) **2)


 
 
1 def dis_mat ( villes ) :

2 n = len ( villes )
3 dist_matrix = [[0] * n for _ in range ( n ) ]
4 for i in range ( n ) :
5 for j in range ( n ) :
6 if i != j :
7 dist_matrix [ i ][ j ] = euc_dis ( villes [ i ] ,
villes [ j ])
8 return dist_matrix
 

EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Meta Heuristique December 16, 2024 21 / 23
Introduction Définition et Concepts de base Algorithme de Recuit Simulé Exemple d’application

Implémentation de recuit simulé appliqué au TSP en Python

Calcul de la distance totale :


 
1 def total_dist ( permutation , dis_mat ) :

2 tot_dis = 0
3 for i in range ( len ( permutation ) - 1) :
4 tot_dis += dis_mat [ permutation [ i ]][ permutation [ i + 1]]
5 tot_dis += dis_mat [ permutation [ - 1]][ permutation [0]]
6 return tot_dis
 
La fonction qui permet de proposer un trajet voisin :
 
1 def Voisin ( permutation ) :

2 voisin = permutation [:]


3 i , j = random . sample ( range ( len ( permutation ) ) , 2)
4 voisin [ i ] , voisin [ j ] = voisin [ j ] , voisin [ i ]
5 return voisin
 
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Meta Heuristique December 16, 2024 22 / 23
Introduction Définition et Concepts de base Algorithme de Recuit Simulé Exemple d’application

Implémentation de recuit simulé appliqué au TSP en Python

La fonction recuit simulé pour TSP:


 
1 def S_R_TSP ( d_mat , init_tmp , cool_rate , max_itr ) :

2 n = len ( d_mat ) , perm = list ( range ( n ) )


3 random . shuffle ( perm )
4 cout = total_dist ( perm , d_mat ) , tmp = init_tmp
5 P = perm [:] , C = cout
6 while tmp > 1 e - 3:
7 for _ in range ( max_itr ) :
8 v_p = Voisin ( perm ) , v_c = total_dist ( v_p , d_mat )
9 dt_ct = v_c - cout
10 if dt_ct <0 or random . random () < math . exp ( - dt_ct / tmp ) :
11 perm = v_p , cout = v_c
12 if cout < C :
13 P = perm [:] , C = cout
14 tmp *= cool_rate
15 return P , C
 
EL BOUNI F-Z (CPGE-Moulay Ali Cherif ) Meta Heuristique December 16, 2024 23 / 23

Vous aimerez peut-être aussi