Modélisation et optimisation en logistique et transports:

Download Report

Transcript Modélisation et optimisation en logistique et transports:

Modélisation et
optimisation en
logistique et
transports:
modèles,
algorithmes
approchés et
applications
Celso C. Ribeiro
DESS
E-Logistique
http://www.inf.puc-rio.br/~celso
23/05/2016
DESS E-logistique, St. Quentin
1
Contenu
• Modèles et applications: graphes et tournées
• Complexité et heuristiques pour les
problèmes 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’accès
• Application 3: reroutage dans les réseaux de
communication
23/05/2016
DESS E-logistique, St. Quentin
2
Applications: graphes et tournées
• Problème du plus court chemin
Données: graphe orienté, sommets s et t,
longueur dij associée à chaque arc (i,j)
Problème: trouver le plus court chemin de s
a t.
• Problème de l’arbre couvrant minimum
Données: graphe non-orienté, longueur dij
associée à chaque arc (i,j)
Problème: déterminer un arbre de poids
minimum pour connecter tous les sommets
du graphe
• Problème d’ordonnancement (PERT)
Données: ensemble de tâches, durées et
précédences
Problème: déterminer l’instant où chaque
tâche doit démarrer et le temps minimum
d’exécution de l’ensemble des tâches
23/05/2016
DESS E-logistique, St. Quentin
3
Applications: graphes et tournées
• Problème du flot maximum
Données: graphe orienté, sommets s et t,
capacité cij associée à chaque arc (i,j)
Problème: trouver le flot maximum qui peut
être envoyé de s à t en respectant les
contraintes de capacité sur les arcs
• Problème de transport
Données: ensemble d’usines, ensemble de
clients, production maximale ai de chaque
usine, demande bj de chaque client, coût
unitaire cij d’envoi d’une unité de flot de
l’usine i au client j (représentation par un
graphe biparti)
Problème: déterminer les quantités
optimales à envoyer de chaque usine à
chaque client
23/05/2016
DESS E-logistique, St. Quentin
4
Applications: graphes et tournées
• Problème d’affectation
Données: ensemble de tâches, ensemble de
machines, gain (rendement) cij d’association
de la tâche i à la machine j (représentation
par un graphe biparti)
Problème: déterminer la machine qui doit
être affectée à chaque tâche, de façon à
optimiser les gains
• Problème de transbordement
Données: ensemble d’usines, ensemble de
clients, ensemble d’entrepots, production
maximale ai de chaque usine, demande bj de
chaque client, coût unitaire cij d’envoi d’une
unité de flot du sommet i au sommet j
(représentation par un graphe non-biparti)
Problème: déterminer les quantités
optimales à produire dans chaque usine et à
envoyer sur chaque arc
Extensions: capacités sur les arcs, capacités
sur les sommets, stockage
23/05/2016
DESS E-logistique, St. Quentin
5
Applications: graphes et tournées
• Problème du flot à coût minimum
Données: ensemble d’usines, ensemble de
clients, ensemble d’entrepots, production
maximale ai de chaque usine, demande bj de
chaque client, coût unitaire cij d’envoi d’une
unité de flot du sommet i au sommet j,
capacités minimales et maximales du flot
sur chaque arc (représentation par un graphe
non-biparti)
Problème: déterminer les quantités
optimales à produire dans chaque usine et à
envoyer sur chaque arc
• Tous ces problèmes sont “faciles”, dans le
sens où il existent des algorithmes efficaces
pour les résoudre de façon exacte, basés sur
la programmation linéaire.
23/05/2016
DESS E-logistique, St. Quentin
6
Applications: graphes et tournées
• Problème du voyageur de commerce
Données: graphe orienté, longueur dij
associée à chaque arc (i,j)
Problème: trouver un circuit Hamiltonien
(tous les sommets du graphe sont visités
exactement une seule fois) de longueur
totale minimale.
• Problème du postier chinois
Données: graphe orienté, longueur dij
associée à chaque arc (i,j)
Problème: trouver un circuit Eulérien (tous
les arcs du graphe doivent être visités
exactement une seule fois) de longueur
totale minimale.
(distribution de journaux, distribution du
courrier, collecte des ordures)
23/05/2016
DESS E-logistique, St. Quentin
7
Applications: graphes et tournées
• Problèmes de tournées de véhicules
Données: ensemble de depôts, ensemble de
véhicules, coûts d’achat, coûts d’utilisation,
ensemble de clients, demande de chaque client,
capacité de chaque véhicule, contraintes d’horaires
Problème: déterminer les trajets qui doivent être
faits par chaque véhicule, de façon à minimiser les
coûts
Caractéristiques des…
… depôts: quantité, localisation, horaires
d’ouverture
… clients: délivrer/collecter, collecter et délivrer,
durée du service, fenêtres de temps, contraintes
d’accès, véhicule unique, répartition de la demande
… véhicules: types, capacités, coûts, quantités,
disponibilité dans chaque depôt
… routes: distances entre les clients, durée
maximale, contraintes de précédence, périodicité et
fréquence (déterminer les tournées pour une
période de T jours, chaque client devant être visité
N fois dans cette période)
23/05/2016
DESS E-logistique, St. Quentin
8
Applications: graphes et tournées
• Problème de tournée de véhicules (cas le
plus simple, sans contraintes): couvrir un
ensemble de clients par un ensemble de
tournées (chaque tournée correspond à un
véhicule, s’il existe un seul véhicule il s’agit
du problème du voyageur de commerce)
Depôt
23/05/2016
DESS E-logistique, St. Quentin
9
Applications: graphes et tournées
• Problème d’affectation (scheduling) de
véhicules
Données: ensemble de voyages, horaires,
coûts
Problème: affecter les véhicules aux
voyages
• Problème de Steiner
Données: graphe non-orienté, longueur dij
associée à chaque arc (i,j), ensemble de
sommets terminaux
Problème: déterminer un arbre de poids
minimum pour connecter tous les sommets
terminaux
23/05/2016
DESS E-logistique, St. Quentin
10
Applications: graphes et tournées
• Quelques applications:
– Confection des horaires des chauffeurs
d’autobus
– Transport scolaire
– Transport de handicapés
– Transport de marchandises
– Affectation des tripulations aux vols
dans les transports aériens
– Affectation des avions aux vols
– Affectation des vols aux portes
d’embarquement dans les aéroports
– … et beaucoup d’autres
• Tous ces problèmes sont “difficiles”, dans le
sens où nous ne connaissons pas
d’algorithme efficace pour les résoudre de
façon exacte: il faut donc faire appel aux
méthodes approchées (ou heuristiques)
23/05/2016
DESS E-logistique, St. Quentin
11
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 cij
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.”
23/05/2016
DESS E-logistique, St. Quentin
12
Théorie de la complexité
• Exemple: Problème du sac-à-dos
Entrées: n objets, poids maximum b, revenus cj
et poids aj 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 jS aj  b et jS cj  L?”
Problème d’optimisation: “trouver un
ensemble S* qui maximise jS cj parmi tous
les sous-ensembles S  {1,…,n} tels que jS
aj  b.”
• 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(IA)) dans la taille
L(IA) de ses entrées IA:
temps de calcul borné par un polynôme
dans le nombre de données
23/05/2016
DESS E-logistique, St. Quentin
13
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”
23/05/2016
DESS E-logistique, St. Quentin
14
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
23/05/2016
DESS E-logistique, St. Quentin
15
Théorie de la complexité
• Exemple: problème du sac-à-dos
for j = 1 to n by 1
go to A,B
A: xj  0
go to C
B: xj  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 nondé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”)
23/05/2016
DESS E-logistique, St. Quentin
16
Théorie de la complexité
• Classe NP: problèmes de décision pour
lesquels on connait des algorithmes
déterministes polynomiaux pour vérifier si
une solution mène à une réponse “oui” (on
ne sait pas forcément calculer une solution,
mais on sait la vérifier)
23/05/2016
DESS E-logistique, St. Quentin
17
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 IA
pour A, on peut toujours construire une
entrée IB pour B en temps polynomial dans
la taille L(IA) de l’entrée IA, telle que IA est
une instance “oui” de A si et seulement si IB
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
23/05/2016
DESS E-logistique, St. Quentin
18
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: ces problèmes sont donc les plus
difficiles de la classe NP.
• Exemples: voyageur de commerce, sac-à-dos,
coloration des graphes, programmation en
nombres entiers, problème de Steiner dans les
graphes
• Il n’existe pas ou nous n’avons pas encore été
capables 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 G, ce graphe
ne possède pas de cycle hamiltonien?”
23/05/2016
DESS E-logistique, St. Quentin
19
Théorie de la complexité
• Problèmes NP-difficiles: problèmes
d’optimisation dont le problème de décision
associé est NP-complet
• Classe PSPACE: problèmes de décision
qui peuvent être résolus en utilisant une
quantité polynomiale de mémoire
P  PSPACE
NP  PSPACE
23/05/2016
DESS E-logistique, St. Quentin
20
Théorie de la complexité
• Vision simplifiée du “monde” des
problèmes de décision:
23/05/2016
DESS E-logistique, St. Quentin
21
Solution de problèmes
NP-difficiles
• Algorithmes exacts non-polynomiaux:
programmation dynamique, branch-andbound, 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
23/05/2016
DESS E-logistique, St. Quentin
22
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
23/05/2016
DESS E-logistique, St. Quentin
23
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: 2E  R,
trouver
S*  F tel que c(S*)  c(S) S  F,
où F  2E est l’ensemble des solutions
réalisables du problème
• 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.
23/05/2016
DESS E-logistique, St. Quentin
24
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 ce
ce: coût de l’arête e
ALGORITHME DU PLUS PROCHE
VOISIN (1-13)
23/05/2016
DESS E-logistique, St. Quentin
25
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
cik + ckj - cij
Insérer les arêtes (i,k) et (k,j) et éliminer
l’arête (i,j).
Etape 3:
Retourner à l’étape 1.
23/05/2016
DESS E-logistique, St. Quentin
26
Choix du sommet
k
p
Choix des arêtes
k
i
j
p
23/05/2016
DESS E-logistique, St. Quentin
27
Méthodes constructives
• Problème du sac-à-dos
E: ensemble d’objets
F: sous-ensembles de E qui satisfont la
contrainte  eS ae  b
c(S) =  eS ce
ce: revenu associé à l’objet e
ae: poids de l’objet e
b: capacité du sac-à-dos
23/05/2016
DESS E-logistique, St. Quentin
28
5/3
1
5/2
5
4/5
2
8/9
6
6/7
3
5/5
7
3/4
4
ce/ae
i
9/8
8
Capacité du sac-à-dos: 15
Objet
Poids
Revenu
3
7
6
3, 5
9
11
3, 5, 7
14
16
23/05/2016
DESS E-logistique, St. Quentin
29
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.
• L’algorithme glouton n’obtient pas
forcément une solution optimale
23/05/2016
DESS E-logistique, St. Quentin
30
Méthodes constructives
• Problème de l’arbre minimum:
Etant donné un graphe connexe G=(V,E) et
des poids ce associés aux arêtes e  E,
déterminer un arbre générateur T  E dont
le poids c(T) =  eT ce soit minimum.
E: ensemble d’arêtes
F: sous-ensembles de E qui forment des
arbres générateurs
23/05/2016
DESS E-logistique, St. Quentin
31
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
c1  c2 ... cn
T
Etape 1:
Pour i de 1 à n faire
Si T  {ei}  F
alors T  T  {ei}
Note:
La solution T est une solution optimale
Fonction gloulonne: ce (poids de l’arête)
23/05/2016
DESS E-logistique, St. Quentin
32
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
c1/a1  c2/a2  ...  cn/an
S 
Etape 1:
Pour i de 1 à n faire
Si S  {ei}  F
alors S  S  {ei}
Note:
La solution S n’est pas forcément une solution
optimale
Fonction gloutonne: ce/ae(“densité” de
l’élément)
23/05/2016
DESS E-logistique, St. Quentin
33
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
– Créer une liste de candidats L pour forcer
un choix différent (aspect probabiliste) à
chaque itération
– Utiliser l’algorithme à plusieurs reprises, en
obtenant des solutions différentes à chaque
itération.
• La qualité de la meilleure solution dépend de la
qualité des éléments dans la liste de candidats
• La diversité des solutions obtenues dépend de
la cardinalité de la liste L
• Cas extrêmes: - algorithme glouton pur
- solution totalement aléatoire
23/05/2016
DESS E-logistique, St. Quentin
34
Méthodes constructives
• Algorithme glouton randomisé:
(minimisation)
Etape 0:
Trier les éléments de E de façon à ce que
c1  c2 ... cn
S
Etape 1:
Pour i de 1 à n faire
Créér une liste L  {1,2,…,n} \ S
telle que S  {e}  F, e  L
Choisir au hasard un élément e  L
Si S  {e}  F
alors S  S  {e}
ALGORITHMES GLOUTONS
RANDOMISÉS (14-26)
23/05/2016
DESS E-logistique, St. Quentin
35
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, xj = 1 si l’objet j
appartient à la solution, xj = 0 sinon
23/05/2016
DESS E-logistique, St. Quentin
36
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:
ve = 1, si l’arête e appartient au CH
ve = 0, sinon.
a
1
b
5
4
2
6
d
3
c
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)
23/05/2016
DESS E-logistique, St. Quentin
37
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
23/05/2016
DESS E-logistique, St. Quentin
38
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
23/05/2016
DESS E-logistique, St. Quentin
39
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  2S
N(s) = {s1,s2,…,sk} solutions voisines de s
• Les bons voisinages permettent de
représenter de forme efficace et compacte
l’ensemble des solutions voisines à toute
solution s
23/05/2016
DESS E-logistique, St. Quentin
40
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)}
23/05/2016
DESS E-logistique, St. Quentin
41
Voisinages
23/05/2016
DESS E-logistique, St. Quentin
42
Voisinages
23/05/2016
DESS E-logistique, St. Quentin
43
Voisinages
23/05/2016
DESS E-logistique, St. Quentin
44
Voisinages
23/05/2016
DESS E-logistique, St. Quentin
45
Example: problème du sac-à-dos
• Entrées:
Ensemble {1,2,…,n} d’objets
Poids maximum b
Revenu cj associé à chaque objet j=1,…,n
Poids aj associé à chaque objet j=1,…,n
• Problème d’optimisation:
Trouver un ensemble S* d’objets qui
maximise le revenu total et dont la somme
des poids soit inférieure a b
• Applications:
– Choix d’investissements
– Optimisation d’un portfolio d’actions
23/05/2016
DESS E-logistique, St. Quentin
46
Example: problème du sac-à-dos
•
Algorithme glouton approché pour
construire une solution réalisable:
1. Trier les objets par revenus décroissants
2. Evaluer le premier objet de la liste.
3. Si son poids est inférieur ou égal au poids
disponible, choisir cet objet.
Sinon, éliminer cet objet et passer au
suivant en retournant à l’étape 1.
23/05/2016
DESS E-logistique, St. Quentin
47
Example: problème du sac-à-dos
•
Example numérique:
n = 8 objets
poids maximum b = 15
revenus des objets: 5, 4, 6, 3, 5, 8, 5, 9
poids des objets: 3, 5, 7, 4, 2, 9, 5, 8
objets triés par revenus: 8, 6, 3, 7, 5, 1, 2, 4
solution = {8, 3} revenu = 15
23/05/2016
DESS E-logistique, St. Quentin
48
Example: problème du sac-à-dos
•
Algorithme glouton approché pour
construire une solution réalisable:
1. Trier les objets par revenus décroissants
2. Evaluer le premier objet de la liste.
3. Si son poids est inférieur ou égal au poids
disponible, choisir cet objet.
Sinon, éliminer cet objet et passer au
suivant en retournant à l’étape 1.
•
Critère qui donne les meilleurs résultats:
trier les objets par densités (revenu/poids)
décroissantes
23/05/2016
DESS E-logistique, St. Quentin
49
Example: problème du sac-à-dos
•
Example numérique:
n = 8 objets
poids maximum b = 15
revenus des objets: 5, 4, 6, 3, 5, 8, 5, 9
poids des objets: 3, 5, 7, 4, 2, 9, 5, 8
objets triés par revenus: 8, 6, 3, 7, 5, 1, 2, 4
solution = {8, 3} revenu = 15
densités des objets: 1.67, 0.8, 0.86, 0.75, 2.5,
0.88, 1, 1.125
objets triés par densités: 5, 1, 8, 7, 6, 3, 2, 4
solution = {5, 1, 8} revenu = 19
23/05/2016
DESS E-logistique, St. Quentin
50
Voisinages
• Espace de recherche: défini par l’ensemble
de solutions S et par un voisinage N
• Exemple 1 – problème du sac-à-dos:
vecteurs d’appartenance 0-1
v=(v1,…,vi,…,vn)
vi = 1, si l’objet i est choisi
vi = 0, sinon
Solution voisine: vi  1-vi
N4(v)={(v1,…,1-vi,…,vn): 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)}
23/05/2016
DESS E-logistique, St. Quentin
51
100
101
000
001
010
011
110
23/05/2016
111
DESS E-logistique, St. Quentin
52
Voisinages
• Espace de recherche: défini par l’ensemble
de solutions S et par un voisinage N
• Exemple 2:
permutations avec le voisinage N1
23/05/2016
DESS E-logistique, St. Quentin
53
1243
1342
1234
2143
2134
3124
2314
3241
2431
3421
4312
1423
23/05/2016
4321
4213
4123
3142
3214
2341
4231
2413
1324
3412
4132
1432
DESS E-logistique, St. Quentin
54
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
23/05/2016
DESS E-logistique, St. Quentin
55
Voisinages
• Voisinage 2-opt pour le voyageur de
commerce:
23/05/2016
DESS E-logistique, St. Quentin
56
Voisinages
• Voisinage 3-opt pour le voyageur de
commerce:
23/05/2016
DESS E-logistique, St. Quentin
57
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.
• Un chemin dans l’espace de recherche est
une séquence de solutions, deux solutions
consécutives étant toujours voisines.
23/05/2016
DESS E-logistique, St. Quentin
58
Voisinages
• Optimum local: une solution aussi bonne
que toutes les voisines
• Problème de minimisation:
s+ est un optimum local

