Algorithmes Avancés

Flux de Réseau et le Théorème Max-Flow Min-Cut

Combien d'eau pouvez-vous pomper à travers un réseau de tuyaux ? Combien de données pouvez-vous envoyer sur Internet ? Découvrez le monde fascinant des Réseaux de Flux, l'algorithme de Ford-Fulkerson et la belle symétrie du théorème Max-Flow Min-Cut.

18 Min de lecture Mis à jour : Juin 2026 Niveau Avancé
LGT
Learn Graph Theory Team
Expert Operations Research Engineers

1. Qu'est-ce qu'un Réseau de Flux ?

Imaginez un système d'eau urbain complexe. Vous avez une usine principale de traitement de l'eau qui expulse l'eau, et un réservoir principal où toute l'eau finit par arriver. Entre les deux se trouve un réseau massif de tuyaux de différentes tailles.

Certains tuyaux sont d'énormes conduites d'eau (haute capacité), tandis que d'autres sont de petits tuyaux résidentiels (basse capacité). La question est : Quelle est la quantité maximale d'eau que vous pouvez pomper de l'usine au réservoir par seconde sans faire éclater de tuyaux ?

En théorie des graphes, ceci est modélisé comme un Réseau de Flux (Flow Network). Un réseau de flux est un graphe orienté où :

2. Les Trois Règles du Flux de Réseau

