M08 - Ordonnancement : méthode MPM et chemin critique

Objectif

Planifier un projet (ex. déploiement d’un réseau) : dates au plus tôt, au plus tard, marges, chemin critique et durée minimale.


1. La méthode en 5 étapes

flowchart LR
  A["1. Tableau des tâches<br/>durées + antériorités"] --> B["2. Graphe MPM<br/>(une tâche = un nœud)"]
  B --> C["3. Dates au PLUS TÔT<br/>passage de gauche à droite<br/>→ MAXIMUM"]
  C --> D["4. Dates au PLUS TARD<br/>passage de droite à gauche<br/>→ MINIMUM"]
  D --> E["5. Marges<br/>+ chemin critique"]
NotionFormule
Tôt(T) ; 0 pour les tâches sans antériorité
Fin du projet
Tard(T) ; pour les dernières tâches : Fin − durée
Marge totaleTard − Tôt : retard possible sans retarder le projet
Marge libre : retard possible sans retarder aucune autre tâche
Tâche critiqueMarge totale = 0
Chemin critiqueChemin début → fin formé de tâches critiques ; sa longueur = durée minimale du projet

Représentation d’un nœud :

Tâche
TôtTard
Durée

2. Exemple complet

TâcheDescriptionDurée (j)Antériorités
AÉtude des besoins3-
BCommande du matériel2A
CCâblage des locaux4A
DConfiguration et tests1B, C
flowchart LR
  DEB["Début<br/>0 | 0"] --> A["A (3 j)<br/>Tôt 0 | Tard 0"]
  A --> B["B (2 j)<br/>Tôt 3 | Tard 5"]
  A --> C["C (4 j)<br/>Tôt 3 | Tard 3"]
  B --> D["D (1 j)<br/>Tôt 7 | Tard 7"]
  C --> D
  D --> FIN["Fin<br/>8 | 8"]
  style A fill:#fecaca,stroke:#b91c1c
  style C fill:#fecaca,stroke:#b91c1c
  style D fill:#fecaca,stroke:#b91c1c

Plus tôt : A = 0 ; B = C = 0 + 3 = 3 ; D = max(3 + 2, 3 + 4) = 7 ; Fin = 7 + 1 = 8. Plus tard : D = 8 − 1 = 7 ; B = 7 − 2 = 5 ; C = 7 − 4 = 3 ; A = min(5, 3) − 3 = 0.

TâcheTôtTardMarge totaleMarge libre
A0000
B3522
C3300
D7700

→ Chemin critique A → C → D, durée minimale 8 jours. B peut prendre 2 jours de retard sans conséquence.

3. Impact d’un retard

SituationConséquence
Retard ≤ marge libreAucune autre tâche n’est décalée
Marge libre < retard ≤ marge totaleDes tâches suivantes sont décalées, mais pas la fin du projet
Retard > marge totaleLe projet est retardé de (retard − marge totale)
Retard sur une tâche critiqueLe projet est retardé d’autant

Pour réduire la durée du projet, il faut raccourcir une tâche critique (raccourcir B ne sert à rien).

4. Script : scripts/maths/mpm.py

python3 mpm.py "A:3: B:2:A C:4:A D:1:B,C"

Format : Nom:Durée:Antériorités (antériorités séparées par des virgules, vide si aucune). Affiche Tôt, Tard, marges totale et libre, chemin critique et durée minimale.

5. Lien avec le BTS

Gestion de projet informatique (déploiement, migration, épreuve E5/E6 : planifier une réalisation), diagrammes de Gantt (GLPI Projets, MS Project, GanttProject). Un Gantt Mermaid dans Obsidian :

gantt
  title Projet déploiement (8 jours)
  dateFormat  YYYY-MM-DD
  section Critique
  A Étude des besoins       :crit, a, 2026-11-02, 3d
  C Câblage                 :crit, c, after a, 4d
  D Config et tests         :crit, d, after c, 1d
  section Avec marge
  B Commande matériel       :b, after a, 2d

Voir aussi