Vous êtes sur la page 1sur 44

Graphes – notions de base des flots

Définition et vocabulaire

Cycle ingénieur
UV FUNS
Benjamin Allaert
Un réseau

Un graphe orienté

Cycle ingénieur
UV FUNS
Benjamin Allaert
Un réseau

Un graphe orienté

S (source) T (puit)

Cycle ingénieur
UV FUNS
Benjamin Allaert
Un réseau

Un graphe orienté

S (source) T (puit)

Cycle ingénieur
UV FUNS
Benjamin Allaert
Un réseau

Un graphe orienté Hypothèses pour simplifier :


S n’a pas d’arcs entrants
T n’a pas d’arcs sortants

S (source) T (puit)

Cycle ingénieur
UV FUNS
Benjamin Allaert
Un réseau

Un graphe orienté Hypothèses pour simplifier :


S n’a pas d’arcs entrants
T n’a pas d’arcs sortants
Capacité de l’arc

5 10
4

3 1
S (source) T (puit)
9
4 3

Cycle ingénieur
UV FUNS
Benjamin Allaert
Un réseau

Un graphe orienté Hypothèses pour simplifier :


S n’a pas d’arcs entrants
T n’a pas d’arcs sortants
Capacité de l’arc

5 10
4

3 1
S (source) T (puit)
9
4 3

Un réseau à flots (ou réseau de transport)

Cycle ingénieur
UV FUNS
Benjamin Allaert
Un flot

u v
5 Capacité de l’arc

Cycle ingénieur
UV FUNS
Benjamin Allaert
Un flot

u v
Quantité de flot sur l’arc
2 5 Capacité de l’arc
(circulant de u vers v)

Cycle ingénieur
UV FUNS
Benjamin Allaert
Un flot

u v
Quantité de flot sur l’arc
2 5 Capacité de l’arc
(circulant de u vers v)

Contrainte de capacité :
Quantité de flot sur un arc ≤ capacité de cet arc

Cycle ingénieur
UV FUNS
Benjamin Allaert
Un flot

u v
Quantité de flot sur l’arc
2 5 Capacité de l’arc
(circulant de u vers v)

Contrainte de capacité :
Quantité de flot sur un arc ≤ capacité de cet arc

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


5 u 1
Il doit sortir de u une quantité de flot de 5
4 6
3 0 Contrainte de conservation :
3 2
Tout ce qui rentre en un sommet doit en sortir

(sauf à la source et au puit)

Cycle ingénieur
UV FUNS
Benjamin Allaert
La valeur d’un flot

a b
3

5
10
4 c
S 3 1 T

4 3
7

e 8

Cycle ingénieur
UV FUNS
Benjamin Allaert
La valeur d’un flot

a b
2 3

5 1 2
2 10
4 c
S 3 1 T
1
1
4 4 3
7 3
1

3 8
e

Cycle ingénieur
UV FUNS
Benjamin Allaert
La valeur d’un flot
Ceci est un flot valide

a b
2 3

5 1 2
2 10
4 c
S 3 1 T
1
1
4 4 3
7 3
1
Il sort 2 + 6 = 6 de s
3 8 Il rentre 2 + 1 + 3 en t
e

Cycle ingénieur
UV FUNS
Benjamin Allaert
La valeur d’un flot
Ceci est un flot valide
Sa valeur est 6
a b
2 3

5 1 2
2 10
4 c
S 3 1 T
1
1
4 4 3
7 3
1
Il sort 2 + 6 = 6 de s
3 8 Il rentre 2 + 1 + 3 en t
e

d
Valeur d’un flot :
Quantité de flot qui entre en t (ou quantité de flot qui sort de s)
Cycle ingénieur
UV FUNS
Benjamin Allaert
Maximiser la valeur d’un flot

S T

Cycle ingénieur
UV FUNS
Benjamin Allaert
Maximiser la valeur d’un flot

1000 1000
1000 1000

S T
1000 1000 1000 1000

1000 1000
1000 1000

Cycle ingénieur
UV FUNS
Benjamin Allaert
Maximiser la valeur d’un flot

1000 1000
1000 1000

S T
1000 1000 1 1000 1000

1000 1000
1000 1000

Cycle ingénieur
UV FUNS
Benjamin Allaert
Maximiser la valeur d’un flot

1 1
1000 1000
1000 1000
1 1
S T
1000 1000 1 1 1000 1000

1000 1000
1000 1000

Cycle ingénieur
UV FUNS
Benjamin Allaert
Maximiser la valeur d’un flot

1 1
1000 1000
1000 1000
1 1
S T
0 1000 0 1000 1 1 0 1000 0 1000

0 0
1000 1000
1000 1000
0 0

Cycle ingénieur
UV FUNS
Benjamin Allaert
Maximiser la valeur d’un flot

