• Aucun résultat trouvé

Résolution du problème d’ordonnancement de projet avec chevauchement

CHAPITRE 3 MÉTHODOLOGIE DE RECHERCHE

3.4 Résolution du problème d’ordonnancement de projet avec chevauchement

3.4.1 Méthode de résolution exacte

Les trois modèles en programmation linéaire en nombres entiers décrivant les trois versions du problème d’ordonnancement de projet avec chevauchement d’activités ont été implantés dans des logiciels d’optimisation et résolu avec le solveur CPLEX. Plus particulièrement, les deux modèles 1a et 1b du Chapitre 4 ont été implanté dans AMPL v1.6.j et utilisent le solveur CPLEX 12.2. Le modèle 2 du Chapitre 6 a été implanté dans ILOG-CPLEX 12.5 qui utilise le solveur CPLEX 12.5.

Le Chapitre 4 présente une application du problème de compromis durée-coût à un exemple illustratif de 30 activités. Cette application montre que la sévérité des contraintes de ressources et la prise en compte des opportunités de chevauchement ont toutes deux un impact majeur sur les performances du projet en termes de coût et de durée, mais également aussi sur le temps de calcul. Nous obtenons ainsi des temps de calcul supérieurs à 1200 secondes lorsque les contraintes de ressources et le chevauchement sont considérés.

Ces résultats préliminaires confirment nos anticipations que ces deux éléments augmentent la difficulté à résoudre le problème de façon drastique et qu’il faut s’attendre comme pour le RCPSP standard à devoir faire appel à des méthodes de résolution approchée pour des problèmes

de grande taille. Ce constat préliminaire est confirmé dans le Chapitre 6 en résolvant le problème sur un grand nombre d’instances et en appliquant une méthode de résolution exacte plus sophistiquée. Cette méthode de résolution fait appel à la programmation par contraintes décrite dans la section suivante.

3.4.2 Prétraitement à l’aide de la Programmation Par Contraintes

Les modèles en PLNE du Chapitre 4 et du Chapitre 6 utilisent des fenêtres de temps {EFi, ..., LFi} pour chaque activité i basée sur le CPM pour limiter l’espace de solutions, comme

dans la formulation proposée par Pritsker et al. (1969) pour le RCPSP standard. EFi et LFi sont

respectivement la date de fin au plus tôt et au plus tard de l’activité i. De nombreux travaux pour le RCPSP standard ont cependant proposé d’utiliser la programmation par contraintes (PPC) comme méthode de prétraitement pour dériver des fenêtres de temps plus restreintes, pour détecter l’infaisabilité du problème pour une borne supérieure donnée, et pour renforcer le modèle de PLNE (Artigues et al., 2013; Brucker & Knust, 2000; Brucker & Knust, 2012; Demassey, Artigues, & Michelon, 2005; Koné et al., 2011).

Le principe de la PPC appliqué comme prétraitement peut se résumer comme suit. Le calcul des fenêtres de temps à l’aide de la méthode CPM ne permet pas de prendre en compte les contraintes de ressources dans le RCPSP standard. Pour illustrer comment les contraintes de ressources peuvent être impliquées, considérons deux activités indépendantes (i, j) tels que la somme des ressources requises pour les exécuter dépasse les capacités disponibles. De façon évidente, ces deux activités ne peuvent être exécutées en parallèle. Considérons en plus que les fenêtres de temps calculé avec le CPM sont telles que LFi - ESj < di + dj, où LFi et ESj sont respectivement la

date de fin au plus tard de l’activité i et la date de début au plus tôt de l’activité j. Nous pouvons déduire que l’activité i ne peut être exécutée après l’activité j (car la durée totale d’exécution di + dj ne peut avoir lieu dans l’intervalle {ESj, ..., LFi}). Ceci permet de déduire qu’il y a une

relation de précédence virtuelle entre les activités i et j. En appliquant de nouveau les passes avant et arrière du CPM avec cette relation additionnelle, les fenêtres de temps peuvent être rétrécis, et de nouvelles relations peuvent être déduites et le processus répété.

Nous avons développé dans le Chapitre 6 un algorithme de PPC pour le problème d’ordonnancement avec chevauchement d’activités. Appliqué au bassin d’instances de projet de 30 activités, nous montrons que l’utilisation de la PPC seule permet de détecter l’infaisabilité de