f(s+)  f(s), s  N(s+)
• Optimum global (solution optimale) s*:
f(s*)  f(s),
23/05/2016
s  S
DESS E-logistique, St. Quentin
59
23/05/2016
DESS E-logistique, St. Quentin
60
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.
23/05/2016
DESS E-logistique, St. Quentin
61
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
23/05/2016
DESS E-logistique, St. Quentin
62
Algorithmes de recherche locale
• Amélioration itérative: à chaque itération,
sélectionner dans le voisinage une solution
meilleure que la solution courante
procedure Amélioration-Itérative(s0)
s  s0; amélioration  .vrai.
while amélioration do
amélioration  .faux.
for-all 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
23/05/2016
DESS E-logistique, St. Quentin
63
Algorithmes de recherche locale
• Descente la plus rapide: à chaque itération,
sélectionner la meilleure solution du
voisinage
procedure Descente-Rapide(s0)
s  s0; amélioration  .vrai.
while amélioration do
amélioration  .faux.; fmin  +
for-all s’  N(s) do
if f(s’) < fmin then
smin  s’; fmin  f(s’)
end-if
end-for-all
if fmin < f(s) then
s  smin ; amélioration  .vrai.
end-if
end-while
return s
end Descente-Rapide
23/05/2016
DESS E-logistique, St. Quentin
64
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
23/05/2016
DESS E-logistique, St. Quentin
65
Algorithmes de recherche locale
procedure RL-Perm-N1(0)
  0; amélioration  .vrai.
