Optimisation de l`engagement des opérateurs dans un

Transcription

Optimisation de l`engagement des opérateurs dans un
Optimisation de l’engagement des opérateurs dans un atelier de
peinture d’une chaîne de montage automobile
Jean-Baptiste Pons1, Alain Nguyen2
1
Université de Bordeaux, F-33000 Bordeaux, France
[email protected]
2
RENAULT
Direction Informatique / pôle optimisation, 13 Avenue Paul Langevin (API : EQV NOV 3 88)
92359 LE PLESSIS ROBINSON CEDEX, France
[email protected]
Mots-clés : optimisation, atelier, automobile.
1
Problématique métier
Sur une chaîne de fabrication automobile, au sein de la ligne de peinture, les orifices creux en
dessous du véhicule sont remplis de cire par des opérateurs, à l’aide de buses. Cette opération est
destinée à la protection anti corrosion et à l’étanchéité de la caisse.
Ces parties creuses (ou trous) peuvent être remplies avec différentes qualités de cire, ce qui
nécessite l’utilisation de buses dédiées. Pour remplir un trou, l’opérateur se déplace vers la table
des buses, prend la buse idoine, remplit tous les trous associés à cette buse, puis revient à la table
déposer la buse, avant de prendre la buse suivante.
Le chef d’atelier doit affecter une liste de trous à chaque opérateur, en s’efforçant de minimiser
le nombre d’opérateurs, de lisser la charge de travail entre les différents opérateurs et de faire en
sorte que l’ensemble des tâches de chaque opérateur soit réalisé dans le temps de cycle, i.e. temps
maximal autorisé pour traiter un véhicule. Le chef d’atelier cherche également à minimiser le
temps de travail non productif, à savoir les temps de déplacement (par opposition aux temps
opératoires de remplissage des trous). Enfin de manière qualitative, le chef d’atelier privilégie des
trajectoires de déplacements d’opérateurs qui soient ergonomiques, compte tenu de la configuration
de la ligne de peinture.
Les temps de déplacement inter-trous sont liés à la distance entre les trous et à des pénalités en
temps lorsque les trous appartiennent à des zones différentes.
2
Méthode de résolution
Le problème a été résolu en utilisant une approche apparentée à de la génération de colonnes [1],
chaque colonne représentant la liste ordonnée des trous affectés à un opérateur.
Les colonnes sont générées par une énumération des combinaisons de trous affectables au même
opérateur. Pour ce faire, on parcourt un arbre en profondeur d’abord, en partant d’une colonne vide
à la racine, et où à chaque nœud, on rajoute une liste de trous à la colonne en cours de génération,
en respectant les nombreuses contraintes métier ci-dessous :

affectation au même opérateur de tous les trous utilisant la même buse (car chaque buse est
unique),
 temps maximal alloué à chaque opérateur (afin de lisser la charge de travail entre opérateurs en
limitant l’activité de l’opérateur le plus chargé)
 nombres maximaux de buses et de trous affectés à un opérateur (afin de limiter les temps de
déplacement)
 interdiction de déplacements entre certaines parties de la sous-caisse, pour des questions de
sécurité (l’opérateur ne peut pas passer totalement en dessous du véhicule).
Ces contraintes, en réduisant fortement la combinatoire, ont permis de générer exhaustivement les
meilleures colonnes satisfaisant à toutes les contraintes métier, dans un temps compatible avec
l’utilisation de l’outil.
A chaque noeud, on détermine l’ordre des trous pour la colonne en cours de génération, en
calculant le plus court chemin (sans cycle) en temps entre ces trous. Ce plus court chemin a été
calculé par un algorithme génétique (nous avons retenu cet algorithme pour prendre en compte plus
facilement le calcul complexe des temps de déplacement lors des changements de buse,
changements qui nécessitent un aller-retour de l’opérateur vers une table fixe à partir d’un véhicule
en mouvement). On abandonne la colonne en cours si le temps nécessaire à réaliser l’ensemble des
déplacements et des opérations associées à la colonne dépasse le temps maximal alloué à chaque
opérateur.
Une fois toutes les colonnes générées, un programme linéaire en nombres entiers permet de trouver
les N colonnes de coût minimal (le programme itère sur des valeurs croissantes de N jusqu’à
trouver une solution). Sur le modèle de véhicule traité (50 trous), 600 000 colonnes sont énumérées
en 3 secondes et le problème maître de sélection des colonnes de coût minimal est résolu à
l’optimum en 20 secondes avec CPLEX 12.4, le tout sur un serveur Intel 4-Core i7 – 2.93 Ghz.
Le chef d’atelier a demandé que l’outil produise plusieurs solutions diversifiées, pour explorer des
trajectoires de déplacements d’opérateurs très différenciées. Pour ce faire, le PLNE est lancé P fois
(si l’utilisateur souhaite générer P solutions) avec après chaque exécution, l’ajout d’une contrainte
pour interdire l’apparition de sous-groupes de trous présents dans les solutions précédentes. Cette
procédure a permis de produire des solutions suffisamment diversifiées pour les utilisateurs.
3
Conclusions et perspectives
Les résultats de l’outil ont véritablement aidé le chef d’atelier de l’usine pilote à construire
l’engagement de ses opérateurs suite à un changement de cadence sur la chaîne. Nous envisageons
de traiter prochainement l’atelier de mastic (autre atelier de la ligne de peinture), où il s’agira
d’appliquer du mastic sur certaines parties du véhicule. Le nombre d’opérateurs et de « trous » sera
1,5 à 2 fois plus élevé.
Références
[1] C. Joncour et al. Column Generation based Primal Heuristics. ISCO 2010 - International
Symposium on Combinatorial Optimization. Volume 36, 1 August 2010, Pages 695–702.