Apprentissage interactif de la théorie des graphes
Apprentissage interactif de la théorie des graphes
Guest User
Using app without sign in
Guides d'étude en théorie des graphes
Téléchargement immédiat · Accès à vie
Besoin d'un accompagnement personnalisé ?
Des séances individuelles sur Méthode du Chemin Critique (CPM) pour vos études, un entretien ou un projet d'optimisation.
Calculateur de chemin critique
Identifie la plus longue séquence de tâches dépendantes dans un calendrier de projet, déterminant le temps le plus court possible pour le terminer.
Sélectionnez un algorithme et générez les étapes pour commencer la visualisation
La méthode du chemin critique (CPM) trouve la plus longue chaîne d'activités dépendantes dans un réseau de projet, qui détermine la durée minimale du projet. Les activités sur ce chemin critique ont une marge nulle : tout retard sur elles retarde tout le projet.
Le projet est modélisé comme un graphe orienté acyclique d'activités avec durées. Une passe avant en ordre topologique calcule le début et la fin au plus tôt de chaque activité ; une passe arrière calcule les dates au plus tard qui évitent de retarder le projet. La différence entre début au plus tard et au plus tôt est la marge de l'activité, et les activités à marge nulle forment le chemin critique. Les deux passes s'exécutent en O(V + E).
La CPM planifie les chantiers de construction, les livraisons de logiciels, les changements de série en fabrication et l'organisation d'événements. Les outils de gestion de projet comme Primavera et Microsoft Project calculent les chemins critiques en continu. C'est aussi une application scolaire des plus longs chemins dans les DAG et du tri topologique.
Deux balayages du réseau d'activités en ordre topologique: vers l'avant pour le plus tôt où chaque tâche peut avoir lieu, vers l'arrière pour le plus tard sans retarder le projet.
CPM(activites, dependances):
ordre = triTopologique(activites)
// Balayage avant: debut et fin au plus tot
pour chaque activite a dans ordre:
DT[a] = max(FT[p] pour p predecesseur de a), sinon 0
FT[a] = DT[a] + duree[a]
T = max(FT[a] sur toutes les a) // duree du projet
// Balayage arriere: debut et fin au plus tard
pour chaque activite a dans inverse(ordre):
FTa[a] = min(DTa[s] pour s successeur de a), sinon T
DTa[a] = FTa[a] - duree[a]
marge[a] = DTa[a] - DT[a]
chemin critique = activites de marge 0Le chemin critique est le plus long chemin du réseau, non le plus court, ce qui en fait un problème de maximisation sur un DAG et non un problème de plus court chemin. Le réseau étant acyclique, les deux balayages ne sont que de la programmation dynamique en ordre topologique et aucune file de priorité n'est nécessaire. Une marge nulle signifie que l'activité n'a aucune latitude: retarde-la d'un jour et le projet entier glisse d'un jour.
Planifie un projet de quatre activités où deux tâches peuvent s'exécuter en parallèle mais doivent toutes deux se terminer avant que la troisième ne débute.
Graphe d'exemple: Activités de durées A (3 jours), B (2 jours), C (4 jours) et D (2 jours). Dépendances: A et B doivent précéder C, et C précède D.
Le projet dure 9 jours et le chemin critique est A vers C vers D. B dispose d'un jour de marge, elle peut donc démarrer un jour en retard ou déborder d'un jour sans affecter la date de fin. C'est le bénéfice pratique: cela indique à un chef de projet exactement où concentrer son attention. Raccourcir B ne sert à rien, tandis que raccourcir A, C ou D raccourcit le projet entier, du moins jusqu'à ce que le chemin critique bascule et passe par B.
Temps: O(V + E) · Espace: O(V)
Un tri topologique coûte O(V + E), et chacun des deux balayages visite chaque activité une fois et chaque arête de dépendance une fois, ils sont donc aussi en O(V + E). L'espace tient à quatre nombres par activité, les débuts et fins au plus tôt et au plus tard, soit O(V). La méthode entière est linéaire, ce qui lui permet de passer à l'échelle sur des réseaux de projet comptant des centaines de milliers d'activités. Le réseau de dépendances doit être un graphe orienté acyclique: une dépendance circulaire n'a pas d'ordre topologique et, corrélativement, aucun calendrier valide, la détection de cycle est donc un véritable prérequis et non une formalité.
CPM suppose des durées connues et des ressources illimitées. Relâcher l'une ou l'autre hypothèse change le problème.
| Alternative | À préférer quand | Coût |
|---|---|---|
| PERT | Les durées sont incertaines. Utilise des estimations à trois points pour donner une durée espérée et une distribution de probabilité. | O(V + E) |
| RCPSP | Les ressources sont limitées, les activités se disputent donc au lieu de s'exécuter librement en parallèle. NP-difficile. | exponentiel |
| Tri topologique | Tu ne veux qu'un ordre d'exécution valide, ni dates ni marges. | O(V + E) |
| Plus long chemin dans un DAG | Le même calcul exprimé en termes de graphes. CPM est exactement cela avec les durées comme poids. | O(V + E) |
| Analyse de compression | Tu veux raccourcir le projet et cherches l'ensemble le moins coûteux d'activités à accélérer. | programmation linéaire |
Lire l'article complet: Graph Theory in Project Management
Lire l'article complet: Operations Research and Graph Theory
Algorithmes associés: PERT (Technique d'Évaluation et de Revue de Programme), RCPSP (Ordonnancement de Projet sous Contraintes de Ressources), Tri Topologique