Teoria grafow i sieci - temat nr 6, WAT, II SEM, TGS

[ Pobierz całość w formacie PDF ]
dr inż. Z. Tarapata, Teoria grafów i sieci, Temat nr 6:
Przepływy w sieciach
1
PRZEPŁYWY W SIECIACH SKIEROWANYCH
Sieć standardowa
dla przepływów:
S =

G,
{
a
}
,
{
c
}〉
gdzie:
G =

W,Γ

- graf Berge’a

1, d la źródło
0, dla
xs
=
ax
()
=



x st
xt

,

1, d la
=
od pływ
s

t
!!!
0

c(x,y)
<

przepustowość łuku (x,y)
Definicja przepływu
f
:
f
: U

R
( ) ( )
1.
x
,


y
U
0

f
x
,
y

c
x
,
y
2.
x

W

f
( )
x
,
y


f
( ) ( )()
z
,
x
=
a
x

v
f
y

()
x

()
z

x
tzw. wartość przepływu
Przepływ maksymalny
f
*
:
v
( )
( )
f
*
= max
v
f
f

F
zbiór wszystkich przepływów w S
gdzie:
() ( ) ( )
()
v
f
=
∑ ∑

f
s
,
y

f
z
,
s
y
()
s
z


1
s

1
dr inż. Z. Tarapata, Teoria grafów i sieci, Temat nr 6:
Przepływy w sieciach
2
Przekrój rozdzielający
P
(źródło
s
od odpływu
t
):
P
=
{〈
x,y
〉∈
U : x

W
1

y

W
2
}
gdzie:
W = W
1

W
2
; W
1

W
2
=

;
P

(W
1
,W
2
)
s

W
1
;
t

W
2
Przepustowość przekroju (rozdzielającego)
P
:
C
() ( )
P
=


c
x
,
y
x
,
y
P
Przekrój minimalny (rozdzielający):
C
( )
( )
P
*
= min
C
P
P

P
zbiór wszystkich możliwych przekrojów w
S
.
TWIERDZENIE F-F (FORD’A - FULKERSON’A)
Wartość maksymalnego przepływu
v(f
*
)
jest równa
przepustowości minimalnego przekroju rozdzielającego
C(P
*
).
Łańcuch powiększalny
(przy jakimś przepływie
f
):
Każdy taki łańcuch
Ł(s,t),
łączący źródło
s
z odpływem
t
, że
każdy jego
łuk zgodny
z kierunkiem od
s
do
t
jest nienasycony,
a każdy
łuk przeciwny
– niewyschnięty, tzn. jeśli
t
x
0
=
s
,
x
1
,
x
2
,

,
x
n

,
1
x
tworzy łańcuch, wtedy
( ) ( )
( )
=


x
i

1
,
x
i

U

f
x
i

1
,
x
i
<
c
x
i

1
,
x
i





x
,
x

U

f
x
,
x
>
0
i
=
1
n

i
i

1
i
i

1

n
dr inż. Z. Tarapata, Teoria grafów i sieci, Temat nr 6:
Przepływy w sieciach
3
PRZYKŁAD 1:
Sieć S wraz z funkcją C ( )
opisaną na łukach oraz funkcją f
f
)
(jedną z dopuszczalnych)
c
3
2
S
1
1
0
2
4
0
2
0
1
4
0
1
3
0
4
0
t
3
3
x
3
y
wartość funkcji c(x,y) dla łuku (x, y)
x
1
y
wartość funkcji przepływu f(x,y) dla łuku (x, y)
Zauważmy, że
przepływ
f
(opisany kolorem
zielonym
) jest
jednym z możliwych przepływów dopuszczalnych i spełnia
warunki przepływu podane wcześniej.
Jednym z możliwych
przekrojów rozdzielających
jest np.
przekrój:
gdzie:
P
1
=
{〈
s, 1

,

3, 4

,

2, t
〉}
W
1
=
{
s, 3, 2
}
, W
2
=
{
1, 4, t
}
którego
przepustowość
jest równa:
() ( )
C
P
=


c
x
,
y
=
3
+
3
+
1
=
7
x
,
y
P
1
Zauważmy, że przy przepływie
f
opisanym w tej chwili na S
istnieje
łańcuch powiększalny,
gdyż np. łańcuch