1 1
1000 1000
1000 1000
1 1
S T
0 1000 0 1000 1 1 0 1000 0 1000

0 0
1000 1000
1000 1000
0 0
Il sort 1 de s Il rentre 1 en t

Valeur du flot : 1

C’est un flot de valeur maximale

Cycle ingénieur
UV FUNS
Benjamin Allaert
Maximiser la valeur d’un flot

a b
3

5
10
4 c
S 3 1 T

4 3
7

e 8

Cycle ingénieur
UV FUNS
Benjamin Allaert
Maximiser la valeur d’un flot

a b
3 3

5 0 6
3 10
4 c
S 3 1 T
1
3
7 4 3
7 3
1

4 8
e Valeur du flot : 10

Cycle ingénieur
UV FUNS
Benjamin Allaert
Maximiser la valeur d’un flot

Recherche par st-coupe


a b
3 3

5 0 6
3 10
4 c
S 3 1 T
1
3
7 4 3
7 3
1
{S} vs {T,a,e,b,d,c} 4 8
e Valeur du flot : 10
(S,a) capacité 5
(S,e) capacité 7 d
Capacité de la st-coupe = 7 + 5 = 12
Somme des capacités = 12

Cycle ingénieur
UV FUNS
Benjamin Allaert
Maximiser la valeur d’un flot {S} vs {T,a,e,b,d,c} = 12

Recherche par st-coupe


a b
3 3

5 0 6
3 10
4 c
S 3 1 T
1
3
7 4 3
7 3
1

{S,a,e} vs {T,b,d,c} 4 8
e Valeur du flot : 10
(a,b) capacité 3
(e,b) capacité 3 d
(e,d) capacité 8
Capacité de la st-coupe = 3 + 3 + 8 = 14 Somme des capacités = 14

Cycle ingénieur
UV FUNS
Benjamin Allaert
Maximiser la valeur d’un flot {S} vs {T,a,e,b,d,c} = 12
{S,a,e} vs {T,b,d,c} = 14

a b
3 3

5 0 6
3 10
4 c
S 3 1 T
1
3
7 4 3
7 3
1

{S,a,e,d,c} vs {T,b} 4 8
e Valeur du flot : 10
(a,b) capacité 3
(e,b) capacité 3 d
(c,T) capacité 1
(d,T) capacité 3 Somme des capacités = 10
Capacité de la st-coupe = 3 + 3 + 3 + 1 = 10
Cycle ingénieur
UV FUNS
Benjamin Allaert
Maximiser la valeur d’un flot {S} vs {T,a,e,b,d,c} = 12
{S,a,e} vs {T,b,d,c} = 14
{S,a,e,d,c} vs {T,b} = 10
a b
3 3

5 0 6
3 10
4 c
S 3 1 T
1
3
7 4 3
7 3
1

4 8
e Valeur du flot : 10

d
La capacité de la st-coupe est de 3 + 3 + 1 + 3 = 10 Somme des capacités = 10
=> Aucun flot ne peut avoir de valeur supérieure à 10
Cycle ingénieur
UV FUNS
Benjamin Allaert
Maximiser la valeur d’un flot

a b

5 0 6
3 10
4 c
S T

7 4
7
1

4 8
e Valeur du flot : 10

d
La capacité de la st-coupe est de 3 + 3 + 1 + 3 = 10 Somme des capacités = 10
=> Aucun flot ne peut avoir de valeur supérieure à 10
Cycle ingénieur
UV FUNS
Benjamin Allaert
Construire un flot de valeur maximale
Algorithme de Ford-Fulkerson

Cycle ingénieur
UV FUNS
Benjamin Allaert
Maximiser la valeur d’un flot

a b
3

4
10
4 c
S 3 1 T

1 3
9

e 8

Cycle ingénieur
UV FUNS
Benjamin Allaert
Maximiser la valeur d’un flot

Flot initial nul (valeur 0)

a b
0 3

4 0 0
0 10
0 4 c
S 3 0 1 T

0 1 0 3
9 0

0
e 8

Cycle ingénieur
UV FUNS
Benjamin Allaert
Maximiser la valeur d’un flot

Flot initial nul (valeur 0)

a b
4 0 3

4 0 0
0 10
0 4 c
S 3 0 1 T

0
3 1 3
0
9 0

e
0
8 3
d

Cycle ingénieur
UV FUNS
Benjamin Allaert
Maximiser la valeur d’un flot

Flot initial nul (valeur 0) Flot 1 (valeur 3)

a b
0 3

4 0 0
3 10
3 4 c
S 3 0 1 T

0 1 3 3
9 0

0
e 8

Cycle ingénieur
UV FUNS
Benjamin Allaert
Maximiser la valeur d’un flot