while amélioration do
amélioration  .faux.; fmin  +
for i = 1 to n-1 do
’  ; ’i  i+1; ’i+1  i;
if f(’) < fmin then
min  ’ ; fmin  f(’)
end-if
end-for
if fmin < f() then
  min ; amélioration  .vrai.
end-if
end-while
+  
return +
end RL-Perm-N1
23/05/2016
DESS E-logistique, St. Quentin
66
1243
1342
1234
2143
2134
3124
2314
3241
2431
3421
4312
1423
23/05/2016
4321
4213
4123
3142
3214
2341
4231
2413
1324
3412
4132
1432
DESS E-logistique, St. Quentin
67
21
23
20
22
21
23
23
27
27
29
23
23/05/2016
30
27
29
26
25
24
26
29
25
21
28
27
24
DESS E-logistique, St. Quentin
68
Voyageur de commerce
symétrique
0
6
5
7
1
8
4
14
15
9
10
11
2
3
13
23/05/2016
DESS E-logistique, St. Quentin
69
1243
1342
1234
2143
2134
3124
2314
3241
2431
3421
4312
1423
23/05/2016
4321
4213
4123
3142
3214
2341
4231
2413
1324
3412
4132
1432
DESS E-logistique, St. Quentin
70
51
50
48
49
50
52
47
48
50
51
48
23/05/2016
48
52
50
48
50
48
46
49
50
49
49
47
46
DESS E-logistique, St. Quentin
71
Voyageur de commerce
asymétrique
0
6
65
65
27
24
1
2
45
82
0
4
80 79
31
62
96
41
2
23/05/2016
4
7
96
64
DESS E-logistique, St. Quentin
16
3
72
1243
1342
1234
2143
2134
3124
2314
3241
2431
3421
4312
1423
23/05/2016
4321
4213
4123
3142
3214
2341
4231
2413
1324
3412
4132
1432
DESS E-logistique, St. Quentin
73
161
164
35
241
179
170
252
201
305
243
206
23/05/2016
328
272
152
347
271
157
272
182
113
306
154
236
293
DESS E-logistique, St. Quentin
74
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
• Nombre de solutions voisines: temps de
calcul pour évaluer chaque voisin.
• 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!)
23/05/2016
DESS E-logistique, St. Quentin
75
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
ALGORITHME DE RECHERCHE LOCALE
2-OPT (27-30)
• Extensions pour réduire ces difficultés et
améliorer les algorithmes:
 Metaheuristiques
