• Aucun résultat trouvé

Chapitre 4 : Minimisation de la durée totale de lavage

4.6 Expérimentation numériques

4.6.3 Performances des heuristiques

Dans cette thèse, notre objectif était de proposer sur le plan théorique des heuristiques à performance de garantie et sur le plan pratique des heuristiques simples qui puissent être aisément comprises par le personnel des services de stérilisation. Malgré tout, nous avons souhaité évaluer la performance empirique de nos heuristiques.

D’après les recherches bibliographiques que nous avons faites, il n’y a pas

d’algorithme ayant une garantie de performance pour le problème P | p-batch, rj,

pj=p, vj, B | Cmax, ni pour un cas plus général où les durées d’exécution ne sont

pas égales, i.e. le problème P | p-batch, rj, pj, vj, B | Cmax. La meilleur heuristique

pour ce dernier problème est celle proposée par de Damodaran et Velez-Gallego [27]. Le principe de cette heuristique est d’abord de déterminer un horizon de temps. Puis, un problème de sac-à-dos (knapsack problem en anglais) est résolu, sans prendre en compte la date de disponibilité des tâches, pour créer un batch. Cette opération est répétée jusqu’à ce que toutes les tâches sont affectées dans un batch. Une fois que tous les batch sont formés, ils sont affectés aux machines avec une heuristique de complexité polynomiale (Puisqu’on a des durée d’exécution identiques, les batch sont affectés consécutivement en ordre croissant des dates au plus tôt). Pour la résolution du sac-a-dos, Damodaran et Velez-Gallego [27] utilisent l’algorithme dynamique proposé par Martello et Toth [93]. La

complexité de cet algorithme est O(min(B*N,2N), qui fait que l’heuristique de

Damodaran et Velez-Gallego [27] est de complexité pseudo-polynomiale. Nous souhaitons évaluer la performance de nos heuristiques vis-à-vis de l’heuristique de Damodaran et Velez-Gallego [27] sur quelques petites instances. Nous notons leur heuristique Hlit.

Pour chaque instance testée, nous calculons son gap par rapport à la solution optimale avec la formule (CmaxACmaxLB )*100/CmaxLBCmaxA représente la valeur trouvée par des algorithmes (avec A = Combine job, FFM, BFM, WFM,

NFM et Hlit, respectivement) et Cmax* la solution optimale. Le nombre d’instance testée dans chaque combinaison du nombre de machines et de type d’instance est égal à 30.

De ces résultats, il apparaît que Hlit est plus performante que les algorithmes proposés dans ce chapitre. Mais ce que nous remarquons grâce au tableau 4.6 est que la performance de nos algorithmes augmente lorsque le nombre de machines croit. De plus, les 3 types qu’on a définit pour les dates de disponibilité ont aussi une influence sur la performance des algorithmes. Nous voyons qu’en général les 2ème et 3ème types d’instances sont résolus plus efficacement. Pour ce qui concerne la performance de nos heuristiques, il n’y a pas une grande différence entre elles. Mais NFM et combine job sont légèrement meilleure que les autres. Puisque la performance de nos algorithmes augmente avec le nombre de machine, il vaut la peine de tester leur performance sur un cas réel où nous avons beaucoup plus de tâches.

Tableau 4.6. Performance des algorithmes proposés sur les instances avec 10 tâches Nbr. machines Type d'inst. Hlit Combine Job FFM BFM WFM NFM 1 1 0,15 14 10 7,1 15,8 15,8 1 2 0,07 9,4 6,1 9,5 14,7 2,4 1 3 0,7 11,9 8,8 8,7 16,4 5,5 2 1 1,6 10 11,5 10,7 15,1 11,9 2 2 0,3 5,5 11,8 11,8 12,4 8,2 2 3 0,7 6,6 11,4 7,4 13,2 4,6 3 1 2,3 5,6 8,5 8,9 11,3 6,8 3 2 0,1 0,9 1,1 1,1 1,6 0,5 3 3 0 0,9 3,4 2,5 4,7 0,9 4 1 0,9 2,4 10 7,1 15,8 15,8 4 2 0 0,2 6,1 9,5 14,7 2,4 4 3 0 0,2 8,7 8,7 16,4 5,5

En ce qui concerne le cas réel, les services de stérilisation que nous avons étudiés appartiennent à des grands hôpitaux. Nous avons vu qu’il y a entre 45 et 50 ensembles de DMR qui arrivent au service de stérilisation par jour. De plus un service de stérilisation capable de traiter 40 à 50 ensembles de DMR par jour possède souvent 3 ou 4 laveurs [36]. Ainsi, nous testons nos heuristiques sur des instances contenant 50 tâches en présence de 3 et 4 machines. Pour ces instances, le modèle PLNE n’est plus capable de trouver la solution optimale en moins d’une heure. Nous utilisons donc l’algorithme de borne inférieure split job comme

référence de comparaison. Le gap présenté correspond à

LB LB

A

C C

Cmax max)*100/ max

