• Aucun résultat trouvé

Chapitre 8 : Flots dans les r´eseaux Algorithmique de graphes Sup Galil´ee-INFO2 Sylvie Borne 2011-2012

N/A
N/A
Protected

Academic year: 2022

Partager "Chapitre 8 : Flots dans les r´eseaux Algorithmique de graphes Sup Galil´ee-INFO2 Sylvie Borne 2011-2012"

Copied!
57
0
0

Texte intégral

(1)

Chapitre 8 : Flots dans les r´ eseaux

Algorithmique de graphes Sup Galil´ee-INFO2

Sylvie Borne

2011-2012

Chapitre 8 : Flots dans les r´eseaux - 1/57

(2)

Plan

1 Flot r´ealisable

2 Le probl`eme du flot maximum Exemple

Plusieurs sources, plusieurs puits

Flot maximum et programmation lin´eaire

3 Chaˆınes augmentantes

4 Algorithme de Ford et Fulkerson (1961) Proc´edure de marquage (labelling) Algorithme de la chaˆıne augmentante Algorithme de Ford et Fulkerson

5 La coupe minimum

6 Impl´ementation et complexit´e de l’algorithme de Ford et Fulkerson

Chapitre 8 : Flots dans les r´eseaux - 2/57

(3)

Probl` eme de flot

Probl`eme de plus court chemin

→une personne seule de la source `a la destination.

Probl`eme de flot

→acheminement d’une quantit´e de marchandises (divisibles : on peut acheminer nos marchandises par des routes diff´erentes) de la source vers la destination.

Chapitre 8 : Flots dans les r´eseaux - 3/57

(4)

Probl` eme de flot : Applications

Applications :

logistique : transport de marchandises : train, camion, bateau,. . .

distribution d’eau (canalisations)

transport de p´etrole : r´eseau`e de pipelines

´

energie : r´eseau EDF, centrales → clients

information : r´eseau t´el´ephonique, r´eseau d’entreprises, internet.

Chapitre 8 : Flots dans les r´eseaux - 4/57

(5)

R´ eseau de transport

D´efinition:r´eseau de transport

Un r´eseau de transport not´eR= (G = (V, ~E),s,t,c) est form´e de :

G = (V, ~E) un graphe orient´e s ∈V appel´e sommet source

t ∈V appel´e sommet destination ou puits

c :~E →N,Q+ fonction capacit´e (`a chaque arc (i,j)∈~E est associ´ee une capacit´ec(i,j)≥0).

Remarque :

s et t sont deux sommets particuliers de G.

Chapitre 8 : Flots dans les r´eseaux - Flot r´ealisable 5/57

(6)

Flot r´ ealisable

D´efinition:flot r´ealisable

Soit R= (G = (V, ~E),s,t,c) un r´eseau. Un flot f dans Rest une applicationf :→N,Q+.

Un flotf est r´ealisable dans R si

1 contrainte de capacit´e

0≤f(i,j)≤c(i,j) ∀(i,j)∈~E

2 contraintes de conservation de flot (Loi de Kirschoff) X

i|(i,j)∈~E

f(i,j)− X

k|(j,k)∈~E

f(j,k) = 0 ∀j ∈V\{s,t}

(quantit´e qui entre dansj = quantit´e qui sort de j)

Chapitre 8 : Flots dans les r´eseaux - Flot r´ealisable 6/57

(7)

Flot r´ ealisable

Exemple :

s

v1

v2

t

(5)

(6)

(4)

(7)

( ?)

5

5

2 3

7

capacit´e flot x (2)

Le flot est r´ealisable.

contraintes de capacit´e Ok contraintes de conservation de flot Ok

env1 : 5-2-3=0 env2 : 5+2-7=0

Chapitre 8 : Flots dans les r´eseaux - Flot r´ealisable 7/57

(8)

Valeur d’un flot

D´efinition:valeur d’un flot

Soit R= (G = (V, ~E),s,t,c) un r´eseau.

