Graphes Chap8 Flots Pres

download Graphes Chap8 Flots Pres

of 57

Transcript of Graphes Chap8 Flots Pres

  • 7/23/2019 Graphes Chap8 Flots Pres

    1/57

    Chapitre 8 : Flots dans les reseauxAlgorithmique de graphes

    Sup Galilee-INFO2

    Sylvie Borne

    2011-2012

    Chapitre 8 : Flots dans les reseaux - 1/57

  • 7/23/2019 Graphes Chap8 Flots Pres

    2/57

    Plan1 Flot realisable

    2 Le probleme du flot maximumExemplePlusieurs sources, plusieurs puitsFlot maximum et programmation lineaire

    3 Chanes augmentantes

    4 Algorithme de Ford et Fulkerson (1961)Procedure de marquage (labelling)Algorithme de la chane augmentanteAlgorithme de Ford et Fulkerson

    5 La coupe minimum6 Implementation et complexite de lalgorithme de Ford et

    Fulkerson

    Chapitre 8 : Flots dans les reseaux - 2/57

  • 7/23/2019 Graphes Chap8 Flots Pres

    3/57

    Probleme de flot

    Probleme de plus court cheminune personne seule de la source a la destination.

    Probleme de flotacheminement dune quantite de marchandises (divisibles : onpeut acheminer nos marchandises par des routes differentes) de lasource vers la destination.

    Chapitre 8 : Flots dans les reseaux - 3/57

  • 7/23/2019 Graphes Chap8 Flots Pres

    4/57

    Probleme de flot : Applications

    Applications :

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

    distribution deau (canalisations)

    transport de petrole : reseaue de pipelines

    energie : reseau EDF, centrales clients

    information : reseau telephonique, reseau dentreprises,internet.

    Chapitre 8 : Flots dans les reseaux - 4/57

  • 7/23/2019 Graphes Chap8 Flots Pres

    5/57

    Reseau de transport

    Definition : reseau de transportUn reseau de transport note R = (G= (V,E), s, t, c) est forme

    de :

    G= (V,E) un graphe oriente

    s V appele sommet source

    t V appele sommet destination ou puits

    c : E N,Q+ fonction capacite (a chaque arc (i,j) E estassociee une capacite c(i,j) 0).

    Remarque :s et tsont deux sommets particuliers de G.

    Chapitre 8 : Flots dans les reseaux - Flot realisable 5/57

  • 7/23/2019 Graphes Chap8 Flots Pres

    6/57

    Flot realisable

    Definition : flot realisableSoit R = (G= (V,E), s, t, c) un reseau. Un flot f dans Rest

    une application f : N,Q+.Un flot f est realisable dans Rsi

    1 contrainte de capacite0 f(i,j) c(i,j) (i,j) E

    2 contraintes de conservation de flot (Loi de Kirschoff)

    i| (i,j)E

    f(i,j)

    k| (j,k)E

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

    (quantite qui entre dans j= quantite qui sort de j)

    Chapitre 8 : Flots dans les reseaux - Flot realisable 6/57

  • 7/23/2019 Graphes Chap8 Flots Pres

    7/57

    Flot realisableExemple :

    s

    v1

    v2

    t

    (5)

    (6)

    (4)

    (7)

    ( ?)

    5

    5

    2

    3

    7

    capacite

    flotx

    (2)

    Le flot est realisable.

    contraintes de capacite Okcontraintes de conservationde flot Oken v1 : 5-2-3=0en v2 : 5+2-7=0

    Chapitre 8 : Flots dans les reseaux - Flot realisable 7/57

  • 7/23/2019 Graphes Chap8 Flots Pres

    8/57

    Valeur dun flot

    Definition : valeur dun flotSoit R = (G= (V,E), s, t, c) un reseau.

    La valeur dun flot f realisable entre s et test la quantite de flotenvoyee de s a t. On la note F et

    F = i| (s,i)E

    f(s, i) j| (j,s)E

    f(j, s) =

    i| (i,t)E

    f(i, t)

    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 reseaux - Flot realisable 8/57

  • 7/23/2019 Graphes Chap8 Flots Pres

    9/57

    Arc sature

    Definition : arc satureUn arc (i,j) est dit sature pour un flot f si f(i,j) =c(i,j).

    Exemple :

    s

    v1

    v2

    t

    (5)

    (6)

    (4)

    (7)

    ( ?)

    5

    5

    2

    3

    7

    capacite

    flotx

    (2)

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

    Chapitre 8 : Flots dans les reseaux - Flot realisable 9/57

  • 7/23/2019 Graphes Chap8 Flots Pres

    10/57

    Arc retour

    Remarque :Pour que la contrainte de conservation de flot soit verifiee en tout

    sommet (y compris (s et t), on ajoute un arc artificiel (t, s) decapacite infinie et appele arc de retour.

    s

    v1

    v2

    t

    (5)

    (6)

    (4)

    (7)

    5

    5

    2

    3

    7

    (2)

    F = 10(+)

    Si aucun autrearc nentre en s,la valeur F duflot f est alorsdonnee a f(t, s).

    Chapitre 8 : Flots dans les reseaux - Flot realisable 10/57

  • 7/23/2019 Graphes Chap8 Flots Pres

    11/57

    Le probleme du flot maximum

    Probleme :Soit un reseauR = (G = (V,E), s, t, c).Le probleme du flot maximum consiste a determinerun flot realisable entre s et t qui soit de valeurmaximum.

    Chapitre 8 : Flots dans les reseaux - Le probleme du flot maximum 11/57

  • 7/23/2019 Graphes Chap8 Flots Pres

    12/57

    Le probleme du flot maximum : exempleExemple :On remarque que le flot donne dans le reseau precedent nest pas

    maximum. En effet, on peut trouver un flot de valeur 11.

    s

    v1

    v2

    t

    (5)

    (6)

    (4)

    (7)

    (2)

    5

    76

    1

    4

    11 11

    Ce nouveau flot est maximum.En effet, on remarque quau mieux il peut rentre 11 unites de flotdans t a cause des capacites 4 et 7 sur les arcs entrants.

    Chapitre 8 : Flots dans les reseaux - Le probleme du flot maximum 12/57

  • 7/23/2019 Graphes Chap8 Flots Pres

    13/57

    Plusieurs sources, plusieurs puits

    Remarque :

    Le probleme du flot maximum peut etre generalise de la manieresuivante :Supposons quil existe un ensemble de sommets sources et unensemble de puits.On desire determiner un flot max qui peut etre envoye de toutes

    les sources aux differents puits.Ce probleme peut etre ramene au probleme precedent en ajoutantune super-source s0 et un super-puits t0. On relie la super-source atoutes les sources avec des arcs de capacite infinie et on relie lesuper-puits aux differents puits avec des arcs de capacite infinie. Leprobleme se ramene alors a un probleme de flot max de s0 a t0.

    Chapitre 8 : Flots dans les reseaux - Le probleme du flot maximum 13/57

  • 7/23/2019 Graphes Chap8 Flots Pres

    14/57

    Plusieurs sources, plusieurs puits

    Exemple :sources : v1 et v2 et puits : v4 et v5

    s0

    v1

    v2

    v3

    v4

    v5

    t0

    1

    (+)

    (+)

    (4)

    (3)

    (4)

    (2)

    (+)

    (+)

    (1)

    (2)

    (1)

    Chapitre 8 : Flots dans les reseaux - Le probleme du flot maximum 14/57

  • 7/23/2019 Graphes Chap8 Flots Pres

    15/57

    Flot maximum et PL

    Soient f(i,j) = flot transitant sur larc (i,j) (i,j) E

    F= valeur du flot fLe probleme du flot maximum entre s et tpeut se formuler de lamaniere suivante :

    Max F

    s.c.

    i|(i,j)E

    f(i,j)

    k|(j,k)E

    f(j, k) =

    F si j=s0 si j=s, tF si j=t

    jV

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

    Ce programme lineaire a |E| + 1 variableset 2|E| + |V| contraintes.

    Chapitre 8 : Flots dans les reseaux - Le probleme du flot maximum 15/57

  • 7/23/2019 Graphes Chap8 Flots Pres

    16/57

    Chanes augmentantes

    Exemple :

    s

    v1

    v2

    t

    (5)

    (6)

    (4)

    (7)

    (2)

    Pour determiner un flot maximum dans ce reseau, on peutcommencer par envoyer du flot sur des chemins de s a t.

    Chapitre 8 : Flots dans les reseaux - Chanes augmentantes 16/57

  • 7/23/2019 Graphes Chap8 Flots Pres

    17/57

    Chanes augmentantes

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

    s

    v1

    v2

    t

    (5)

    (6)

    (4)

    (7)

    (2)

    Chapitre 8 : Flots dans les reseaux - Chanes augmentantes 17/57

  • 7/23/2019 Graphes Chap8 Flots Pres

    18/57

    Chanes augmentantes

    Vu quil y a une reserve de capacite de 3 sur le chemin (s, 1, t),on peut envoyer 3 unites de flot.

    s

    v1

    v2

    t

    (5)

    (6)

    (4)

    (7)

    (2)2

    2 2

    2 2

    0

    0

    Chapitre 8 : Flots dans les reseaux - Chanes augmentantes 18/57

  • 7/23/2019 Graphes Chap8 Flots Pres

    19/57

    Chanes augmentantes

    Vu quil reste une reserve 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 nest pas maximum.

    Chapitre 8 : Flots dans les reseaux - Chanes augmentantes 19/57

  • 7/23/2019 Graphes Chap8 Flots Pres

    20/57

    Chanes augmentantesConsiderons la chane

    s

    v1

    v2

    t

    (6)

    (4)

    (2)

    5

    2

    3

    On remarque que lon 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 reseaux - Chanes augmentantes 20/57

  • 7/23/2019 Graphes Chap8 Flots Pres

    21/57

    Chanes augmentantes

    Donc en augmentant le flot de 1 sur les arcs (s, 2) et (1, t) et en lediminuant de 1 sur larc (1, 2) on aura le flot realisable suivant :

    s

    v1

    v2

    t

    (5)

    (6) (7)

    (2)5

    23

    10

    5 7 10

    (4)

    Chapitre 8 : Flots dans les reseaux - Chanes augmentantes 21/57

  • 7/23/2019 Graphes Chap8 Flots Pres

    22/57

    Chanes augmentantes

    Les contraintes de conservation de flot sont respectees.v1

    v2

    t

    +1

    -1 s

    v1

    v2

    +1

    -1

    Chapitre 8 : Flots dans les reseaux - Chanes augmentantes 22/57

  • 7/23/2019 Graphes Chap8 Flots Pres

    23/57

    Chanes augmentantes

    Definition : chane augmentanteUne chane Centre s et t est dite augmentante par rapport a un

    flot f = (f(i,j), (i,j) E) realisable entre s et t si

    f(i,j)0 si (i,j) C ((j, i) E) arc non conforme)

    ou C+ est lensemble des arcs de Crencontres dans le bon sens etC est lensemble des arcs de Crencontres dans le sens contraire.

    Chapitre 8 : Flots dans les reseaux - Chanes augmentantes 23/57

  • 7/23/2019 Graphes Chap8 Flots Pres

    24/57

    Chanes augmentantes

    Exemple :

    s

    v1

    v2

    t

    (6)

    (4)

    (2)

    arcs conformes

    arcs non conformes50, 3

  • 7/23/2019 Graphes Chap8 Flots Pres

    25/57

    Chanes augmentantes

    Lemme :Soit f = (f(i,j), (i,j) E) realisable entre s et t.

    Sil existe une chane augmentante par rapport a f entre s ett,alors f nest plus maximum.

    Preuve :

    Chapitre 8 : Flots dans les reseaux - Chanes augmentantes 25/57

  • 7/23/2019 Graphes Chap8 Flots Pres

    26/57

    Procedure de marquage

    Cette procedure permet, etant donne un flot realisable, dedeterminer si elle existe, une chane augmentante par rapport a f.

    Cette procedure est basee sur 2 operations de marquage dits :marquage direct et marquage indirect.

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

  • 7/23/2019 Graphes Chap8 Flots Pres

    27/57

    Marquage direct

    Marquage direct :

    Si pour un arc (i,j) on a

    *

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

    i marquejnon marquef(i,j)

  • 7/23/2019 Graphes Chap8 Flots Pres

    28/57

    Marquage indirect

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

    *

    f(j, i) > 0i j

    i marquejnon marquef(j, i)>0

    alorson marque jet on pose

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

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

  • 7/23/2019 Graphes Chap8 Flots Pres

    29/57

    Algorithme de la chane augmentante

    Supposons que lon dispose dun flot realisablef = (f(i,j), (i,j) E) entre s et t.

    Etape 1 : (initialisation)Marquerspar (s, +).Poser (s) = +.

    Etape 2 : Repeter les operations suivantes jusqua ce que tsoit marque ou quil ne soit plus possible de mar-quer.

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

  • 7/23/2019 Graphes Chap8 Flots Pres

    30/57

    Algorithme de la chane augmentante

    Operation a)Si il existe un arc (i,j) tel que

    i marquejnon marque

    f(i,j)

  • 7/23/2019 Graphes Chap8 Flots Pres

    31/57

    Algorithme de la chane augmentante

    Operation b)Si il existe un arc (j, i) tel que

    i marquejnon marque

    f(j, i)>0Alors

    Marquer jpar (i,)Poser (j) =min((i), f(j, i))

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

    Al i h d l h

  • 7/23/2019 Graphes Chap8 Flots Pres

    32/57

    Algorithme de la chane augmentante

    Etape 3 : Si test marque Alors

    une chane augmentante C entre s et t estdetectee et on pose =(t)

    Sinonle flot f est maximum.

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

    Al i h d l h

  • 7/23/2019 Graphes Chap8 Flots Pres

    33/57

    Algorithme de la chane augmentanteExemple :Considerons le reseau suivant ou le flot de depart 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 reseaux - Algorithme de Ford et Fulkerson (1961) 33/57

    Al ith d F d t F lk

  • 7/23/2019 Graphes Chap8 Flots Pres

    34/57

    Algorithme de Ford et Fulkerson

    On suppose que lon dispose dun flot initial f = (f(i,j), (i,j) E)entre s et t(on peut prendre f= 0).

    Etape 1 : Appliquer lalgorithme de la chane augmentante af.Si test marque,

    STOP f est optimal.Sinon

    une chane augmentanteCest detectee, aller aletape 2.

    Etape 2 : Changer le flot f comme suit :

    f(i,j) =

    f(i,j) si (i,j) C

    f(i,j) + si (i,j) C+

    f(i,j) si (i,j) C

    Aller a letape 1.

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

    Al ith d F d t F lk

  • 7/23/2019 Graphes Chap8 Flots Pres

    35/57

    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)

    (1)4

    1 0

    3

    45

    0

    2 0

    2

    11 2

    7 99

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

    Algorithme de Ford et Fulkerson

  • 7/23/2019 Graphes Chap8 Flots Pres

    36/57

    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)

    (1)4

    1 0

    3

    4

    2

    11

    711

    2

    0

    7

    2

    4

    11

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

    Algorithme de Ford et Fulkerson

  • 7/23/2019 Graphes Chap8 Flots Pres

    37/57

    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)

    (1)4

    1 0

    3

    4

    2

    11

    77

    2

    13

    2

    4

    6

    13

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

    Algorithme de Ford et Fulkerson

  • 7/23/2019 Graphes Chap8 Flots Pres

    38/57

    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)

    (1)4

    1 0

    3

    4

    1

    7

    4

    6

    14

    3

    1 3

    0

    8 14

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

    Coupe

  • 7/23/2019 Graphes Chap8 Flots Pres

    39/57

    Coupe

    Definition : coupeEtant donne un graphe G =(V,E) et un sous-ensemble S desommets de V, on appelle coupe

    associee a S, et on la note (S),lensemble des arcs (i,j) tels quei S et j V\S.

    Chapitre 8 : Flots dans les reseaux - La coupe minimum 39/57

    Coupe

  • 7/23/2019 Graphes Chap8 Flots Pres

    40/57

    Coupe

    Exemple :

    1 2

    5

    4

    3

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

    Chapitre 8 : Flots dans les reseaux - La coupe minimum 40/57

    Coupe

  • 7/23/2019 Graphes Chap8 Flots Pres

    41/57

    Coupe

    Definition : separe

    Etant donnes deux sommets s et tde Get une coupe (S), on ditque (S) separe s et t si s S et t V\S.Exemple :

    1 2

    5

    4

    3

    La coupe ci-contre separe 1et5.Elle separe aussi3et2.

    Chapitre 8 : Flots dans les reseaux - La coupe minimum 41/57

    Capacite dune coupe

  • 7/23/2019 Graphes Chap8 Flots Pres

    42/57

    Capacite d une coupe

    Definition : capacite dune coupeSi c= (c(i,j), (i,j) E) est un systeme de capacites associe aux

    arcs du graphe G = (V,E) et si (S) est une coupe du graphealors la capacite de (S) est definie par

    C((S)) =

    (i,j)(S)

    c(i,j).

    Chapitre 8 : Flots dans les reseaux - La coupe minimum 42/57

    Flots et coupes

  • 7/23/2019 Graphes Chap8 Flots Pres

    43/57

    Flots et coupes

    Theoreme :Soit un reseau R = (G= (V,E), s, t, c).

    Si f = (f(i,j), (i,j) E) est un flot realisable entre s et t devaleur F et si (S) est une coupe qui separe s et t alors

    F C((S)).

    Preuve :

    Chapitre 8 : Flots dans les reseaux - La coupe minimum 43/57

    Th du flot max - coupe min

  • 7/23/2019 Graphes Chap8 Flots Pres

    44/57

    Th du flot max coupe min

    Theoreme : Th du flot max - coupe min

    La valeur maximum dun flot realisable entre s et test egalea la capacite minimum dune coupe separant s et t.Preuve :

    Chapitre 8 : Flots dans les reseaux - La coupe minimum 44/57

    Th du flot max - coupe min

  • 7/23/2019 Graphes Chap8 Flots Pres

    45/57

    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

    148

    Remarque :Tous les arcs appartenant a la coupe sont satures et la valeur duflot sur ces arcs est bien de3+4+1+6=14.

    Chapitre 8 : Flots dans les reseaux - La coupe minimum 45/57

    Flots entiers

  • 7/23/2019 Graphes Chap8 Flots Pres

    46/57

    Remarque :Si les capacites sont entieres alors le flot max a des valeurs

    entieres.

    Chapitre 8 : Flots dans les reseaux - La coupe minimum 46/57

    Graphe decart

  • 7/23/2019 Graphes Chap8 Flots Pres

    47/57

    p

    Definition : graphe decartSoit R = (G= (V,E), s, t, c) un reseau. Soit fun flot sur R.

    Gf = (V, Ef) est le graphe decart de favec pour (i,j) E :

    f(i,j)0 (j, i) Ef (arc non conforme)

    Chapitre 8 : Flots dans les reseaux - Implementation et complexite de lalgorithme de Ford et Fulkerson 47/57

    Graphe decart

  • 7/23/2019 Graphes Chap8 Flots Pres

    48/57

    p

    Exemple :

    1 3 5

    2

    4 6

    7

    (5)

    (1)

    (3)

    (4)(7)

    (2)

    (4)

    (5)

    (1)

    (1) (6)

    (9)

    (1)4

    4

    13

    (4)2

    7

    1 0

    3

    4

    1

    2 1

    6

    7 13

    2

    Chapitre 8 : Flots dans les reseaux - Implementation et complexite de lalgorithme de Ford et Fulkerson 48/57

    Graphe decart

  • 7/23/2019 Graphes Chap8 Flots Pres

    49/57

    p

    Exemple :

    arcs conformes

    arcs non conformes

    1 3 5

    2

    4 6

    7

    4

    (5)

    Chapitre 8 : Flots dans les reseaux - Implementation et complexite de lalgorithme de Ford et Fulkerson 49/57

    Graphe decart

  • 7/23/2019 Graphes Chap8 Flots Pres

    50/57

    Exemple :

    arcs conformes

    arcs non conformes

    1 3 5

    2

    4 6

    7

    7

    (7)

    Chapitre 8 : Flots dans les reseaux - Implementation et complexite de lalgorithme de Ford et Fulkerson 50/57

    Graphe decart

  • 7/23/2019 Graphes Chap8 Flots Pres

    51/57

    Exemple :

    arcs conformes

    arcs non conformes

    1 3 5

    2

    4 6

    7

    0(1)

    Chapitre 8 : Flots dans les reseaux - Implementation et complexite de lalgorithme de Ford et Fulkerson 51/57

    Graphe decart

  • 7/23/2019 Graphes Chap8 Flots Pres

    52/57

    Exemple :

    arcs non conformes

    arcs conformes

    1 3 5

    2

    4 6

    7

    Chapitre 8 : Flots dans les reseaux - Implementation et complexite de lalgorithme de Ford et Fulkerson 52/57

    Graphe decart

  • 7/23/2019 Graphes Chap8 Flots Pres

    53/57

    Remarque :La recherche dune chane augmentante se ramene a un parcours

    en profondeur dans le graphe decart a partir s.Exemple :

    arcs non conformes

    arcs conformes

    1 3 5

    2

    4 6

    7

    Chapitre 8 : Flots dans les reseaux - Implementation et complexite de lalgorithme de Ford et Fulkerson 53/57

    Graphe decart

  • 7/23/2019 Graphes Chap8 Flots Pres

    54/57

    Remarque :On calcule ensuite les capacites residuelles sur la chane 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 reseaux - Implementation et complexite de lalgorithme de Ford et Fulkerson 54/57

    Complexite

  • 7/23/2019 Graphes Chap8 Flots Pres

    55/57

    1 Complexite dune iteration : O(m)

    recherche dune chane augmentanteparcours en profondeur :O(m)2m arcs au pluscalcul de la capacite residuelle pour la chanetrouver le minimum dau plus n 1 capacites residuelles

    O(n)calcul du nouveau flot : O(n)construction du nouveau graphe decart :au max 2 (n 1) arcs qui changent : O(n)

    2 Nombre max diterations de Ford / Fulkerson

    Chapitre 8 : Flots dans les reseaux - Implementation et complexite de lalgorithme de Ford et Fulkerson 55/57

    Complexite

  • 7/23/2019 Graphes Chap8 Flots Pres

    56/57

    1 Complexite dune iteration : O(m)

    2 Nombre max diterations de Ford / Fulkersonhypotheses : c N et le flot de depart est entier.Les capacites residuelles sont entieres. la suite des flots est entiere.

    la valeur du flot augmente au moins de 1 a chaqueiteration. au plus F iterations avec F=valeur du flot max.F

    jc(s,j) (n 1)C avec C =max(i,j)Ec(i,j)

    donc au pire, (n 1)C iterations.

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

    Chapitre 8 : Flots dans les reseaux - Implementation et complexite de lalgorithme de Ford et Fulkerson 56/57

    Ameliorations de Ford et Fulkerson

  • 7/23/2019 Graphes Chap8 Flots Pres

    57/57

    Idee 1 : Choisir une chane augmentante de capacite residuellemaximum.pas de garantie que les augmentations suivantesce nest plus un parcours mais la recherche dun chemin dedebit maximum

    Idee 2 : Choisir une chane augmentante la plus courte possible entermes de nombre darcs.parcours en largeur

    Chapitre 8 : Flots dans les reseaux - Implementation et complexite de lalgorithme de Ford et Fulkerson 57/57