• 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

(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

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

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

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

[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

[r]