Vous êtes sur la page 1sur 42

Les flux de

réseau
Algorithme de Ford Fulkerson

Réalisé par :
IFSAR Adel Sous la demande de :
CHAHID Amina Mr. NOKRANE
ANAFLOUS Hajar
AIT THAMI Majida
MILAL Bouchra
LP STAD
2021-2022
INTRODUCTION :

L’être humain passe la majeure partie de son temps à résoudre


des problèmes auxquels il se confronte en mettant en place
des procédés encore appelés algorithmes. une bonne partie
du raisonnement humain est L’algorithmique.
parmi ces problèmes on a le problème du flot maximal qui
concerne les réseaux informatiques, routiers…,
pour le résoudre on applique l’algorithme de Ford-Fulkerson
Plan

1 Problématique

2 Notions de base

3 Algorithme de Ford Fulkerson

4 Exemples d’application
Problématique
Flot maximal

Deux châteaux d'eau alimentent 3 villes à travers un réseau de canalisations au sein


duquel se trouvent également des stations de pompage.
Les châteaux d'eau ont une capacité limitée qui s'élève pour chacun d'eux à
100 000 m3.
Les villes ont exprimé une demande qui est au minimum de 50 000 pour la ville 1,
40 000 pour la ville 2 et 80 000 pour la ville 3 en m3.
Les canalisations entre les châteaux d’eau et les villes ont des débits limités. Par
exemple, pour la canalisation reliant le château 1 à la ville 1, le débit maximum est
de 30 alors que celui de la canalisation reliant la station de pompage 1 à la ville 2 est
de 50 en milliers de m3.
Problématique
Flot maximal
Les flots
Notions de base :

a b
3 3
5
3 0 6
10
4
S 3 c
1 1 t
3
7 4
7 3
1 3
e 4
8
d
Un réseau
Un graphe orienté
Hypothèses pour simplifier :
Capacité de l’arc S n’a pas d’arcs entrant
3 t n’a pas d’arcs sortants
5

4 1
(Source) S 3
1 t (puits)

4 3
7

Un réseau à flots
Un flot

u v Quantité de flot sur l’arc < Capacité de l’arc


2 5 (circulant de u vers v )

Contrainte de capacité
Quantité de flot sur un arc < capacité de cet arc

10 Il rentre en u une quantité de flot de 2+3=5


2 5 1 Il doit sortir de u une quantité de flot de 5
u
4 6
3 3 0 2 Contrainte de conservation
Tout ce qui rentre en un somment doit en sor-
tir
Sauf à la source et au puits
La valeur d’un flot

2 3
5 Un flot valide
2 1 2
10
4
3 Sa valeur est 6
S t
1 1 1
4 4
7 3
0 3
Il rentre 2+1+3=6 en t
Il sort 2+4=6 de s
3
8

la valeur d’un flot


La quantité de flot qui entre en t ou la quantité qui sort de s
Maximiser les valeurs d’un flot
100
1 100
100 1
1 1 100

s t
0 100
0 100 1 1 100 0 100
0
100
Il sort 1 de s 0 100
0
100 0 0 Il rentre 1 de t
100

Valeur du flot =1

C’est un flot de valeur maximale


Algorithme de Ford Fulkerson
a b
2

4 10
3

4
S T
Capacité de l’arc c 1

1
3
8

e d
Algorithme de Ford Fulkerson
a b
Valeur d’un flot : la quantité du flot qui sort de
2 0 S ou qui rentre en T

4 10

4 0
3
Flot initial nul
0 (Valeur 0)
0
S 4 3
0 T
c 1

9 0

0
1 0
3
8 0 3

e d
Algorithme de Ford Fulkerson
a b
Valeur d’un flot : la quantité du flot qui sort de
2 0 S ou qui rentre en T

4 10

3
3
Flot initial nul
0 (Valeur 0)
0
S 4
• Flot 1(Valeur 3)
3 T
c 1

9 0

0
1 3
3
8 0

e d
Algorithme de Ford Fulkerson
Quand vous
trouverez une
Chaine améliorante a b
0 Valeur d’un flot : la quantité du flot qui sort de S
Il faut améliorer 2
ou qui rentre en T
4 10
3 •
3
0 Flot initial nul
0
4 (Valeur 0)
S 3 1 T • Flot 1(Valeur 3)
c 1 0