trouver une durée de projet inférieur à la durée de projet optimal sans chevauchement dans plus de 10% des cas. Utilisé en complément du PLNE, il permet de trouver la solution (calendrier et décisions de chevauchement) optimale en termes de durée de projet dans plus de 97% des instances et de trouver des bornes inférieures de bonne qualité, mais aucune solution faisable pour les instances restantes.

Le temps de calcul moyen est cependant de près de plus de 7000 secondes, avec une distribution des temps de calcul ayant une asymétrie très marquée. Près de 80% des instances sont résolues en moins de 100 secondes, mais près de 3% des instances requièrent un temps de calcul de plus de 100 000 secondes sans forcément obtenir de solutions faisables. Ces résultats obtenus pour des projets de 30 activités montrent les limites des méthodes de résolution exactes pour le problème d’ordonnancement avec chevauchement. Pour ne serait-ce que trouver des solutions faisables pour les cas les plus dures à résoudre avec 30 activités, et pour aborder des projets de plus grande taille, nous avons développé une méthode de résolution approchée décrite dans la section suivante.

3.4.3 Développement d’une métaheuristique de type recherche dispersée

Ces dernières années, de nombreuses métaheuristiques hybrides avancées basées sur les principes de la recherche dispersée (« scatter search ») ont été proposées dans la littérature et figurent parmi les méthodes de résolution approchées les plus efficaces (Chen, Shi, Teng, Lan, & Hu, 2010; Debels, De Reyck, Leus, & Vanhoucke, 2006; Mobini, Rabbani, Amalnik, Razmi, & Rahimi-Vahed, 2009; Paraskevopoulos et al., 2012; Ranjbar, De Reyck, & Kianfar, 2009; Valls, Ballestin, & Quintanilla, 2004). Conceptualisée par Glover (1977), la recherche dispersée est une méthode de recherche évolutionnaire qui s’inspire du principe que des méthodes et des mécanismes systématiques pour créer de nouvelles solutions apportent des bénéfices significatifs par rapport à ceux obtenus avec le recours au hasard.

Partant de ce constat, nous avons développé un algorithme de recherche dispersé que nous avons tout d’abord testé sur le RCPSP standard. Les innovations et les performances compétitives de cet algorithme en comparaison de la littérature scientifique sur le RCPSP standard sont présentées dans le Chapitre 5. L’algorithme proposé utilise le FBI comme méthode d’intensification et le PR comme méthode de combinaisons des solutions pour générer de nouvelles solutions (voir la section 2.2.1.3.3). Également, le réseau de projet et la direction

d’ordonnancement sont inversés à chaque itération de l’algorithme. L’algorithme présente deux innovations majeures. Premièrement, nous utilisons un PR bidirectionnel qui utilise un nouveau mouvement. Deuxièmement, une procédure d’amélioration est introduite dans la méthode de mise à jour de l’ensemble de référence. Une méthode de recherche locale englobant la recherche dispersée dans une méta-métaheuristique à deux niveaux est utilisée pour effectuer le paramétrage de l’algorithme de recherche dispersée.

L’algorithme de recherche dispersée adaptée à l’ordonnancement de projet avec chevauchement avec minimisation de la durée de projet et présentée dans le Chapitre 6 utilise les mêmes mécanismes que pour le RCPSP standard, à ceci près que les solutions sont représentées non seulement par une liste d’activité, mais également par une liste des modes de chevauchement représentant les décisions de chevauchement. Le schéma de génération d’échéancier de type sériel, qui permet de calculer un calendrier à partir d’une représentation de solution (voir la section 2.2.1.2), est modifié pour tenir compte des modes de chevauchement. L’application de cet algorithme au bassin d’instances projet de 30 activités et la comparaison des résultats avec la méthode de résolution exacte avec PPC et la PLNE montre que l’écart moyen de la durée de projet obtenu est inférieur à 0.18% avec un temps de calcul bien plus petit de l’ordre de 80 secondes. Dans près de 58% des cas, l’algorithme est capable de trouver la solution optimale en termes de dates d’exécution et de décisions de chevauchement plus rapidement qu’avec la méthode de résolution exacte. En outre, l’algorithme trouve des solutions faisables pour les instances où la méthode de résolution exacte ne pouvait en trouver.

L’algorithme de recherche dispersée appliqué au RCPSP standard et à l’ordonnancement de projet avec chevauchements est donc très efficace puisqu’il permet de trouver des solutions de très bonne qualité avec des temps de calcul acceptable.