La valeur d’un flotf r´ealisable entres et t est la quantit´e de flot envoy´ee des `a t. On la noteF et

F = X

i|(s,i)∈~E

f(s,i)− X

j|(j,s)∈E~

f(j,s) = X

i|(i,t)∈~E

f(i,t)− X

j|(t,j)∈~E

f(t,j) Exemple :

Ici, la valeur du flot est de 10. (F = 5 + 5 = 3 + 7 = 10).

Chapitre 8 : Flots dans les r´eseaux - Flot r´ealisable 8/57

(9)

Arc satur´ e

D´efinition:arc satur´e

Un arc (i,j) est dit satur´e pour un flotf si f(i,j) =c(i,j).

Exemple :

s

v1

v2

t

(5)

(6)

(4)

(7)

( ?)

5

5

2 3

7

capacit´e flot x (2)

Ici, les arcs (s,1),(1,2) et (2,t) sont satur´es.

Les arcs (s,2) et (1,t) ne le sont pas.

Chapitre 8 : Flots dans les r´eseaux - Flot r´ealisable 9/57

(10)

Arc retour

Remarque :

Pour que la contrainte de conservation de flot soit v´erifi´ee en tout sommet (y compris (s et t), on ajoute un arc artificiel (t,s) de capacit´e infinie et appel´e arc de retour.

s

v1

v2

t

(5)

(6)

(4)

(7) 5

5

2 3

7 (2)

F= 10 (+∞)

Si aucun autre arc n’entre en s, la valeur F du flot f est alors donn´ee `af(t,s).

Chapitre 8 : Flots dans les r´eseaux - Flot r´ealisable 10/57

(11)

Le probl` eme du flot maximum

Probl`eme :

Soit un r´eseau R= (G = (V, ~E),s,t,c).

Le probl`eme du flot maximum consiste `a d´eterminer un flot r´ealisable entre s et t qui soit de valeur maximum.

Chapitre 8 : Flots dans les r´eseaux - Le probl`eme du flot maximum 11/57

(12)

Le probl` eme du flot maximum : exemple

Exemple :

On remarque que le flot donn´e dans le r´eseau pr´ec´edent n’est pas maximum. En effet, on peut trouver un flot de valeur 11.

s

v1

v2

t

(5)

(6)

(4)

(7) (2)

5

7 6

1 4

11 11

Ce nouveau flot est maximum.

En effet, on remarque qu’au mieux il peut rentre 11 unit´es de flot danst `a cause des capacit´es 4 et 7 sur les arcs entrants.

Chapitre 8 : Flots dans les r´eseaux - Le probl`eme du flot maximum 12/57

(13)

Plusieurs sources, plusieurs puits

Remarque :

Le probl`eme du flot maximum peut ˆetre g´en´eralis´e de la mani`ere suivante :

Supposons qu’il existe un ensemble de sommets sources et un ensemble de puits.

On d´esire d´eterminer un flot max qui peut ˆetre envoy´e de toutes les sources aux diff´erents puits.

Ce probl`eme peut ˆetre ramen´e au probl`eme pr´ec´edent en ajoutant une super-sources0 et un super-puits t0. On relie la super-source `a toutes les sources avec des arcs de capacit´e infinie et on relie le super-puits aux diff´erents puits avec des arcs de capacit´e infinie. Le probl`eme se ram`ene alors `a un probl`eme de flot max de s0 `at0.

Chapitre 8 : Flots dans les r´eseaux - Le probl`eme du flot maximum 13/57

(14)

Plusieurs sources, plusieurs puits

Exemple :

sources : v1 etv2 et puits :v4 etv5

s0

v1

v2

v3

v4

v5

t0

1

(+∞)

(+∞) (4)

(3)

(4)

(2) (+∞)

(+∞) (1)

(2)

(1)

Chapitre 8 : Flots dans les r´eseaux - Le probl`eme du flot maximum 14/57

(15)

Flot maximum et PL

Soientf(i,j) = flot transitant sur l’arc (i,j) ∀(i,j)∈E~ F = valeur du flotf

