Vous êtes sur la page 1sur 16

Recherche Opérationnelle

Théorie desgraphes

Algorithme de Ford-Fulkerson

HASSANI EL FERHANI TAHIRI


Ibrahim Amine Hamza
TEL : 0657713004 TEL : 0678661588 TEL : 0636620305
Email : ibrahssn2@gmail.com Email : elfarhani.amine@gmail.com Email : hamzatahiri602@gmail.com

Réalisé par : Encadré par :


HASSANI Ibrahim Mme. AKEF
TAHIRI Hamza
EL FERHANI Amine
1
PLAN:

 Introduction et Historique
 Rappels et Définitions
 Flot dans un graphe
 PROBLÈME DE FLOT
 Algorithme de Ford-Fulkerson
 Conclusion

2
Introduction :

En informatique, l'algorithme de Ford-Fulkerson est un algorithme pour le problème de flot


maximum, un problème d'optimisation classique dans le domaine de la recherche
opérationnelle. Il est dû à Lester Randolph Ford junior et Delbert Ray Fulkerson et c'est une
variante de l'algorithme de Busacker et Gowen.
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 des flux purement numériques tels que les transferts
financiers.

Historique :

Delbert Ray Fulkerson (14 août 1924-10 janvier 1976) est un mathématicien américain,
coauteur de l'algorithme de Ford-Fulkerson. On a donné son nom au prix Fulkerson, qui
récompense tous les trois ans des articles dans le domaine des mathématiques discrètes.

3
Rappels et Définitions
Graphe

Graphe valué :

4
Représentation d’un graphe

Flot dans un graphe


Le problème du flot maximal est l’un des problèmes des réseaux de
transport.
Un réseau est un graphe orienté, G = (E, Γ, c).
Exemple :
 Problèmes de circulation d’objets (voiture, information ...) dans un
réseau
(routier, informatique ...).
Définition :
Soit G = (E, Γ, c), un graphe valué comportant un seul sommet source s et
un seul sommet puits t.
• Un flot de s à t est une fonction f : Γ →R tq
Exemple :

5
Pour tout sommet j ≠ s, t. On dit qu’il y a conservation du flux au sommet j ("ce
qui rentre égale ce qui sort").
Le flot est dit réalisable si pour toute arête (i, j) ∈ Γ, on a
0≤ fij ≤ cij
Un arc (i,j) est dit saturé pour un flot f si f (i,j) = c(i,j).

PROBLÈME DE FLOTS
Réseau de transport :
Graphe orienté avec pour chaque arc une capacité.
La capacité c (u, v) est un entier positif ou nul.
Il y a aussi une source s et un puits t.
Aucun arc n'arrive à la source et aucun arc ne quitte le puits.

Un flot est une fonction entière positive ou nulle f définie sur les arcs
satisfaisant:
Contrainte de capacité : f(u, v) ≤ c(u, v)
Symétrie : f(u, v) = – f(v, u)
Conservation du flot : pour tout sommet autre que s et t, la somme des
flots sur les arcs entrants et la somme des flots sur les arcs sortants sont égales
("Loi de Kirchhoff").

6
Chemin améliorant

Amélioration d’un flot

7
Algorithme de Ford-Fulkerson
BUT :
L’algorithme de Ford-Fulkerson permet de trouver un flot maximal par
recherche de chaînes améliorantes. Il est basé sur le résultat suivant :

Coupe d’un graphe

Exemple :

Le théorème de Ford-Fulkerson permet de savoir si un flot est maximal ou non.


Par exemple :

8
Coupe minimale d’un graphe

9
Exercice :
En période de grande affluence (présence de nombreuses personnes en un même
lieu), on dispose d’une flotte d’autobus pour faire visiter les différents postes
d’observation d’un parc touristique.
La réglementation limite le nombre d’autobus pouvant circuler sur chaque tronçon
de route.

Résolution

Identifier un chemin d’augmentation : O->B->E->T


ε+= min{7,5,6} = 5
Donc ε=5

Augmenter le flot de 5 unités sur tous les arcs de O->B->E->T

10
F=5

Identifier un chemin d’augmentation : O->A->D->T


ε+= min{5,3,9} = 3

Augmenter le flot de 3 unités sur tous les arcs de O->A->D->T


F=8

Chemin d’augmentation : O->A->B->D->T


ε+= min{2,1,4,6} = 1

11
Augmenter le flot d’une unité sur tous les arcs de : O->A->B->D->T
F=9

Chemin d’augmentation : O->B->D->T


ε+= min{2,3,5} = 2

Augmenter le flot de 2 unités sur tous les arcs de : O->B->D->T


F=11

12
Chemin d’augmentation : O->C->E->D->T
ε+ = min{4,4,1,3} = 1

Augmenter le flot d’une unité sur tous les arcs de : O->C->E->D->T


F=12

Chemin d’augmentation : O->C->E->T


ε+ = min{4,3,1} = 1

13
Augmenter le flot d’une unité sur tous les arcs de : O->C->E->T
F=13

Chemin d’augmentation : O->C->E->B->D->T


ε+ = min{3,2,1,2} = 1
ε- = min{5} = 5
ε= min{ε+ , ε- } =1

Augmenter le flot d’une unité sur tous les arcs de : O->C->E et B->D->T
Et le diminuer sur l’arc E->B car c’est une arrête inverse
F=14

14
Coupe minimal
C=14=v(f)

Aucun chemin d’augmentation possible

Donc on atteint le Flot maximum

15
Conclusion

Le flot maximal est atteint quand plus aucun chemin améliorant ne peut être
trouvé.
Dans le cas où l'algorithme s'exécute indéfiniment, le flot peut même ne pas
converger vers le flot maximum. Néanmoins, cette situation ne se produit qu'avec
des valeurs de flot irrationnelles.
Une variante de l'algorithme de Ford-Fulkerson avec terminaison garantie et un
temps d'exécution indépendant de la valeur de flot maximal est l' algorithme
d'Edmonds-Karp.

16

Vous aimerez peut-être aussi