Flot initial nul (valeur 0) Flot 1 (valeur 3)

a b
0 3

4 0 0
3 10
3 4 c
S 3 0 1 T
1
0
9
1 1 3 3
0

9 e
0
8

8 d

Cycle ingénieur
UV FUNS
Benjamin Allaert
Maximiser la valeur d’un flot

Flot initial nul (valeur 0) Flot 1 (valeur 3) Flot 2 (valeur 4)

a b
0 3

4 0 0
3 10
3 4 c
S 3 1 1 T

1 1 3 3
9 1

1
e 8

Cycle ingénieur
UV FUNS
Benjamin Allaert
Maximiser la valeur d’un flot

Flot initial nul (valeur 0) Flot 1 (valeur 3) Flot 2 (valeur 4)

a
3 b
1 0 3
10

4 0 0
3 10
3 4 c
S 3 1 1 T

1 1 3 3
9 1

1
e 8

Cycle ingénieur
UV FUNS
Benjamin Allaert
Maximiser la valeur d’un flot

Flot initial nul (valeur 0) Flot 1 (valeur 3) Flot 2 (valeur 4) Flot 3 (valeur 5)

a b
1 3

4 0 1
4 10
3 4 c
S 3 1 1 T

1 1 3 3
9 1

1
e 8

Cycle ingénieur
UV FUNS
Benjamin Allaert
Maximiser la valeur d’un flot

Flot initial nul (valeur 0) Flot 1 (valeur 3) Flot 2 (valeur 4) Flot 3 (valeur 5)

a
2 b
1 3 9
4 0 1
4 10
3 -3 4 c
S 3 1 1 T

1 1 3 3
9 1

8 e
1
8

7 d

Cycle ingénieur
UV FUNS
Benjamin Allaert
Maximiser la valeur d’un flot

Flot initial nul (valeur 0) Flot 1 (valeur 3) Flot 2 (valeur 4) Flot 3 (valeur 5) Flot 4 (valeur 7)

a b
3 3

4 0 3
4 10
1 4 c
S 3 1 1 T

3 1 3 3
9 1

3
e 8

Cycle ingénieur
UV FUNS
Benjamin Allaert
Maximiser la valeur d’un flot

Flot initial nul (valeur 0) Flot 1 (valeur 3) Flot 2 (valeur 4) Flot 3 (valeur 5) Flot 4 (valeur 7)

a b
3 3

4 0 3
4 10
1 4 c
S 3 1 1 T

3 1 3 3
9 1

3
e 8

Cycle ingénieur
UV FUNS
Benjamin Allaert
Maximiser la valeur d’un flot

Flot initial nul (valeur 0) Flot 1 (valeur 3) Flot 2 (valeur 4) Flot 3 (valeur 5) Flot 4 (valeur 7)

a b
3 3

4 0 3
4 10
1 4 c
S 3 1 1 T

3 1 3 3
9 1

3
e 8

Cycle ingénieur
UV FUNS
Benjamin Allaert
Maximiser la valeur d’un flot

Flot initial nul (valeur 0) Flot 1 (valeur 3) Flot 2 (valeur 4) Flot 3 (valeur 5) Flot 4 (valeur 7)

a b
3 3

4 0 3
4 10
1 4 c
S 3 1 1 T

3 1 3 3
9 1

3
e 8

La capacité de la st-coupe est de 3 + 1 + 3 = 7 d


Somme des capacités = 7
=> Aucun flot ne peut avoir de valeur supérieure à 7
Cycle ingénieur
UV FUNS
Benjamin Allaert
Maximiser la valeur d’un flot

Flot initial nul (valeur 0) Flot 1 (valeur 3) Flot 2 (valeur 4) Flot 3 (valeur 5) Flot 4 (valeur 7)

a b
3 3

4 0 3
4 10
1 4 c
S 3 1 1 T

3 1 3 3
9 1

3
e 8

La capacité de la st-coupe est de 3 + 1 + 3 = 7 d


Somme des capacités = 7
=> Aucun flot ne peut avoir de valeur supérieure à 7
Cycle ingénieur
UV FUNS
Benjamin Allaert
Maximiser la valeur d’un flot

Flot initial nul (valeur 0) Flot 1 (valeur 3) Flot 2 (valeur 4) Flot 3 (valeur 5) Flot 4 (valeur 7) Flot optimal

a b
3 3

4 0 3
4 10
1 4 c
S 3 1 1 T

3 1 3 3
9 1

3
e 8

La capacité de la st-coupe est de 3 + 1 + 3 = 7 d


Somme des capacités = 7
=> Aucun flot ne peut avoir de valeur supérieure à 7
Cycle ingénieur
UV FUNS
Benjamin Allaert

Vous aimerez peut-être aussi