Le probl`eme du flot maximum entre s et t peut se formuler de la mani`ere suivante :

Max F

s.c. X

i|(i,j)∈~E

f(i,j) X

k|(j,k)∈~E

f(j,k) =

−F sij=s 0 sij6=s,t

F sij=t

∀jV

0f(i,j)c(i,j) ∀(i,j)E~

Ce programme lin´eaire a|~E|+ 1 variables et 2|~E|+|V|contraintes.

Chapitre 8 : Flots dans les r´eseaux - Le probl`eme du flot maximum 15/57

(16)

Chaˆınes augmentantes

Exemple :

s

v1

v2

t

(5)

(6)

(4)

(7) (2)

Pour d´eterminer un flot maximum dans ce r´eseau, on peut commencer par envoyer du flot sur des chemins des `at.

Chapitre 8 : Flots dans les r´eseaux - Chaˆınes augmentantes 16/57

(17)

Chaˆınes augmentantes

→Par exemple, on peut commencer par envoyer un flot de 2 sur le chemin (s,1,2,t).

s

v1

v2

t

(5)

(6)

(4)

(7) (2)

Chapitre 8 : Flots dans les r´eseaux - Chaˆınes augmentantes 17/57

(18)

Chaˆınes augmentantes

→Vu qu’il y a une r´eserve de capacit´e de 3 sur le chemin (s,1,t), on peut envoyer 3 unit´es de flot.

s

v1

v2

t

(5)

(6)

(4)

(7) (2)

2

2 2

2 2

0

0

Chapitre 8 : Flots dans les r´eseaux - Chaˆınes augmentantes 18/57

(19)

Chaˆınes augmentantes

→Vu qu’il reste une r´eserve de 5 sur le chemin (s,2,t), on peut envoyer un flot de 5 sur ce chemin.

s

v1

v2

t

(5)

(6)

(4)

(7) (2)

5

5

2

2 5

3

0

Mais ce flot n’est pas maximum.

Chapitre 8 : Flots dans les r´eseaux - Chaˆınes augmentantes 19/57

(20)

Chaˆınes augmentantes

Consid´erons la chaˆıne

s

v1

v2

t

(6)

(4)

(2) 5

2 3

On remarque que l’on peut :

augmenter le flot de 1 sur (s,2), diminuer le flot de 2 sur (1,2), augmenter le flot de 1 sur (1,t).

Chapitre 8 : Flots dans les r´eseaux - Chaˆınes augmentantes 20/57

(21)

Chaˆınes augmentantes

Donc en augmentant le flot de 1 sur les arcs (s,2) et (1,t) et en le diminuant de 1 sur l’arc (1,2) on aura le flot r´ealisable suivant :

s

v1

v2

t

(5)

(6) (7)

(2) 5

2 3 10

5 7 10

(4)

Chapitre 8 : Flots dans les r´eseaux - Chaˆınes augmentantes 21/57

(22)

Chaˆınes augmentantes

Les contraintes de conservation de flot sont respect´ees.

v1

v2

t +1

-1 s

v1

v2 +1

-1

Chapitre 8 : Flots dans les r´eseaux - Chaˆınes augmentantes 22/57

(23)

Chaˆınes augmentantes

D´efinition:chaˆıne augmentante

Une chaˆıneC entre s et t est dite augmentante par rapport `a un flotf = (f(i,j),(i,j)∈E~) r´ealisable entres et t si

f(i,j)<c(i,j) si (i,j)∈ C+ ((i,j)∈~E) arc conforme) f(i,j)>0 si (i,j)∈ C ((j,i)∈E~) arc non conforme) o`u C+ est l’ensemble des arcs de C rencontr´es dans le bon sens et C est l’ensemble des arcs deC rencontr´es dans le sens contraire.

Chapitre 8 : Flots dans les r´eseaux - Chaˆınes augmentantes 23/57

(24)

Chaˆınes augmentantes

Exemple :

s

v1

v2

t