s, 1, t

charakteryzuje się tym, że każdy jego łuk zgodny z kierunkiem
od
s
do
t
(tzn.

s
, 1

,

1,
t

) jest nienasycony, bo f(s, 1) = 1< c(s, 1)
= 3 oraz f(1, t) = 1 < c (1, t) = 4, i każdy łuk przeciwny (nie ma
takich w łańcuchu

s, 1, t

) jest niewyschnięty.
1
dr inż. Z. Tarapata, Teoria grafów i sieci, Temat nr 6:
Przepływy w sieciach
4
Algorytm wyznaczania maksymalnego przepływu
Opiera się o następujące wnioski (z twierdzenia F-F):
I.
Przepływ
f
jest maksymalny

przy tym przepływie
nie istnieje
łańcuch powiększalny.
II.
Przekrój rozdzielający (W
1
, W
2
) jest minimalny

każdy
przepływ maksymalny
nasyca
wszystkie łuki
z W
1
do W
2
i
wysusza
wszystkie łuki
z W
2
do W
1
.
1.
W sieci wyznaczamy dowolny przepływ (np. f

0);
2.
Cechujemy s : (-,

); E(x) – cecha „prawa”.
X – zbiór wierzchołków ocechowanych i niesprawdzonych
X:=
{
s
}
4.
Wybieramy dowolny x

X
a)
Dla każdego y

W – nieocechowanego następnika x
sprawdzamy:
f(x,y) < c(x,y) ?
TAK – y cechujemy (x
+
, min
{
E(x), c(x,y) – f(x,y)
}
)
X:=X
∪{
y
}
NIE – kolejny y;
b)
Dla każdego
z

W – nieocechowanego poprzednika x
sprawdzamy:
f(z,x) > 0 ?
TAK –
z
cechujemy (x
-
, min
{
E(x), f(z,x)
}
) , X:=X
∪{
z
}
NIE – rozpatrzyć kolejny
z
c)
X:=X\
{
x
}
. Przejdź do 3.
3.
t

X ?
TAK – przejdź do 5.
NIE – X


?
TAK – przejdź do 4.
NIE – KONIEC, X – wyznacza W
1
dr inż. Z. Tarapata, Teoria grafów i sieci, Temat nr 6:
Przepływy w sieciach
5
5.
Zmiana przepływu
f
na
f
I
:
a)
Jeżeli
t
ma cechę (y
+
, E(t)), to
f
I
(y,t):= f(y,t) + E(t).
Jeżeli
t
ma cechę (y
-
, E(t)), to
f
I
(t,y):= f(t,y) – E(t).
b)
Jeżeli y ma cechę (x
+
, E(y)), to
f
I
(x,y):= f(x,y) + E(t).
Jeżeli y ma cechę (x
-
, E(y)), to
f
I
(y,x):= f(y,x) – E(t).
c)
x

s ?
TAK – y:=x, przejdź do b)
NIE - przejdź do 2.
PRZYKŁAD c.d.
Wyznaczmy przepływ maksymalny dla sieci z Przykładu 1
przyjmując jako początkowy przepływ
f

0.
3
2
S
3
1
0
2
Iteracja 1
y s 1 2 3 4 t
Cecha y
-,

s
+
, 3 1
+
, 2 s
+
, 4 1
+
, 2 1
+
, 3
sieć po
1-szej
iteracji
4
0
2
0
3
4
0
1
3
0
4
0
t
3
3
Iteracja 2
y
3
2
S
3
1
0
2
s
1
2
3
4
t
4
3
2
0
3
4
0
1
sieć po
2-giej
iteracji
Cecha y
-,

s
+
, 4 3
+
, 3 4
+
, 3
3
3
4
3
t
3
3
Iteracja 3
y
3
2
S
3
1
0
2
s
1
2
3
4
t
4
sieć po
3-ciej
iteracji
Cecha y
-,

s
+
, 1
4
3
2
0
3
0
1
W
{}
{ }
()
( ) ( )
()
=
s
,
3
,
W
=
W
\
W
,
P
=
s
,
3
4
3
3
4
3
t
1
2
1
3
3
v
f
*
=

f
s
,
y


f
z
,
s
=
3
+
3

0
=
6
y

()
s


1
s
z
[ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • mariusz147.htw.pl
  •