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
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
PprecCmax 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
PprecCmax 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 approcρ 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
{}
} Pi PLC(j) {
Max
i de successeur j ,j
+
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,
VPLC(i)=
+
i de successeur j j,
Pi} {PLC(j)
successeur de pas an' i si
i
p
Max{,} : en fonction de l’expression
max { PLC(i),
{}
machines de Nombre
Pi} {PLC(j)
i de successeur j j,
+
}
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 PprecCmax, 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 = 1.f(xi) Les probabilités de sélection
sont proches. Les valeurs objectifs le sont aussi, ce qui est souvent le cas dans le
problème PprecCmax. 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.
T
1
minmax
)x(Cmax
)x(f i
i+
ε+
ε+
= où C(xi) la longueur de l’ordonnancement obtenu par xi,
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.
1 / 11 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !