• Aucun résultat trouvé

Les algorithmes génétiques pour le Job Shop : état de l’art

5. Algorithmes Génétiques, Fouille de Données, et Simulation pour l’Allocation de Règles

5.2. Les algorithmes génétiques pour le Job Shop : état de l’art

évolutive (cf. Section 1.7.2.3) capable de simuler la génétique et la sélection naturelle. L’AG

est composé d’une population initiale de chromosomes, connus aussi sous le terme de «

solutions encodées ». Chaque chromosome est une combinaison de plusieurs gènes. Dans le cas

des problèmes d’ordonnancement, un chromosome est une séquence (ordre de passage des tâches ou opérations), et un gène représente une opération [35], [190]. Chaque chromosome est associé avec une « fitness » ou une valeur de la fonction objectif, comme le retard, ou le temps d’exécution total. En utilisant cette valeur et se basant sur une méthode de sélection, les meilleurs chromosomes sont identifiés et choisis pour se reproduire et créer de nouveaux chromosomes. Après plusieurs générations ou après atteindre la valeur de la fonction objectif désirée, l’algorithme génétique est stoppé, le meilleur chromosome identifié, interprété, adapté, et utilisé dans le système de production.

En détails, l’algorithme génétique comprend plusieurs opérations distinctes à savoir, la création de la population initiale, l’évaluation des chromosomes, la sélection, le croisement, et la mutation. Lors de la génération de la population initiale, il est possible de générer les solutions aléatoirement [86], mais dans le cas de problèmes d’ordonnancement à plusieurs machines

(comme le Job Shop ou le Flow Shop), il est nécessaire de réaliser une tâche complémentaire qui a pour but de vérifier et de corriger les solutions afin de respecter toutes les contraintes.

135

Cette opération peut s’avérer lente et couteuse en temps de calcul, en raison de la nécessité de vérifier chaque chromosome créé lors de génération de la population initiale, le croisement, ou la mutation. Afin de minimiser l’impact de cette opération et afin d’améliorer la qualité des solutions de la population initiale, d’autres chercheurs se sont intéressés à l’intégration d’heuristiques ou de méta-heuristiques avec l’AG. Cette combinaison permet ainsi à l’AG d’éviter les optimums locaux et d’accélérer la convergence vers une solution optimale. Dans cette optique, Liu et al. [46] intègrent des règles de priorité pour la génération de la population initiale pour un problème Single Machine. Selon les auteurs, cette démarche permet d’améliorer nettement les résultats de l’algorithme génétique.

Par la suite, tous les chromosomes, créés lors de la génération de la population initiale ou bien lors du croisement ou de la mutation, sont évalués et leur survie déterminée dans la génération suivante. L’évaluation attribue une valeur à chaque solution en fonction du critère d’optimisation du problème d’ordonnancement, le makespan par exemple. L’évaluation est suivie par la sélection qui garantit la survie des meilleurs chromosomes au dépend des pires solutions de la population. Plusieurs paramètres sont pris en considération durant cette étape, comme le nombre de chromosomes à sélectionner, la probabilité de sélection, le processus de classement des chromosomes, ou le ratio croisement/mutation. Par exemple, Hasan et al. [202]

considèrent une sélection élitiste, avec un chromosome parent choisi parmi les 15% meilleurs chromosomes et le second est identifié en utilisant un tournoi (classement) entre deux chromosomes tirés aléatoirement de la population. Ces mêmes auteurs dans un autre travail de recherche [85] utilisent une sélection par tournoi pour identifier les deux parents. Tandis que Kurdi [190] propose une méthode de sélection par migration « migration selection method » qui repose sur une sélection par roulette. Cette procédure sélectionne plusieurs chromosomes issus de plusieurs populations (sous-populations) qui après croisement et mutation sont migrés vers d’autres sous-populations. Le but de cette approche est de diversifier les différentes sous- populations de l’algorithme génétique.

Une fois les chromosomes identifiés, l’AG explore l’espace de recherche en générant de nouvelles solutions à travers le croisement et la mutation. Le croisement crée les nouveaux chromosomes (fils) en se basant sur les chromosomes parents (échange partiel d’information). Dans la littérature on dénombre un grand nombre de variantes de croisement. Par exemple, Wang & Zheng [74] proposent une procédure de mutation qui consiste à diviser les tâches aléatoirement en deux groupes 𝐴1 et 𝐴2. Le premier chromosome fils est créé en recevant les tâches présentes dans le groupe 𝐴1 et en suivant l’ordre d’apparition de ces tâches du premier

