• Aucun résultat trouvé

Optimisation Combinatoire 2A Circulations TD

N/A
N/A
Protected

Academic year: 2022

Partager "Optimisation Combinatoire 2A Circulations TD"

Copied!
12
0
0

Texte intégral

(1)

Optimisation Combinatoire 2A Circulations TD

Zolt´an Szigeti

Ensimag Grenoble INP

(2)

Circulation

D´efinitions

Dans un r´eseau (G = (V,A),f,g), une fonction x sur les arcs est

1 une circulationsi elle v´erifie la contrainte de conservation du flot : dx+(v) =dx(v) ∀v ∈V ⇐⇒ dx+(Z) =dx(Z)∀Z ⊆V.

2 r´ealisable si elle satisfait la contrainte de capacit´es : f(e)≤x(e)≤g(e) ∀e ∈A.

Probl`eme

Etant donn´es un graphe orient´e´ G, deux capacit´es f et g sur chaque arc e avec f(e)≤g(e),d´ecider s’il existe une circulation r´ealisable.

(0,0,3)

(1,1,2) (2,3,4)

(1,1,2)

(3,3,4)

(f(e),x(e),g(e))

(3)

Caract´erisation

Lemme (Condition n´ecessaire pour avoir une circulation r´ealisable) Ce qui doit entrer doit pouvoir sortir :

df(Z)≤dx(Z) =dx+(Z)≤dg+(Z) ∀Z ⊆V.

Th´eor`eme (Hoffmann)

Il existe une circulation r´ealisable dans (G,f,g) si et seulement si df(Z)≤dg+(Z) ∀Z ⊆V.

(0,0,3)

(1,4,4) (1,1,2) (2,3,4)

(1,1,2)

(3,3,4)

(f(e),x(e),g(e))

(4)

Comment trouver une circulation r´ealisable ?

Entr´ee Etant donn´es´

1 G = (V,A) un graphe orient´e,

2 f et g deux fonctions sur les arcs telles que f(e)≤g(e) ∀e ∈A.

Exemple

(0,3)

(1,4) (1,2) (2,4)

(1,2)

(3,4)

Notation

1 b(v) :=df+(v)−df(v) ∀v ∈V,

2 b(Z):=P

v∈Zb(v) =df+(Z)−df(Z) ∀Z ⊂V,

3 S :={v ∈V :b(v)<0},

4 T :={v ∈V :b(v)>0},

5 M :=-b(S) =b(T) (0 =b(V) =b(S) +b(T)).

Exemple

1 0

−2 3

S T

(5)

Algorithme pour trouver une circulation r´ealisable

Etape 1 : V´erification si´ f est une circulation

Si b(v) = 0 ∀v ∈V,alors arrˆeter avecf qui est une circulation r´ealisable de (G,f,g), par d´efinition et par f ≤g.

Etape 2 : Construction du r´eseau´ (G:= (V,A),g) o`u

1 S :={v ∈V :b(v)<0},

2 T :={v ∈V :b(v)>0},

3 V :=V ∪ {s,t},

4 A :=A∪ {sv :v ∈S} ∪ {vt :v ∈T},

5 g(uv) :=

−b(v) si u=s,v∈S, b(u) si u∈T,v =t, g(uv)−f(uv) si uv ∈A.

Exemple

(0,3)

(1,4) (1,2) (2,4)

(1,2)

(3,4)

−1 0

−2 3

S T

s t

2 3 1

3

3

2 1

1 1

(6)

Algorithme pour trouver une circulation r´ealisable

Etape 3 : Ex´ecution de l’algorithme d’Edmonds-Karp´ Trouver dans (G,g)

1 un(s,t)-flot r´ealisable de valeur maximumx et

2 une (s,t)-coupe de capacit´e minimum Z ∪s.

(0,1) (0,1)

S T

s t

(0,3) (1,1)

(3,3) (0,1)

(3,3) (2,2)

(1,2)

S T

s t

2 3 1

3

3

2 1

1

Z ∪ s

1

(7)

Algorithme pour trouver une circulation r´ealisable

Etape 4 : Arrˆet avec circulation r´ealisable´

Si val(x) =M,alors arrˆeter, x:=f +xG est une circulation r´ealisable.

Exemple

(0,1) (0,1)

S T

s t

(0,3) (1,1)

(3,3) (0,1)

(3,3) (2,2)

(1,2)

0+0=0

1+3=4 1+0=1

3+0=3

2+1=3 1+0=1 f(e)+xG(e)=x(e)

Etape 5 : Arrˆet avec mauvaise coupe´

Si val(x)<M,alors arrˆeter, Z viole la condition de Hoffmann.

(8)

Algorithme pour trouver une circulation r´ealisable

Algorithme

Entr´ee: R´eseau (G,f,g) avec f ≤g.

Sortie : Circulation r´ealisable ou coupe violant la condition de Hoffmann.

Etape 1 : Si´ f est une circulation : Stop avec la circulation r´ealisablef. Etape 2 : Construire le r´eseau´ (G,g,s,t).

Etape 3 : Trouver dans´ (G,g,s,t) par l’algorithme d’Edmonds-Karp un(s,t)-flot r´ealisable de valeur maximumx et

une(s,t)-coupe de capacit´e minimumZ ∪s.

Etape 4 : Si´ val(x) =M :Stop avec la circulation r´ealisable x :=f +xG . Etape 5 : Stop avec´ Z qui viole la condition de Hoffmann.

(9)

Exercice 4.6

Enonc´e´

Existe-t-il une circulation r´ealisable dans les r´eseaux suivants ?

(0,3) (2,4)

(1,4) (1,2) (1,2)

(3,4) (2,4)

(1,3) (1,3)

(−2,−2) (−2,2) (0,1)

(2,4) (1,3)

(1,3) (3,4) (2,5) (2,3)

(a) d´ej`a fait (b) (c)

