• Aucun résultat trouvé

Chapitre 8 : Approches semi-online et online et leurs impacts sur les durées de pré

8.2. Heuristiques semi-online et online

8.2.2. Intégration de TIH correctif dans un modèle construit en ARENA

Notre but dans cette partie est non seulement de proposer des algorithmes semi-online et online, mais aussi de voir leur impact sur le système de stérilisation entier. Dans ce but, nous avons préféré intégrer TIH correctif dans un modèle de simulation au lieu de le coder dans un langage comme cela a été fait pour les algorithmes proposés dans la partie 2. Nous présentons ici un modèle construit en ARENA comprenant seulement l’étape de lavage, modèle qui sera complété plus tard.

Nous avons utilisé la version 11.0 d’ARENA pour construire notre modèle qui représente, pour l’instant, uniquement l’étape de lavage. Il permet de visualiser l’arrivée des tâches au service de stérilisation ainsi que leur exécution sur les machines.

Nous nous sommes servis du module VBA pour lire des données et exécuter TIH correctif. Le modèle est composé de 3 grands blocs appelés :

horloge, arrivée des tâches et machines. La figure 8.1 représente le modèle.

Expliquons les blocs du modèle un par un.

Bloc horloge : Rappelons que TIH correctif s’exécute avec 2 types de données :

les données prévues et les données réelles. Les données prévues représentent l’arrivée prévue des tâches alors que les données réelles sont pour les arrivées réelles. Ces données sont gardées dans les fichiers « .txt ». Le bloc horloge est chargé de la lecture des données prévues et il fonctionne avec des entités fictives qui correspondent aux arrivées prévues des entités réelles. Les entités fictives ne correspondent à aucune tâche, alors que les entités réelles représenteront les tâches.

Le module VBA1 lit les données prévues. Quand une tâche est censée entrer au service de stérilisation en fonction de sa date d’arrivée prévue, une entité fictive passe par VBA2 et le module VBA2 vérifie si la tâche correspondant à cette entité se trouve dans le stock de lavage. Si ce n’est pas le cas, c’est à dire, si une tâche ne se trouve pas dans le stock de lavage alors qu’il est l’heure de son entrée prévue au stock de lavage, cela signifie que la tâche a du retard.

Considérons le cas où la dernière tâche d’un problème contenant N tâches est retard. Puisqu’il n’y a plus de tâche suivant cette dernière, la mise à jour de sa date d’arrivée prévue peut provoquer une confusion. Afin de l’éviter, nous créons une dernière tâche, tâche N+1, dont la date d’arrivée prévue est égale à l’heure de fermeture du service de stérilisation. De cette façon, pour chaque tâche en retard, l’heure limite pour entrer dans le service est l’heure de fermeture du service. Nous supposons que toutes les tâches d’une instance arrivent au service de stérilisation soit avec un retard ou une avance, soit à l’heure et il n’y a jamais de cas où une tâche n’arrive pas au service de stérilisation.

En résumé, le bloc horloge déclenche l’étape 4 de TIH correctif à chaque passage d’une entité fictive par le bloc VBA2. Si nous avons un problème avec N tâches, le nombre maximal de fois que l’étape 4 est exécutée pour une tâche j (j2N) est égale à N+1-j. Ceci correspond au cas où, après la première mise à jour

de la date d’arrivée prévisionnelle pour la tâche j, elle n’arrive toujours pas dans le service avec la tâche j+1, ni avec la tâche j+2, …, et arrive avec la tâche N+1 (fermeture du service). Dans le cas extrême, toutes les tâches sont en retard un nombre maximal de fois, et l’étape 4 de TIH correctif est exécutée N(N+1)/2 fois.

Bloc arrivée des tâches : Ce bloc représente l’entrée réelle des tâches dans le

stock de lavage. Le module VBA3 est responsable de la lecture des données réelles. Quand une tâche arrive au service de stérilisation (i.e. sa date d’arrivée réelle est atteinte), une entité réelle, créé par le module « create », entre dans le stock de lavage. Lors de son entrée dans le stock de lavage, l’entité lui correspondant est dupliquée. L’entité copiée garde les mêmes données que celle qui est dupliquée (i.e. même valeur pour la taille, le début de pré désinfection et la date d’arrivée à l’étape de lavage). Une première copie de l’entité dupliquée passe par VBA4. Le module VBA4 détermine si la tâche est en avance permettant ainsi d’exécuter l’étape 3 de TIH correctif. De cette façon, nous mettons à jour la date d’arrivée de la tâche et re-déterminons les nouveaux instants de lancement des cycles de lavage. Quant à la deuxième copie de l’entité dupliquée, elle passe par le module VBA5 dès qu’elle est pré désinfectée au moins 15 minutes (i.e. la durée minimale pour la pré désinfection). Puisque le lancement d’un cycle de lavage demande au moins 15 minutes de pré désinfection pour toutes les tâches qu’il contient, le passage d’une entité par VBA5 nous permet de voir s’il est l’heure de

lancer un cycle de lavage. Ainsi, en fonction de « débutb » déterminé par TIH

correctif, si l’heure actuelle est égale à un débutb, nous pouvons maintenant lancer un cycle de lavage. Pour celui-ci, nous exécutons la procédure PFF pour déterminer quelles tâches mettre dans le batch pour lequel un cycle de lavage va être lancé. Ainsi, l’étape 5 de TIH correctif est déclenchée. Une fois que toutes les tâches d’un batch sont déterminées, elles sont transférées à la zone de lavage qui se trouve dans le bloc machines.

Puisqu’une tâche ne peut arriver en avance qu’une seule fois (en avance par rapport à sa première date d’arrivée prévisionnelle ou bien après la mise à jour de sa date d’arrivée prévisionnelle due à un retard), le nombre de fois que l’étape 3 (également l’étape 5) est déclenchée au maximum une fois par tâche.

Bloc machines : Ce bloc représente les laveurs. L’entrée des tâches dans ce bloc

se fait via un module de stationnement appelé « zone de lavage ». Quand toutes les tâches d’un batch sont présentes dans cette zone, un batch est formé et envoyé aux laveurs. Le batch est affecté au premier laveur disponible. Une fois que l’exécution d’un batch est terminée, il passe par un module VBA (VBA 6, 7, 8 ou 9). Le but de ces modules VBA est de libérer les machines auxquelles ils sont associées et de déclencher la fonction PFF s’il est l’heure de créer un batch. Donc, l’étape 5 de TIH correctif est aussi appelée par ces modules VBA. Si, dans un problème avec N tâches, chaque batch ne contient qu’une seule tâche, le nombre de fois que l’étape 5 est appelée N.

Le modèle que nous venons de décrire représente seulement l’étape de

lavage. Dans la su3te, nous allons utiliser des aspects stochastiques pour les étapes

suivant l’étape de lavage afin de tester l’impact de notre algorithme sur le processus global de stérilisation. Ainsi, le modèle de simulation présenté ici sera complété avec les autres étapes du processus de stérilisation dans la section suivante.