(6)

(4) (2)

arcs conformes arcs non conformes 5<6, 2>0, 3<4

La chaˆıne (s,2,1,t) est bien une chaˆıne augmentante.

Chapitre 8 : Flots dans les r´eseaux - Chaˆınes augmentantes 24/57

(25)

Chaˆınes augmentantes

Lemme :

Soitf = (f(i,j),(i,j)∈~E) r´ealisable entre s et t.

S’il existe une chaˆıne augmentante par rapport `af entres et t,

alors f n’est plus maximum.

Preuve :

Chapitre 8 : Flots dans les r´eseaux - Chaˆınes augmentantes 25/57

(26)

Proc´ edure de marquage

Cette proc´edure permet, ´etant donn´e un flot r´ealisable, de

d´eterminer si elle existe, une chaˆıne augmentante par rapport `af. Cette proc´edure est bas´ee sur 2 op´erations de marquage dits : marquage direct et marquage indirect.

Chapitre 8 : Flots dans les r´eseaux - Algorithme de Ford et Fulkerson (1961) 26/57

(27)

Marquage direct

Marquage direct : Si pour un arc (i,j) on a

*

f(i,j)<c(i,j)

i j

i marqu´e j non marqu´e f(i,j)<c(i,j) alors

on marque j et on pose

δ(j) =min(δ(i),c(i,j)−f(i,j)) δ(j) est la quantit´e max avec laquelle on peut augmenter le flot de s `aj.

(δ(i) est une valeur associ´ee `ai, elle est initialis´ee `a l’infini pours.)

Chapitre 8 : Flots dans les r´eseaux - Algorithme de Ford et Fulkerson (1961) 27/57

(28)

Marquage indirect

Marquage indirect : Si pour un arc (j,i) on a

*

f(j,i)>0

i j

i marqu´e j non marqu´e f(j,i)>0 alors on marque j et on pose

δ(j) =min(δ(i),f(j,i))

Chapitre 8 : Flots dans les r´eseaux - Algorithme de Ford et Fulkerson (1961) 28/57

(29)

Algorithme de la chaˆıne augmentante

Supposons que l’on dispose d’un flot r´ealisable f = (f(i,j),(i,j)∈~E) entres et t.

Etape 1´ : (initialisation)

Marquer s par (s,+).

Poser δ(s) = +∞.

Etape 2´ : R´ep´eter les op´erations suivantes jusqu’`a ce que t soit marqu´e ou qu’il ne soit plus possible de mar- quer.

Chapitre 8 : Flots dans les r´eseaux - Algorithme de Ford et Fulkerson (1961) 29/57

(30)

Algorithme de la chaˆıne augmentante

Op´eration a)

Siil existe un arc (i,j) tel que i marqu´e

j non marqu´e f(i,j)<c(i,j) Alors

Marquer j par (i,+)

Poser δ(j) =min(δ(i),c(i,j)−f(i,j))

Chapitre 8 : Flots dans les r´eseaux - Algorithme de Ford et Fulkerson (1961) 30/57

(31)

Algorithme de la chaˆıne augmentante

Op´eration b)

Siil existe un arc (j,i) tel que i marqu´e

j non marqu´e f(j,i)>0 Alors

Marquer j par (i,−)

Poser δ(j) =min(δ(i),f(j,i))

Chapitre 8 : Flots dans les r´eseaux - Algorithme de Ford et Fulkerson (1961) 31/57

(32)

Algorithme de la chaˆıne augmentante

Etape 3´ : Si t est marqu´e Alors

une chaˆıne augmentante C entre s et t est d´etect´ee et on pose =δ(t)

Sinon

le flot f est maximum.

Chapitre 8 : Flots dans les r´eseaux - Algorithme de Ford et Fulkerson (1961) 32/57

(33)

Algorithme de la chaˆıne augmentante

Exemple :

