Applications de la théorie des graphes "Rien n'est plus pratique qu'une bonne théorie" K. LEWIN 1. INTRODUCTION A PARTIR D'UN EXEMPLE .......................................................................................... 2 2. QUELQUES DEFINITIONS ............................................................................................................................ 3 2.1 SUR LES GRAPHES ORDINAIRES ............................................................................................................................ 3 2.2 SUR LES GRAPHES ORIENTES................................................................................................................................ 4 3. UTILISATION DES MODELES DE GRAPHES ...........................................................................................5 3.1 QUELQUES APPLICATIONS EN GESTION................................................................................................................ 5 3.2 QUELQUES PROBLEMES CLASSIQUES ................................................................................................................... 6 4. APPLICATION AUX PROBLEMES D'ORDONNANCEMENT ................................................................ 8 4.1 INTRODUCTION ................................................................................................................................................... 8 4.2 EXEMPLE............................................................................................................................................................. 9 4.3 MODELISATION ................................................................................................................................................... 9 4.3.1 La méthode "Potentiel-tâches" ................................................................................................................. 10 4.3.2 La méthode "Potentiel-étapes" ................................................................................................................. 11 4.4 LES OUTILS ALGORITHMIQUES .......................................................................................................................... 12 4.4.1 Algorithme de "mise à niveau" d'un graphe sans circuits ........................................................................ 12 4.4.2 Algorithme de recherche d'un chemin de poids optimum ......................................................................... 13 4.5 OPTIMISATION DU CALENDRIER ........................................................................................................................ 14 4.6 COMPLEMENTS A L'ORDONNANCEMENT ............................................................................................................ 16 4.6.1 La méthode PERT..................................................................................................................................... 16 4.6.2 La méthode CPM (Critical Path Method) ................................................................................................ 18 4.6.3 La prise en compte des moyens matériels et humains .............................................................................. 22 4.6.4 Autres types de contraintes....................................................................................................................... 22 5. EXERCICES .................................................................................................................................................... 23 Cours sur les graphes et projets – Page 1 /28 1. Introduction à partir d'un exemple Idée clé : Un dessin permet de synthétiser un problème et de raisonner efficacement. Une représentation graphique claire soutient l'intuition et stimule l'imagination. Les 7 ponts de Koenigsberg Cours sur les graphes et projets – Page 2 /28 2. Quelques définitions Nous allons brièvement présenter quelques notions relatives aux graphes ordinaires, puis aux graphes orientés. 2.1 Graphes ordinaires graphe : ensemble de sommets et d'arêtes. G = (X,E) avec X ensemble des sommets et E ensemble des arêtes. B a1 a6 a2 a3 A a5 a4 D a7 C sommet : A,B,C,D sont les 4 sommets du graphe ci-dessus. arête :la "ligne" reliant A et B est une arête du graphe (le graphe en comporte 7) degré d'un = nombre d'arêtes incidentes. sommet exemple: le sommet A est de degré 5 chaîne : Suite alternée de sommets et d'arêtes où chaque arête est "origine de la suivante" (exemple: (A, a4, C, a7, D) est une chaîne reliant A à D.) cycle : chaîne dont l'origine est égale à la destination. exemple: (A, a4, C, a7, D, a3, A) connexité : Soit un graphe: G = (X,E) avec x,y X La relation C définie par : x C y <==> il existe une chaîne de x à y est une relation d'équivalence dont les classes sont appelées composantes connexes de G. arbre: un arbre est un graphe connexe et sans cycles. Cours sur les graphes et projets – Page 3 /28 2.2 Graphes orientés (réseaux) On ajoute un "sens de parcours" sur les arêtes qui deviennent des arcs. B a1 a6 a2 a3 A a5 a4 D a7 C Sur l'arc (B,A), on dira que B est le prédécesseur de A et que A est le successeur de B. L'équivalent de la chaîne est le chemin; celui du cycle est le circuit. (par exemple: (A, a4, C, a7, D) est un chemin de A à D (A, a4, C, a7, D, a3, A) est un circuit ). A la notion de connexité pour un graphe non orienté correspond la notion de forte connexité pour un graphe orienté. A la notion d'arbre pour un graphe non orienté correspond la notion d'arborescence pour un graphe orienté. Cours sur les graphes et projets – Page 4 /28 3. Utilisation des modèles de graphes De manière générale, les graphes aident à décrire et à comprendre les problèmes. Pour certains problèmes, des méthodes d'optimisation sont utilisées pour assister la prise de décision. 3.1 Quelques applications en gestion Gestion de projets dans tous les domaines, ordonnancement. Gestion de ressources humaines (modélisation de certains types d'interaction). Optimisation de politique financière ou commerciale. Réseaux de transport, de communication. Cours sur les graphes et projets – Page 5 /28 3.2 Quelques problèmes classiques Le problème de transport 1 200 16 23 21 1 400 2 250 15 13 2 600 19 3 400 16 26 4 150 Le problème du plus court chemin C 11 A 6 4 17 F 6 5 S 5 D 4 3 B 3 T 4 5 G 8 6 5 E Cours sur les graphes et projets – Page 6 /28 Le problème du flot maximum B 3 6 4 E 12 A 9 15 C G 8 7 5 F 9 D Le problème du voyageur de commerce E 30 17 21 31 D A 13 24 34 17 23 27 B Cours sur les graphes et projets – Page 7 /28 C 4. Application aux problèmes d'ordonnancement 4.1 Introduction L'étude et la conduite d'un projet complexe, et cela dans des domaines très variés, nécessitent une parfaite coordination entre les différentes cellules de travail. On peut formuler les problèmes d'ordonnancement de la manière suivante: Soit un objectif dont la réalisation suppose l'exécution préalable de multiples tâches soumises à de multiples contraintes. Il s'agit de trouver un ordre et un calendrier d'activation de ces tâches tels que ces contraintes soient satisfaites. Remarque : Plus généralement, le management de projet doit permettre : La planification (gestion prévisionnelle) élaborer le processus opérationnel optimum de réalisation du projet. faire ressortir et hiérarchiser les priorités et les points critiques. calculer les dates de réalisation. préciser les responsabilités. évaluer et répartir les moyens humains, matériels et financiers. Le suivi et le contrôle suivre la progression des actions. évaluer l'impact des dysfonctionnements en vue de préparer les décisions de management de projet pour respecter les objectifs d'origine Cours sur les graphes et projets – Page 8 /28 4.2 Exemple Projet : Construction d'une villa Objectif : Préparation des travaux N° tâche Description Durée (en jours) 1 Exécution des terrassements 10 2 Mise en place de la grue 2 3 Fondations 5 4 Branchement électrique 3 5 Installation de la fosse septique 6 Contraintes La grue ne peut fonctionner que si le branchement électrique est effectué. On a besoin de la grue pour les fondations. L'installation de la fosse septique et les fondations ne peuvent être exécutés que si les travaux de terrassement sont terminés. 4.3 Modélisation Nous allons construire deux types de modèles pour ce problème à l'aide de graphes orientés (réseaux). Ces réseaux permettent de représenter les différentes tâches du projet et ses différentes contraintes. Cours sur les graphes et projets – Page 9 /28 4.3.1 La méthode "Potentiel-tâches" Un sommet du graphe correspond à une tâche. On relie deux sommets: i et j par un arc, si la tâche i doit précéder la tâche j . Chaque arc (i,j) sera porteur d'un "poids" correspondant à la durée de la tâche i . Appliquons cette méthode pour modéliser l'exemple précédent: Cours sur les graphes et projets – Page 10 /28 4.3.2 La méthode "Potentiel-étapes" chaque arc correspond à une tâche. le début et la fin d'une tâche sont les étapes du projet et correspondent à des sommets du graphe. Deux méthodes très connues : la méthode PERT (Program Evaluation and Review Technique) et la méthode CPM (Critical Path Method) sont basées sur cette modélisation ; nous les décrirons un peu plus loin. Appliquons cette méthode pour modéliser l'exemple précédent : Cours sur les graphes et projets – Page 11 /28 4.4 Les outils algorithmiques La théorie des graphes fournit des techniques d'optimisation permettant d'aider à établir des ordonnancements à partir des modèles précédents. Nous allons présenter deux "algorithmes de cheminement dans les graphes orientés" : 4.4.1 Algorithme de "mise à niveau" d'un graphe sans circuits Description : On détermine le niveau, c’est à dire le « numéro d’ordre » de tous les sommets du graphe. Le numéro d’un sommet sera tout simplement égal à 1 + le maximum des numéros de tous les sommets qui précédent. Cette phase de numérotation par « niveaux » dans le graphe est nécessaire pour la suite des opérations si l’on désire éviter les erreurs sur un gros graphe. Cours sur les graphes et projets – Page 12 /28 4.4.2 Algorithme de recherche d'un chemin de longueur maximale (algorithme de BELLMAN-FORD) Cet algorithme est basé sur un principe tellement simple qu'on pourrait le qualifier de lapalissade mais qui est extrêmement puissant et utile pour de nombreux problèmes: le principe d'optimalité. Soit C = {S,A1,X1,A2,X2,...,An-1,Xn-1,An,T} un chemin de S à T. Pour que C soit un chemin optimal de S à T; il est nécessaire que le chemin (S,A1,X1,...,An-1,Xn-1 } soit un chemin optimal de S à Xn-1 . Il dit simplement que pour trouver le plus long chemin dans le graphe, à partir d’un sommet de départ, jusqu'à un sommet quelconque du graphe : S, il suffit de prendre la plus grande parmi toutes les longueurs maximales1 des chemins qui arrivent aux sommets prédécesseurs, additionnées des longueurs des arcs reliant ces sommets à S. 1 Supposées déjà déterminées précédemment ! D’où l’intérêt de progresser, niveau par niveau dans le graphe.... Cours sur les graphes et projets – Page 13 /28 4.5 Optimisation du calendrier Il faut : Déterminer un ordre chronologique des tâches ; cela revient à numéroter les sommets du graphe, c-à-d à déterminer le niveau de chaque sommet. Déterminer un calendrier d'activation des tâches Les dates de réalisation au plus tôt sont obtenues en déterminant "un chemin de longueur maximale" dans le graphe. Les dates de réalisation au plus tard sont obtenues par le même calcul en partant "de la fin du graphe". Application à l'exemple précédent : 4 3 0 0 0 2 2 3 10 0 1 5 6 6 10 5 Lorsque les dates au plus tôt et au plus tard pour une tâche sont confondues, la marge de la tâche est nulle (la marge correspond à la différence entre date au plus tard et date au plus tôt) ; on dit alors que cette tâche est une tâche critique. Cours sur les graphes et projets – Page 14 /28 Chemin critique 8 0 8 4 3 1 0 9 0 0 9 0 2 2 0 10 11 16 16 5 3 1 0 1 3 2 10 0 6 0 0 0 10 10 10 1 1 6 5 2 Diagramme de Gantt 0 2 4 6 8 10 12 14 16 Cours sur les graphes et projets – Page 15 /28 temps 4.6 Compléments à l'ordonnancement Différentes méthodes ont été proposées pour aller plus loin que le simple calendrier établi plus haut. Nous allons ainsi nous intéresser successivement : à la prise en compte du hasard. à la prise en compte des coûts. à la prise en compte d'autres types de contraintes. 4.6.1 La méthode PERT Si l'on ne peut pas prévoir de manière certaine la durée d'une tâche t, il peut être possible d'associer à cette tâche, 3 estimations: p(t) = durée la plus probable de la tâche t a(t) = estimation optimiste b(t) = estimation pessimiste On peut alors souvent observer que la durée de la tâche pouvait être considérée comme une variable aléatoire de loi Beta de moyenne (4p(t) + a(t) + b(t) ) / 6 et d'écart-type (b(t) - a(t))/6 Cours sur les graphes et projets – Page 16 /28 Exemple N° tâche Description p a b 1 Exécution des terrassements 10 8 18 2 Mise en place de la grue 2 1 3 3 Fondations 5 3 8 4 Branchement électrique 3 2 4 5 Installation de la fosse septique 6 5 7 4 0 0 0 2 3 1 5 0 Cours sur les graphes et projets – Page 17 /28 6 4.6.2 La méthode CPM (Critical Path Method) En fait dans la pratique, la durée d'une tâche est souvent étroitement liée aux moyens mis en oeuvre, donc au coût. Cette relation a en général la forme suivante: Dans la méthode CPM (Critical Path Method). On commence par déterminer l'ordonnancement de coût minimum. Cela conduit à un premier chemin critique. Ensuite, on cherche à réduire la durée du projet en réduisant la durée des tâches critiques (ce qui, bien sûr, élève le coût). Et ainsi de suite de manière itérative jusqu'à ce que le compromis entre le temps et la durée soit jugé acceptable. Cours sur les graphes et projets – Page 18 /28 Exemple N° tâche Description Durée normale Durée min. 1 Exécution des terrassements 10 6 Coût d’accélération 200 2 Mise en place de la grue 2 1 250 3 Fondations 5 3 150 4 Branchement électrique 3 2 180 5 Installation de la fosse septique 6 2 120 Le coût d’accélération est exprimé en euros/jour. Par exemple, pour réduire la tâche 1 de 10j à 8j, il en coûte 400 €. 4 0 0 0 2 3 1 5 0 Cours sur les graphes et projets – Page 19 /28 6 4 0 0 0 2 3 1 5 6 0 4 0 0 0 2 3 1 5 0 Cours sur les graphes et projets – Page 20 /28 6 4 0 0 0 2 3 1 5 6 0 SYNTHESE GRAPHIQUE 4000 3500 3000 2500 2000 1500 1000 500 0 8 9 10 11 12 13 14 15 16 Cours sur les graphes et projets – Page 21 /28 temps 4.6.3 La prise en compte des moyens matériels et humains 4.6.4 Autres types de contraintes Contraintes disjonctives Deux tâches i et j ne peuvent être exécutées simultanément (par exemple, elles font appel en même temps à un même matériel disponible à un seul exemplaire), alors que l'ordre de ces tâches est sans importance. Contraintes cumulatives = généralisation des contraintes disjonctives Un moyen à partager par différentes tâches est disponible en quantité limitée. Cours sur les graphes et projets – Page 22 /28 5. Exercices Exercice 1 Le PDG de la société Hélium (spécialités laitières allégées) souhaite avoir rapidement le budget de l’année prochaine. Le directeur financier dispose des informations suivantes : Tâche Description Durée A B Prévision des ventes Estimation des prix de la concurrence Estimation des revenus Préparation plan de production Estimation coûts de production Préparation du budget 14 3 Tâches antérieures Aucune Aucune 3 7 4 A,B A D 10 C, E C D E F Compléter le modèle de graphe et déterminer la durée minimale des travaux. Cours sur les graphes et projets – Page 23 /28 Exercice 2 On reprend l’exercice de construction de la villa. Jusqu’à maintenant, il n’y avait que 5 tâches préparatoires à la construction. On ajoute maintenant les tâches suivantes : N° tâche 6 7 8 9 10 11 12 13 14 15 Description Gros oeuvre, maçonnerie Couverture Plomberie, chauffage central Electricité Menuiserie Plâtre Peinture Adduction d’eau Carrelage Pose des appareils sanitaires Durée (jours) 23 14 7 10 11 10 10 12 5 2 Contraintes supplémentaires Le gros oeuvre ne peut commencer que lorsque les fondations sont achevées. La maçonnerie doit être terminée pour que les tâches 7,8 et 9 puissent débuter. La couverture se décompose en deux phases : construction de la charpente (tâche 7’ de durée 8 jours) et couverture proprement dite (tâche 7’’ de durée 6 jours). Les travaux d’électricité se décomposent en gros travaux (9’, durée 5j) et petits travaux (9’’, durée 5j). Les travaux de menuiserie se décomposent en « huisseries » (10’, durée 7j) et petits travaux (10’’, durée 4j). Il est nécessaire que la plomberie, la charpente, les huisseries et les gros travaux d’électricité soient terminés pour qu’on puisse commencer le plâtre. Les petits travaux d’électricité et de menuiserie peuvent commencer dès que les plâtres sont secs (durée de séchage = 21j à partir du moment où les platres sont exécutés et la couverture terminée). Le carrelage peut commencer dès que le plâtre est terminé (il n’est pas nécessaire qu’il soit sec). La pose des appareils sanitaires peut intervenir dès que le carrelage est posé ; cependant il faut un délai de 21j entre le moment où les appareils sanitaires sont commandés et celui où ils sont livrés. Les travaux de peinture ne peuvent commencer que lorsque le plâtre est sec, que les travaux de menuiserie et d’électricité sont terminés et que le carrelage est posé. Compléter le modèle de graphe et déterminer la durée minimale des travaux, les dates au plus tôt et au plus tard ainsi que le chemin citique. Cours sur les graphes et projets – Page 24 /28 Cours sur les graphes et projets – Page 25 /28 Exercice 3 On reprend l’exercice 1 avec des durées aléatoires. Tâche Description A B Prévision des ventes Estimation des prix de la concurrence Estimation des revenus Préparation plan de production Estimation coûts de production Préparation du budget C D E F Durée opt. 10 2 Durée + prob. 14 3 Durée pess. 19 4 Tâches antérieures Aucune Aucune 2 5 3 3 7 4 4 10 6 A,B A D 7 10 15 C, E Compléter le modèle de graphe et déterminer la durée minimale espérée des travaux. Cours sur les graphes et projets – Page 26 /28 Exercice 4 On considère un projet de remise en état d’un moteur électrique. L’ensemble des tâches nécessaires est le suivant : Tâche Description Durée normale Coût Durée minimale d’accélért. Tâches antérieures (par heure) A B C D E Démonter le moteur Nettoyer le châssis Enrouler l’induit Remplacer les roulements à bille. Asembler le moteur 8 7 12 9 6 4 5 5 100 180 120 80 Aucune Aucune A, B A 6 6 - C, D Déterminer le chemin critique lorsque les tâches prennent leur durée normale; Quelles sont les tâches critiques ? On suppose que les coûts indirects du projet sont de 250 € par heure. Trouver le plan le plus économique Tracer un graphe donnant la relation entre le coût du projet et sa durée. Cours sur les graphes et projets – Page 27 /28 Exercice 5 Vous êtes responsable du projet informatique de création d’un cédérom de présentation de votre entreprise. La première partie du sujet reprend certains points de l’étude statistique menée au préalable, la seconde établit un calendrier prévisionnel de déroulement du projet. Le prévisionnel du projet fait apparaître les tâches suivantes : Code A B C D E F G H I Intitulé Durée en jour Définition des informations à présenter. 10 Elaboration du scénario général 30 d’utilisation Définition des pages écrans 25 Recueil des médias 25 Définition d’une charte graphique 12 Mise en forme des médias. 15 Réalisation d’une structure prototype 20 Intégration des médias 15 Tests d’utilisation 15 Prédéces- Durée Coût de réduction seurs minimale par jour en francs A B B B D, E C F,G H 15 15 7 500 7 500 10 10 10 9 000 7 000 5 000 3.1 En utilisant les durées normales, construisez un graphe d’ordonnancement des tâches du projet. Calculez les dates au + tôt, au + tard et la durée minimale du projet. 3.2 Utilisez la méthode CPM, sachant que les coûts indirects représentent 10 000€ par jour. Donnez un tableau synthétisant vos résultats (expliquez en détails uniquement la première étape) Construisez un graphique (Durée en abscisse, Coûts en ordonnée) de présentation de vos résultats. Cours sur les graphes et projets – Page 28 /28