Les Problèmes d`Ordonnancement à Machines Parallèles de

publicité
Les Problèmes d’Ordonnancement à Machines Parallèles
de Tâches Dépendantes : une Evaluation de Six Listes et
d’un Algorithme Génétique.
Hocine Boumédiène-Merouane et Ali Derbala
Département de mathématiques, Faculté des sciences
Université de Blida
BP 270, Route de Soumaa, Blida, ALGERIA.
Tel et Fax : (+) 213-25-43-36-42
Email: [email protected]
Résumé. Nous considérons les problèmes difficiles d’ordonnancement de
tâches à contraintes de précédence sur des machines parallèles identiques afin
de minimiser la longueur de l’ordonnancement. Ils sont tellement difficiles qu’il
est important pour un décideur d’être capable de déterminer des bornes de
calculs et de leur associer des solutions réalisables. Six listes de priorités ont été
définies, implémentées et comparées. Leur comportement est reproduit par une
représentation graphique. Elles sont basées sur le plus long chemin, le nombre
de successeurs immédiats d’une tâche, le temps d’exécution le plus court
d’abord, l’ordre aléatoire et une variante du plus long chemin. Beaucoup
d’expériences de calculs ont été développés pour mesurer la qualité et
l’efficacité de chaque liste. Un algorithme génétique noté AG basé sur deux
types de croisement est implémenté et il est comparé avec ces listes. Après de
nombreuses expériences numériques et avec des tests, les meilleurs résultats
sont obtenus avec des variantes utilisant les listes comme population initiale de
l’algorithme génétique. De même un second graphe comparatif avec les listes est
obtenu. Les temps d’exécution des six listes et de quatre variantes d’AG sont
donnés sous forme d’un tableau récapitulatif. Les algorithmes génétiques ne
sont pas l’ultime réponse aux problèmes difficiles à résoudre.
1
Introduction
Un domaine bien connu de la théorie de l’ordonnancement déterministe concerne
l’attribution de tâches à un système multiprocesseurs afin de minimiser la longueur de
l’ordonnancement. Ce critère est important pour les problèmes d’ordonnancement à
machines parallèle où l’ordonnanceur assurera l’équilibre de la charge des machines,
qui est la somme des temps d’exécution des tâches à exécuter sur la dite machine.
Les machines sont supposées identiques, le temps requis pour exécuter une tâche
donnée ne dépend pas de la machine utilisée. A chaque tâche est associé un temps
d’exécution, connu d’avance. Des relations de précédence existent pour un ensemble
de tâches. Nous considérons les ordonnancements non- préemptives où une tâche une
fois débute son exécution, elle ne peut être interrompue. Les problèmes
d’ordonnancement à contraintes de précédence sur les machines parallèles notés
PprecCmax sont souvent difficiles et des bornes inférieures peuvent être utilisées pour
évaluer des heuristiques. Ces approches sont pratiques pour les applications
d’ingénieries tels le calcul parallèle, la synthèse d’un système digital, la compilation
de haute performance qui a un besoin urgent en estimation de ressources de calculs
( Fernandez et Bussel [5], Eichenberger et Meleis[4]).
Pour beaucoup de problèmes difficiles dans une grande variété de domaines, les
métaheuristiques ont reçu un intérêt considérable et sont avérées efficaces pour les
problèmes difficiles de l’optimisation combinatoire apparaissant dans des domaines
variés, industriels, économique, logistique, ingénierie, commerce, domaines
scientifiques etc. Des exemples de métaheuristiques sont les algorithmes
évolutionnistes de type génétique. Schurman et Woeginger [12] ont évoqué ce qu’ils
appellent les questions ouvertes les plus vexantes pour les problèmes
d’ordonnancement déterministes NP-difficiles, au sens où ils restent ouverts depuis un
fort long temps. Nous avons voulu répondre à ceux des machines parallèles de tâches
dépendantes, donnée par un graphe de précédence quelconque, respectivement
PprecCmax et P  prec, pj = 1  Cmax. Les problèmes sont respectivement de fournir
un algorithme approximatif en temps polynomial et un algorithme polynomial avec un
facteur de garantie du plus mauvais cas de 2 - δ, δ > 0 ( en fait, même un algorithme
de complexité temporelle exponentielle en "m", le nombre de machines, peut être
intéressant). Nous rappelons qu'un algorithme qui donne des solutions presque
optimales est appelé algorithme d’approximation. S’il le fait en un temps polynomial,
il est appelé algorithme d’approximation en temps polynomial.
Un algorithme d’approximation qui fournit toujours une solution presque optimale
avec un coût au plus à un facteur approché ρ de la solution optimale ( où ρ > 1 est un
nombre fixé) est appelé un ρ-algorithme d’approximation, et la valeur ρ est appelé le
facteur de garantie du plus mauvais cas.
Dans un article récent, Aytug et al. [1] fournissent un état de l’art sur l’utilisation des
algorithmes génétiques pour résoudre les problèmes d’ordonnancement. Les articles
dans cet état de l’art sont référencées par type de problème qu’ils résolvent. Pour le
problème PCmax, Chiu et al.[2] ont été incapables de comparer un algorithme
génétique avec un autre algorithme. Au lieu d'affronter ces problèmes "ouverts"
frontalement, nous avons préféré et nous étions motivé, pour le problème à contraintes
de précédence P/prec/ Cmax, à étudier et comparer six algorithmes de types listes avec
un AG. L’organisation de l’article est la suivante. On définit les six listes de priorités
dans le paragraphe suivant et l’algorithme génétique dans le troisième. Ils ont été
testés sur beaucoup de problèmes générés aléatoirement. Le paragraphe 4 présente les
essaies de calcul où ces heuristiques et méta heuristique sont évaluées.
Une comparaison au paragraphe5, fait que les règles d’ordonnancement de type listes
sont meilleures que l’algorithme génétique. Nous concluons brièvement l’article.
2 Les Algorithmes d’Ordonnancement De Type Liste
Dans le cas des problèmes NP-difficiles, les algorithmes les plus utilisés sont basés sur
les listes. Ils déterminent pour un ordre de tâches, qui peut être donné par une liste, un
ordonnancement correspondant. Ils considèrent les tâches une par une et prennent la
décision d’ordonnancer sur la base d’un ordonnancement partiel de tâches
ordonnancées auparavant. Les décisions pour les premières tâches ordonnancées ne
seront pas changées. Le résultat de l’algorithme d’ordonnancement de type liste est
celui établi par cette liste. En général il n’est pas optimal. De telles approches sont
aussi appelées règles de priorité statique. On utilise la règle d’affectation sans délai : si
une machine se libère, on lui affecte la tâche libre la plus prioritaire, même s’il y a des
tâches plus prioritaires non encore libre. Les règles ou listes de priorités sont définies
par : PLC: définissons récursivement PLC(i), en fonction du plus long chemin à i,
comme suit. Pour une tâche sans successeurs , PLC(i) = Pi .
Sinon PLC(i) est
{ PLC(j) + Pi }
Max
{ j, j successeur de i }
SPT: plus court temps d’exécution Pi le premier.
SUCC: En fonction du nombre de successeurs immédiats .
RAND: un ordre aléatoire.
SOMPLC: VPLC(i), En fonction d’une variante de PLC,
 p i si i n' a pas de successeur

∑ {PLC(j) + Pi}
VPLC(i)= 
 j, j successeur de i
Max{,} : en fonction de l’expression
∑ {PLC(j) + Pi}
max { PLC(i),
{
j, j successeur de i
}
Nombre de machines
}
On a testé, évalué et comparé les six listes. Les résultats obtenus pour des ensembles
d’instances de tailles différentes sont les mêmes, on a généré 100 instances pour
chaque densité. On donne le pourcentage de fois qu’une liste donne le meilleur résultat
des six listes, ceci en fonction de la densité moyenne du graphe de précédence. Les
résultats sont reproduits dans le graphe suivant. Si les temps d’exécution des tâches
sont distribués uniformément, graphiquement, les listes PLC, SOM et MAX sont les
meilleures. Pour des densités faibles, les performances des listes PLC, SOM et MAX
sont proches.
Fig. 1. Performance des listes, durées d’exécution uniformément distribuées
3 Description et Implémentation d’un AG
Dans un problème particulier PprecCmax, il faut prendre en compte les spécificités
des contraintes de précédence entre les tâches. Pour les introductions et des détails aux
AG, voir Michalewicz [11].
3.1 Codage
On a choisit de coder indirectement la liste de priorité qui donne suivant la règle
d’affectation l’ordonnancement. La permutation de tâches représentant la liste est le
chromosome représentant l’individu ou la solution. Une population sera donc un
ensemble de permutations de « n » tâches.
3.2 La population initiale
On a étudié deux approches pour construire la population initiale:
- En générant aléatoirement des permutations réalisables, respectant la relation de
précédence.
- En prenant les permutations construites en utilisant les six règles vues auparavant,
PLC, SPT, SUCC, RAND, SOM, Max{.,.}.
3.3 Fonction d’évaluation ou finesse
La finesse croit inversement avec la fonction objectif quand le problème est de
minimisation. La fonction finesse d’un individu xi, f(xi) est 1/C(xi) où C(xi) la longueur
de l’ordonnancement obtenu. La probabilité de sélection d’un individu xi, prob(xi) est
proportionnelle à sa finesse f(xi), et tel que ∑ f(xi) = 1. Les probabilités de sélection
sont proches. Les valeurs objectifs le sont aussi, ce qui est souvent le cas dans le
problème PprecCmax. On a utilisé une deuxième fonction, qui calcule une mesure de
finesse en prenant compte le dispersement des valeurs objectifs de toute la population.
max − C( x i ) + ε 1
où C(xi) la longueur de l’ordonnancement obtenu par xi,
f (x i ) =
+
max − min + ε
T
max = max{ C(x), x individu } et min = min{ C(x), x individu },
ε, évite le débordement de calcul. Il est choisit de l’ordre de 10-5,
T : la taille de la population, « 1/T » représente un minimum de chance d’un individu.
Les probabilités de sélection sont dispersées tout en reflétant les finesses des individus.
3.4 Sélection
A chaque génération ou itération, on cherche à choisir les individus à reproduire.
La probabilité de sélectionner un individu est proportionnelle à sa finesse. La méthode
de sélection utilisée est basée sur le principe de la roulette biaisée ( Goldberg [7] ).
Un individu fort peut être sélectionné plusieurs fois, et un individu faible peut ne pas
l’être.
3.5 Croisement
On a testé les deux opérateurs de croisement : Le croisement simple à un point et le
croisement uniforme. Ils préservent la faisabilité des parents. Si les deux parents sont
réalisables alors leurs fils le seront aussi.
3.6 Mutation
On a utilisé la mutation qui pour le chromosome d’un individu, transpose un certain
nombre de fois, deux tâches consécutives choisies aléatoirement. L’opérateur de
croisement, ainsi que le mode de sélection peuvent produire plusieurs individus
identiques appelés « clones ». Un algorithme anti-clones a été utilisé pour regénèrer
une population.
3.7 Critère d’arrêt
On a choisi d’arrêter le déroulement de l’algorithme si on atteint un certain nombre de
générations. Ce nombre ne doit pas être très grand, sinon l’AG génère une grande
partie de l’espace des solutions réalisables et diminue l’efficacité de l’algorithme.
Aussi, ce nombre ne doit pas être trop petit, sinon on ne donne pas suffisamment de
temps à l’algorithme pour améliorer la population. L’idéal, est d’avoir une fonction
qui calcule ou estime le nombre de solutions réalisables dans un temps raisonnable.
On choisit d’arrêter si on explore un certain pourcentage des solutions réalisables.
La population étant de six individus. On a fixé le nombre d’itération à 30, donc 180
solutions réalisables. Ce choix est efficace car avec 100 tâches et une densité forte,
nombre de solutions réalisables faible, le nombre de solutions réalisables est de l’ordre
de 103, donc 180 est inférieur à 20% de 10 3. On a étudié l’influence des différents
paramètres de l’algorithme génétique sur la taille de la population, le nombre de
générations, le type de croisement utilisé, la mutation et la structure de l’algorithme.
On a utilisé de différentes variantes de l’algorithme génétique : Croisement simple,
sans mutation ; Croisement uniforme sans mutation ; Pas de croisement, mutation;
Croisement et mutation.
4 Expérimentations
On a fait une analyse expérimentale de six listes de priorités, et de quelques variantes
d’un algorithme génétique, utilisés pour résoudre le problème PprecCmax. Pour ce
problème, deux paramètres sont considérés, les durées d’exécution constantes ou
distribuées uniformément sur un intervalle ]0, b], avec « b » constante positive et la
densité du graphe de précédence.
4.1 Générateur de jeux d’essai
Nous avons réalisé un outil permettant de générer des instances du problème
PprecCmax. Il est paramétrique et comporte des paramètres qu’on peut régler pour
avoir des instances avec des caractéristiques voulues. On génère des durées
d’exécution constantes et unitaires pour P prec, pj = 1Cmax ou variables distribuées
uniformément entre 0 et une constante b, entières ou réelles pour le problème
P/prec, pj∈]0,b] /Cmax.
La densité d’un graphe arbitraire est une valeur réel de [ 0, 1]. Pour les graphes sans
circuits, la densité est entre 0 et 0.5 ( si un arc xy ∈U alors l’arc yx ∉U ). Si on veut
garder la densité entre 0 et 1, on la mesure par d =2 U/ (n(n-1)). On a généré des
graphes sans circuits avec une densité fixée d. Elle est de complexité (n6), ce qui
n’est pas pratique. De plus la densité seule, ne donne pas beaucoup d’informations sur
le graphe. On utilisera une autre façon pour générer des graphes sans circuits.
4.2 Critères de performance
Avec les méthodes approchées deux critères sont à considérer : le temps pour calculer
une solution approchée et l’éloignement de cette solution de l’optimum. L’idéal serait de
pouvoir comparer les résultats avec la longueur d’un ordonnancement optimal, ce qui est
bien sûr coûteux en temps de calcul. On a comparé entre les valeurs objectifs des
solutions données par les méthodes et une borne inférieure de la valeur optimale.
On prend comme mesure de performance le rapport d’approximation expérimental,
A (I )
C A ( I ) C max
défini par : ρexp(I) = max
où : I, le jeu d’essai.
≥
LB ( I )
OPT ( I )
CmaxA(I), la valeur de la solution obtenue par la méthode A. OPT(I), la valeur optimale.
LB(I), une borne inférieure de la valeur optimale. On a utilisé LB = max (LB1, LB2),
∑ pi
avec :
LB1 =
PLC (i ) et
max
i sans prédécesseur
LB2 =
i
m
.
Un nombre important d’expérimentations a été réalisé, sur les six listes et sur différentes
variantes de l’algorithme génétique. On commence par comparer les listes entre elles,
puis on essaye d’améliorer les solutions données par les listes en utilisant les AG.
Le nombre de tâches doit être suffisamment grand. Notre choix est de 100 tâches pour 3
machines.
4.3 Résultats des listes
PLC favorise les tâches à la tête d’un chemin critique, puisque les tâches d’un chemin
critique augmente probablement la longueur de l’ordonnancement si elles sont
retardées. Les listes MAX et SOM cherchent un compromis entre d’une part, la
priorité des tâches d’un chemin critique et d’autre part, la priorité des tâches
permettant l’exploitation du parallélisme. MAX est meilleure pour des graphes de
densité inférieure à 45% et SOM est meilleure pour des densités fortes, supérieure à
45%. Une liste combinant MAX et SOM, est définie par :
 Max si d = 0.45
MS = 
. MS est meilleure que MAX et SOM.
 SOM si d = 0.45
Pour un échantillon de 100 jeux d’essai, on mesure le rapport d’approximation
∑ ρexp (I )
expérimental en moyenne:
figure2.
ρmoy = I
100
. On a obtenu le graphe de la
Fig. 2. Rapport d'approximation moyen. pi∈U]0,1].
Les résultats des listes sont proches. Cela découle du fait qu’une liste quelconque
est déjà 2-approximative. Graphiquement PLC et MAX sont les meilleures en
moyennes. L’éloignement de la borne par rapport à l’optimum est fonction de la
densité.
4.4 Résultats des AG
Le nombre de variantes possible de l’AG est grand à cause du nombre de
paramètres réglables. Nous remarquons qu’elles donnent des performances proches
les unes des autres, en ajustant convenablement les paramètres.
Ainsi on peut avoir la variante ‘croisement simple et une mutation à pm = 0.2,
proche de la variante « croisement uniforme et une mutation à pm = 0.1 ». On note
une
variante
de
l’algorithme
génétique
par
0 : pas de croisement
0 : population initiale aléatoire

AG(a,b,c) où : a = 
, b = 1 : croisement à un po int
1 : population initiale des listes
2 : croiement uniforme

0 : pas de mutation
, c=
 p m : mutation avec une probabilité p m
AG(1, 2, 0.2) désigne la variante avec une population initiale générée par les listes
définies, et un croisement uniforme et une mutation de probabilité 0,2. Pour les
instances avec des pj constants, les AG n’apportent pas des améliorations, ces
instances sont en général des cas faciles, PLC les résout polynômialement. Pour des
instances avec un graphe de précédence dense de l’ordre de 70% et des pj∈U]0,1],
que ce soit avec une population initiale aléatoire ou en utilisant les listes, les AG
améliorent les résultats des listes, même avec un grand nombre de tâches supérieur
à 400. Pour des instances de 100 tâches et 3 machines, on observe environ 25%
d’améliorations des résultats des listes. Les différentes variantes étudiées
améliorent, après un nombre d’itération considérable, la population initiale choisie
aléatoirement mais lentement. La population obtenue est de coûts plus faibles que
ceux des listes. Il est préférable de prendre les six listes comme population initiale
et essayer de l’améliorer par l’algorithme génétique. Pour toutes les listes, le temps
de calcul est polynomial. Il n’est pas le cas avec les AG, pour des jeux d’essais avec
m = 3 et une densité de graphe de précédence de 50% , on a obtenu le tableau
suivant en secondes. Pour insérer un tableau dans les marges, notons par
α1 = AG(0,1,0) , α2 = AG(0,0,1) , α3 = AG(0,1,1) et α4 = AG(0,2,0)
Tableau 1. Temps d’exécution des listes et de l’AG
PLC SPT
SUC RAND
C
SOM MAX α1
α2
α3
α4
100
<1
<1
<1
<1
<1
<1
0.44
0.82
0.77
0.44
200
<1
<1
0.05
<1
<1
0.17
1.76
3.07
3.07
1.92
300
0.06
0.05
<1
0.06
0.05
0.55
6.31
10.71
10.87
5.98
400
0.05
0.11
0.06
0.06
0.11
1.3
15.54
27.46
27.57
15.82
500
0.16
0.11
0.17
0.11
0.16
2.64
29.99
55.69
54.49
28.4
800
0.5
0.55
0.49
0.5
0.55
11.4
97.55
175.04 198.82 105.96
Nomb
De
Tâches
4.5 Comparaison des listes et l’AG conçu
Les deux meilleurs listes PLC et Max {.} sont comparus à l’algorithme génétique à
l’AG AG(1,1,1). Les listes donnent des résultats en un temps très réduit.
Elles sont efficaces. Si on dispose d’un horizon de temps, l’AG peut être utilisé et
améliore les résultats des listes qui sont utilisées comme une population initiale. Son
comportement est représenté par le graphe de la figure 3. Les cas de graphes de
précédence de faible, moyenne et forte densité sont représentés. On donne le
pourcentage de fois où l’AG améliore les résultats des listes. Pour les instances de
faible densité, les graphes de précédences sont en général des arbres. PLC donne un
résultat optimal ou proche de l’optimum. L’AG obtient rapidement l’optimum.
Pourcentage des améliorations
Pour ceux de forte densité, l’espace des solutions réalisable est réduit. L’AG explore
rapidement la totalité ou presque des solutions. Pour les instances de moyenne densité,
les graphes sont de différentes formes et le nombre de solutions réalisables est
suffisamment grand pour permettre à l’AG d’améliorer les résultats des listes à travers
les générations.
90%
densité faible 10%
80%
densité moyenne 40%
densité élevé 70%
70%
60%
50%
40%
30%
20%
10% 10gen
30gen
190gen
50gen
210gen
70gen
230gen
90gen
110gen
130gen
150gen
170gen
nombre de générations
Fig. 3. Comparaison graphique des listes et de l’AG
5 Conclusion et perspectives
Les algorithmes de type listes sont des algorithmes gloutons qui prennent une décision
en se basant sur l’information local. Ne pas décider optimalement à une étape,
affectera sûrement les décisions ultérieures et nous éloignera d’avantages de la
solution optimale. L’utilisation d’informations sur les tâches successeurs d’une tâche
(PLC, SOM, MAX) peut améliorer les performances d’un algorithme de liste. Ces
informations, pour des raisons du temps de calcul, sont limitées. Une autre solution
consiste à concevoir des algorithmes de liste dynamique, qui prennent en considération
les informations nouvelles dues aux affectations. Nous avons essayer d’améliorer les
résultats des listes par des AG où on a plusieurs degrés de libertés. Plusieurs
combinaisons de paramètres, d’opérateurs et donc plusieurs variantes ont été
considéré. Les résultats de calculs montrent qu’aucune variante de l’AG n’est
forcément meilleure que les autres. Il serait intéressant de comparer ces résultats avec
d’autres méthodes d’amélioration par voisinage qui réduisent la population à un seul
individu comme par le recuit simulé en utilisant les mêmes codages et les mêmes
techniques de construction de solutions que pour les AG où la mutation deviendrait la
fonction de voisinage. PLC ne s’éloigne pas beaucoup de l’optimum et plusieurs règles
d’affectations donnent des ordonnancements proches de l’optimum
Références
1. Aytug, H., M. Khouja, and F.E. Vergara. Use of genetic algorithms to solve production and
operations management problems : a review. Int. J. Prod. Res, 41, N°17 (2003) 3955-4002.
2. Chiu, N., S. Fang, and Y. Lee. Sequencing parallel machining operations by genetic
algorithms. Computers and Industrial Engineering, 36 (1999) 259-280.
3. Demange, M. and V. Paschos. Autour de nouvelles notions pour l’analyse des algorithmes
d’approximation :formalisme unifié et classes d’approximation. RAIRO Operations Research
( 2002) 237-277.
4. Eichenberger, A., and Meleis., W. Balance scheduling: Weighting branch tradeoffs in
superblocks.
In proceeding of the 32th Symposium on Microarchitecture (1999) 272-283.
5. Fernandez, E., and B. Bussel. Bounds on the number of processors and time for
multiprocessor optimal schedules. IEEE Trans. On Computers (1973) 745-751.
6. Fleury, G., and M. Gourgand. Genetic algorithms applied to workshop problems. Int. J.
Computer Integrated Manufacturing, 11 (1998), 183-192.
7. Goldberg, D.E. Genetic algorithms in Search, optimization & Machine Learning. AddisonWesley Publishing Company, Inc(1989).
8. Graham, R.L., E.L. Lawler, J.K. Lenstra, and A.H.G. Rinnoy Kan. Optimal And
Approximation In Deterministic Sequencing And Scheduling: A survey. Annals discrete
mathematics 5 (1979) 287-326.
9. Hurink, J., and S. Knust. List scheduling in parallel machine environment with precedence
constraints and setup times. Operations research letters 29 (2001) 231-239.
10. Lopez, P., and F. Roubellat, Ordonnancement de la production ,chapitre2. Hermes Science
Europe Ltd .(2001)
11. Michalewicz, Z.: Genetic Algorithms + Data Structures = Evolution Programs. 3rd edn.
Springer-Verlag, Berlin Heidelberg New York (1996)
12. Schuurman, P., and G.J. Woeginger, 1999. Polynomial time approximation algorithms for
machine scheduling: ten open problems. J. sched. 2 (1999) 203-213.
Téléchargement