Consid´erons le r´eseau suivant o`u le flot de d´epart est nul (donc uniquement marquage direct possible).

1 3 5

2

4 6

7 (5)

(1) (3)

(4) (7)

(2) (4)

(4) (5)

(1)

(1) (6)

(9) (1)

Chapitre 8 : Flots dans les r´eseaux - Algorithme de Ford et Fulkerson (1961) 33/57

(34)

Algorithme de Ford et Fulkerson

On suppose que l’on dispose d’un flot initialf = (f(i,j),(i,j)∈~E) entres et t (on peut prendref = 0).

Etape 1´ : Appliquer l’algorithme de la chaˆıne augmentante `a f.

Si t est marqu´e,

STOPf est optimal.

Sinon

une chaˆıne augmentanteC est d´etect´ee, aller `a l’´etape 2.

Etape 2´ : Changer le flot f comme suit : f(i,j) =

f(i,j) si (i,j)6∈ C f(i,j) + si (i,j)∈ C+ f(i,j)− si (i,j)∈ C Aller `a l’´etape 1.

Chapitre 8 : Flots dans les r´eseaux - Algorithme de Ford et Fulkerson (1961) 34/57

(35)

Algorithme de Ford et Fulkerson

Exemple :

1 3 5

2

4 6

7 (5)

(1) (3)

(4) (7)

(2) (4)

(4) (5)

(1)

(1) (6)

(9) 4 (1)

1 0

3

4 5

0

2 0

2

1

1 2

7 9

9

Chapitre 8 : Flots dans les r´eseaux - Algorithme de Ford et Fulkerson (1961) 35/57

(36)

Algorithme de Ford et Fulkerson

Exemple :

1 3 5

2

4 6

7 (5)

(1) (3)

(4) (7)

(2) (4)

(4) (5)

(1)

(1) (6)

(9) 4 (1)

1 0

3

4

2

1 1 11 7

2 0

7

2

4

11

Chapitre 8 : Flots dans les r´eseaux - Algorithme de Ford et Fulkerson (1961) 36/57

(37)

Algorithme de Ford et Fulkerson

Exemple :

1 3 5

2

4 6

7 (5)

(1) (3)

(4) (7)

(2) (4)

(4) (5)

(1)

(1) (6)

(9) 4 (1)

1 0

3

4

2

1 1 7 7

2 13

2

4

6

13

Chapitre 8 : Flots dans les r´eseaux - Algorithme de Ford et Fulkerson (1961) 37/57

(38)

Algorithme de Ford et Fulkerson

Exemple :

1 3 5

2

4 6

7 (5)

(1) (3)

(4) (7)

(2) (4)

(4) (5)

(1)

(1) (6)

(9) 4 (1)

1 0

3

4

1 7

4

6 14

3

1 3

0

8 14

Chapitre 8 : Flots dans les r´eseaux - Algorithme de Ford et Fulkerson (1961) 38/57

(39)

Coupe

D´efinition:coupe

Etant donn´´ e un graphe G = (V, ~E) et un sous-ensembleS de sommets deV, on appelle coupe associ´ee `a S, et on la noteδ(S), l’ensemble des arcs (i,j) tels que i ∈S etj ∈V\S.

Chapitre 8 : Flots dans les r´eseaux - La coupe minimum 39/57

(40)

Coupe

Exemple :

1 2

5 4

3

δ({1,3,4}) ={(1,2),(1,5),(3,2),(4,5)}

Chapitre 8 : Flots dans les r´eseaux - La coupe minimum 40/57

(41)

Coupe

D´efinition:s´epare

Etant donn´´ es deux sommetss ett deG et une coupeδ(S), on dit queδ(S) s´epare s ett sis ∈S et t∈V\S.

Exemple :

1 2

5 4

3

La coupe ci-contre s´epare1 et 5.

Elle s´epare aussi 3et 2.

Chapitre 8 : Flots dans les r´eseaux - La coupe minimum 41/57

(42)

Capacit´ e d’une coupe

D´efinition:capacit´e d’une coupe

Sic = (c(i,j),(i,j)∈~E) est un syst`eme de capacit´es associ´e aux arcs du grapheG = (V, ~E) et siδ(S) est une coupe du graphe alors la capacit´e de δ(S) est d´efinie par