(10)

Exercice 4.6

s

t (1,1)

(2,2) (1,2)

(3,3) (0,3)

(0,1) (0,1)

(0,1) (3,3)

3 3

1 1

4 0

s

t

x(e),c(e) f(e) +xG(e)

(1,1) (1,1)

(1,1) (1,1)

(1,2) (1,2)

(0,0) (1,4)

(0,2) (0,1)

3

-2 1

2 0

-1 (a)

(b)

(0,3) (2,4)

(1,4) (1,2) (1,2)

(3,4) (2,4)

(1,3) (1,3) (−2,−2) (−2,2)

(0,1)

(2,4) (1,3)

(1,3) (3,4) (2,5) (2,3)

(b)

(11)

Exercice 4.6

(0,3) (2,4)

(1,4) (1,2) (1,2)

(3,4) (2,4)

(1,3) (1,3)

(−2,−2) (−2,2) (0,1)

(2,4) (1,3)

(1,3) (3,4) (2,5) (2,3)

(c)

(1,1)

(1,2) (1,2)

(2,2)

(0,1) (0,1)

(0,2)

(0,3) (2,3)

s t s t

(c) Z

Z+s

(12)

Circulation enti`ere

Th´eor`eme

Si f(e) et g(e) sontentiers pour chaque arce deG et s’il existe une circulation r´ealisable dans (G,f,g), alors

il en existe une, x,telle quex(e) soitentier pour chaque arc e deG.

D´emonstration

1 On ex´ecute l’algorithme pr´ec´edent.

2 Si on s’arrˆete avecf, alors f(e) est entier ∀e ∈A(G).

3 Dans(G,g),g(e) =g(e)−f(e)est entier ∀e ∈A(G).

4 Par l’algorithme d’Edmonds-Karp, x(e) est entier ∀e ∈A(G).

5 On ne peut pas s’arrˆeter avecZ qui viole la condition car il existe une circulation r´ealisable.

6 On s’arrˆete avec la circulation r´ealisable x =f +xG et x(e) est entier

∀e ∈A(G).

Références

Documents relatifs

L’extraction d’un bloc n’est possible que si les blocs situ´ es juste au-dessus de ce bloc sont d´ ej` a extraits.. On connait par avance pour chaque bloc le profit de

Etant donn´e un graphe biparti G = (U, V ; E ), le cardinal maximum d’un couplage de G = le cardinal minimum d’un ensemble transversal

Zolt´ an Szigeti. Ensimag

Optimisation Combinatoire 2A Flots de coˆut minimum. Zolt´

2 Il connait bien sˆ ur pour chaque vol toutes les informations, ` a savoir : la ville de d´epart et de destination et l’heure de d´epart et d’arriv´e. 3 Il connait aussi le temps

Reconstruire le ventricule gauche du coeur `a partir de radiographies Pour diagnostiquer une possible maladie de coeur d’un patient, on doit voir la forme 3-dimensionnelle du

Optimisation Combinatoire 2A Flots de coˆut minimum 2 TD. Zolt´

Reconstruire le ventricule gauche du coeur `a partir de radiographies Pour diagnostiquer une possible maladie de coeur d’un patient, on doit voir la forme 3-dimensionnelle du