9 0
1
9 0 3
1
3
8 0

e 8 d
Algorithme de Ford Fulkerson
a b
0 Valeur d’un flot : la quantité du flot qui sort de S
2
ou qui rentre en T
4 10
3 •
3
0 Flot initial nul
0
4 (Valeur 0)
S 3
T • Flot 1(Valeur 3)
1 1 •
c Flot 2 (Valeur 4)
9 1

1 3
1
3
8 1

e d
Algorithme de Ford Fulkerson
2
a b
0 Valeur d’un flot : la quantité du flot qui sort de S
2
ou qui rentre en T
10
4 10
3 •
3
0 Flot initial nul
0
4 (Valeur 0)
S -3 3
T • Flot 1(Valeur 3)
1 1 •
c Flot 2 (Valeur 4)
9 1

1 3
8 1
3
8 1
Si on prend dans une chaine un arc à
e 7 d l’envers : Il faut diminuer sa quantité
du flot
Algorithme de Ford Fulkerson
a b
2 0 +2 Valeur d’un flot : la quantité du flot qui sort de S
ou qui rentre en T
4 10
3 •
3 0 +2 Flot initial nul
0
4 (Valeur 0)
S 3 -2
T • Flot 1(Valeur 3)
1 1 •
c Flot 2 (Valeur 4)
9 1
3
+2 1 1
3
8 1 +2
Si on prend dans une chaine un arc à
e d l’envers : Il faut diminuer sa quantité
du flot
Algorithme de Ford Fulkerson
a b
2 2 Valeur d’un flot : la quantité du flot qui sort de S
ou qui rentre en T
4 10
3 •
3 2 Flot initial nul
0
4 (Valeur 0)
S 1
T • Flot 1(Valeur 3)
1 1 •
c Flot 2 (Valeur 4)
• Flot 3 (Valeur 6)
9 1

3 3
1
3
8 3
Si on prend dans une chaine un arc à
e d l’envers : Il faut diminuer sa quantité
du flot
Algorithme de Ford Fulkerson
a b
2 2 Valeur d’un flot : la quantité du flot qui sort de S
ou qui rentre en T
4 10
3 •
3 2 Flot initial nul
0
4 (Valeur 0)
S 1
T • Flot 1(Valeur 3)
1 1 •
c Flot 2 (Valeur 4)
• Flot 3 (Valeur 6)
9 1

3 3
1
3
8 3
e d
Algorithme de Ford Fulkerson
a b
2 2 Valeur d’un flot : la quantité du flot qui sort de S
ou qui rentre en T
4 10
3 •
3 2 Flot initial nul
0
4 (Valeur 0)
S 1
T • Flot 1(Valeur 3)
1 1 •
c Flot 2 (Valeur 4)
• Flot 3 (Valeur 6)
9 1

3 3
1
3 Flot Optimal
8 3
e d
La chaine améliorante
1000
1000
a
Capacité de l’arc

0 1000 0 1000

0 t +1000
s 1

0 1000
0 1000

b
La chaine améliorante
1000
1000
a
1000 Capacité de l’arc
1000
1000
1000

0 t +1000
s 1
1000
+1000
1000 0 1000
0 1000

b 1000
1000 La valeur du flot :2000
La chaine améliorante

a
1000
1000
1000
1000 La valeur du flot :2000

0 t
s 1
1000
1000 1000
1000
Résultat trouvé après
deux étapes
b
La chaine améliorante

1000 a

0 1000 0 1000

0 t +1
s 1

1
0 1000
0 1000

1000

b
La chaine améliorante
+1
a 1000

1 1000 1 1000

1 t
s 1

-1
1 1000
1 1000 +1
1000
b
La chaine améliorante

a La valeur du flot : 2

+1
1 1000 1 1000
+1
0 t +1
s 1
+1
1

1000
1 1000

La valeur du flot : 2000


b
Résultat trouvé après
2000 étapes!!
La chaine améliorante
L’algorithme de Ford-Fulkerson construit toujours un flot de valeur max.

MAIS

Le choix des chaines améliorantes a un impact sur le nombre d’itérations

2 étapes 2000 étapes


Exemple d’application
Affecter des taches à des personnes

T1

Fred T2
1. Construire un réseau à flot associé à ce
Nora T3 graphe
2. Construire un flot de valeur maximale
Isa T4
3. Retirer une affectation des taches à des
Lola T5
personnes
A B

