Heuristiques et Metaheuristiques Celso C. Ribeiro ISIMA

Download Report

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