Pour définir mathématiquement un flux valide à travers ce réseau, nous devons suivre trois règles absolues :

  1. Contrainte de Capacité : Le flux sur n'importe quelle arête ne peut pas dépasser sa capacité. Si un tuyau peut contenir 10 gallons par seconde, vous ne pouvez pas y faire passer 11 gallons. Mathématiquement : 0 ≤ f(u,v) ≤ c(u,v).
  2. Conservation du Flux : Pour chaque nœud du graphe (à l'exception de la Source et du Puits), le flux total entrant dans le nœud doit être exactement égal au flux total sortant du nœud. Les nœuds ne génèrent ni ne consomment de l'eau par magie. Ce qui entre doit sortir.
  3. Symétrie Antisymétrique (Règle optionnelle mais utile) : Le flux du nœud U vers V est l'opposé du flux de V vers U. Si 5 unités s'écoulent de U vers V, alors -5 unités s'écoulent de V vers U.

Le but du Problème de Flux Maximum est de trouver une affectation valide de flux à chaque arête qui maximise le flux total quittant la Source s (qui, en raison de la conservation du flux, sera parfaitement égal au flux total arrivant au Puits t).

3. L'Algorithme de Ford-Fulkerson (Chemins Augmentants)

Pour résoudre le problème du flux maximum, nous utilisons l'algorithme de Ford-Fulkerson, développé en 1956. La logique qui le sous-tend est délicieusement intuitive.

L'algorithme fonctionne comme ceci :

  1. Commencez avec un flux de 0 sur toutes les arêtes.
  2. Trouvez un chemin de la Source au Puits où chaque arête du chemin a une capacité disponible et inutilisée. Cela s'appelle un Chemin Augmentant.
  3. Trouvez l'arête sur ce chemin avec la plus petite capacité disponible. C'est le "goulot d'étranglement".
  4. Poussez une quantité de flux égale à la capacité du goulot d'étranglement tout au long du chemin.
  5. Répétez les étapes 2 à 4 jusqu'à ce qu'aucun autre chemin augmentant ne puisse être trouvé.

Lorsque vous ne pouvez plus trouver de chemin de la Source au Puits pouvant accepter plus de flux, vous avez trouvé le Flux Maximum. Mais attendez, il y a un piège !

4. L'Arme Secrète : Les Graphes Résiduels

Si vous implémentez Ford-Fulkerson exactement comme décrit ci-dessus, vous pourriez obtenir la mauvaise réponse. Pourquoi ? Parce que vous pourriez faire un "mauvais" choix glouton très tôt, en envoyant le flux dans un tuyau qui bloque un bien meilleur itinéraire plus tard.

Pour corriger cela, Ford-Fulkerson utilise un concept brillant appelé le Graphe Résiduel. Le graphe résiduel permet à l'algorithme d'"annuler" les mauvaises décisions.

Chaque fois que vous poussez X unités de flux vers l'avant le long d'une arête de U vers V, vous devez ajouter une "arête inverse" dans le graphe résiduel de V vers U avec une capacité de X. Cette arête inverse représente votre capacité à "repousser" ou à annuler le flux que vous venez d'envoyer.

Si un futur chemin augmentant utilise l'une de ces arêtes inverses, il redirige efficacement l'eau que vous aviez précédemment envoyée dans un tuyau différent et plus optimal. Vous devez toujours rechercher vos chemins augmentants dans le Graphe Résiduel, et non dans le graphe d'origine.

Réseaux de Flux Interactifs

Regardez l'algorithme de Ford-Fulkerson construire dynamiquement le graphe résiduel et trouver des chemins augmentants. Voyez comment le "repoussement" du flux permet à l'algorithme de corriger les erreurs gloutonnes initiales.

Lancer le Visualiseur de Max Flow

5. Le Théorème Max-Flow Min-Cut

Cela nous amène à l'un des théorèmes les plus beaux et les plus profonds de toute la théorie des graphes : Le Théorème Max-Flow Min-Cut.

Imaginez que vous vouliez saboter complètement le système d'eau de la ville. Vous voulez sectionner un ensemble de tuyaux de telle sorte qu'absolument aucune eau ne puisse atteindre le réservoir depuis l'usine de traitement. Naturellement, vous voulez le faire avec le moins d'effort possible, ce qui signifie que vous voulez sectionner des tuyaux dont la capacité totale combinée est aussi petite que possible.

Cela s'appelle une Coupe (Cut). Une coupe s-t divise les nœuds du graphe en deux ensembles : un contenant la Source (s) et un contenant le Puits (t). La capacité de la coupe est la somme des capacités de toutes les arêtes allant de l'ensemble source à l'ensemble puits.

La Coupe Minimum (Min-Cut) est la coupe avec la plus petite capacité totale possible.

Le théorème énonce une équivalence incroyable :

La quantité maximale de flux que vous pouvez pousser à travers un réseau est EXACTEMENT ÉGALE à la capacité de la coupe minimum.

Ce sont les deux faces d'une même pièce. Le goulot d'étranglement qui restreint votre flux est exactement le même goulot d'étranglement que vous cibleriez pour couper le réseau. En résolvant pour Max-Flow (en utilisant Ford-Fulkerson), vous trouvez simultanément la valeur exacte de la Min-Cut.

6. Améliorer Ford-Fulkerson : L'Algorithme d'Edmonds-Karp

Ford-Fulkerson a un défaut : il ne vous dit pas comment trouver le chemin augmentant. Si vous utilisez simplement un parcours en profondeur (DFS) arbitraire, et que votre graphe a des poids d'arêtes très spécifiques, l'algorithme peut s'exécuter de manière incroyablement lente. En fait, avec des capacités d'arêtes irrationnelles, un simple Ford-Fulkerson pourrait même ne jamais se terminer !

En 1972, Jack Edmonds et Richard Karp ont publié une modification simple mais brillante : Trouvez toujours le chemin augmentant le plus court en utilisant un Parcours en Largeur (BFS).

En forçant l'algorithme à trouver des chemins augmentants avec le plus petit nombre d'arêtes (en ignorant la capacité), l'algorithme d'Edmonds-Karp garantit une complexité temporelle polynomiale de O(V * E^2), totalement indépendante des valeurs de capacité réelles sur les arêtes.

7. Applications dans le Monde Réel

Les algorithmes de flux de réseau ne sont pas seulement pour la plomberie. Ils résolvent des problèmes d'affectation et de routage incroyablement complexes en ingénierie logicielle et en recherche opérationnelle.

Couplage Biparti Maximum (Maximum Bipartite Matching)

Imaginez que vous ayez 5 candidats et 5 emplois disponibles. Chaque candidat n'est qualifié que pour certains emplois. Comment attribuez-vous le nombre maximum de personnes à un travail pour lequel elles sont qualifiées ?

Vous pouvez transformer cela en un problème de Max-Flow ! Créez un nœud "Source" et connectez-le à tous les candidats avec une capacité de 1. Connectez les candidats aux emplois pour lesquels ils sont qualifiés avec une capacité de 1. Connectez tous les emplois à un nœud "Puits" avec une capacité de 1. Exécutez Ford-Fulkerson. Le flux maximum sera parfaitement égal au nombre maximum de personnes que vous pouvez employer avec succès.

Segmentation d'Images en Vision par Ordinateur

En vision par ordinateur, séparer un objet (le premier plan) de son arrière-plan est un problème classique. En représentant les pixels comme un graphe, où les arêtes représentent la similitude de couleur entre les pixels voisins, le problème de découper le premier plan de l'arrière-plan peut être parfaitement mis en correspondance avec le problème de Minimum-Cut.

Élimination Sportive

Pendant une saison de baseball, pouvez-vous prouver mathématiquement qu'une équipe est éliminée des playoffs, même si elle gagne tous ses matchs restants ? En créant un réseau de flux représentant les matchs restants entre toutes les autres équipes, vous pouvez utiliser Max-Flow pour prouver s'il existe un scénario où l'équipe pourrait encore remporter la division.

Foire aux questions

Qu'est-ce que le théorème Flot-Max/Coupe-Min ?

Il stipule que le débit maximal de flot allant de la source au puits est égal à la capacité totale des arêtes de la coupe minimale qui sépare ces deux sommets.

Quelle est la différence entre Ford-Fulkerson et Edmonds-Karp ?

Ford-Fulkerson utilise le DFS ou BFS pour trouver des chemins de manière générale, O(E * f). Edmonds-Karp utilise strictement le BFS pour garantir O(V * E²).

Qu'est-ce qu'un graphe résiduel ?

C'est un graphe qui représente la capacité restante des arêtes. Il modélise les chemins possibles restants en tenant compte des flux actuels.

Exploration Supplémentaire

Poussez le Flux

Comprendre les graphes résiduels est difficile sur papier. Utilisez nos outils interactifs pour dessiner des réseaux de flux, définir des capacités et regarder Ford-Fulkerson trouver le flux maximum et la coupe minimum en temps réel.

Lancer le Visualiseur d'Algorithmes