C(δ(S)) = X

(i,j)∈δ(S)

c(i,j).

Chapitre 8 : Flots dans les r´eseaux - La coupe minimum 42/57

(43)

Flots et coupes

Th´eor`eme :

Soit un r´eseau R= (G = (V, ~E),s,t,c).

Si f = (f(i,j),(i,j)∈E~) est un flot r´ealisable entre s et t de valeurF et si δ(S) est une coupe qui s´epare s et t alors

F ≤C(δ(S)).

Preuve :

Chapitre 8 : Flots dans les r´eseaux - La coupe minimum 43/57

(44)

Th du flot max - coupe min

Th´eor`eme : Th du flot max - coupe min

La valeur maximum d’un flot r´ealisable entre s et t est ´egale

`a la capacit´e minimum d’une coupe s´eparant s et t.

Preuve :

Chapitre 8 : Flots dans les r´eseaux - La coupe minimum 44/57

(45)

Th du flot max - coupe min

Exemple :

1 3 5

2

4 6

7 (5)

(1) (3)

(4) (7)

(2) (4)

(4) (5)

(1)

(1) (6)

(9) (1)

1 0

3

4

1 14

3 7 4

0 3

4 1

6 8 14

Remarque :

Tous les arcs appartenant `a la coupe sont satur´es et la valeur du flot sur ces arcs est bien de3+4+1+6=14.

Chapitre 8 : Flots dans les r´eseaux - La coupe minimum 45/57

(46)

Flots entiers

Remarque :

Si les capacit´es sont enti`eres alors le flot max a des valeurs enti`eres.

Chapitre 8 : Flots dans les r´eseaux - La coupe minimum 46/57

(47)

Graphe d’´ ecart

D´efinition:graphe d’´ecart

Soit R= (G = (V, ~E),s,t,c) un r´eseau. Soit f un flot sur R.

Gf = (V, ~Ef) est le graphe d’´ecart def avec pour (i,j)∈~E : f(i,j)<c(i,j) ⇒ (i,j)∈E~f (arc conforme)

f(i,j)>0 ⇒ (j,i)∈E~f (arc non conforme)

Chapitre 8 : Flots dans les r´eseaux - Impl´ementation et complexit´e de l’algorithme de Ford et Fulkerson 47/57

(48)

Graphe d’´ ecart

Exemple :

1 3 5

2

4 6

7 (5)

(1) (3)

(4) (7)

(2) (4)

(5) (1)

(1) (6)

(9) 4 (1)

4 13

(4) 2

7

1 0

3

4

1

2 1

6

7 13

2

Chapitre 8 : Flots dans les r´eseaux - Impl´ementation et complexit´e de l’algorithme de Ford et Fulkerson 48/57

(49)

Graphe d’´ ecart

Exemple :

arcs conformes arcs non conformes

1 3 5

2

4 6

7 4

(5)

Chapitre 8 : Flots dans les r´eseaux - Impl´ementation et complexit´e de l’algorithme de Ford et Fulkerson 49/57

(50)

Graphe d’´ ecart

Exemple :

arcs conformes arcs non conformes

1 3 5

2

4 6

7 7

(7)

Chapitre 8 : Flots dans les r´eseaux - Impl´ementation et complexit´e de l’algorithme de Ford et Fulkerson 50/57

(51)

Graphe d’´ ecart

Exemple :

arcs conformes arcs non conformes

1 3 5

2

4 6

7 (1)0

Chapitre 8 : Flots dans les r´eseaux - Impl´ementation et complexit´e de l’algorithme de Ford et Fulkerson 51/57

(52)

Graphe d’´ ecart

Exemple :

arcs non conformes arcs conformes

1 3 5

2

4 6

7

Chapitre 8 : Flots dans les r´eseaux - Impl´ementation et complexit´e de l’algorithme de Ford et Fulkerson 52/57