23/05/2016
DESS E-logistique, St. Quentin
76
Metaheuristiques
•
•
•
•
•
•
•
GRASP
Algorithmes génétiques
Recuit simulé (simulated annealing)
Recherche tabou
VNS (Variable Neighborhood Search)
Scatter search
Colonies de fourmies
23/05/2016
DESS E-logistique, St. Quentin
77
Greedy Randomized Adaptive
Search Procedures (GRASP)
• Combinaison d’une méthode constructive
avec une approche par recherche locale,
dans une procédure itérative (multidé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
23/05/2016
DESS E-logistique, St. Quentin
78
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.
23/05/2016
DESS E-logistique, St. Quentin
79
GRASP
• Restriction des éléments dans la lista de
candidats:
– nombre maximum d’éléments dans la
liste
– qualité des éléments dans la liste (par
rapport au choix exclusivement glouton)
cmin = bénefice minimum parmi tous les
éléments
cmax = 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:
cj ≤ cmin + α . (cmax - cmin)}
α = 0: choix glouton
α = 1: choix probabiliste
23/05/2016
DESS E-logistique, St. Quentin
80
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
23/05/2016
DESS E-logistique, St. Quentin
81
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
23/05/2016
DESS E-logistique, St. Quentin
82
GRASP
• Technique d’échantillonage de l’espace de
recherche
23/05/2016
DESS E-logistique, St. Quentin
83
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
23/05/2016
DESS E-logistique, St. Quentin
84
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
23/05/2016
DESS E-logistique, St. Quentin
85
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)
ce: 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 nonobligatoires 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
23/05/2016
DESS E-logistique, St. Quentin
86
Problème de Steiner dans les graphes
• Charactérisation d’une solution
X  V: sous-ensemble des sommets nonobligatoires
• 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
23/05/2016
DESS E-logistique, St. Quentin
87
Problème de Steiner dans les graphes
• |V| = p
• Solution: s = (s1,s2,…,si,…,sp)  X
• Représentation par un indicateur 0-1
d’appartenance
• si = 1, si le i-ème sommet non-obligatoire
est utilisé (i.e., si vi  X)
si = 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
23/05/2016
DESS E-logistique, St. Quentin
88
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
23/05/2016
DESS E-logistique, St. Quentin
89
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
23/05/2016
DESS E-logistique, St. Quentin
90
Problème de Steiner dans les graphes
a
3
2
b
1
c
2
2
a
3
4
b
c
4
a
3
2
b
1
2
23/05/2016
c
2
DESS E-logistique, St. Quentin
91
Problème de Steiner dans les graphes
Example:
1
a
1
1
2
b
2
2
2
3
2
4
1
c
2
5
1
23/05/2016
2
1
DESS E-logistique, St. Quentin
d
1
92
Problème de Steiner dans les graphes
Solution optimale:
1
a
1
1
2
b
2
2
2
3
2
4
1
c
2
5
1
23/05/2016
2
1
DESS E-logistique, St. Quentin
d
1
93
Problème de Steiner dans les graphes
Plus courts chemins:
1
a
1
1
2
b
2
2
2
3
2
4
1
c
2
5
1
23/05/2016
2
1
DESS E-logistique, St. Quentin
d
1
94
Problème de Steiner dans les graphes
Plus courts chemins:
1
a
1
1
2
b
2
2
2
3
2
4
1
c
2
5
1
23/05/2016
2
1
DESS E-logistique, St. Quentin
d
1
95
Problème de Steiner dans les graphes
Plus courts chemins:
1
a
1
1
2
b
2
2
2
3
2
4
1
c
2
5
1
23/05/2016
2
1
DESS E-logistique, St. Quentin
d
1
96
Problème de Steiner dans les graphes
Plus courts chemins:
1
a
1
1
2
b
2
2
2
3
2
4
1
c
2
5
1
23/05/2016
2
1
DESS E-logistique, St. Quentin
d
1
97
Problème de Steiner dans les graphes
Plus courts chemins:
1
a
1
1
2
b
2
2
2
3
2
4
1
c
2
5
1
23/05/2016
2
1
DESS E-logistique, St. Quentin
d
1
98
Problème de Steiner dans les graphes
Plus courts chemins:
1
a
1
1
2
b
2
2
2
3
2
4
1
c
2
5
1
23/05/2016
2
1
DESS E-logistique, St. Quentin
d
1
99
Problème de Steiner dans les graphes
Réseau des terminaux:
2
a
b
4
4
4
4
2
c
23/05/2016
d
DESS E-logistique, St. Quentin
100
Problème de Steiner dans les graphes
a
4
2
4
b
Construction
4
4
c
Itération 1
2
d
a
Recherche locale
2
Coût = 8
4
c
a
1
b
2
3
4
c
5
d
23/05/2016
b
2
Eliminer 1?
Eliminer 2?
Eliminer 5?
Insérer 3?
Insérer 4?
DESS E-logistique, St. Quentin
d
Non!
Non!
Non!
Non!
Non!
101
Problème de Steiner dans les graphes
a
4
2
b
4
Construction
4
4
2
c
Itération 2
d
a
b
4
Recherche locale
4
Coût = 12
4
c
a
1
b
2
3
4
c
5
d
23/05/2016
Eliminer 1?
Eliminer 2?
Eliminer 5?
Eliminer 3?
Insérer 4?
DESS E-logistique, St. Quentin
d
Non!
Oui: coût=6!
Non!
Oui: coût=8
Non!
102
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. Les gènes des
individus les plus adaptés vont se distribuer
sur un plus grand nombre d’individus des
prochaines générations.
• Les espèces évoluent en s’adaptant de plus
en plus à leur environement.
23/05/2016
DESS E-logistique, St. Quentin
103
Algorithmes génétiques
• Population représentée par ses
chromosomes: chromosome  individu
• Des 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
23/05/2016
DESS E-logistique, St. Quentin
104
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
meilleure solution, nombre de
23/05/2016générations)
DESS E-logistique, St. Quentin
105
Algorithmes génétiques
• Fonction d’adaptation (“fitness”):
utilisée...
– 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) d’un
fils est une copie du gène correspondant
d’un de ses parents choisi au hasard.
23/05/2016
DESS E-logistique, St. Quentin
106
Algorithmes génétiques
• Crossover d’un seul point:
parents: deux chromosomes de n bits
a = (a1,…,ak,…,an) b = (b1,…,bk,…,bn)
opération: k  {1,…,n} choisi au hasard
fils:
(a1,…,ak,bk+1,…,bn) (b1,…,bk,ak+1,…,an)
• 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
23/05/2016
DESS E-logistique, St. Quentin
107
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 nonré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 nonré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
23/05/2016
DESS E-logistique, St. Quentin
108
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.
23/05/2016
DESS E-logistique, St. Quentin
109
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)
23/05/2016
DESS E-logistique, St. Quentin
110
Algorithmes génétiques
• 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
• 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
23/05/2016
DESS E-logistique, St. Quentin
111
Algorithmes génétiques
• Opérateur d’amélioration (par exemple,
recherche locale) pour traiter chaque fils:
– Amélioration de la solution (fils)
– Rendre la solution (fils) réalisable
• 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)
23/05/2016
DESS E-logistique, St. Quentin
112
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).
23/05/2016
DESS E-logistique, St. Quentin
113
Heuristiques et metaheuristiques
http://www.inf.puc-rio.br/~celso/disciplinas/heuristiques.ppt
23/05/2016
DESS E-logistique, St. Quentin
114
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
23/05/2016
DESS E-logistique, St. Quentin
115