← Mathématiques

Graphes et ordonnancement

Sommaire

Module 6 de l'unité U21. Les graphes modélisent les réseaux et les dépendances ; l'ordonnancement planifie un projet et identifie ce qui ne peut pas prendre de retard.

1. Vocabulaire

Graphe = sommets reliés par des arêtes (non orienté) ou des arcs (orienté).

TermeDéfinition
OrdreNombre de sommets du graphe
Degré d'un sommetNombre d'arêtes qui lui sont incidentes
Chaîne / cheminSuite de sommets consécutivement reliés (chemin si orienté)
Cycle / circuitChaîne ou chemin qui revient à son point de départ
Graphe connexeIl existe une chaîne entre toute paire de sommets
Graphe pondéréChaque arête porte un poids (distance, coût, durée, débit)
Graphe completTous les sommets sont reliés deux à deux
ArbreGraphe connexe sans cycle : n sommets et n − 1 arêtes

La somme des degrés d'un graphe vaut toujours le double du nombre d'arêtes, puisque chaque arête est comptée à ses deux extrémités.

2. Représenter un graphe

Matrice d'adjacence

Matrice carrée M où mij = 1 s'il existe un arc de i vers j, 0 sinon (ou le poids, pour un graphe pondéré).

de \ versABCD
A0110
B0010
C0001
D0000

Propriété remarquable : le coefficient (i, j) de Mk donne le nombre de chemins de longueur k de i vers j. C'est l'application directe du produit matriciel.

Pour un graphe non orienté, la matrice est symétrique.

Liste d'adjacence

graphe = {
    'A': ['B', 'C'],
    'B': ['C'],
    'C': ['D'],
    'D': []
}

Choix entre les deux : la matrice occupe n² cases quel que soit le nombre d'arêtes, la liste seulement ce qui existe. Sur un graphe creux (peu d'arêtes, comme un réseau routier), la liste est bien plus économique ; la matrice reste préférable pour tester rapidement l'existence d'un arc.

3. Parcours

ParcoursStructureUsage
En largeur (BFS)File (FIFO)Plus court chemin en nombre d'arêtes, propagation de proche en proche
En profondeur (DFS)Pile (LIFO) ou récursionDétection de cycles, composantes connexes, tri topologique

Dans les deux cas, il faut marquer les sommets déjà visités : sans cela, un cycle provoque une boucle infinie.

4. Plus court chemin : Dijkstra

L'algorithme de Dijkstra trouve le plus court chemin d'un sommet vers tous les autres, dans un graphe pondéré à poids positifs.

  1. Attribuer une distance 0 au sommet de départ, +∞ à tous les autres.
  2. Choisir le sommet non traité de distance minimale et le marquer comme définitif.
  3. Pour chacun de ses voisins, si distance(courant) + poids < distance(voisin), mettre à jour la distance et mémoriser le prédécesseur.
  4. Répéter jusqu'à ce que tous les sommets soient traités.

Exemple de tableau d'exécution, départ en A :

ÉtapeABCDESommet fixé
00∞∞∞∞A
1—4 (A)2 (A)∞∞C
2—3 (C)—6 (C)∞B
3———5 (B)9 (B)D
4————8 (D)E

On remonte ensuite les prédécesseurs pour reconstituer le chemin : E ← D ← B ← C ← A, de longueur 8.

C'est l'algorithme au cœur du protocole de routage OSPF : chaque routeur construit la carte du réseau puis applique Dijkstra pour déterminer le meilleur chemin vers chaque destination. Le lien avec la fiche Interconnexion et routage est direct.

5. Ordonnancement de projet

Un projet se décompose en tâches, chacune avec une durée et des antériorités (tâches qui doivent être terminées avant). On construit un graphe orienté sans circuit, puis on calcule les dates.

TâcheDurée (j)Antériorités
A — Cahier des charges3—
B — Achat matériel5A
C — Câblage4A
D — Installation serveurs6B, C
E — Configuration réseau2C
F — Recette3D, E

Dates au plus tôt (parcours avant)

Date au plus tôt d'une tâche = maximum des (date au plus tôt + durée) de ses prédécesseurs.

TâcheCalculAu plus tôtFin
A—03
Bfin de A38
Cfin de A37
Dmax(8, 7)814
Efin de C79
Fmax(14, 9)1417

La durée totale du projet est donc de 17 jours.

Dates au plus tard (parcours arrière)

On part de la fin du projet et l'on remonte : date au plus tard = minimum des (date au plus tard des successeurs − durée de la tâche).

TâcheCalculAu plus tard
F17 − 314
E14 − 212
D14 − 68
Cmin(8 − 4, 12 − 2)4
B8 − 53
Amin(3, 4) − 30

6. Marges et chemin critique

La marge totale d'une tâche est l'écart entre sa date au plus tard et sa date au plus tôt : c'est le retard qu'elle peut prendre sans décaler la fin du projet.

TâcheAu plus tôtAu plus tardMargeCritique ?
A000oui
B330oui
C341non
D880oui
E7125non
F14140oui

Chemin critique = la suite des tâches de marge nulle. Ici A → B → D → F, de durée 3 + 5 + 6 + 3 = 17 jours.

Les deux méthodes classiques sont MPM (tâches aux sommets, la présentation ci-dessus) et PERT (tâches sur les arcs). Le résultat est identique ; seule la représentation diffère. Le diagramme de Gantt visualise ensuite le planning dans le temps.

À retenir