Parallélisation d'un algorithme génétique pour le problème d'ordonnancement sur machine unique avec temps de réglages dépendants de la séquence

Les problèmes d'ordonnancement peuvent être rencontrés dans plusieurs situations de la vie courante. Organiser des activités quotidiennes, planifier un itinéraire de voyage sont autant d'exemples de petits problèmes d'optimisation que nous tentons de résoudre tous les jours sans nous...

Full description

Bibliographic Details
Main Author: Taleb, Mohamed Anouar
Format: Others
Published: 2008
Subjects:
Online Access:http://constellation.uqac.ca/355/1/030024319.pdf
Description
Summary:Les problèmes d'ordonnancement peuvent être rencontrés dans plusieurs situations de la vie courante. Organiser des activités quotidiennes, planifier un itinéraire de voyage sont autant d'exemples de petits problèmes d'optimisation que nous tentons de résoudre tous les jours sans nous en rendre compte. Mais quand ces problèmes prennent des proportions plus grandes, il devient difficile au cerveau humain de gérer tous ces paramètres et le recours à une solution informatique s'impose. Les problèmes d'ordonnancement en contexte industriel sont nombreux et celui qui retient particulièrement notre attention dans le cadre de ce mémoire est le problème d'ordonnancement de commandes sur machine unique avec temps de réglages dépendant de la séquence. Ce problème fait partie de la classe de problèmes NP-Difficiles. Etant donnée sa complexité, ce problème ne peut être résolu par une méthode exacte. Les métaheuristiques représentent ainsi une bonne alternative pour obtenir des solutions de bonne qualité dans des délais très courts. Les algorithmes génétiques, qui font partie des algorithmes évolutionnaires, sont utilisés dans ce travail pour résoudre ce problème d'ordonnancement. La prolifération des architectures parallèles a ouvert la voie à un nouvel éventail d'approches pour optimiser les algorithmes et plus spécialement les métaheuristiques. Ce mémoire propose une stratégie de parallélisation de l'algorithme génétique pour en étudier les bénéfices. Le premier algorithme génétique proposé est, implémenté sur le modèle d'un algorithme de la littérature. Cet algorithme ne s'est pas avéré performant pour toute la série de problèmes test et, pour cette raison, des modifications de paramètres ont été rendues nécessaires. Ces modifications ont donné naissance à une deuxième version séquentielle dont les résultats se sont avérés satisfaisants. Une troisième version a ensuite été implémentée avec une optique d'exécution parallèle selon un modèle en îlot et une topologie en anneau unidirectionnel. Un plan d'expérience a ensuite été mis au point selon plusieurs variables et vise à identifier les meilleures configurations de l'algorithme tant sur le plan de la qualité des résultats que sur le plan de l'accélération. Les résultats obtenus dans ce mémoire montrent que l'introduction de la parallélisation dans un algorithme génétique est bénéfique à ce dernier tant sur le plan qualité des résultats que sur le plan accélération. Dans un premier temps, la version sans communications n'a pas amélioré une grande partie des problèmes mais a pu atteindre des accélérations linéaires. Par la suite, l'introduction des échanges a nettement influé sur la qualité des résultats. En effet, en adoptant une stratégie de division de la taille de la population par le nombre de processeurs, l'algorithme génétique parallèle parvient à donner des résultats équivalents voire meilleurs que la version séquentielle, et ceci pour plusieurs fréquences d'échanges entre les populations.