Upload
everard-bailleul
View
109
Download
0
Embed Size (px)
Citation preview
27/09/02 M. Palpant, C. Artigues, P. Michelon
Une méthode de grand voisinage Une méthode de grand voisinage pour le RCPSPpour le RCPSP
Laboratoire d’Informatique d’Avignon339 chemin des Meinajariès
BP 122884000 Avignon
M. Palpant, C. Artigues, P. Michelon{mireille.palpant, christian.artigues, philippe.michelon}@lia.univ-
avignon.fr
1
27/09/02 M. Palpant, C. Artigues, P. Michelon
PlanPlan
1. Aperçu général de la méthode
2. Présentation du RCPSP
3. Caractéristiques avancées de la méthode
4. Résultats expérimentaux
5. Conclusion et remarques
2
27/09/02 M. Palpant, C. Artigues, P. Michelon
IntroductionIntroduction
intégration de résolution exacte au sein d’un processus de recherche locale :
procédés d’intensification et de diversification de la recherche
grand voisinage (LNS) Mimausa [Mautor, Michelon] : affectation
quadratique Forget&Extend [Caseau, Laburthe] : job-shop
3
27/09/02 M. Palpant, C. Artigues, P. Michelon
Génération et résolution exacte du problème réduit
Reconstruction d’une solution complète
Perturbation éventuelle
Auto-ajustement de la valeur de p
Tests d’arrêt
Recherche d’une solution initiale ( heuristique )
Phase d’initialisation
Sélection de p n variables libres
Phase itérative
Schéma général d’exécutionSchéma général d’exécution
4
27/09/02 M. Palpant, C. Artigues, P. Michelon
ParamètresParamètres
taille p du sous-problème
temps maximum t_opt alloué à la résolution exacte du sous-problème
perturbation au bout de nb_iter itérations sans amélioration de la solution courante
nombre maximum d’itérations max_iter
5
27/09/02 M. Palpant, C. Artigues, P. Michelon
RCPSP : donnéesRCPSP : données
R : ensemble {0, …, m} de ressources capacité limitée Rk
V : ensemble {0, …, n} de tâches durée pi
consommation de rik unités de chaque ressource k durant l’exécution
G = (V, E) : graphe modélisant les contraintes de précédence entre tâches
6
27/09/02 M. Palpant, C. Artigues, P. Michelon
RCPSP : formulationRCPSP : formulation
RCPSP : min Cmax
s - à : Cmax S
i+p
i i V
Sj S
i+p
i (i, j) E
(contraintes potentielles)
rik R
k t = 1, …, T, k R
(contraintes cumulatives)
A(t) i
7
27/09/02 M. Palpant, C. Artigues, P. Michelon
RCPSP : exempleRCPSP : exemple
5 10
1
4
6
5
2 7
15
res1
res2
17
3
Un ordonnancement réalisable
0 5 10 15 17
3
2
1
1
0
0
0
{0, 0}
0
1 2
4
5
6
7
8
35
5
5
5
4
2
6
6
0
0
{3, 0}
{2, 0}
{1, 0}
{3, 0}
{0, 1}
{0, 1}
{0, 1}
{0, 0}
8
27/09/02 M. Palpant, C. Artigues, P. Michelon
Construction de la solution initiale Construction de la solution initiale (1)(1)
procédure de forward-backward [Li, Willis] :
alternance de passes avant et passes arrières d’une méthode constructive (SGS sériel)
convergence rapide arrêt si obtention lors d’une passe avant et
une passe arrière successives d’une même valeur de makespan
9
27/09/02 M. Palpant, C. Artigues, P. Michelon
Construction de la solution initiale Construction de la solution initiale (2)(2)
passe avant : ordonnancement au plus tôt règle de priorité :
première passe : minLFT autres passes : plus petite des dates de début
données par la passe arrière précédente passe arrière :
ordonnancement au plus tard règle de priorité :
plus grande des dates de fin calculées à partir des dates de début données par la passe avant précédente
10
27/09/02 M. Palpant, C. Artigues, P. Michelon
Construction de la solution initiale : Construction de la solution initiale : exempleexemple
5 10
1
4
6
5
2 7
15
res1
res2
3
0 5 10 15 20
3
2
1
1
0
0
0
20
25
25
11
L = {7, 5, 6, 4, 3, 2, 1}
27/09/02 M. Palpant, C. Artigues, P. Michelon
Construction de la solution initiale : Construction de la solution initiale : exempleexemple
10
7
15
10 15 20
20
25
25
11
7
6
5
4
3
2
1Priorités croissante
s
27/09/02 M. Palpant, C. Artigues, P. Michelon
Construction de la solution initiale : Construction de la solution initiale : exempleexemple
10
5
7
15
10 15 20
20
25
25
11
7
6
5
4
3
2
1Priorités croissante
s
27/09/02 M. Palpant, C. Artigues, P. Michelon
Construction de la solution initiale : Construction de la solution initiale : exempleexemple
10
6
5
7
15
10 15 20
20
25
25
11
7
6
5
4
3
2
1Priorités croissante
s
27/09/02 M. Palpant, C. Artigues, P. Michelon
Construction de la solution initiale : Construction de la solution initiale : exempleexemple
10
4
6
5
7
15
10 15 20
20
25
25
11
7
6
5
4
3
2
1Priorités croissante
s
27/09/02 M. Palpant, C. Artigues, P. Michelon
Construction de la solution initiale : Construction de la solution initiale : exempleexemple
10
4
6
5
7
15
3
10 15 20
20
25
25
11
7
6
5
4
3
2
1Priorités croissante
s
27/09/02 M. Palpant, C. Artigues, P. Michelon
Construction de la solution initiale : Construction de la solution initiale : exempleexemple
10
4
6
5
2 7
15
3
10 15 20
20
25
25
11
7
6
5
4
3
2
1Priorités croissante
s
27/09/02 M. Palpant, C. Artigues, P. Michelon
Construction de la solution initiale : Construction de la solution initiale : exempleexemple
10
1
4
6
5
2 7
15
3
10 15 20
20
25
25
11
7
6
5
4
3
2
1Priorités croissante
s
27/09/02 M. Palpant, C. Artigues, P. Michelon
Construction de la solution initiale : Construction de la solution initiale : exempleexemple
11
5 10
1
4
6
5
2 7
15
res1
res2
3
0 5 10 15
3
2
1
1
0
0
0
L = {4, 1, 5, 6, 2, 7, 3}
27/09/02 M. Palpant, C. Artigues, P. Michelon
Construction de la solution initiale : Construction de la solution initiale : exempleexemple
11
5 10
1
4
6
5
2 7
15
res1
res2
3
0 5 10 15
3
2
1
1
0
0
0
7
6
5
4
3
2
1
Priorités croissante
s
27/09/02 M. Palpant, C. Artigues, P. Michelon
Sélection des tâches libres : Sélection des tâches libres : méthodeméthode
méthode par bloc :
génération aléatoire d’une liste L d’indices
sélection aléatoire d'une tâche de départ i
itérativement : sélection dans l’ordre donné par L de toute
tâche j telle que Sj Si+pi et Sj+pj Si
sélection d'une nouvelle tâche i
12
27/09/02 M. Palpant, C. Artigues, P. Michelon
Sélection des tâches libres : exempleSélection des tâches libres : exemple
L = {3, 1, 7, 2, 4, 5, 6}, p=3
5 10
1
4
6
5
2 7
15
res1
res2
3
0 5 10 15 20
3
2
1
1
0
0
0
20
25
25
13
tâche de départ
27/09/02 M. Palpant, C. Artigues, P. Michelon
Sélection des tâches libres : Sélection des tâches libres : remarqueremarque
La liste aléatoire d’indices apporte de la diversité au processus de sélection
14
tâche de départ
5 10
1
4
65
2 715
3
0 5 10 15 20
0 20
25
25 5 10
1
4
65
2 715
3
0 5 10 15 20
0 20
25
25
L = {3, 1, 7, 2, 4, 5, 6}
L = {6, 7, 1, 4, 5, 3, 2}
27/09/02 M. Palpant, C. Artigues, P. Michelon
Sélection des tâches libres : autres Sélection des tâches libres : autres approchesapproches
Efficacité croissante :
aléatoire
aléatoire - prédécesseurs dans le projet
aléatoire - prédécesseurs dans l’ordonnancement
aléatoire - tous prédécesseurs
"bloc"
15
27/09/02 M. Palpant, C. Artigues, P. Michelon
Sous-problème : génération et Sous-problème : génération et résolutionrésolution
génération : recalage au plus tard des tâches fixes si
possible détermination des capacités des ressources
(variables au cours du temps) détermination des fenêtres d’exécution des
tâches libérées
résolution : utilisation de la bibliothèque ILOG Scheduler
(PPC)
16
27/09/02 M. Palpant, C. Artigues, P. Michelon
Sous-problème : formulationSous-problème : formulation
SubRCPSP : min sous les contraintes :
+pi i
de précédence (contraintes potentielles) :
de limitation des ressources (contraintes cumulatives) :
de fenêtre d’exécution :
Ej)(i,pSS iij~~~
RkT,1,...,tRr(t)Ai
kik
)(
~t
S Si ~
V i S p S i ii i~~
,
maxC~
17
maxC~
iS~
V~
27/09/02 M. Palpant, C. Artigues, P. Michelon
Contraintes de précédenceContraintes de précédence
18
0
4
2
8
34
6
0
0
{0, 1}
{3, 0}
{0, 1}
{0, 0}
{0, 0}
2
0
1 2
4
5
6
7
8
35
6
5
5
4
2
6
6
0
0
{3, 0}
{2, 0}
{1, 0}
{3, 0}
{0, 1}
{0, 1}
{0, 1}
{0, 0}
{0, 0}
27/09/02 M. Palpant, C. Artigues, P. Michelon
Capacités variables des ressourcesCapacités variables des ressources
5 10 15
res1
res20 5 10 15 20
0 20
25
25
1 5
7
56
1
7
5 10
165
715
0 5 10 15 20
321
1
0
00
20
25
25
19
27/09/02 M. Palpant, C. Artigues, P. Michelon
Fenêtres d’exécution des tâchesFenêtres d’exécution des tâches
20
S0+p
0
0 5 10 15
3
4
2
S5
S8
33 pS S1+p
1S2+p
2
20 25
5 10
165
715
0 5 10 15 20
321
1
0
00
20
25
25
0
4
2
8
34
6
0
0
{0, 1}
{3, 0}
{0, 1}
{0, 0}
{0, 0}
2
27/09/02 M. Palpant, C. Artigues, P. Michelon
RésolutionRésolution
21
5 10
1
4
6
5
7
15
res1
res20 5 10 15 20
3
2
1
1
0
0
0
20
25
25
2
3
27/09/02 M. Palpant, C. Artigues, P. Michelon
RésolutionRésolution
5 10
1
4
6
5
2 7
15
res1
res2
3
0 5 10 15 20
3
2
1
1
0
0
0
20
25
25
21
27/09/02 M. Palpant, C. Artigues, P. Michelon
Reconstruction de la solution Reconstruction de la solution courantecourante
mise à jour de la solution courante avec le résultat de l’optimisation
application de l’heuristique de forward-backward :
recalage au plus tôt amélioration éventuelle au cours des passes règle de priorité différente lors de la
première passe (plus petite des dates de début de la solution courante)
22
27/09/02 M. Palpant, C. Artigues, P. Michelon
Reconstruction de la solution Reconstruction de la solution courantecourante
5 10
1
4
6
5
2 7
15
res1
res2
3
0 5 10 15 20
3
2
1
1
0
0
0
20
25
25
23
27/09/02 M. Palpant, C. Artigues, P. Michelon
Reconstruction de la solution Reconstruction de la solution courantecourante
5 10
1
4
6
5
2 7
15
res1
res2
3
0 5 10 15 20
3
2
1
1
0
0
0
20
23
27/09/02 M. Palpant, C. Artigues, P. Michelon
Reconstruction de la solution Reconstruction de la solution courantecourante
5 10
1
4
6
5
2 7
15
res1
res2
3
0 5 10 15 20
3
2
1
1
0
0
0
20
23
27/09/02 M. Palpant, C. Artigues, P. Michelon
Reconstruction de la solution Reconstruction de la solution courantecourante
5 10
1
4
6
5
2 7
15
res1
res2
3
0 5 10 15
3
2
1
1
0
0
0
23
27/09/02 M. Palpant, C. Artigues, P. Michelon
DiversificationDiversification
reconstruction complète périodique d’une nouvelle solution (multi-start)
utilisation de l’heuristique de forward-backward :
règle de priorité différente lors de la première passe (choix aléatoire de la tâche à ordonnancer)
24
27/09/02 M. Palpant, C. Artigues, P. Michelon
Réglage des paramètresRéglage des paramètres
p : valeur de départ relativement faible auto-ajustement toutes les 5 itérations
t_opt = 0.5 seconde
nb_iter = n max_iter = 10*n
25
27/09/02 M. Palpant, C. Artigues, P. Michelon
Tests d’arrêtTests d’arrêt
atteinte d’un nombre maximum d’itérations
atteinte d’une borne inférieure triviale
sous-problème de taille n résolu exactement
26
27/09/02 M. Palpant, C. Artigues, P. Michelon
Résultats expérimentaux : PPCRésultats expérimentaux : PPC
Dev_Opt*
Dev_LB
Max_dev
Nb_best
Aver_time
Max_time
J30 0,013 - 2,061 476 13,83 132
J60 0,166 10,807 3,061 420 42,09 225
J90 0,358 10,409 4,839 384 67,38 339
J120
1,459 32,716 7,692 238 238,90 607
* optimum pour J30 ou meilleure solution connue pour J60, J90 et J120
27
27/09/02 M. Palpant, C. Artigues, P. Michelon
Résultats expérimentaux : PLRésultats expérimentaux : PL
Dev_Opt*
Dev_LB
Max_dev
Nb_best
Aver_time
Max_time
J30 0,078 - 3,175 457 165,04 1485
J60 0,629 11,480 7,071 371 397,39 2238
* optimum pour J30 ou meilleure solution connue pour J60
28
27/09/02 M. Palpant, C. Artigues, P. Michelon
Résultats expérimentauxRésultats expérimentaux
Algorithme Dev_opt (J30)
Dev_LB (J60)
Dev_LB (J90)
Dev_LB (J120)
Notre méthode 0.013 10.807 10.409 32.716
Valls et al. (2000) 0.056 11.455 11.123 34.533
Hartmann (1997) 0.25 11.89 - 36.74
Bouleimen, Lecocq (1998)
0.23 11.90 - 37.68
Kolish (1996) 1.29 13.23 - 38.75
29
27/09/02 M. Palpant, C. Artigues, P. Michelon
ConclusionsConclusions
intérêts : méthode très simple et facile à implémenter résultats de qualité
inconvénients : méthode relativement coûteuse en terme
de temps d’exécution nécessité de trouver un processus de
sélection du sous-problème efficace (problème dépendant)
30
27/09/02 M. Palpant, C. Artigues, P. Michelon
PerspectivesPerspectives
amélioration des résultats : nouvelles méthodes de génération de sous-
problèmes : sélection déterministe, multi-fenêtrage…
autres procédés de diversification tuning de la méthode exacte : edge-finding,
Branch&Bound spécifiques… amélioration du temps d’exécution :
parallélisation de l’algorithme résolution du sous-problème : glouton,
modification de l’objectif…
31