chromosome parent et continue avec les tâches dans 𝐴2 suivant l’ordre des tâches du second chromosome parent. Quant au second fils, il est créé en utilisant la même procédure mais en inversant les rôles de 𝐴1 et 𝐴2. C’est-à-dire, commencer par copier les gènes dans 𝐴2 suivant l’ordre du premier parent, et de continuer avec les tâches du groupe 𝐴1 selon l’ordre du second parent. D’autres contributions se sont focalisées sur des procédures de croisement plus connues comme le croisement à un point (one-point), le croisement à deux points (two-points) [85],

[202], ou le croisement basé sur l’ordre (order-based) [190]. Ce dernier consiste à déterminer aléatoirement deux points de coupure (cut-points) et les gènes se trouvant entre ces deux points sont copiés vers les chromosomes fils. Chaque chromosome fils est ensuite complété (remplir

136

les gènes manquants à gauche et à droite) en utilisant les gènes de l’un des parents. En ce qui concerne la mutation, elle tente de diversifier la population et d’éviter la convergence prématurée de la population en faisant évoluer les chromosomes. Cette procédure consiste par exemple à changer aléatoirement les valeurs des gènes ou en échangeant les positions de deux gènes choisis aléatoirement. Par exemple, Kurdi [190] dans son algorithme génétique utilise trois procédures de mutations par échange (swap), insertion, ou inversion.

Pour la résolution du problème Job Shop, plusieurs approches sollicitant l’algorithme génétique ont été proposées dans la littérature. On cite notamment Kuczapski et al. [84] qui concentrent leurs efforts sur la génération de la population initiale afin d’améliorer les résultats de l’AG. Les auteurs incluent ainsi lors de la génération des règles de priorité composées « Composite

Dispatching Rules » basées sur une pondération des règles de priorité « weighted sum of priority rules ». Avec une population initiale composée de bonnes solutions, l’algorithme génétique a

plus de chance d’atteindre de meilleures solutions (proche de l’optimum) plus rapidement comparé aux AG reposant uniquement sur une population générée aléatoirement. Dans la même perspective, Ritwik & Deb [86] optimisent les résultats de l’algorithme génétique pour la

résolution du problème Job Shop en améliorant la représentation basée sur les opérations (operation-based encoding). Les auteurs mènent ainsi une étude comparative sur plusieurs problèmes Job Shop en changeant le nombre de tâches et/ou de machine prouvant la supériorité de la nouvelle représentation face à d’autres présentées dans la littérature.

Hasan et al. [85] proposent une hybridation de l’AG avec une technique de recherche locale appelée « Shifted Gap-Reduction » (SGR) pour la réduction du gap (temps d’inactivité des machines) entre les tâches afin d’optimiser le temps d’exécution total dans un problème Job Shop. Le but du SGR est d’améliorer les solutions créées durant la génération de la population initiale en réduisant ou en éliminant tous les gaps en faisant avancer d’autres opérations (décalage à gauche). Cette opération doit ainsi se faire tout en respectant les contraintes liées aux tâches et machines. L’AG proposé repose sur une représentation par génotype, une sélection par tournoi, un croisement à deux points, et d’une mutation « bit-flip » (changement de valeur d’un gène). Les auteurs suggèrent aussi une amélioration de leur AG pour réagir aux pannes machines (ordonnancement prédictif et ordonnancement réactif). Les expérimentations sont menées sur un problème Job Shop composé de 15 tâches et 15 machines.

Dans le même ordre d’idées, Cheng et al. [203] proposent un algorithme évolutionnaire hybride « Hybrid Evolutionary Algorithm » incluant un algorithme de recherche tabou. L’objectif du Job Shop à résoudre est de réduire le temps d’exécution total. D’après les auteurs, la combinaison AG/TS permet de produire de meilleures solutions réduisant ainsi le makespan. Cette approche est testée sur plusieurs benchmarks avec nombre de tâche variant de 6 à 30 et un nombre de machines oscillant entre 5 à 15. Kurdi [190] propose un algorithme « Hybrid

Island Model Genetic Algorithm » génétique composé de plusieurs populations (ou sous-

populations) avec comme but de retarder la convergence rapide de l’AG et d’explorer un maximum de solutions. Les chromosomes à faire évoluer sont tirés des différentes sous- populations en utilisant une sélection par tournoi. L’auteur utilise un croisement « order-

based » et trois procédures de mutations par échange, insertion, ou inversion. L’objectif du Job

137

sur 76 problèmes benchmarks. L’AG proposé est comparé avec 15 autres algorithmes issus de la littérature démontrant sa supériorité.