Recherche locale - Serveur pédagogique UFR Sciences et

publicité
La recherche locale
INF6953
La recherche locale
1
Sommaire
•
•
•
•
•
•
•
•
Recherche locale et voisinage.
Fonction de voisinage, optimum local
Fonction de voisinage et mouvements
Fonction de voisinage et mouvements
Exemples : FAP, SAT, TSP
Algorithme de descente
Algorithme de descente avec relances
Idées pour faire mieux que la descente
INF6953
La recherche locale
2
Recherche locale et voisinage
•
La recherche locale est une famille de métaheuristiques fondée sur la notion
de voisinage.
•
La recherche locale comprend les techniques de descente, mais aussi des
métaheuristiques plus évoluées telles que le recuit simulé, tabou, etc.
•
-
Pour résoudre un problème d’optimisation (S, f) par la recherche locale avec
Un espace de solution S
Une fonction de coût f : S -> R
On doit successivement
Définir une fonction de voisinage
Choisir un mécanisme de visite des configurations, i.e. une métaheuristique
(descente, recuit simulé, tabou, etc.
-
INF6953
La recherche locale
3
Fonction de voisinage, optimum local
•
Une fonction de voisinage N : S -> P(S) associe à toute configuration S de S
l’ensemble N(S) des voisins de S (le voisinage de S).
•
Le voisinage N est le plus souvent symétrique :
S’ appartient à N(S) ssi S appartient à N(S’).
•
On appelle optimum local (relativement au voisinage N) toute configuration S
de S telle que
f(S) ≤ f(S’), pour tout S’ élément de N(S).
INF6953
La recherche locale
4
Fonction de voisinage et mouvements
•
Plutôt que de définir une fonction de voisinage, on définit souvent des
mouvements.
•
On commence (généralement) par définir un ensemble de mouvements M.
•
Pour toute configuration S, on définit l’ensemble M(S) des mouvements
applicables à la configuration S.
La configuration obtenue en appliquant le mouvement m à S être notée
S (+) m.
-
•
Le voisinage d’une configuration S correspond à l’ensemble des
configurations qu’on peut atteindre en utilisant un mouvement applicable à S :
N(S) = { S (+) m | m appartient à M(S) }
INF6953
La recherche locale
5
Voisinage : exemple du k-coloriage de graphe
•
-
Espace de recherche
Une configuration S est une fonction S : V -> {1..k}
•
-
Fonction d’évaluation (à minimiser)
Pour toute configuration S, f(S) représente le nombre d’arêtes violées dans S.
•
-
Voisinage
Un mouvement consiste à changer la couleur d’un sommet unique. On
représente un couple sommet / couleur.
Le mouvement <x, v> consiste à remplacer la couleur courante S(x) du
sommet x par la nouvelle couleur v.
-
INF6953
La recherche locale
6
Voisinage : exemple de Max-SAT
•
-
Espace de recherche
Une configuration est une fonction S : {x1…xn} -> {VRAI, FAUX}
•
-
Fonction d’évaluation (à maximiser)
f(S) représente le nombre de clauses satisfaites dans S.
•
-
Voisinage
Un voisinage possible consiste à inverser la valeur d’une variable booléenne.
Un tel mouvement peut être représenté par le nom de la variable modifiée.
Le mouvement <x> consiste à remplacer la valeur S(x) de la variable x dans la
configuration courante S par son inverse.
-
INF6953
La recherche locale
7
Voisinage : exemple du TSP
•
-
Espace de recherche
Une configuration est un cycle hamiltonien quelconque (tournées).
•
-
Fonction d’évaluation (à minimiser)
Pour toute configuration S, f(S) représente la longueur de la tournée S (somme
des longueurs des arêtes qui composent la tournée).
•
-
Voisinage
Un voisinage possible est le voisinage 2-échange.
Un mouvement de type 2-échange consiste à
- remplacer deux arêtes non adjacentes (a, b) et (c, d)
- par les deux nouvelles arêtes (a, c) et (b, d).
INF6953
La recherche locale
8
Paysage de recherche locale
•
•
-
Étant donné l’espace de recherche S, la fonction de coût f et la fonction de
voisinage N, on peut se représenter le triplet (S, f, N) comme un graphe parfois
appelé paysage de recherche locale avec :
S : ensemble de sommets
N : ensemble des arêtes
f(S) indique l’altitude du sommet associé à la configuration S
Un algorithme de recherche locale simplifié consiste à engendrer une chaîne
de recherche locale S0, S1, …
On engendre au départ une configuration initiale S0.
A chaque étape, on choisit Si+1 dans le voisinage N(Si) de la configuration
courante Si. Le choix du voisin est guidé par la connaissance que l’on a de
l’évaluation (altitude) des différents éléments de N(Si)
INF6953
La recherche locale
9
Schéma d’algorithme de recherche locale
•
•
•
•
•
Engendrer une configuration initiale S0
S := S0
Répéter
– Engendrer un ensemble {S’1, S’2,…} de voisin de S
– Calculer f(S’1, f(S’2)), …
– Choisir S’ dans l’ensemble {S’1, S’2,…}
– S := S’
Jusqu’à <condition fin>
Retourner la meilleure configuration trouvée
INF6953
La recherche locale
10
Algorithme de descente
•
La métaheuristique de recherche locale la plus simple est l’algorithme de
descente (ou amélioration itérative).
•
L’algorithme de descente consiste, à chaque itération, à choisir un voisin qui
améliore strictement la fonction de coût.
•
-
Remarque
L’algorithme de descente s’arrête nécessairement quand un optimum local est
atteint.
•
-
Plusieurs manières de choisir le voisin :
Choix aléatoire d’un voisin parmi ceux qui améliorent (first improvement).
Choix du meilleur voisin qui améliore (best improvement).
INF6953
La recherche locale
11
Schéma d’algorithme de descente
•
•
•
•
Engendrer une configuration initiale S0
S := S0
Tant que S n’est pas un optimum local, répéter
– Choisir S’ de N(s) tel que f(S’) < f(S)
– S := S’
Retourner S
INF6953
La recherche locale
12
Algorithme de descente avec relances
•
-
Typiquement, on observe que :
l’algorithme de descente se termine rapidement.
La solution trouvée est de qualité médiocre.
•
On peut poursuivre la recherche en acceptant des mouvements à coût égal. A
noter que, dans ce cas, il faut définir un autre critère de terminaison.
•
Pour poursuivre la recherche, on peut relancer plusieurs fois l’algorithme de
descente, en repartant à chaque fois d’une nouvelle solution engendrée de
manière aléatoire. C’est l’algorithme de descente avec relances.
INF6953
La recherche locale
13
Schéma d’algorithme de descente avec relances
•
•
Répéter
– Engendrer une configuration initiale S0
– S := S0
– Tant que S n’est pas un optimum local, répéter
• Choisir S’ de N(s) tel que f(S’) < f(S)
• S := S’
Jusqu’à <condition fin>
Retourner le meilleur optimum local trouvé
INF6953
La recherche locale
14
Algorithme de descente avec relances
•
La technique de relance possède l’avantage de permettre d’explorer différentes
régions de l’espace de recherche : bonne propriété d’exploration.
•
-
Inconvénient
Une relance consiste à repartir d’une configuration aléatoire totalement
nouvelle. On ne tire donc aucun profit des optima locaux déjà trouvés.
Autrement dit, toute l’expérience acquise pendant la recherche est oubliée.
En particulier, il est généralement plus efficace de ressortir du bassin
d’attraction de l’optimum local atteint et d’atteindre un optimum local
«voisin».
-
•
C’est ce qui fait que cette technique est généralement assez peu efficace, en
comparaison avec des techniques plus évoluées.
INF6953
La recherche locale
15
Idées pour faire mieux que la descente
•
On ajoute en permanence de l’aléatoire à la technique de descente
(randomisation). Autrement dit, on effectue en général un mouvement qui
améliore, mais on accepte parfois d’effectuer un mouvement qui dégrade la
fonction de coût. Ce type de stratégie est adopté par le recuit simulé et
l’amélioration itérative randomisée.
•
On mémorise les configurations ou régions visitées. On évite ensuite d’y
retourner. Ce type de stratégie est adopté par Tabou et GLS.
•
On effectue une succession de descentes. Quand un optimum local est atteint,
on effectue un saut de taille réduite dans l’espace de recherche. Ce type de
stratégie est adopté par Iterated Local Search et VNS.
INF6953
La recherche locale
16
Idées pour faire mieux que la descente
•
Quand un optimum local est atteint, on utilise un autre voisinage,
généralement un voisinage plus grand. Ce type de stratégie est adopté par VNS
et Large Neihborhood Search.
•
-
Algorithme hybride
On effectue une succession de descentes. Un algorithme de plus haut niveau
permet de construire des configurations en tenant compte des optima locaux
déjà trouvés. Ce type de stratégie est adopté les algorithmes mémétiques et les
colonies de fourmis.
INF6953
La recherche locale
17
Téléchargement