Title: Mod
1Modé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
-
2Contenu
- 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 lInternet
- GRASP
- Application 2 problème de Steiner dans les
graphes et la synthèse des réseaux daccès - Application 3 reroutage dans les réseaux de
communication
3Applications graphes et tournées
- Problème du plus court cheminDonné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 larbre couvrant minimumDonné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 dordonnancement (PERT)Données
ensemble de tâches, durées et précédencesProblème
déterminer linstant où chaque tâche doit
démarrer et le temps minimum dexécution de
lensemble des tâches
4Applications graphes et tournées
- Problème du flot maximumDonné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 transportDonnées ensemble dusines,
ensemble de clients, production maximale ai de
chaque usine, demande bj de chaque client, coût
unitaire cij denvoi dune unité de flot de
lusine i au client j (représentation par un
graphe biparti)Problème déterminer les
quantités optimales à envoyer de chaque usine à
chaque client
5Applications graphes et tournées
- Problème daffectationDonnées ensemble de
tâches, ensemble de machines, gain (rendement)
cij dassociation 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
dusines, ensemble de clients, ensemble
dentrepots, production maximale ai de chaque
usine, demande bj de chaque client, coût unitaire
cij denvoi dune 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 arcExtensions capacités sur
les arcs, capacités sur les sommets, stockage
6Applications graphes et tournées
- Problème du flot à coût minimumDonnées ensemble
dusines, ensemble de clients, ensemble
dentrepots, production maximale ai de chaque
usine, demande bj de chaque client, coût unitaire
cij denvoi dune 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.
7Applications graphes et tournées
- Problème du voyageur de commerceDonné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 chinoisDonné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)
8Applications graphes et tournées
- Problèmes de tournées de véhiculesDonnées
ensemble de depôts, ensemble de véhicules, coûts
dachat, coûts dutilisation, ensemble de
clients, demande de chaque client, capacité de
chaque véhicule, contraintes dhorairesProblème
déterminer les trajets qui doivent être faits par
chaque véhicule, de façon à minimiser les
coûtsCaractéristiques des depôts quantité,
localisation, horaires douverture clients
délivrer/collecter, collecter et délivrer, durée
du service, fenêtres de temps, contraintes
daccè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)
9Applications 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, sil existe un
seul véhicule il sagit du problème du voyageur
de commerce)
Depôt
10Applications graphes et tournées
- Problème daffectation (scheduling) de
véhiculesDonnées ensemble de voyages, horaires,
coûtsProblème affecter les véhicules aux
voyages - Problème de SteinerDonné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
11Applications graphes et tournées
- Quelques applications
- Confection des horaires des chauffeurs dautobus
- 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 dembarquement
dans les aéroports - et beaucoup dautres
- Tous ces problèmes sont difficiles, dans le
sens où nous ne connaissons pas dalgorithme
efficace pour les résoudre de façon exacte il
faut donc faire appel aux méthodes approchées (ou
heuristiques)
12Thé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 doptimisation 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 doptimisation trouver un
cycle hamiltonien de longueur minimale.
13Thé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 j1,,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
doptimisation 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 quun 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
14Thé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 triplus
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 - lalgorithme répond oui après
lapplication de Check
Fail - lalgorithme ne répond pas
oui
15Théorie de la complexité
- Résultat si Choice propose une solution qui mène
à une réponse oui (et loracle a la capacité de
le faire), alors le temps de calcul de
lalgorithme est polynomial. - Algorithmes non-déterministes on peut aussi dire
quil sagit 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
dexecution, comme dans un environement de
parallélisme illimité, chaque copie correspondand
à une proposition (certificat) différente
possible de solution
16Théorie de la complexité
- Exemple problème du sac-à-dosfor 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
sarrê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
nimporte quel certificat peut être vérifié en
temps polynomial pour une réponse oui)
17Thé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)
18Thé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
lentrée IA pour A, on peut toujours construire
une entrée IB pour B en temps polynomial dans la
taille L(IA) de lentré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
19Théorie de la complexité
- Sil existe un algorithme (déterministe)
polynomial pour la résolution dun 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 nexiste pas ou nous navons 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?
20Théorie de la complexité
- Problèmes NP-difficiles problèmes doptimisation
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émoireP ? PSPACE
NP ? PSPACE
21Théorie de la complexité
- Vision simplifiée du monde des problèmes de
décision
22Solution 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
dintervales - Algorithmes approximatifs solution réalisable
avec une erreur maximale garantieExemple bin
packing
23Solution 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
24Méthodes constructives
- Problème doptimisation 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 lensemble des solutions
réalisables du problème - Ensemble de solutions a un nombre fini délements
- Construction dune solution
sélectionner séquentiellement des élements de E,
éventuellement en préjudice dautres déjà
sélectionnés antérieurement, de façon à ce que à
la fin on obtienne une solution réalisable, i.e.
appartenant à F.
25Méthodes constructives
- Problème du voyageur de commerce
- E ensemble darêtes
- F sous-ensembles de E qui forment un
- cicle hamiltonien (CH)
- c(S) ? e?S ce
- ce coût de larête e
- ALGORITHME DU PLUS PROCHE VOISIN (1-13)
-
26Méthodes constructives
- Algorithme de linsertion la plus distante pour
la construction dune 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
nappartiennent pas à la solution courante et
dont larête la plus courte qui le connecte à ce
cycle soit la plus longue. - Etape 2
- Trouver la paire darê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
larête (i,j). - Etape 3
- Retourner à létape 1.
27Choix du sommet
k
p
Choix des arêtes
k
i
j
p
28Méthodes constructives
- Problème du sac-à-dos
- E ensemble dobjets
- F sous-ensembles de E qui satisfont la
- contrainte ? e?S ae ? b
- c(S) ? e?S ce
- ce revenu associé à lobjet e
- ae poids de lobjet e
- b capacité du sac-à-dos
295/3
4/5
6/7
3/4
1
2
3
4
ce/ae
i
5/2
8/9
5/5
9/8
5
6
7
8
Capacité du sac-à-dos 15
Objet Poids
Revenu
3 7
6
3, 5 9
11
3, 5, 7 14
16
30Méthodes constructives
- Algorithmes gloutons
Lors de la construction dune solution,
ce type dalgorithme choisi séquentiellement
toujours lélément de E qui minimise
laugmentation du coût de la solution partielle
courante, de façon à ce que à la fin on obtienne
une solution réalisable. - Laugmentation dans le coût de la solution
partielle est la fonction gloutonne. - Lalgorithme glouton nobtient pas forcément une
solution optimale
31Méthodes constructives
- Problème de larbre 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 darêtes
- F sous-ensembles de E qui forment des arbres
générateurs -
32Méthodes constructives
- Algorithme glouton pour la construction dun
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 larête)
33Méthodes constructives
- Algorithme glouton pour la construction dune
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 nest pas forcément une solution
optimale - Fonction gloutonne ce/ae(densité de lélément)
34Méthodes constructives
- Algorithme glouton randomisé (probabiliste)
- Algorithme glouton obtient toujours la même
solution pour un problème donné - Randomisation permet davoir 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 lalgorithme à 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
35Mé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)
-
36Repré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 dune solution indiquer les
éléments de E qui appartiennent à la solution et
ceux qui ny appartiennent pas. - Problème du sac-à-dos n objets, vecteur
0-1 de n éléments, xj 1 si lobjet j
appartient à la solution, xj 0 sinon
37Représentation de solutions
- Problème du voyageur de commerce
- E ensemble darê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 larête e appartient au CH
- ve 0, sinon.
- 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)
1
a
b
5
2
4
6
d
c
3
38Représentation de solutions
- Autre représentation pour les solutions du
problème du voyageur de commerce représenter
chaque solution par lordre 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
39Représentation de solutions
- Indicateurs 0-1 dappartenance
- Problème du sac-à-dos
- Problème de Steiner dans les graphes
- Problèmes de recouvrement et de partitionement
- Indicateurs généraux dappartenance
- Partitionement de graphes
- Coloration de graphes
- Clustering
- Permutations
- Problèmes dordonnancement
- Job/Flow/Open Shop Scheduling
- Problème du voyageur de commerce
40Voisinages
- 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 dune 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 lensemble des
solutions voisines à toute solution s
41Voisinages
- Voisinages dans lespace des permutations
- Solution ?(?1,,?i -1,?i,?i 1,,?j,,?n)
- N1(?)(?1,,?i1,?i ,,?n) i1,, 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) i1,,n-1
ji1,,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)
i1,,n-1 ji1,,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)
42Voisinages
43Voisinages
44Voisinages
45Voisinages
46Example problème du sac-à-dos
- Entrées Ensemble 1,2,,n dobjetsPoids
maximum bRevenu cj associé à chaque objet
j1,,n Poids aj associé à chaque objet
j1,,n - Problème doptimisation Trouver un ensemble S
dobjets qui maximise le revenu total et dont la
somme des poids soit inférieure a b - Applications
- Choix dinvestissements
- Optimisation dun portfolio dactions
47Example problème du sac-à-dos
- Algorithme glouton approché pour construire une
solution réalisable - Trier les objets par revenus décroissants
- Evaluer le premier objet de la liste.
- 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.
48Example 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
49Example problème du sac-à-dos
- Algorithme glouton approché pour construire une
solution réalisable - Trier les objets par revenus décroissants
- Evaluer le premier objet de la liste.
- 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
50Example 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
51Voisinages
- Espace de recherche défini par lensemble de
solutions S et par un voisinage N - Exemple 1 problème du sac-à-dos vecteurs
dappartenance 0-1 v(v1,,vi,,vn)vi 1, si
lobjet i est choisivi 0, sinon - Solution voisine vi ? 1-vi
- N4(v)(v1,,1-vi,,vn) i1,..,n
- Voisins de (1,0,1,1)
(0,0,1,1),(1,1,1,1),(1,0,0,1),(1,0,1,0)
-
-
52100
101
000
001
010
011
110
111
53Voisinages
- Espace de recherche défini par lensemble de
solutions S et par un voisinage N - Exemple 2
permutations avec le voisinage N1 -
-
541243
1342
1234
1324
2143
3142
2134
3124
2314
3214
3241
2341
2431
3421
4231
4321
2413
3412
4213
4312
4123
4132
1432
1423
55Voisinages
- Espace de recherche défini par lensemble de
solutions S et par un voisinage N - Exemple 3
Voisinages 2-opt et 3-opt pour le voyageur de
commerce -
-
56Voisinages
- Voisinage 2-opt pour le voyageur de commerce
57Voisinages
- Voisinage 3-opt pour le voyageur de commerce
58Voisinages
- Lespace 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 lespace de recherche est une
séquence de solutions, deux solutions
consécutives étant toujours voisines.
59Voisinages
- 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), ?s ? S
60(No Transcript)
61Algorithmes de recherche locale
- Les algorithmes de recherche locale sont conçus
comme une stratégie pour explorer lespace 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 ny 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.
62Algorithmes 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
63Algorithmes 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) lt f(s) then
- s ? s amélioration ? .vrai.
- end-if
- end-for-all
- end-while
- return s
- end Amélioration-Itérative
64Algorithmes 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) lt fmin then
- smin ? s fmin ? f(s)
- end-if
- end-for-all
- if fmin lt f(s) then
- s ? smin amélioration ? .vrai.
- end-if
- end-while
- return s
- end Descente-Rapide
65Algorithmes de recherche locale
- Exemple algorithme de descente la plus rapide
appliqué à un problème dordonnancement - Espace de recherche permutations des n éléments
- Solution ?(?1,,?i -1,?i,?i 1,,?j,,?n)
- Voisinage
N1(?)(?1,,?i1,?i ,,?n) i1,, n-1 - Coût dune permutation
f(?) ?i1,,n i.?i
66Algorithmes 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 ? ?i1 ?i1 ? ?i
- if f(?) lt fmin then
- ?min ? ? fmin ? f(?)
- end-if
- end-for
- if fmin lt f(?) then
- ? ? ?min amélioration ? .vrai.
- end-if
- end-while
- ? ? ?
- return ?
- end RL-Perm-N1
671243
1342
1234
1324
2143
3142
2134
3124
2314
3214
3241
2341
2431
3421
4231
4321
2413
3412
4213
4312
4123
4132
1432
1423
6821
23
20
21
22
25
21
23
23
24
27
26
27
29
29
30
25
28
27
29
26
27
24
23
69Voyageur de commerce symétrique
0
6
5
7
8
1
4
14
9
15
10
11
3
2
13
701243
1342
1234
1324
2143
3142
2134
3124
2314
3214
3241
2341
2431
3421
4231
4321
2413
3412
4213
4312
4123
4132
1432
1423
7151
50
48
49
49
50
50
52
47
48
48
46
50
51
49
48
50
49
52
50
48
47
46
48
72Voyageur de commerce asymétrique
0
6
65
65
27
24
2
45
82
1
4
0
4
80
79
31
62
96
41
16
96
3
2
7
64
731243
1342
1234
1324
2143
3142
2134
3124
2314
3214
3241
2341
2431
3421
4231
4321
2413
3412
4213
4312
4123
4132
1432
1423
74161
164
35
113
241
347
179
170
252
271
157
201
305
243
272
328
154
182
272
306
152
236
293
206
75Algorithmes de recherche locale
- Différents aspects de lespace de recherche
peuvent influencer la performance dun algorithme
de recherche locale - Connexité il doit y avoir un chemin entre chaque
paire de solutions de lespace 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!)
76Algorithmes 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 ditérations
- ALGORITHME DE RECHERCHE LOCALE 2-OPT (27-30)
-
- Extensions pour réduire ces difficultés et
améliorer les algorithmes
? Metaheuristiques
77Metaheuristiques
- GRASP
- Algorithmes génétiques
- Recuit simulé (simulated annealing)
- Recherche tabou
- VNS (Variable Neighborhood Search)
- Scatter search
- Colonies de fourmies
78Greedy Randomized Adaptive Search Procedures
(GRASP)
- Combinaison dune 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 dune 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) lt f(s) then s ? s
- end-for
79GRASP
- 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 lutilisation
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.
80GRASP
- 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émentscmax bénefice
maximum parmi tous les éléments - Paramètre a permet de controler la qualité des
éléments dans la liste de candidats Liste
éléments j cj cmin a . (cmax
- cmin) a 0 choix glouton a 1 choix
probabiliste
81GRASP
- Choix probabiliste entre les meilleurs éléments
de la liste de candidats (pas forcément le
meilleur, comme cest 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
82GRASP
- Construction gloutonne bonnes solutions (près
des optima locaux), permettant daccé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 daccélérer
la recherche locale - Utilisation dun algorithme glouton randomisé
lors de la phase de construction permet
daccélérer la recherche locale
83GRASP
- Technique déchantillonage de lespace de
recherche
84GRASP
- 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 ditérations
- Dépend de bonnes solutions de départ
- Desavantage nutilise pas de mémoire
85GRASP
- 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 quil a trouvée
86Problè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 larête e ? E
- Obtenir un arbre couvrant des sommets terminaux
de poids minimum - (cas particulier si T V, problème de larbre
couvrant de poids minimum) - Sommets de Steiner sommets non- obligatoires qui
font partie de la solution optimale - Applications projet des réseaux dordinateurs et
de télécommunications, problème de la phylogénie
en biologie
87Problème de Steiner dans les graphes
- Charactérisation dune 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
88Problème de Steiner dans les graphes
- V p
- Solution s (s1,s2,,si,,sp) ? X
- Représentation par un indicateur 0-1
dappartenance - 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 linsertion ou lélimination dun
sommet non-obligatoire de la solution courante - Modifications par insertion
- Modifications par élimination
89Problè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
lalgorithme glouton de Kruskal - (c) récuperer les arêtes de la solution comme des
chemins dans graphe original pour obtenir un
arbre de Steiner
90Problème de Steiner dans les graphes
- Voisinage pour la phase de recherche locale
toutes les solutions qui peuvent être obtenues
par linsertion ou lélimination dun sommet
non-obligatoire de la solution courante
91Problème de Steiner dans les graphes
a
3
2
b
c
1
2
2
a
3
4
c
b
4
a
3
2
b
c
1
2
2
92Problème de Steiner dans les graphes
Example
1
1
1
a
b
2
2
1
2
2
2
4
3
2
1
2
5
d
c
1
1
93Problème de Steiner dans les graphes
Solution optimale
1
1
1
a
b
2
2
1
2
2
2
4
3
2
1
2
5
d
c
1
1
94Problème de Steiner dans les graphes
Plus courts chemins
1
1
1
a
b
2
2
1
2
2
2
4
3
2
1
2
5
d
c
1
1
95Problème de Steiner dans les graphes
Plus courts chemins
1
1
1
a
b
2
2
1
2
2
2
4
3
2
1
2
5
d
c
1
1
96Problème de Steiner dans les graphes
Plus courts chemins
1
1
1
a
b
2
2
1
2
2
2
4
3
2
1
2
5
d
c
1
1
97Problème de Steiner dans les graphes
Plus courts chemins
1
1
1
a
b
2
2
1
2
2
2
4
3
2
1
2
5
d
c
1
1
98Problème de Steiner dans les graphes
Plus courts chemins
1
1
1
a
b
2
2
1
2
2
2
4
3
2
1
2
5
d
c
1
1
99Problème de Steiner dans les graphes
Plus courts chemins
1
1
1
a
b
2
2
1
2
2
2
4
3
2
1
2
5
d
c
1
1
100Problème de Steiner dans les graphes
Réseau des terminaux
2
a
b
4
4
4
4
2
d
c
101Problème de Steiner dans les graphes
Itération 1
Eliminer 1?
Non!
Non!
Eliminer 2?
Non!
Eliminer 5?
Non!
Insérer 3?
Insérer 4?
Non!
102Problème de Steiner dans les graphes
Itération 2
Eliminer 1?
Non!
Oui coût6!
Eliminer 2?
Non!
Eliminer 5?
Oui coût8
Eliminer 3?
Insérer 4?
Non!
103Algorithmes génétiques
- Algorithme probabiliste basé sur lanalogie 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 à lenvironement
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 dindividus des prochaines générations. - Les espèces évoluent en sadaptant de plus en
plus à leur environement.
104Algorithmes 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 dautres en
sont exclus. La génération des nouveaux
chromosomes est faite par reproduction et par
mutation. - Représentation dun chromosome séquence de 0s
et de 1s (équivalent à un vecteur
dappartenance) - 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 dune petite
partie dun chromosome
105Algorithmes génétiques
- Algorithme de base
- Générer une population initiale
- while critère-darrê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 dindividus)
- critère de sélection
- critère de survivance
- taux de mutation
- critère darrêt (stabilisation de la population,
pas damélioration de la meilleure solution,
nombre de générations)
106Algorithmes génétiques
- Fonction dadaptation (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 lun des
parents. -
- Crossover opération randomisée, les individus
les plus adaptés ayant plus de chances dy
participer. - Crossover uniforme chaque gène (bit) dun fils
est une copie du gène correspondant dun de ses
parents choisi au hasard.
107Algorithmes génétiques
- Crossover dun 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,bk1,,bn) (b1,,bk,ak1,,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 dadaptation - Utilisation de consensus copier les bits communs
aux deux parents
108Algorithmes 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 dadaptation de
toute solution non-réalisable - Rien nempêche lemploi de méthodes
doptimisation dans les algorithmes génétiques
(plus dintelligence) - recherche locale après les crossovers et les
mutations - Choix optimal des parents
109Algorithmes 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
dadaptation la reproduction mène lévolution à
une population homogêne, les mutations permettent
dintroduire 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.
110Algorithmes 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)
111Algorithmes 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
dintelligence dans cette opération, par
exemple, par un algorithme de recherche locale. - Sélection des parents par compatibilité choisir
un parent, puis choisir lautre comme lindividu
le plus compatible -
112Algorithmes génétiques
- Opérateur damé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
lopérateur de mutation sur quelques bits
sélectionnés, pour garantir lobtention de
solutions réalisables) -
113Algorithmes 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).
114Heuristiques et metaheuristiques
- http//www.inf.puc-rio.br/celso/disciplinas/heuri
stiques.ppt
115Algorithmes 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 naméliorent
pas la solution courante, de façon à pouvoir
sortir dun optimum local. - Multi-départ appliquer lalgorithme 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
-