(53)

Graphe d’´ ecart

Remarque :

La recherche d’une chaˆıne augmentante se ram`ene `a un parcours en profondeur dans le graphe d’´ecart `a partirs.

Exemple :

arcs non conformes arcs conformes

1 3 5

2

4 6

7

Chapitre 8 : Flots dans les r´eseaux - Impl´ementation et complexit´e de l’algorithme de Ford et Fulkerson 53/57

(54)

Graphe d’´ ecart

Remarque :

On calcule ensuite les capacit´es r´esiduelles sur la chaˆıne de s `a t.

Exemple :

arcs non conformes arcs conformes

2 2 3

1

2

1 3 5

2

4 6

7

= 1

Chapitre 8 : Flots dans les r´eseaux - Impl´ementation et complexit´e de l’algorithme de Ford et Fulkerson 54/57

(55)

Complexit´ e

1 Complexit´e d’une it´eration : O(m) recherche d’une chaˆıne augmentante parcours en profondeur :O(m) 2m arcs au plus

calcul de la capacit´e r´esiduelle pour la chaˆıne

trouver le minimum d’au plusn1 capacit´es r´esiduelles O(n)

calcul du nouveau flot :O(n)

construction du nouveau graphe d’´ecart : au max 2×(n1) arcs qui changent :O(n)

2 Nombre max d’it´erations de Ford / Fulkerson

Chapitre 8 : Flots dans les r´eseaux - Impl´ementation et complexit´e de l’algorithme de Ford et Fulkerson 55/57

(56)

Complexit´ e

1 Complexit´e d’une it´eration : O(m)

2 Nombre max d’it´erations de Ford / Fulkerson hypoth`eses :c ∈Net le flot de d´epart est entier.

Les capacit´es r´esiduelles sont enti`eres.

⇒ la suite des flots est enti`ere.

⇒ la valeur du flot augmente au moins de 1 `a chaque it´eration.

⇒ au plusF it´erations avec F=valeur du flot max.

F≤P

jc(s,j)≤(n−1)C avec C =max(i,j)∈~Ec(i,j) donc au pire, (n−1)C it´erations.

Complexit´e dans le pire des cas de Ford / Fulkerson : O(n.m.C)

Chapitre 8 : Flots dans les r´eseaux - Impl´ementation et complexit´e de l’algorithme de Ford et Fulkerson 56/57

(57)

Am´ eliorations de Ford et Fulkerson

Id´ee 1 : Choisir une chaˆıne augmentante de capacit´e r´esiduelle maximum.

→pas de garantie que les augmentations suivantes

→ce n’est plus un parcours mais la recherche d’un chemin de d´ebit maximum

Id´ee 2 : Choisir une chaˆıne augmentante la plus courte possible en termes de nombre d’arcs.

→parcours en largeur

Chapitre 8 : Flots dans les r´eseaux - Impl´ementation et complexit´e de l’algorithme de Ford et Fulkerson 57/57

Références

Documents relatifs

Donner le nombre d’unit´es de caoutchouc et d’acier n´ecessaires. On suppose qu’il veut construire 35 grosses voitures et 25 petites. Quel serait son chiffre d’affaire ?

En utilisant et adaptant l’algorithme/programme ci-dessus, d´eterminer le nombre de moteurs per- mettant d’obtenir un b´en´efice

Chapitre 01 Term.. c) On peut « modifier » cet algorithme pour que, si on saisit une valeur de N, il affiche tous les termes

[r]

En déduire qu’un couplage de poids minimum sur les sommets de degré impair dans T est inférieur ou égal à la moitié du poids de C opt... Préambule : technique pour montrer

[r]

2/ Mission 1 : Initialiser le robot de sorte qu’il soit placé dans le coin Sud-Ouest et orienté vers le Nord.. Faire avancer Nono de

(Précisons que, dans cette section, nous autoriserons les AFN à avoir un ensemble non vide d’états initiaux au lieu d’uniquement un seul et que nous les interdirons d’avoir