Problème de gestion de projet à contraintes de ressources

Le problème de gestion de projet à contraintes de ressources est un problème d'optimisation combinatoire, étudié en ordonnancement. Il est connu sous l'acronyme anglophone RCPSP (Resource-Constrained Project Scheduling Problem).
 
Le problème est NP-difficile au sens fort, il ne peut donc être résolu optimalement que par des algorithmes de complexité exponentielle. L'état de l'art permet de le résoudre optimalement dans un temps raisonnable, sur des instances de 60 tâches au plus.

Description

Concepts 
Les ressources sont des moyens de production renouvelables, mais limités en capacité. Une équipe de quatre ouvriers ayant les mêmes compétences peut être considérée comme une ressource de capacité 4.
 
Les tâches sont des travaux définis par une durée et une quantité de chaque ressource qui est nécessaire à son exécution. Les tâches sont supposées non-préemptives: une fois que l'exécution a commencé, elles se poursuit sans interruption jusqu'à la fin. Un bien manufacturé peut prendre deux heures de fabrication, et nécessiter le travail de deux ouvriers et d'une machine.
 
Il existe entre les tâches des relations de précédence, qui signifient classiquement qu'une tâche ne peut débuter que si certaines autres tâches sont finies. Ces relations permettent de représenter l'organisation du projet par un graphe de précédence (ou réseau PERT) : une tâche est figurée par un nœud, chaque relation de précédence est un arc orienté du prédécesseur vers le successeur, qui est valué par la durée du prédécesseur. Un graphe de précédence ne doit pas présenter de circuit, une tâche ne pourrait, directement ou indirectement, être son propre prédécesseur.
 
Classiquement, le problème consiste à minimiser la date de fin du projet, étant donné les contraintes de précédence et de ressources.

Formalisation 
Soient n tâches et q ressources.
 
Les ressources sont notées  et leurs capacités sont notées .
 
Les tâches sont désignées par  et leur durées sont , une tâche i demande une quantité  de la ressource k. Deux tâches fictives sont ajoutées en général, elles ont une durée nulle et ne consomment pas de ressources:  est le prédécesseur des autres tâches (sommet source du graphe),  est le successeur de toutes les tâches (sommet puits du graphe de précédence). Les précédences sont déclarées par un ensemble .
 
Une solution S au problème est un vecteur de  contenant les dates de début de chacune des tâches.

Il existe deux types de contraintes:
 les contraintes de précédence: soient des tâches  et  telles que  ( précède ),  ne peut pas commencer avant la fin de , 
 les contraintes de ressources: à tout instant et pour chaque ressource , la somme des demandes des tâches en cours d'exécution n'excède pas

Méthodes de résolution 
Un certain nombre d'outils ont été employés pour résoudre le problème:
 Heuristiques
 Optimisation linéaire
 Programmation par contraintes
 Procédure par séparation-évaluation

Algorithmes de liste 
Les premières méthodes, créées dans les années 1960, sont des heuristiques à base de listes. Les listes de priorité définissent une priorisation dans l'exécution des tâches, selon des critères souvent heuristiques comme le temps de traitement de tâches ou la marge. Une liste de priorité doit respecter les contraintes de précédence.

L'algorithme d'ordre strict consiste à placer les tâches une par une, au plus tôt possible, dans l'ordre exact de la liste de priorités.

 
 Tant que la liste de priorité est non vide
   soit la tâche  que l'on retire au début de la liste de priorité
    la date à laquelle on peut ordonnancer  au plus tôt ( est la durée de la tâche j)
   soit , la première date à laquelle les ressources sont disponibles pour l'exécution
   placer la tâche à la date 
   
 Fin Tant Que

Détermination d'une borne inférieure 
Etant donnée la complexité du problème, il est souvent illusoire de vouloir déterminer des solutions exactes au problème. En recherche opérationnelle, pour évaluer concrètement une méthode de résolution, on évalue la qualité d'une solution en comparant la date de fin obtenue  avec une borne inférieure . La borne inférieure est une valeur qu'on sait inférieure à la date de fin de la solution optimale, mais on doit obtenir une valeur assez haute pour bien approcher la valeur optimale. La qualité d'une solution se mesure en pourcentage d'écart avec la borne inférieure: .

Méthode du chemin critique

Chemin critique amélioré

Raisonnement énergétique

Extensions 
Le modèle basique du RCPSP a été adapté à de nombreuses applications industrielles, d'où l'apparition de variantes du problème.

Gestion de projet multi-compétence 
Cette variante est adaptée à la planification de projet dans des sociétés de service, notamment des SSII. On définit un ensemble de compétences, les ressources représentent les personnes participant au projet, la capacité de chaque ressource est 1. Une tâche ne se définit plus par des quantités exigées de chaque ressource, mais par des nombres de personnes ayant telles compétences. Par exemple, une tâche "Tests unitaires" peut nécessiter deux personnes ayant la compétence "Développeur" et une personne ayant la compétence "Analyste".

Tâches multi-mode 
Une même tâche peut être exécutée de différentes manières, ou modes. Chaque mode définit une durée propre et des demandes en ressources. Le choix d'un mode pour exécuter une tâche fait partie du problème.

Ordonnancement robuste 
Des approches d'ordonnancement robuste ont été développées pour le RCPSP. Les modèles robustes en gestion de projet considèrent quatre types de perturbations:
 perturbations du graphe de projet: des tâches (ou des liens de précédence) sont ajoutées ou supprimées
 perturbations sur les tâches: modifications des durées, des demandes
 perturbations sur les ressources: des ressources deviennent indisponibles (pannes, absences) ou leur capacité est temportairement limitée
 changements de délais

Voir aussi

Articles connexes 
 Théorie de l'ordonnancement
 Réseau PERT

Sources et références 
  Problème de gestion de projet à contraintes de ressources - approches et méthodes de résolution GOThA - groupe "Gestion de projet à contraintes de ressource et ses extensions"

Recherche opérationnelle