( − où CmaxA représente la valeur trouvée par les

algorithmes (avec A = Combine job, FFM, BFM, WFM, NFM et Hlit,

respectivement) et CmaxLB représente la solution de borne inférieure obtenue par

split job. Le nombre d’instance testée dans chaque combinaison du nombre de

Tableau 4.7. Qualité des algorithmes proposés en termes de gap d’optimalité par rapport à la borne inférieure sur les instances avec 50 tâches

Nbr. machine Type d'inst, Hlit Combine Job FFM BFM WFM NFM 3 1 4,5 12,5 18 17 23 16 3 2 0,5 1 2 4,3 4,2 0,8 3 3 0,6 0,9 1,8 1,8 1,8 0,7 4 1 0,6 1,2 2,2 4 4,5 1,1 4 2 0 0 0 0,2 0,2 0 4 3 0 0,1 0,5 0,6 0,4 0,1

Quand le nombre de machine augmente, nos méthodes de résolution s’améliorent. Leur performance est meilleure surtout pour les instances de type 2 et 3. La raison de ce fait est que quand plusieurs tâches sont disponibles en même temps, il est possible de bénéficier plus de la capacité des machines.

Même si Hlit est meilleur que nos algorithmes pour les instances inspirées

du cas réel, nos algorithmes sont polynomiaux et chacun a une garantie de

performance. L’heuristique Hlit est un algorithme pseudo-polynomial à cause de

l’algorithme dynamique qu’elle utilise pour la création des batch. Notons que l’algorithme dynamique qu’ils utilisent pour résolution du problème de sac-à-dos considère des tailles entières pour les tâches alors que nous considérons des tailles fractionnelles. Nous avons donc multiplié les tailles (et la capacité des batch) de nos instances avec un coefficient pour les convertir en nombres entiers. La résolution des instances avec 50 tâches dure quelques mili-secondes avec nos

méthodes. Hlit résout ces instances en une minute en moyenne. Notons que pour la

résolution avec Hlit, nous avons considéré la capacité d’un batch égale à 600 et la

taille des tâches comme inférieure ou égale à 600 pour qu’elles soient conformes à la résolution du problème de sac-à-dos. Si nous avions choisi d’arrondir nos tailles de façon à ce que la capacité d’un batch soit 6000 et les tailles inférieures

ou égale à 6000, la durée d’exécution avec Hlit serait beaucoup plus élevé qu’une

minute par instance.

4.7. Conclusion

Dans ce chapitre, nous avons étudié le problème de minimisation du Cmax

qui correspond à la minimisation de la durée totale de lavage dans notre problème de stérilisation. Puisque l’étape de lavage est souvent un goulet d’étranglement

pour les services de stérilisation, la minimisation du Cmax est un objectif important

pour empêcher le goulet dans cette étape. Pour notre problème de stérilisation, conformément à la caractéristique des laveurs et des ensembles de DMR, nous avons considéré des machines identiques à traitement par batch et des tâches

ayant des tailles et dates de disponibilité différentes. Notons que, les tâches ayant toutes la même durée d’exécution, notre problème est un cas particulier des problèmes étudiés par [21], [23], [26], [27] et [138] et reste quand même NP-dur au sens fort.

Nous nous sommes concentrés sur des méthodes de résolution rapides. Après avoir travaillé sur deux cas particuliers et proposé des algorithmes exacts, nous avons traité le problème de départ. Premièrement, nous avons proposé un modèle PLNE et nous l’avons comparé à un autre modèle donné par Chung et al. [23]. Nous avons deuxièmement travaillé sur des méthodes de résolution rapides, ayant une complexité polynomiale. Nous avons proposé 5 algorithmes polynomiaux et démontré leurs garanties de performance. A notre connaissance dans la littérature, il n’y a pas d’algorithme de complexité polynomiale pour notre problème, ni un algorithme d’approximation.