Transcript Heuristiques et Metaheuristiques Celso C. Ribeiro ISIMA
Heuristiques et Metaheuristiques
Celso C. Ribeiro
ISIMA Clermont-Ferrand, 2002
http://www.inf.puc-rio.br/~celso 28/04/2020 ISIMA, 2002 1
Contenu
• Théorie de la complexité • Solution des problèmes NP-diffíciles • Méthodes constructives • Représentation de solutions • Voisinages • Algorithmes de recherche locale • Metaheuristiques • Algorithmes génétiques • Application 1: routage dans l’Internet • GRASP • Application 2: problème de Steiner dans les graphes et la synthèse des réseaux d’access • Application 3: reroutage dans les réseaux de communication 28/04/2020 ISIMA, 2002 2
Théorie de la complexité •
Problème de décision
: “existe-t-il une solution qui satisfait une certaine propriété?”
Résultat
: “oui” ou “non”
•
Problème d’optimisation
: “parmi les solutions qui satisfont une certaine propriété, trouver celle qui optimise une certaine fonction de coût.”
Résultat
: une solution réalisable optimale • Exemple: problème du voyageur de commerce
Entrées
: n villes et distances c ij
Problème de décision
: “étant donné un entier L, existe-t-il un cycle hamiltonien de longueur inférieure ou égale à L?”
Problème d’optimisation
: “trouver un cycle hamiltonien de longueur minimale.” 28/04/2020 ISIMA, 2002 3
Théorie de la complexité
• Exemple: Problème du sac-à-dos
Entrées
: n objets, poids maximum b, revenus c j et poids a j associés à chaque objet j=1,…,n
Problème de décision
: “étant donné un entier L, existe-t-il un sous-ensemble S {1,…,n} tel que que j S a j b.” j S a j b et j S
Problème d’optimisation
: “trouver un ensemble S* qui maximise j S tous les sous-ensembles S c j c j L?” parmi {1,…,n} tels • Etude de la théorie de la complexité fondé sur les problèmes de décision.
• On dit qu’un
algorithme
(déterministe) pour un certain problème de décision A est
polynomial
si sa complexité de pire cas est bornée par un polynôme p(L(I A )) dans la taille L(I A ) de ses entrées I A 28/04/2020 ISIMA, 2002 4
Théorie de la complexité •
Classe P
: problèmes de décision pour lesquels on connait des algorithmes polynomiaux • Exemples de problèmes de la classe
P
: tri plus court chemins dans um graphe arbre de poids minimum flot maximum programmation linéaire
•
Algorithmes non-déterministes
: utilisent les commandes primitives
Choice
- “propose” une solution
(oracle)
Check
- vérifie (en temps polynomial) si une proposition de solution (certificat) mène ou non à une réponse “oui”
Success
- l’algorithme répond “oui” après l’application de
Check Fail
- l’algorithme ne répond pas “oui” 28/04/2020 ISIMA, 2002 5
Théorie de la complexité
• Résultat: si
Choice
propose une solution qui mène à une réponse “oui” (et l’oracle a la capacité de le faire), alors le temps de calcul de l’algorithme est polynomial.
•
Algorithmes non-déterministes
: on peut aussi dire qu’il s’agit de ceux qui utilisent une instruction spéciale de déviation inconditionnelle “double”
GO TO Label_A, Label_B
qui fonctionne comme si elle créait deux copies (“threads”) du flot d’execution, comme dans un environement de parallélisme illimité, chaque copie correspondand à une proposition (certificat) différente possible de solution 28/04/2020 ISIMA, 2002 6
Théorie de la complexité
• Exemple: problème du sac-à-dos
for
j = 1
to
n
by
1
A: B: go to A,B
x j
go to C
x j 0 1
C: continue if
a.x b
and
c.x L
then “yes”
• Un
algorithme non-déterministe est polynomial
si la première branche qui mène à une réponse “oui” s’arrête en temps polynomial.
•
Classe NP
: problèmes de décision pour lesquels on connait des algorithmes non déterministes polynomiaux (problèmes de décision pour lesquels n’importe quel certificat peut être vérifié en temps polynomial pour une réponse “oui”) 28/04/2020 ISIMA, 2002 7
Théorie de la complexité
• Résultat:
P
NP
• Ouvert:
P
=
NP
ou
P
NP
?
•
Transformation polynomiale
: un problème de décision A se transforme polynomialement dans un autre problème de décision B si, quelle que soit l’entrée I A pour A, on peut toujours construire une entrée I B pour B en temps polynomial dans la taille L(I A ) de l’entrée I A , telle que I A est une instance “oui” de A si et seulement si I B est une instance “oui” de B.
•
Problèmes NP-complets
: un problème de décision A
NP
est
NP
-complet si tous les autres problèmes de la classe
NP
se transforment polynomialmente dans le problème A 28/04/2020 ISIMA, 2002 8
Théorie de la complexité
• S’il existe un algorithme (déterministe) polynomial pour la résolution d’un problème
NP
-complet, alors tous les problèmes de la classe
NP
peuvent être résolus en temps polynomial.
• Exemples: voyageur de commerce, sac-à dos, coloration des graphes, programmation en nombres entiers, problème de Steiner dans les graphes • Il n’existe pas été capables ou nous n’avons pas encore de trouver des algorithmes polynomiaux pour les problèmes
NP
complets.
•
Classe Co-NP
: problèmes de décison dont le complément appartient à la classe
NP
Exemple:
“étant donné un graphe graphe ne possède pas hamiltonien?” de cycle
G
, ce 28/04/2020 ISIMA, 2002 9
Théorie de la complexité •
Problèmes NP-difficiles
associé est
NP
-complet : problèmes d’optimisation dont le problème de décision
•
Classe PSPACE
: problèmes de décision qui peuvent être résolus en utilisant une quantité polynomiale de mémoire
P
NP PSPACE
PSPACE
28/04/2020 ISIMA, 2002 10
Théorie de la complexité
• Vision simplifiée du “monde” des problèmes de décision: 28/04/2020 ISIMA, 2002 11
Solution de problèmes NP-difficiles
• Algorithmes exacts non-polynomiaux : programmation dynamique,
branch-and bound, backtracking
• Algorithmes pseudo-polynomiaux : polynomiaux dans la taille de l’ instance et dans la valeur de la plus grande entrée
Exemple:
problème du sac-à-dos • Calcul parallèle : accélération en pratique, mais sans reduction de la complexité • Cas spéciaux polynomiaux: coloration de graphes d’intervales • Algorithmes approximatifs : solution réalisable avec une erreur maximale garantie
Exemple:
bin packing 28/04/2020 ISIMA, 2002 12
Solution de problèmes NP-difficiles
• Algorithmes probabilistes : convergence en valeur espérée convergence en probabilité
•
Heuristiques
: toute méthode approchée basée sur les propriétés structurelles ou sur les charactéristiques des solutions des problèmes, avec complexité inférieure à celles des algorithmes exacts et donnant, en général, des solutions réalisables de bonne qualité (sans garantie de qualité) méthodes constructives recherche locale metaheuristiques • Avances dans l’étude et le développement des heuristiques: résoudre des problèmes plus grands résoudre des problèmes plus rapidement trouver de meilleures solutions méthodes plus robustes 28/04/2020 ISIMA, 2002 13
Méthodes constructives •
Problème d’optimisation combinatoire
: Etant donnés un ensemble fini E = {1,2, …,n} et une fonction de coût c: 2 E R, trouver S* F tel que c(S*) c(S) S où F 2 E est l’ensemble des solutions réalisables du problème F, • Ensemble de solutions a un nombre fini d’élements • Construction d’une solution : sélectionner séquentiellement des élements de E, éventuellement en préjudice d’autres déjà sélectionnés antérieurement, de façon à ce que à la fin on obtienne une solution réalisable, i.e. appartenant à F.
28/04/2020 ISIMA, 2002 14
Méthodes constructives •
Problème du voyageur de commerce
: E: ensemble d’arêtes F: sous-ensembles de E qui forment un cicle hamiltonien (CH) c(S) = e S c e c e : coût de l’arête e 28/04/2020 ISIMA, 2002 15
28/04/2020 ISIMA, 2002 16
Méthodes constructives
• Algorithme de l’insertion la plus distante pour la construction d’une solution pour le problème du voyageur de commerce:
Etape 0:
Initialiser le cycle avec un seul sommet.
Etape 1:
Trouver le sommet k parmi ceux qui n’appartiennent pas à la solution courante et dont l’arête la plus courte qui le connecte à ce cycle soit la plus longue.
Etape 2
: Trouver la paire d’arêtes (i,k) et (k,j) qui connectent le sommet k au cycle en minimisant l’arête (i,j).
c ik + c kj - c ij Insérer les arêtes (i,k) et (k,j) et éliminer
Etape 3:
Retourner à l’étape 1. 28/04/2020 ISIMA, 2002 17
k Choix du sommet k p Choix des arêtes i j 28/04/2020 p ISIMA, 2002 18
Méthodes constructives •
Problème du sac-à-dos
E: ensemble d’objets F: sous-ensembles de E qui satisfont la contrainte e S a e b c(S) = e S c e c e : revenu associé à l’objet e a e : poids de l’objet e b: capacité du sac-à-dos 28/04/2020 ISIMA, 2002 19
5/3 1 4/5 2 6/7 3 3/4 4 5/2 5 8/9 6 5/5 7 9/8 8 c e i /a e Capacité du sac-à-dos: 15 Objet Poids Revenu 3 7 6 3, 5 9 11 3, 5, 7 14 16 28/04/2020 ISIMA, 2002 20
Méthodes constructives •
Algorithmes gloutons
: Lors de la construction d’une solution, ce type d’algorithme choisi séquentiellement toujours l’élément de E qui minimise l’augmentation du coût de la solution partielle courante, de façon à ce que à la fin on obtienne une solution réalisable.
• L’augmentation dans le coût de la solution partielle est la fonction gloutonne.
28/04/2020 ISIMA, 2002 21
Méthodes constructives •
Problème de l’arbre minimum
: Etant donné un graphe connexe G=(V,E) et des poids c e associés aux arêtes e déterminer un arbre générateur T le poids c(T) = e T c e E, E dont soit minimum. E: ensemble d’arêtes F: sous-ensembles de E qui forment des arbres générateurs 28/04/2020 ISIMA, 2002 22
Méthodes constructives
• Algorithme glouton pour la construction d’un arbre de poids minimum (Kruskal)
Etape 0:
Trier les arêtes de E de façon à ce que c 1 c 2 ...
c n T
Etape 1: Pour
i
de
1
à
n
faire Si
T {e i }
alors
T T F {e i } Note: La solution T est une solution optimale Fonction gloulonne: c e (poids de l’arête) 28/04/2020 ISIMA, 2002 23
Méthodes constructives
• Algorithme glouton pour la construction d’une solution réalisable pour le problème du sac-à-dos
Etape 0:
Trier les éléments de E de façon à ce que c 1 /a 1 c 2 /a 2 ... c n /a n S
Etape 1: Pour
i
de
1
à
n
faire Si
S {e i }
alors
S S F {e i } Note: La solution S n’est pas forcément une solution optimale Fonction gloutonne: c e /a e (“densité” de l’élément) 28/04/2020 ISIMA, 2002 24
Méthodes constructives •
Algorithme glouton randomisé
(probabiliste) – Algorithme glouton obtient toujours la même solution pour un problème donné – Randomisation permet d’avoir de la diversité dans les solutions obtenues (
Le Petit Robert
: “randomisation” = “hasardisation”) – Créer une liste de candidats un choix différent (aspect probabiliste) à chaque itération L pour forcer • La qualité de la meilleure solution dépend de la qualité des éléments dans la liste de candidats • La diversité des solutions la cardinalité de la liste L obtenues dépend de • Cas extrêmes: - algorithme glouton pur - solution totalement aléatoire 28/04/2020 ISIMA, 2002 25
Méthodes constructives
• Algorithme glouton randomisé: (minimisation)
Etape 0:
Trier les éléments de E de façon à ce que c 1 c 2 ...
c n S
Etape 1: Pour
i
de
1
à
n
faire
Créér une liste L telle que S {1,2,…,n} \ S {e} F, e L Choisir au hasard un élément e
Si
S {e} F
alors
S S {e} L 28/04/2020 ISIMA, 2002 26
Représentation de solutions
• Ensemble F de solutions (réalisables) est un sous-ensemble de E (ensemble de support ou de base) des éléments qui satisfont certaines conditions (contraintes).
•
Représentation d’une solution
: indiquer les éléments de E qui appartiennent à la solution et ceux qui n’y appartiennent pas.
• Problème du sac-à-dos : n objets, vecteur 0-1 de n éléments, x j appartient à la solution, x j = 1 si l’objet j = 0 sinon 28/04/2020 ISIMA, 2002 27
Représentation de solutions
• Problème du voyageur de commerce E: ensemble d’arêtes F: sous-ensembles de E qui forment un circuit hamiltonien (CH) Une solution est un vecteur de n = |E| éléments: v e = 1, si l’arête e appartient au CH v e = 0, sinon.
a
1
b
5 4 2 6
d c
3 Solutions réalisables (parmi 64 possibilités): (1,1,1,1,0,0), (1,0,1,0,1,1), (0,1,0,1,1,1) 28/04/2020 ISIMA, 2002 28
Représentation de solutions
• Autre représentation pour les solutions du problème du voyageur de commerce: représenter chaque solution par l’ordre dans laquelle les sommets sont visités, c.à.d., comme une permutation circulaire des n sommets (puisque le premier sommet peut être choisi arbitrairement) (a)bcd (a)bdc (a)cbd (a)cdb (a)dbc (a)dcb 28/04/2020 ISIMA, 2002 29
Représentation de solutions
• Indicateurs 0-1 d’appartenance : – Problème du sac-à-dos – Problème de Steiner dans les graphes – Problèmes de recouvrement et de partitionement • Indicateurs généraux d’appartenance : – Partitionement de graphes – Coloration de graphes –
Clustering
• Permutations : – Problèmes d’ordonnancement •
Job/Flow/Open Shop Scheduling
– Problème du voyageur de commerce 28/04/2020 ISIMA, 2002 30
Voisinages
• Problème combinatoire : f(s*) = minimum {f(s): s S} S est un ensemble fini de solutions
•
Voisinage
: élément qui introduit la notion de proximité entre les solutions de S.
• Le voisinage d’une solution s S est un sous-ensemble de S: N: S 2 S N(s) = {s 1 ,s 2 ,…,s k }
solutions voisines
de s • Les bons voisinages permettent de représenter de forme efficace et compacte l’ensemble des solutions voisines à toute solution s 28/04/2020 ISIMA, 2002 31
Voisinages
• Voisinages dans l’espace des permutations : • Solution =( 1 ,…, i -1 , i , i +1 ,…, j ,…, n ) • N1( )={( 1 ,…, i+1 , i ,…, n ): i=1,…, n-1} Voisins de (1,2,3,4) = {(2,1,3,4),(1,3,2,4), (1,2,4,3)} • N2( )={( 1 ,…, j ,..., i ,…, n ): i=1,…,n-1; j=i+1,…,n} Voisins de (1,2,3,4)= {(2,1,3,4),(1,3,2,4), (1,2,4,3),(3,2,1,4),(1,4,3,2),(4,2,3,1)} • N3( )={( 1 ,…, i -1 , i +1 ,…, j , i ,…, n ): i=1,…,n-1; j=i+1,…,n} Voisins de (1,2,3,4)= {(2,1,3,4),(2,3,1,4), (2,3,4,1),(1,3,2,4),(1,3,4,2),(1,2,4,3)} 28/04/2020 ISIMA, 2002 32
Voisinages
28/04/2020 ISIMA, 2002 33
Voisinages
28/04/2020 ISIMA, 2002 34
Voisinages
28/04/2020 ISIMA, 2002 35
Voisinages
28/04/2020 ISIMA, 2002 36
Voisinages •
Espace de recherche
: défini par l’ensemble de solutions S et par un voisinage N • Exemple 1 : vecteurs d’appartenance 0-1 v=(v 1 ,…,v i ,…,v n ) N4(v)={(v 1 ,…,1-v i ,…,v n ): i=1,..,n} Voisins de (1,0,1,1)= {(0,0,1,1),(1,1,1,1),(1,0,0,1),(1,0,1,0)} 28/04/2020 ISIMA, 2002 37
100 000 001 101 010 011 110 111 28/04/2020 ISIMA, 2002 38
Voisinages •
Espace de recherche
: défini par l’ensemble de solutions S et par un voisinage N • Exemple 2 : permutations avec le voisinage N1 28/04/2020 ISIMA, 2002 39
1243 1342 2143 1234 2134 2314 1324 3214 3124 2341 3241 3142 2431 3421 2413 28/04/2020 4231 4213 4123 4321 4132 4312 3412 1423 1432 ISIMA, 2002 40
Voisinages •
Espace de recherche
: défini par l’ensemble de solutions S et par un voisinage N • Exemple 3 : Voisinages 2-opt et 3-opt pour le voyageur de commerce 28/04/2020 ISIMA, 2002 41
Voisinages
• Voisinage 2-opt pour le voyageur de commerce : 28/04/2020 ISIMA, 2002 42
Voisinages
• Voisinage 3-opt pour le voyageur de commerce : 28/04/2020 ISIMA, 2002 43
Voisinages
• L’
espace de recherche peut être vu comme un graphe
où les sommets représentent les solutions et les arêtes connectent les paires de solutions voisines.
• Cet espace peut être vu aussi comme une surface avec des cols et des sommets, définis par la valeur des solutions et par la proximité (les relations de voisinage) entre elles.
• Un
chemin
dans l’espace de recherche est une séquence de solutions, deux solutions consécutives étant toujours voisines.
28/04/2020 ISIMA, 2002 44
Voisinages •
Optimum local
: une solution aussi bonne que toutes les voisines • Problème de minimisation: f(s s + est un optimum local + ) f(s), s N(s + )
•
Optimum global
(solution optimale) s*: f(s*) f(s), s S 28/04/2020 ISIMA, 2002 45
Algorithmes de recherche locale
• Les
algorithmes de recherche locale
sont conçus comme une
stratégie pour explorer l’espace de recherche
.
• Départ : solution initiale obtenue par une méthode constructive • Itération : amélioration de la solution courante par une recherche dans son voisinage • Arrêt : premier optimum local trouvé (il n’y a pas de solution voisine meilleure que la solution courante) • Heuristique subordonnée utilisée pour obtenir une solution meilleure dans le voisinage de la solution courante .
28/04/2020 ISIMA, 2002 46
Algorithmes de recherche locale
• Questions fondamentales: – Définition du voisinage – Stratégie de recherche dans le voisinage – Complexité de chaque itération: • Dépend du nombre de solutions dans le voisinage • Dépend du calcul efficace du coût de chaque solution voisine 28/04/2020 ISIMA, 2002 47
Algorithmes de recherche locale •
Amélioration itérative
: à chaque itération, sélectionner dans le voisinage une solution meilleure que la solution courante
procedure
s s 0 Amélioration-Itérative (s 0 ) ; amélioration .vrai.
while
amélioration
do
amélioration
for-all
.faux.
s’ N(s)
e
amélioration =.faux.
do if
f(s’) < f(s)
then
s s’; amélioration .vrai.
end-if end-for-all end-while return
s
end
Amélioration-Itérative 28/04/2020 ISIMA, 2002 48
• Algorithmes de recherche locale
Descente la plus rapide
: à chaque itération, sélectionner la meilleure solution du voisinage
procedure
s s 0 Descente-Rapide (s 0 ) ; amélioration .vrai.
while
amélioration
do
amélioration
for-all
s’ .faux.; f min N(s)
do
+
if
f(s’) < f min s min
then
s’; f min
end-if
f(s’)
end-for-all if
f min < f(s)
then
s s min ; amélioration
end-if
.vrai.
end-while return
s
end
Descente-Rapide 28/04/2020 ISIMA, 2002 49
Algorithmes de recherche locale
• Exemple : algorithme de descente la plus rapide appliqué à un problème d’ordonnancement • Espace de recherche: permutations des n éléments • Solution =( 1 ,…, i -1 , i , i +1 ,…, j ,…, n ) • Voisinage: N1( )={( 1 ,…, i+1 , i ,…, n ): i=1,…, n-1} • Coût d’une permutation: f( ) = i=1,…,n i.
i 28/04/2020 ISIMA, 2002 50
Algorithmes de recherche locale
procedure
RL-Perm-N1 ( 0 ) 0 ; amélioration .vrai.
while
amélioration
do
amélioration
for
i = 1
to
.faux.; f min n-1
do
+ ’
if
; ’ i i+1 ; ’ i+1 f( ’) < f min
then
min ’ ; f min f( ’) i ;
end-if end-for if
f min < f( ) min
end-if then
; amélioration .vrai.
end-while
+
return
+
end
RL-Perm-N1 28/04/2020 ISIMA, 2002 51
22 25 28/04/2020 21 20 21 23 26 27 29 27 26 23 21 24 30 27 ISIMA, 2002 23 23 27 29 29 24 25 28 52
Voyageur de commerce symétrique
1 8 6 15 10 2 0 7 5 14 9 4 13 11 3 28/04/2020 ISIMA, 2002 53
1243 1342 2143 1234 2134 2314 1324 3214 3124 2341 3241 3142 2431 3421 2413 28/04/2020 4231 4213 4123 4321 4132 4312 3412 1423 1432 ISIMA, 2002 54
49 50 28/04/2020 51 48 50 47 46 50 49 52 48 48 49 48 48 47 ISIMA, 2002 50 52 48 51 50 46 50 49 55
4 1 24 82 0
Voyageur de commerce asymétrique
6 65 0 65 27 2 45 4 80 79 96 62 2 7 41 96 64 3 31 16 28/04/2020 ISIMA, 2002 56
1243 1342 2143 1234 2134 2314 1324 3214 3124 2341 3241 3142 2431 3421 2413 28/04/2020 4231 4213 4123 4321 4132 4312 3412 1423 1432 ISIMA, 2002 57
241 161 35 179 252 157 164 113 170 271 201 182 28/04/2020 305 243 272 272 152 206 328 236 ISIMA, 2002 306 293 347 154 58
Algorithmes de recherche locale
• Différents aspects de l’espace de recherche peuvent influencer la performance d’un algorithme de recherche locale • Connexité : il doit y avoir un chemin entre chaque paire de solutions de l’espace de recherche • Distance entre deux solutions: nombre de sommets visités sur le chemin le plus court entre elles.
• Diamètre : distance entre les deux solutions les plus eloignées (diamètres réduits!) 28/04/2020 ISIMA, 2002 59
Algorithmes de recherche locale
• Dificultés: – Arrêt prématuré sur le premier optimum local – Sensibles à la solution de départ – Sensibles au voisinage choisi – Sensible à la stratégie de recherche – Nombre d’ itérations 28/04/2020 ISIMA, 2002 60
• Algorithmes de recherche locale
Extensions
pour réduire les difficultés des algorithmes de recherche locale: – Réduction des voisinages : considérer un sous-ensemble du voisinage (e.g. par randomisation) – Accepter parfois des solutions qui n’améliorent pas la solution courante, de façon à pouvoir sortir d’un optimum local.
– Multi-départ : appliquer l’algorithme de recherche locale à partir de plusieurs solutions de départ – Multi-voisinages dynamiques : changer de définition de voisinage après avoir obtenu un optimum local (ex.: 2-opt, après 3-opt)
Metaheuristiques
28/04/2020 ISIMA, 2002 61
Metaheuristiques
• Recuit simulé (
simulated annealing
) • Algorithmes génétiques • Recherche tabou • GRASP • • VNS (
Variable Neighborhood Search
)
Scatter search
• Colonies de fourmies 28/04/2020 ISIMA, 2002 62
Algorithmes génétiques •
Algorithme probabiliste basé sur l’analogie avec le processus d’évolution naturelle.
• Les populations évoluent selon les principes de sélection naturelle et de “ survivance des individus les plus adaptés ” ( “survival of the fittest” ) (évolution des propriétés génétiques de la population).
• Les individus les plus adaptés à l’environement ont plus de chances de survivre et de se reproduire.
prochaines générations.
Les gènes des individus les plus adaptés vont se distribuer sur un plus grand nombre d’individus des • Les espèces évoluent en s’adaptant de plus en plus à leur environement.
28/04/2020 ISIMA, 2002 63
Algorithmes génétiques
• Population représentée par ses chromosomes : chromosome individu • De nouveaux chromosomes sont généres à partir de la population courante, tandis que d’autres en sont exclus. La génération des nouveaux chromosomes est faite par reproduction et par mutation.
•
Représentation
d’un chromosome: séquence de 0’s et de 1’s (équivalent à un vecteur d’appartenance)
•
Reproduction
: sélectioner les parents et effectuer une opération de
crossover,
qui est une combinaison simple des représentations de chaque chromosome
•
Mutation
: modification arbitraire d’une petite partie d’un chromosome 28/04/2020 ISIMA, 2002 64
Algorithmes génétiques •
Algorithme de base
: Générer une population initiale
while
critère-d’arrêt
do
Choisir les chromosomes parents Faire le
crossover
des parents Générer les mutations Evaluer chaque nouvel individu Mise à jour de la population
end-while
• Paramètres : – taille de la population (nombre d’individus) – critère de sélection – critère de survivance – taux de mutation – critère d’arrêt (stabilisation de la population, pas d’amélioration de la 28/04/2020 meilleure solution, nombre de générations) ISIMA, 2002 65
Algorithmes génétiques •
Fonction d’adaptation
utilisée...
(“fitness”):
–
pour évaluer la qualité génétique des chromosomes, correspondant à la fonction de coût dans les problèmes d’ optimisation combinatoire;
– lors de la sélection des parents; – pour décider si un chromosome généré par une opération de
crossover
doit remplacer l’un des parents.
•
Crossover
: opération randomisée, les individus les plus adaptés ayant plus de chances d’y participer. •
Crossover
uniforme : chaque gène (
bit
fils est une copie du gène correspondant d’un de ses parents choisi au hasard.
) d’un 28/04/2020 ISIMA, 2002 66
Algorithmes génétiques
•
Crossover
d’un seul point : parents: 2 chromosomes de n bits a = (
a 1 ,…,a k ,…,a n
) b = (
b 1 ,…,b k ,…,b n
) opération: k {1,…,n} choisi au hasard fils: (
a 1 ,…,a k , b k+1 ,…,b n
) (
b 1 ,…,b k , a k+1 ,…,a n
) •
Crossover de deux (ou plus) points
•
Crossover par fusion
: comme le premier (uniforme), mais la probabilité de choix de chaque parent est proportionelle à la valeur de sa fonction d’adaptation • Utilisation de consensus : copier les
bits
communs aux deux parents 28/04/2020 ISIMA, 2002 67
Algorithmes génétiques
• Dificulté : comment faire pour traiter les contraintes et les solutions qui ne sont pas réalisables?
– utiliser une représentation qui puisse garantir automatiquement que toutes les solutions représentables soient réalisables – utiliser un opérateur heuristique qui puisse transformer chaque solution non réalisable en une autre qui soit réalisable (exemple: dans le cas du problème du sac à-dos, enlever des objets sélectionnés) – utiliser une fonction de pénalisation pour modifier la valeur de la fonction d’adaptation de toute solution non réalisable • Rien n’empêche l’emploi de méthodes d’optimisation dans les algorithmes génétiques (plus d’intelligence) – recherche locale après les
crossovers
et les mutations – Choix optimal des parents 28/04/2020 ISIMA, 2002 68
Algorithmes génétiques •
Mutation
: normalement implémentée comme la complémentation de bits des individus de la population. • Sélection au hasard des bits à modifier : très faible fraction des individus de la population • Les mutations ne sont pas soumises aux tests d’adaptation: la reproduction mène l’évolution à une population homogêne. Les mutations permettent d’introduire un peu de diversité dans la population.
• Les critères de mise à jour de la population peuvent aussi permettre que les fils et les parents restent dans la population, les individus les moins aptes étant eliminés.
28/04/2020 ISIMA, 2002 69
Algorithmes génétiques
• Exemple: problème du sac-à-dos
Crossover
avec k = 4 Parent 1 = ( 0,1,0,1,1,0,1,1 ) Parent 2 = ( 1,0,0,0,0,1,1,0 ) Fils 1 = ( 0,1,0,1 ,0,1,1,0 ) Fils 2 = ( 1,0,0,0, 1,0,1,1 ) Mutation du 5ème.
bit
: (1,0,0,0, 1 ,0,1,1) (1,0,0,0, 1 ,0,1,1) 28/04/2020 ISIMA, 2002 70
Algorithmes génétiques
• Représentations plus efficaces: – représentation de solutions par des vecteurs d’appartenance: sur plusieurs problèmes, la modification des chromosomes (par
crossover
mutation) mène souvent à des solutions qui ne sont pas réalisables ou – traitement des solutions non-réalisables – utilisation d’autres représentations • Génération de la population initiale : – au départ, individus tirés au hasard – utilisation de quelques heuristiques , telles que les algorithmes gloutons randomisés 28/04/2020 ISIMA, 2002 71
Algorithmes génétiques
•
Crossover
optimisé : utiliser plus d’“intelligence” dans cette opération, par exemple, par un algorithme de recherche locale.
• Sélection des parents par compatibilité : choisir un parent, puis choisir l’autre comme l’individu le plus compatible • Opérateur d’amélioration (par exemple, recherche locale) pour traiter chaque fils • Mutation estatique (probabilité constante de changer un
bit
) ou mutation adaptative (appliquer l’opérateur de mutation sur quelques
bits
sélectionnés, pour garantir l’obtention de solutions réalisables) 28/04/2020 ISIMA, 2002 72
Problème de Steiner dans les graphes •
Problème de Steiner dans les graphes
: graphe non-orienté G=(V,E) V: sommets E: arêtes T: terminaux (obligatoires) c e : poids de l’arête e E
•
Obtenir un arbre couvrant des sommets terminaux de poids minimum
( cas particulier: si T = V, problème de l’arbre couvrant de poids minimum ) • Sommets de Steiner: sommets non obligatoires qui font partie de la solution optimale • Applications: projet des réseaux d’ordinateurs et de télécommunications, problème de la phylogénie en biologie 28/04/2020 ISIMA, 2002 73
Problème de Steiner dans les graphes
2 2 2 a c 2 1 1 1 1 b 3 1 2 1 5 1 4 d 2 2 28/04/2020 ISIMA, 2002 74
Problème de Steiner dans les graphes
2 2 2 a c 2 1 1 1 1 b 3 1 2 1 5 1 4 d 2 2 28/04/2020 ISIMA, 2002 75
Problème de Steiner dans les graphes
• Charactérisation d’une solution X V: sous-ensemble des sommets non obligatoires • Arbre de Steiner Arbre qui connecte les sommets terminaux (obligatoires) en utilisant un sous-ensemble X de sommets non-obligatoires • Chaque arbre de Steiner peut être charactérisé par le sous-ensemble de somments non-obligatoires utilisés • Arbre de Steiner optimal Arbre couvrant de poids minimum connectant les sommets terminaux (obligatoires) en utilisant le sous-ensemble optimal X* de sommets non-obligatoires 28/04/2020 ISIMA, 2002 76
Problème de Steiner dans les graphes
• |V| = p • Solution: s = (s 1 ,s 2 ,…,s i ,…,s p ) X • Représentation par un indicateur 0-1 d’appartenance • s i = 1, si le i-ème sommet non-obligatoire est utilisé (i.e., si v i X) s i = 0, sinon • Voisinage: toutes les solutions qui peuvent être obtenues par l’insertion ou l’élimination d’un sommet non-obligatoire de la solution courante • Modifications par insertion • Modifications par élimination 28/04/2020 ISIMA, 2002 77
Algorithmes génétiques •
Calcul parallèle: repartir la population en plusieurs sous-population qui évoluent en parallèle, avec des échanges éventuels de quelques individus
• Modèle distribué : utilisation du parallélisme au niveau des populations (“island model”, puisque la population est repartie en plusieurs sous-populations, comme si chacune occupait une île différente). 28/04/2020 ISIMA, 2002 78
Contenu
• Théorie de la complexité • Solution des problèmes NP-diffíciles • Méthodes constructives • Représentation de solutions • Voisinages • Algorithmes de recherche locale • Metaheuristiques • Algorithmes génétiques • Application 1: routage dans l’Internet • GRASP • Application 2: problème de Steiner dans les graphes et la synthèse des réseaux d’access • Application 3: reroutage dans les réseaux de communication 28/04/2020 ISIMA, 2002 79
• Greedy Randomized Adaptive Search Procedures (GRASP)
Combinaison d’une méthode constructive avec une approche par recherche locale, dans une procédure itérative (multi départ) où les itérations sont totalement indépendantes les unes des autres
(a) construction d’une solution (b) recherche locale • Algorithme de base: f(s*)
for
+ i = 1,…,N
do
Construire une solution s en utilisant un algorithme glouton randomisé Appliquer une procédure de recherche locale à partir de s, pour obtenir la solution s’
if
f(s’) < f(s*)
then
s* s’
end-for
28/04/2020 ISIMA, 2002 80
GRASP
• Phase de construction : construire une solution réalisable, un élément à la fois • Chaque itération: – évaluer le bénéfice de chaque élément en utilisant une fonction gloutonne – créer une liste restricte de candidats, formée par les éléments avec les meilleures évaluations – sélectionner de façon probabiliste un élément de la liste restricte de candidats – adapter la fonction gloutonne après l’utilisation de l’élément choisi • Choix de l’élément qui sera inclus dans la solution lors de la prochaine itération de la méthode constructive: les éléments qui ne font pas encore partie de la solution sont placés dans une liste et triés par rapport aux valeurs des évaluations gloutonnes.
28/04/2020 ISIMA, 2002 81
GRASP
• Restriction candidats: des éléments dans la lista de – nombre maximum d’éléments dans la liste – qualité des éléments dans la liste (par rapport au choix exclusivement glouton) c min = bénefice minimum parmi tous les éléments c max = bénefice maximum parmi tous les éléments Paramètre α permet de controler la qualité des éléments dans la liste de candidats: Liste = { éléments j: c j ≤ c min + α . (c max - c min )} α = 0: choix glouton α = 1: choix probabiliste 28/04/2020 ISIMA, 2002 82
GRASP
• Choix probabiliste entre les meilleurs éléments de la liste de candidats (pas forcément le meilleur, comme c’est le cas du choix exclusivement glouton) – la qualité moyenne de la solution dépend de la qualité des éléments dans la liste – la diversité des solutions construites dépend du nombre d’éléments dans la liste • Diversification basée sur la randomisation controlée : différentes solutions construites lors de différentes iterations GRASP 28/04/2020 ISIMA, 2002 83
GRASP
• Construction gloutonne: bonnes solutions (près des optima locaux), permettant d’accélérer la recherche locale
•
Recherche locale: amélioration des solutions construites lors de la première phase
– choix du voisinage – structures de données efficaces pour accélérer la recherche locale – bonnes solutions de départ permettent d’accélérer la recherche locale • Utilisation d’un algorithme glouton randomisé lors de la phase de construction permet d’accélérer la recherche locale 28/04/2020 ISIMA, 2002 84
GRASP
• Technique d’échantillonage de l’espace de recherche 28/04/2020 ISIMA, 2002 85
GRASP
• Implémentation simple : algorithme glouton + recherche locale • Algorithmes gloutons: faciles de construire et implémenter • Peu de paramètres à régler: – restrictivité de la liste de candidats – nombre d’itérations • Dépend de bonnes solutions de départ • Desavantage: n’utilise pas de mémoire 28/04/2020 ISIMA, 2002 86
GRASP •
Parallélisation
: simple et directe • N itérations, p processeurs: chaque processeur fait N/p itérations de la méthode • A la fin, chaque processeur informe au maître la meilleure solution qu’il a trouvée 28/04/2020 ISIMA, 2002 87
Problème de Steiner dans les graphes •
Problème de Steiner dans les graphes
: graphe non-orienté G=(V,E) V: sommets E: arêtes T: terminaux (obligatoires) c e : poids de l’arête e E
•
Obtenir un arbre couvrant des sommets terminaux de poids minimum
( cas particulier: si T = V, problème de l’arbre couvrant de poids minimum ) • Sommets de Steiner: sommets non obligatoires qui font partie de la solution optimale • Applications: projet des réseaux d’ordinateurs et de télécommunications, problème de la phylogénie en biologie 28/04/2020 ISIMA, 2002 88
Problème de Steiner dans les graphes
• Charactérisation d’une solution X V: sous-ensemble des sommets non obligatoires • Arbre de Steiner Arbre qui connecte les sommets terminaux (obligatoires) en utilisant un sous-ensemble X de sommets non-obligatoires • Chaque arbre de Steiner peut être charactérisé par le sous-ensemble de somments non-obligatoires utilisés • Arbre de Steiner optimal Arbre couvrant de poids minimum connectant les sommets terminaux (obligatoires) en utilisant le sous-ensemble optimal X* de sommets non-obligatoires 28/04/2020 ISIMA, 2002 89
Problème de Steiner dans les graphes
• GRASP: – phase de construction – recherche locale • Phase de construction: – (a) construire un réseau: les sommets sont les terminaux, il existe une arête entre chaque paire de terminaux et son poids est égal au plus court chemin entre ces terminaux dans le graphe original – (b) obtenir un arbre couvrant de poids minimum de ce graphe, en utilisant une version randomisée de l’algorithme glouton de Kruskal – (c) récuperer les arêtes de la solution comme des chemins dans graphe original pour obtenir un arbre de Steiner 28/04/2020 ISIMA, 2002 90
Problème de Steiner dans les graphes
a 3 2 b 2 1 2 c a 3 4 b a 3 2 28/04/2020 b 2 1 2 c ISIMA, 2002 4 c 91
Problème de Steiner dans les graphes
• Voisinage pour la phase de recherche locale: toutes les solutions qui peuvent être obtenues par l’insertion ou l’élimination d’un sommet non-obligatoire de la solution courante 28/04/2020 ISIMA, 2002 92
Problème de Steiner dans les graphes
Example: 1 1 a 1 b 2 1 2 2 2 2 3 4 2 1 2 c 5 d 1 1 28/04/2020 ISIMA, 2002 93
Problème de Steiner dans les graphes
Solution optimale: 1 1 a 1 b 2 1 2 2 2 2 3 4 2 1 2 c 5 d 1 1 28/04/2020 ISIMA, 2002 94
Problème de Steiner dans les graphes
Plus courts chemins: 1 1 a 1 b 2 1 2 2 2 2 3 4 2 1 2 c 5 d 1 1 28/04/2020 ISIMA, 2002 95
Problème de Steiner dans les graphes
Plus courts chemins: 1 1 a 1 b 2 1 2 2 2 2 3 4 2 1 2 c 5 d 1 1 28/04/2020 ISIMA, 2002 96
Problème de Steiner dans les graphes
Plus courts chemins: 1 1 a 1 b 2 1 2 2 2 2 3 4 2 1 2 c 5 d 1 1 28/04/2020 ISIMA, 2002 97
Problème de Steiner dans les graphes
Plus courts chemins: 1 1 a 1 b 2 1 2 2 2 2 3 4 2 1 2 c 5 d 1 1 28/04/2020 ISIMA, 2002 98
Problème de Steiner dans les graphes
Plus courts chemins: 1 1 a 1 b 2 1 2 2 2 2 3 4 2 1 2 c 5 d 1 1 28/04/2020 ISIMA, 2002 99
Problème de Steiner dans les graphes
Plus courts chemins: 1 1 a 1 b 2 1 2 2 2 2 3 4 2 1 2 c 5 d 1 1 28/04/2020 ISIMA, 2002 100
Problème de Steiner dans les graphes
Réseau des terminaux: 2 a b 4 4 4 4 2 c d 28/04/2020 ISIMA, 2002 101
Problème de Steiner dans les graphes
2 a b
Itération 1
4 Construction 4 4 4 2 c d 2 a b Recherche locale 4
Coût = 8
2 c d a 2 c 28/04/2020 1 3 5 b 4 d Eliminer 1?
Eliminer 2?
Eliminer 5?
Insérer 3?
Insérer 4?
Non!
Non!
Non!
Non!
Non!
ISIMA, 2002 102
Problème de Steiner dans les graphes
2 a b
Itération 2
4 Construction 4 4 4 2 c d Recherche locale a 4 4 c 4 b
Coût = 12
d a 1 2 3 c 28/04/2020 5 b 4 Eliminer 1?
Eliminer 2?
Eliminer 5?
Eliminer 3?
Insérer 4?
Non!
Oui: coût=6!
Non!
Oui: coût=8
Non!
d ISIMA, 2002 103
Heuristiques et metaheuristiques
http://www.inf.puc-rio.br/~celso/disciplinas/heuristiques.ppt
28/04/2020 ISIMA, 2002 104