Graphe biparti G
Etape 1

1
1 1 1
s 1 1 1 1 t
1
1 1
1 1 1
1
1 1 1

1
1

Réseau à flot associé à G


Etape 2

0 1
1 1 1 0
s 0
1 1 0 1 1 0 t
0 1 0
0 1 1 0 0
0 1
0 1 1 1 0
0 1
1 0 1 0

0 1 1
0
Etape 2

s t

Flot de valeur maxe

1
Etape 3

T1

Fred T2

Nora T3

Isa T4

Lola T5

A B

1
2 Exemple:
éme

Avant d'établir un projet de construction d'autoroute on désire étudier la capacité du


réseau routier reliant la ville E à la ville S.
Quel est le nombre maximal des véhicules pouvant transiter de E à S par heure ?

0/4
0 1 3 0/1
0/1 0

s 0/6
t
0/2 0/8

0/1 0
0 0/1
2 4
0/9
2 Exemple:
éme

Avant d'établir un projet de construction d'autoroute on désire étudier la capacité du


réseau routier reliant la ville E à la ville S.
Quel est le nombre maximal des véhicules pouvant transiter de E à S par heure ?

0/4
8 10 1 3 0/1
0/ 0

s 0/6
t
0/2 0
8 /8
0/1 0
0 0/1
2 4 8
0/9
2 Exemple:
éme

Avant d'établir un projet de construction d'autoroute on désire étudier la capacité du


réseau routier reliant la ville E à la ville S.
Quel est le nombre maximal des véhicules pouvant transiter de E à S par heure ?

0/4
0 1 3 0/1
8/1 0

s
1/2 8/8 0/6
t 8

0
2 /10 8/1
0
2 4 2
0/9
2
2 Exemple:
éme

Avant d'établir un projet de construction d'autoroute on désire étudier la capacité du


réseau routier reliant la ville E à la ville S.
Quel est le nombre maximal des véhicules pouvant transiter de E à S par heure ?

4
0/4 4
0 1 3 0/1
8/1 0

s
0/2 8 0/6
t 10
- 4 /8
2 0
4 /10 10
/ 1
2 4
2/9
4
2 Exemple:
éme

Avant d'établir un projet de construction d'autoroute on désire étudier la capacité du


réseau routier reliant la ville E à la ville S.
Quel est le nombre maximal des véhicules pouvant transiter de E à S par heure ?

4/4 2
2 10 1 3 4/1
8/ 0

s 2 t 14
0/2 4 0/6
2 /8
6/1 10
0 /
10
2 4
6/9
2 Exemple:
éme

Avant d'établir un projet de construction d'autoroute on désire étudier la capacité du


réseau routier reliant la ville E à la ville S.
Quel est le nombre maximal des véhicules pouvant transiter de E à S par heure ?

4/4 3
/ 10 1 3 6/1
10 0

3
s
0/2 6/8 2/6
t 16

6 0
3 /10 10
/ 1
2 4
6/9
3
2 Exemple:
éme

Avant d'établir un projet de construction d'autoroute on désire étudier la capacité du


réseau routier reliant la ville E à la ville S.
Quel est le nombre maximal des véhicules pouvant transiter de E à S par heure ?

4/4 1
/ 10 1 3 9/1
10 0

1
s
0/2 6 5/6
t 19
1 1 /8
9 0
1 /10 10
/ 1
2 4
9/9
2 Exemple:
éme

Avant d'établir un projet de construction d'autoroute on désire étudier la capacité du


réseau routier reliant la ville E à la ville S.
Quel est le nombre maximal des véhicules pouvant transiter de E à S par heure ?

4/4
/ 10 1 3 10/
10 10

s
1/2 7/8 6/6
t 20

10 10
/10 /
10
2 4
9/9
Conclusion :

L’algorithme de Ford-Fulkerson est efficace juste pour les données de petite taille,
pour résoudre le problème du flot maximal pour des données de grande taille nous
vous invitons à utiliser d’autres algorithmes plus performants tel que l’algorithme
de Edmons-Karp ou de Y-Dinitz qui sont des variantes de l’algorithme de
Ford-Fulkerson.
MERCI DE
VOTRE
ATTENTION

Vous aimerez peut-être aussi