Algorithme de Ford-Fulkerson

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Page d'aide sur l'homonymie Pour les articles homonymes, voir Algorithme de Bellman-Ford.

L'algorithme de Ford-Fulkerson, est un algorithme pour le problème du flot maximum, un problème d'optimisation classique dans le domaine de la recherche opérationnelle. Il est dû à Lester Randolph Ford junior (de) et D. R. Fulkerson.

Problème et exemple[modifier | modifier le code]

Définition du problème[modifier | modifier le code]

Ce problème d'optimisation peut être représenté par un graphe comportant une entrée (à gauche) et une sortie (à droite). Le flot représente la circulation de l'entrée vers la sortie d'où l'utilisation de cet algorithme dans les problèmes de réseaux. Les applications sont multiples : problèmes informatiques, routiers, ferroviaires, etc. Il s'applique également à tous les autres problèmes de transferts comme les importations/exportations, les flux migratoires, démographiques mais aussi sur les flux plus abstraits tels que les transferts financiers. Pour les données de très grande taille, il existe plusieurs algorithmes plus performants pour résoudre le même problème connu sous le nom de problème de flot maximum.

Exemple d'application[modifier | modifier le code]

Une société de fret dispose de trois centres : un à Paris, le deuxième à Lyon, le troisième à Marseille.
Trois destinations sont possibles : la Pologne, la Suède, la Grèce.

Chacun des centres de fret a une capacité maximale de transport ainsi qu'un stock initial de marchandises. De même, chaque pays d'arrivée a une demande maximale pour les importations.

L'algorithme de Ford-Fulkerson va permettre d'optimiser ces flux à l'aide d'un outil de modélisation mathématique. La structure sous-jacente est représentée par un graphe orienté dont le sommet de gauche symbolise le stock initial. Celui-ci est relié à chacun des premiers arcs ou arêtes.

Dans l'exemple présent, la matrice associée porte donc dans sa première colonne les valeurs des dits stocks. Inversement, à l'extrémité de la chaîne, la matrice associée comprendra dans sa dernière colonne les demandes respectives des pays cités. Les sommets centraux comprendront les différentes combinaisons de fret maximal d'un point à l'autre.

Le problème peut être généralisé à une circulation dans un réseau (véhicules, fluides, monnaie, etc.), les grandeurs mathématiques remplaçant indistinctement les faits réels qu'elles sont censées représenter.

Algorithme[modifier | modifier le code]

Il s'agit d'un algorithme itératif. À chaque itération, la solution courante est un flot qui satisfait les contraintes de capacité (c'est donc un flot réalisable) et l'algorithme essaie d'augmenter la valeur de ce flot.

Considérons un flux possible dont les sous-ensembles sont les différents flux associés à chaque arête ou arc du graphe. À chaque itération de la boucle, deux sous-procédures viennent compléter le processus :

  • le « marquage » qui consiste à tester si une amélioration du flux est possible ;
  • le changement de flux, soit la procédure qui donne la meilleure solution à partir de l'observation précédente.

En pseudo-code informatique, l'algorithme peut se présenter ainsi :

  • initialisation ;
  • tant que les sommets ne sont pas marqués :
    • sélectionner un sommet non marqué, tous les précédents ayant été marqués et en déterminer la marque,
    • mettre à jour l'ensemble des sommets marqués ;
  • fin.

Propriétés de l'algorithme[modifier | modifier le code]

Complexité[modifier | modifier le code]

Autres propriétés[modifier | modifier le code]

Si les capacités des arêtes du graphe sont irrationnelles, il est possible que l'algorithme ne termine pas[1],[2].

Notes et références[modifier | modifier le code]

  1. Lester Randolph Ford et Delbert Ray Fulkerson, Flows in Networks, Princeton, NJ, Princeton University Press,‎ 1962
  2. Uri Zwick, « The Smallest Networks on Which the Ford-Fulkerson Maximum Flow Procedure may Fail to Terminate », Theor. Comput. Sci., vol. 148, no 1,‎ 1995, p. 165-170 (DOI 10.1016/0304-3975(95)00022-O)

Voir aussi[modifier | modifier le code]

Liens externes[modifier | modifier le code]

Bibliographie[modifier | modifier le code]

Sur les autres projets Wikimedia :

  • A simple algorithm for finding maximal network flows and an application to the Hitchock problem(FORD L.R. ,FULKERSON D.R ), Rand Report Rand Corporation, Santa Monica, décembre 1955.
  • Lester R. Ford et Delbert R. Fulkerson, « Maximal flow through a network », Canadian journal of Mathematics, vol. 8, no 3,‎ 1956, p. 399-404
  • The transhipment problem (ORDEN A.), Management Science 2, 1956.
  • Sur la déficience d'un réseau infini (BERGE C.), Comptes rendus de l'Académie des Sciences 245, 1957.
  • Invitation à la recherche opérationnelle (KAUFMANN A., FAURE R.) Dunod Entreprise, 1979.
  • Contribution de la théorie des graphes à l'étude des problèmes d'ordonnancement (ROY B.) Congrès international de recherche opérationnelle, 1960.
  • Lester Randolph Ford et Delbert Ray Fulkerson, Flows in Networks, Princeton, NJ, Princeton University Press,‎ 1962