• Nie Znaleziono Wyników

[slajdy]

N/A
N/A
Protected

Academic year: 2021

Share "[slajdy]"

Copied!
64
0
0

Pełen tekst

(1)

Maksymalny przepªyw

Autor projektu: dr Andrzej Mróz (UMK)

Projekt pn. Wzmocnienie potencjaªu dydaktycznego UMK w Toruniu w dziedzinach matematyczno-przyrodniczych realizowany w ramach Poddziaªania 4.1.1 Programu Operacyjnego

(2)

Kontekst

Cel:

Modelowanie za pomoc¡ grafu skierowanego sieci przepªywowej:

badanie procesu przemieszczania si¦ pewnego materiaªu w sieci; materiaª kr¡»y w sieci od ¹ródªa (miejsca wytworzenia) do uj±cia (miejsca zu»ycia);

¹ródªo wytwarza materiaª ze staª¡ szybko±ci¡, z tak¡ sam¡ szybko±ci¡ jest on zu»ywany w uj±ciu;

przepªyw w danym punkcie systemu = szybko±¢, z jak¡ materiaª przemieszcza si¦ przez ten punkt.

(3)

Kontekst

Przykªady sieci przepªywowych:

przepªyw cieczy w ruroci¡gach,

przepªyw cz¦±ci na liniach monta»owych, przepªyw pr¡du w sieciach energetycznych, przepªyw informacji w sieciach komunikacyjnych, transport towarów z fabryki do odbiorcy/magazynu.

(4)

Kontekst

Kraw¦d¹ (skierowana) grafu = kanaª, którym co± pªynie. Ka»dy kanaª ma ustalon¡ przepustowo±¢.

Wierzchoªki ró»ne od ¹ródªa i uj±cia s¡ punktami, w których zbiegaj¡ si¦ kanaªy (przepªyw nie jest w tych punktach zatrzymywany).

Szybko±¢ wpªywania do wierzchoªka = szybko±¢ wypªywania z niego (wªasno±¢ zachowania przepªywu, por. prawo Kirchhoa).

(5)

Problem

Problem (nieformalnie)

Dla danej sieci przepªywowej znale¹¢ maksymalny przepªyw, tj. najwi¦ksz¡ szybko±¢, z jak¡ mo»e nast¦powa¢ przepªyw ze ¹ródªa do uj±cia bez naruszenia przepustowo±ci kanaªów.

Innymi sªowy: z jak¡ maksymaln¡ szybko±ci¡ ¹ródªo mo»e produkowa¢ materiaª, aby zostaª on dostarczony do uj±cia bez naruszenia zasad.

(6)

Sie¢ przepªywowa

Denicja

Sie¢ przepªywowa(krótko: sie¢) = graf skierowany G = (V , E) z funkcj¡ wagi c : E → R+ zwan¡przepustowo±ci¡.

Dodatkowo:

przepustowo±¢ rozszerzamy na wszystkie pary wierzchoªków kªad¡c c(u, v) = 0, gdy (u, v) /∈ E,

wyró»niamy dwa wierzchoªki: ¹ródªos i uj±ciet,

o grae G zakªadamy, »e ka»dy wierzchoªek le»y na pewnej drodze ze ¹ródªa do uj±cia.

(7)

Sie¢ przepªywowa  przykªady

Prosty przykªad: -20 -10 -15 w g wg wg wg s a b t

Przepustowo±¢ w sieci mo»emy reprezentowa¢ w formie tablicy (analogicznie do wagowej macierzy s¡siedztwa). Tutaj:

c s a b t s 0 20 0 0 a 0 0 10 0 b 0 0 0 15 t 0 0 0 0

(8)

Sie¢ przepªywowa  przykªady

Przykªad II.  * 16 H H H H j 13 -12 -14 H H H H j 20  * 4 ? 10 6 4 9 6 7 w g w g w g w g w g w g s b a d c t

(9)

Przepªyw

Denicja

Przepªyww sieci G = dowolna funkcja f : V × V → R speªnia-j¡ca warunki:

1 Warunek przepustowo±ci:

u,v∈V f (u, v) ≤ c(u, v).

2 Warunek sko±nej symetryczno±ci:

u,v∈V f (u, v) = −f (v, u).

3 Warunek zachowania przepªywu:

u∈V \{s,t} X

v∈V

f (u, v) = 0.

Wielko±¢ f (u, v) nazywamyprzepªywem netto z wierzchoªka u do v.

(10)

Przepªyw

Lemat

Dla dowolnego przepªywu f w sieci G zawsze mamy:

1 ∀u∈V f (u, u) = 0,

2 warunek zachowania przepªywu mo»emy zapisa¢ równowa»nie

jako ∀v∈V \{s,t} P

u∈V f (u, v) = 0,

3 gdy (u, v) /∈ E ani (v, u) /∈ E, to f (u, v) = f (v, u) = 0.

Udowodnimy tez¦ 3, pozostaªe zostawiamy jako ¢wiczenie. (u, v) /∈ E, (v, u) /∈ E ⇒ c(u, v) = 0 = c(v, u), st¡d (z w-ku przepustowo±ci): f (u, v) ≤ c(u, v) = 0 i f (v, u) ≤ c(v, u) = 0 oraz ze sko±nej symetryczno±ci f (u, v) = −f (v, u). Zatem f (u, v) ≤ 0 oraz f (u, v) ≥ 0, czyli f (u, v) = 0. Podobnie f (v, u) = 0. 

(11)

Przepªyw

Uwaga

Istotne s¡ warto±ci dodatnie przepªywu netto. Jedynie wówczas materiaª faktycznie przepªywa przez dany kanaª. Warto±ci 0 i ujemne maj¡ charakter pomocniczy.

(12)

Przepªyw

Przykªad I. Rozwa»my sie¢

-20 -10 -15 w g wg wg wg s a b t c s a b t s 0 20 0 0 a 0 0 10 0 b 0 0 0 15 t 0 0 0 0

i funkcj¦ f : V × V → R zdeniowan¡ przy pomocy tablicy:

f s a b t s 0 6 0 0 a −6 0 6 0 b 0 −6 0 6 t 0 0 −6 0

Czy f jest przepªywem? Warunki przepustowo±ci i sko±nej

symetryczno±ci s¡ w oczywisty sposób speªnione. Sprawd¹my w-k zachowania przepªywu dla wierzchoªka u = a:

X v∈V

f (u, v) = f (a, s) + f (a, a) + f (a, b) + f (a, t) = −6 + 0 + 6 + 0 = 0

(13)

Przepªyw

Konwencja: Dla uproszczenia na diagramie b¦dziemy zaznacza¢ (oprócz przepustowo±ci) tylko dodatnie warto±ci przepªywu netto w postaci

f (u, v)/c(u, v)

(pozostaªe warto±ci przepªywu nietrudno odtworzy¢). W przykªadzie I: -6/20 -6/10 -6/15 w g wg wg wg s a b t c s a b t s 0 20 0 0 a 0 0 10 0 b 0 0 0 15 t 0 0 0 0 f s a b t s 0 6 0 0 a −6 0 6 0 b 0 −6 0 6 t 0 0 −6 0

(14)

Przepªyw dodatni

Denicja

Dodatni przepªyw netto wpªywaj¡cy do v ∈ V : |f+v| = X

u∈V ; f (u,v)>0

f (u, v).

Denicja

Dodatni przepªyw netto wypªywaj¡cy z v ∈ V : |fv→+ | = X

u∈V ; f (v,u)>0

f (v, u). Uwaga

Wªasno±¢ zachowania przepªywu ⇔ ∀v∈V \{s,t} |f+

(15)

Przepªyw dodatni

Przykªad I. -6/20 -6/10 -6/15 w g wg wg wg s a b t |f+a| =6, |fa→+ | =6, |f+b| =6, |fb→+ | =6.

(16)

Przepªyw dodatni

Przykªad II.  * 11/16 H H H H j 8/13 -12/12 -11/14 H H H H j 15/20  * 4/4 ? 10 6 1/4 4/9 6 7/7 w g w g w g w g w g w g s b a d c t

Je»eli f (u, v) = 0 dla (u, v) ∈ E, piszemy tylko przepustowo±¢ (10 zamiast 0/10 powy»ej).

Sprawdzamy, »e funkcja f zadana przez powy»sze warto±ci speªnia wªasno±¢ zachowania przepªywu (w terminach przepªywu

dodatniego):

|f+a| =12 = |fa→+ |, |f+c| =19 = |fc→+ |, |f+b| =12 = |fb→+ |, |f+d| =11 = |fd→+ |. Jest to wi¦c przepªyw (pozostaªe wªasno±ci oczywiste).

(17)

Maksymalny przepªyw

Denicja

Warto±¢ przepªywuf to liczba |f | = X

v∈V

f (s, v).

Przepªyw f nazywamymaksymalnym, gdy jego warto±¢ jest naj-wi¦ksza spo±ród wszystkich przepªywów.

Uwaga

Z wªasno±ci przepªywu wynika, »e |f | = P

v∈V f (v, t). Problem maksymalnego przepªywu

(18)

Maksymalny przepªyw

Przykªad I. -6/20 -6/10 -6/15 w g wg wg wg s a b t |f | = 6.

Šatwo zauwa»y¢, »e nie jest to przepªyw maksymalny. Maksymalny przepªyw ma warto±¢ 10: -10/20 -10/10 -10/15 w g wg wg wg s a b t |f | = 10.

(19)

Maksymalny przepªyw

Przykªad II.  * 11/16 H H H H j 8/13 -12/12 -11/14 H H H H j 15/20  * 4/4 ? 10 6 1/4 4/9 6 7/7 w g w g w g w g w g w g s b a d c t |f | = 11 + 8 = 15 + 4 = 19.

Zauwa»my, »e na pierwszy rzut oka nie jest ªatwo stwierdzi¢ czy jest to przepªyw maksymalny. Wskazanie maksymalnego przepªywu równie» wymaga chwili zastanowienia.

Okazuje si¦, »e problemy zwi¡zane z maksymalnym przepªywem (istnienie, poprawno±¢ algorytmów, wªasno±¢ stopu...) s¡ do±¢ gª¦bokie. Skupimy si¦ na gªównych ideach i opisie samego al-gorytmu. Po szczegóªow¡ analiz¦ odsyªamy np. do ksi¡»ki [1] ze spisu literatury do wykªadu (T. H. Cormen et al.).

(20)

Metoda

Metoda Forda-Fulkersona rozwi¡zywania problemu maksymalnego przepªywu jest podstaw¡ kilku algorytmów o ró»nych zªo»ono±ciach. Ogólny schemat:

start od przepªywu netto f (u, v) = 0, dla wszystkich u, v ∈ V ( ⇒ |f | = 0);

w ka»dej iteracji zwi¦kszamy warto±¢ przepªywu znajduj¡c pewn¡ drog¦ powi¦kszaj¡c¡;

droga powi¦kszaj¡ca = droga z s do t, po której mo»na przesªa¢ wi¦kszy przepªyw.

FordFulkersonMethod(G, c, s, t) 1 begin

2 zainicjuj f na 0;

3 while istnieje droga powi¦kszaj¡ca pdo

4 powi¦ksz przepªyw f wzdªu» p; 5 returnf

(21)

Sieci residualne

Nieformalnie: sie¢ residualna (dla danej sieci przepªywowej i przepªywu) = graf skªadaj¡cy si¦ z kraw¦dzi, które dopuszczaj¡ wi¦kszy przepªyw netto.

Dane: Sie¢ G = (V , E) z przepustowo±ci¡ c, ¹ródªem s ∈ V i uj±ciem t ∈ V ; przepªyw f w G.

Denicja

Przepustowo±¢ residualna dla pary (u, v) ∈ V × V to liczba cf(u, v) := c(u, v) − f (u, v).

cf(u, v)  o tyle mo»na zwi¦kszy¢ przepªyw netto z u do v, by

nie przekroczy¢ przepustowo±ci.

(22)

Sieci residualne

Denicja

Sie¢ residualna (dla sieci G, indukowana przez przepªyw f ) = sie¢ Gf = (V , Ef), gdzie

Ef = {(u, v) ∈ V × V : cf(u, v) > 0}. cf traktujemy jako funkcj¦ przepustowo±ci dla sieci Gf.

(u, v) mo»e by¢ kraw¦dzi¡ w Ef, nawet je±li nie jest kraw¦dzi¡ w E !

(23)

Przykªady sieci residualnych

Przykªad I. Rozwa»my sie¢ G z przepªywem f :

-6/20 -6/10 -6/15 w g wg wg wg s a b t c s a b t s 0 20 0 0 a 0 0 10 0 b 0 0 0 15 t 0 0 0 0 f s a b t s 0 6 0 0 a −6 0 6 0 b 0 −6 0 6 t 0 0 −6 0

Zatem przepustowo±¢ residualna zadana jest tabel¡

cf s a b t s 0 14 0 0 a 6 0 4 0 b 0 6 0 9 t 0 0 6 0

czyli sie¢ residualna Gf ma posta¢ -14 -4 -9  6 6 6 w g wg wg wg s a b t

(24)

Przykªady sieci residualnych

Przykªad II. Natomiast dla sieci G z przepªywem f :

 * 11/16 H H H H j 8/13 -12/12 -11/14 H H H H j 15/20  * 4/4 ? 10 6 1/4 4/9 6 7/7 w g w g w g w g w g w g s b a d c t

Sie¢ residualna Gf ma posta¢:

 * 5      11 H H H H j 5HH H H Y 8  12 -3  11 H H H H j 5 H H H H Y 15      4 ? 11 6 3 5  4 ? 7 w g w g w g w g w g w g s b a d c t

(25)

Droga powi¦kszaj¡ca

Dane: Sie¢ G = (V , E) z przepustowo±ci¡ c, ¹ródªem s ∈ V i uj±ciem t ∈ V ; przepªyw f w G.

Denicja

Droga powi¦kszaj¡ca= droga (prosta) z s do t w sieci Gf.

Denicja

Przepustowo±¢ residualna drogi powi¦kszaj¡cej p = liczba cf(p) := min{cf(u, v) : (u, v) ∈ p}.

(26)

Droga powi¦kszaj¡ca

Wówczas powi¦ksz przepªyw f wzdªu» p oznacza: dodaj warto±¢ cf(p) do f (u, v), dla ka»dego ªuku (u, v) ∈ p (i odpowiednio

uaktualnij f (v, u)). Uwaga

Tak otrzymana funkcja f0:V × V → R jest przepªywem,

|f0| = |f | + c

(27)

Wst¦p Poj¦cia Ford-Fulkerson Maksymalne skojarzenie

Przykªady dróg powi¦kszaj¡cych

Przykªad I. Dla sieci G z przepªywem f :

-6/20 -6/10 -6/15 w g wg wg wg s a b t

mamy jedn¡ drog¦ powi¦kszaj¡c¡p w sieci residualnej Gf: -14 -4 -9  6 6 6 w g wg wg wg s a b t z przepustowo±ci¡ residualn¡ cf(p) = 4. -10/20 -10/10 -10/15 w g wg wg wg s a b t

(28)

Przykªady dróg powi¦kszaj¡cych

Przykªad I. Dla sieci G z przepªywem f :

-6/20 -6/10 -6/15 w g wg wg wg s a b t

mamy jedn¡ drog¦ powi¦kszaj¡c¡p w sieci residualnej Gf: -14 -4 -9  6 6 6 w g wg wg wg s a b t z przepustowo±ci¡ residualn¡ cf(p) = 4.

Przepªyw f0 powstaªy z f po powi¦kszeniu wzdªu» p: -10/20 -10/10 -10/15 w g wg wg wg s a b t

(29)

Przykªady dróg powi¦kszaj¡cych

Przykªad II. Dla sieci G z przepªywem f :

 * 11/16 H H H H j 8/13 -12/12 -11/14 H H H H j 15/20  * 4/4 ? 10 6 1/4 4/9 6 7/7 w g w g w g w g w g w g s b a d c t

mamy dwie drogi powi¦kszaj¡ce w Gf:

 * 5      11 H H H H j 5HH H H Y 8  12 -3  11 H H H H j 5 H H H H Y 15      4 ? 11 6 3 5  4 ? 7 w g w g w g w g w g w g s b a d c t

(30)

Przykªady dróg powi¦kszaj¡cych

Przykªad II. Dla sieci G z przepªywem f :

 * 11/16 H H H H j 8/13 -12/12 -11/14 H H H H j 15/20  * 4/4 ? 10 6 1/4 4/9 6 7/7 w g w g w g w g w g w g s b a d c t

mamy dwie drogi powi¦kszaj¡ce w Gf:

 * 5      11 H H H H j 5HH H H Y 8  12 -3  11 H H H H j 5 H H H H Y 15      4 ? 11 6 3 5  4 ? 7 w g w g w g w g w g w g s b a d c t

(31)

Poprawno±¢

Twierdzenie

Je±li f jest przepªywem w sieci G = (V , E), to nast¦puj¡ce warunki s¡ równowa»ne:

1 Przepªyw f w sieci G jest maksymalny.

2 Sie¢ residualna Gf nie zawiera dróg powi¦kszaj¡cych.

Pytanie: czy zawsze po sko«czonej liczbie kroków otrzymamy sie¢ Gf bez dróg powi¦kszaj¡cych?

Mo»na pokaza¢, »e tak jest, gdy

przepustowo±¢ jest caªkowitoliczbowa lub

zawsze wybieramy najkrótsz¡ (w sensie liczby kraw¦dzi) drog¦ powi¦kszaj¡c¡, np. algorytmem BFS.

(32)

Algorytm

Podsumowanie: algorytm Forda-Fulkersona znajdowania maks. przepªywu. FordFulkerson(G, c, s, t)

1 begin

2 for ka»da (u, v) ∈ V×Vdof[u, v] := 0;

3 whileistnieje droga p z s do t w sieci residualnej Gf do

4 begin

5 cf(p) := min{cf(u, v) : (u, v) ∈ p}; 6 for ka»da (u, v) ∈ pdo

7 begin 8 f[u, v] := f[u, v] + cf(p); 9 f[v, u] := −f[u, v] 10 end 11 end; 12 return f 13 end;

Wiersz 3: (a) skonstruuj sie¢ Gf zgodnie z denicj¡,

(b) znajd¹ drog¦ z s do t (np. BFS dla grafu skierowanego). Wiersz 5: cf(p) = zmienna pomocnicza; warto±ci cf(u, v)

(33)

Algorytm  przebieg I

Krok 0 G z przepªywem f (=0): -20 -10 -15 w g wg wg wg s a b t Gf : -20 -10 -15 w g wg wg wg s a b t

(34)

Algorytm  przebieg I

Krok 0 G z przepªywem f (=0): -20 -10 -15 w g wg wg wg s a b t Gf : -20 -10 -15 w g wg wg wg s a b t cf(p) =10

(35)

Algorytm  przebieg I

Krok 1 G z przepªywem f : -10/20 -10/10 -10/15 w g wg wg wg s a b t Gf : -10 -5  10 10 10 w g wg wg wg s a b t

(36)

Algorytm  przebieg I

Krok 1 brak drogi powi¦kszaj¡cej ⇒ KONIEC, f maksymalny! G z przepªywem f : -10/20 -10/10 -10/15 w g wg wg wg s a b t Gf : -10 -5  10 10 10 w g wg wg wg s a b t

(37)

Algorytm  przebieg II

Krok 0 G z przepªywem f (=0):  * 16 H H H H j 13 -12 -14 H H H H j 20  * 4 ? 10 6 4 9 6 7 w g w g w g w g w g w g s b a d c t Gf :  * 16 H H H H j 13 -12 -14 H H H H j 20  * 4 ? 10 6 4 9 6 7 w g w g w g w g w g w g s b a d c t

(38)

Algorytm  przebieg II

Krok 0 G z przepªywem f (=0):  * 16 H H H H j 13 -12 -14 H H H H j 20  * 4 ? 10 6 4 9 6 7 w g w g w g w g w g w g s b a d c t Gf :  * 16 H H H H j 13 -12 -14 H H H H j 20  * 4 ? 10 6 4 9 6 7 w g w g w g w g w g w g s b a d c t cf(p) =12

(39)

Algorytm  przebieg II

Krok 1 G z przepªywem f :  * 12/16 H H H H j 13 -12/12 -14 H H H H j 12/20  * 4 ? 10 6 4 9 6 7 w g w g w g w g w g w g s b a d c t Gf :  * 4      12 H H H H j 13  12 -14 H H H H j 8 H H H H Y 12  * 4 ? 10 6 4 9 6 7 w g w g w g w g w g w g s b a d c t

(40)

Algorytm  przebieg II

Krok 1 G z przepªywem f :  * 12/16 H H H H j 13 -12/12 -14 H H H H j 12/20  * 4 ? 10 6 4 9 6 7 w g w g w g w g w g w g s b a d c t Gf :  * 4      12 H H H H j 13  12 -14 H H H H j 8 H H H H Y 12  * 4 ? 10 6 4 9 6 7 w g w g w g w g w g w g s b a d c t c f(p) =4

(41)

Algorytm  przebieg II

Krok 2 G z przepªywem f :  * 12/16 H H H H j 4/13 -12/12 -4/14 H H H H j 12/20  * 4/4 ? 10 6 4 9 6 7 w g w g w g w g w g w g s b a d c t Gf :  * 4      12 H H H H j 9HH H H Y 4  12 -10  4 H H H H j 8 H H H H Y 12      4 ? 10 6 4 9 6 7 w g w g w g w g w g w g s b a d c t

(42)

Algorytm  przebieg II

Krok 2 G z przepªywem f :  * 12/16 H H H H j 4/13 -12/12 -4/14 H H H H j 12/20  * 4/4 ? 10 6 4 9 6 7 w g w g w g w g w g w g s b a d c t Gf :  * 4      12 H H H H j 9HH H H Y 4  12 -10  4 H H H H j 8 H H H H Y 12      4 ? 10 6 4 9 6 7 w g w g w g w g w g w g s b a d c t c f(p) =7

(43)

Algorytm  przebieg II

Krok 3 G z przepªywem f :  * 12/16 H H H H j 11/13 -12/12 -11/14 H H H H j 19/20  * 4/4 ? 10 6 4 9 6 7/7 w g w g w g w g w g w g s b a d c t Gf :  * 4      12 H H H H j 2HH H H Y 11  12 -3  11 H H H H j 1 H H H H Y 19      4 ? 10 6 4 9 ? 7 w g w g w g w g w g w g s b a d c t

(44)

Algorytm  przebieg II

Krok 3 brak drogi powi¦kszaj¡cej ⇒ KONIEC, f maksymalny! G z przepªywem f :  * 12/16 H H H H j 11/13 -12/12 -11/14 H H H H j 19/20  * 4/4 ? 10 6 4 9 6 7/7 w g w g w g w g w g w g s b a d c t Gf :  * 4      12 H H H H j 2HH H H Y 11  12 -3  11 H H H H j 1 H H H H Y 19      4 ? 10 6 4 9 ? 7 w g w g w g w g w g w g s b a d c t

(45)

Uwagi

Zauwa»my, »e przebieg silnie zale»y od sposobu wybierania drogi powi¦kszaj¡cej.

Cz¦sto istnieje wi¦cej ni» jedna droga powi¦kszaj¡ca w danym kroku.

My wybierali±my drog¦ najkrótsz¡ (w sensie liczby kraw¦dzi). Równie» drogi najkrótsze nie s¡ jednoznaczne.

Liczba gªównych kroków algorytmu zale»y od sposobu wybierania dróg powi¦kszaj¡cych.

(46)

Uwagi

Liczba kroków mo»e zale»e¢ od warto±ci maksymalnego przepªywu |fmax|. Przykªadowo, gdy |fmax| =106, a w ka»dym kroku

przepustowo±¢ residualna drogi powi¦kszaj¡cej wynosi 1, to algorytm wykona 106 kroków!

Ale pokazuje si¦, »e gdy wybieramy najkrótsze drogi powi¦ksza-j¡ce (przy u»yciu BFS, wówczas algorytm ten nazywa si¦ te» al-gorytmem Edmondsa-Karpa) zªo»ono±¢ algorytmu nie zale»y od warto±ci |fmax|i wynosi O(|V | · |E|2).

Istniej¡ te» algorytmy o zªo»ono±ciach O(|V |2· |E|) oraz O(|V |3)

(47)

Uwagi

Inne warianty problemu:

Sie¢ z wieloma ¹ródªami i uj±ciami. Problem mo»na sprowadzi¢ do wersji standardowej poprzez:

dodanie super¹ródªa oraz kraw¦dzi z niego do oryginalnych ¹ródeª o przepustowo±ciach ∞,

dodanie superuj±cia oraz kraw¦dzie do niego z oryginalnych uj±¢ o przepustowo±ciach ∞.

(48)

Problem

Dodatek: przykªad problemu, który mo»na sprowadzi¢ do problemu maksymalnego przepªywu.

G = (V , E)  graf nieskierowany.

Def. Skojarzenie w grae G = ka»dy podzbiór kraw¦dzi M ⊆ E taki, »e dla ka»dego v ∈ V co najwy»ej 1 kraw¦d¹ z M jest incydentna z v.

Def. Skojarzenie maksymalne w G = skojarzenie o najwi¦kszej liczbie kraw¦dzi.

Ograniczymy si¦ do przypadku, gdy graf G jest dwudzielny (tj. V mo»na podzieli¢ na V = L ∪ R, L, R  zbiory rozª¡czne a wszystkie kraw¦dzie z E prowadz¡ mi¦dzy L i R).

(49)

Przykªad

Graf dwudzielny H H H H H H @ @ @ @ @ @ H H H H H H @ @ @ @ @ @    w g w g w g w g w g w g w g w g w g L R

(50)

Przykªad

Skojarzenie o liczno±ci 2 H H H H H H @ @ @ @ @ @ H H H H H H @ @ @ @ @ @    w g w g w g w g w g w g w g w g w g L R

(51)

Przykªad

Skojarzenie o liczno±ci 3 (maksymalne)

H H H H H H @ @ @ @ @ @ H H H H H H @ @ @ @ @ @    w g w g w g w g w g w g w g w g w g L R

(52)

Zastosowania

Przykªady zastosowa«  problemy równolegªego dost¦pu do zasobów (na wyª¡czno±¢):

prace ↔ maszyny, procesy ↔ procesory, zaj¦cia ↔ sale, kojarzenie maª»e«stw.

(53)

Algorytm naiwny

Problem maksymalnego skojarzenia wydaje si¦ dosy¢ prosty. Nasuwaj¡cy si¦ algorytm mógªby polega¢ na nast¦puj¡cej strategii zachªannej:

Szkic algorytmu

Dopóki to mo»liwe, rozbudowuj skojarzenie dodaj¡c kolejne kraw¦dzie zgodnie z rosn¡cymi (niemalej¡cymi) stopniami ich wierzchoªków.

Dokªadniej: w ka»dym kroku wybierz nieskojarzony wierzchoªek v o minimalnym stopniu i, spo±ród wszystkich kraw¦dzi {v, w} takich, »e w jest nieskojarzony, wybierz t¦ z w o minimalnym stopniu.

(54)

Algorytm naiwny

Przykªad. H H H H H H @ @ @ @ @ @ H H H H H H w g w g w g w g w g w g w g w g w g w g

(55)

Algorytm naiwny

Przykªad. H H H H H H @ @ @ @ @ @ H H H H H H w g w g w g w g w g w g w g w g w g w g

(56)

Algorytm naiwny

Przykªad. H H H H H H @ @ @ @ @ @ H H H H H H w g w g w g w g w g w g w g w g w g w g

(57)

Algorytm naiwny

Przykªad. H H H H H H @ @ @ @ @ @ H H H H H H w g w g w g w g w g w g w g w g w g w g

(58)

Algorytm naiwny

Przykªad. Koniec! Skojarzenie o liczno±ci 4. Czy maksymalne?

H H H H H H @ @ @ @ @ @ H H H H H H w g w g w g w g w g w g w g w g w g w g

(59)

Algorytm naiwny

Przykªad. Nie! Skojarzenie maksymalne ma liczno±¢ 5:

H H H H H H @ @ @ @ @ @ H H H H H H w g w g w g w g w g w g w g w g w g w g

(60)

Algorytm naiwny

Widzimy zatem, »e zaproponowane rozwi¡zanie naiwne jest niepoprawne i problem maksymalnego skojarzenia wymaga nieco bardziej wyranowanego podej±cia.

Z pomoc¡ przyjdzie nam omówiony wcze±niej problem maksymalnego przepªywu.

(61)

Maksymalne skojarzenie a przepªyw

Idea rozwi¡zania: konstrukcja sieci przepªywowej, w której przepªywy odpowiadaj¡ skojarzeniom.

G = (V = L ∪ R, E) nieskierowany graf dwudzielny sie¢ G0 = (V0,E0) (graf skierowany) tak¡, »e V0=V ∪ {s, t} oraz

E0 = {(s, u) : u ∈ L}

∪ {(u, v) : u ∈ L, v ∈ R, {u, v} ∈ E} ∪ {(v, t) : v ∈ R}.

Przepustowo±¢ c przyjmujemy równ¡ 1 dla ka»dej kraw¦dzi z E0.

Lemat. Je»eli f jest maksymalnym przepªywem w G0 to

odpowiadaj¡ce mu skojarzenie M w G jest maksymalne (oraz |M| = |f |).

(62)

Przykªad

Maksymalne skojarzenie H H H H H H @ @ @ @ @ @ H H H H H H @ @ @ @ @ @    w g w g w g w g w g w g w g w g w g L R

(63)

Przykªad

Odpowiadaj¡cy mu maksymalny przepªyw

H H H H H j -@ @ @ @ @ R -H H H H H j @ @ @ @ @ R -   *     * -H H H H H j @ @ @ @ @ R Z Z Z Z Z ~ XX XXXz   :      > w g w g w g w g w g w g w g w g w g w g w g s t L R - = przepªyw 1/1 = przepªyw 0/1

(64)

-Ko«cowe uwagi

Zªo»ono±¢ omówionego algorytmu znajduj¡cego maksymalne skojarzenie przy pomocy przepªywu wynosi O(|V ||E|). Istniej¡ inne, bardziej efektywne algorytmy poszukiwania maksymalnego skojarzenia, np. algorytm Hopcrofta-Karpa (ze zªo»ono±ci¡ O(p|V ||E|)).

Algorytm Hopcrofta-Karpa i inne najbardziej popularne bazuj¡ na podobnych technikach (drogi powi¦kszaj¡ce), ale s¡ te» inne podej±cia, np. oparte na algorytmach szybkiego mno»enia macierzy i in.

Cytaty

Powiązane dokumenty

Powiemy, »e formuªa rachunku zda« θ jest SPEŠNIALNA gdy istnieje warto±ciowanie logiczne T odpowiednie dla θ, takie »e T  θ.. Powiemy, »e θ jest PRAWDZIWA lub, »e

Podobnie możemy określić drugą pochodną (pochodną 2. Aby zbadać jego krotność, wystarczy obliczyć wartości kolejnych pochodnych wielomianu w tym punkcie. Pierwszy

W swojej pracy wykorzystaj zdania pytajàce oraz fragmenty ksià˝ki mówiàce o odnalezieniu ogrodu przez dziewczynk´.. Uwzgl´dnij odpowiedzi na

Jeśli obrót zachodzi w kierunku prze- ciwnym do kierunku ruchu wskazówek zegara, to moment siły jest dodatni, a jeśli ciało obraca się w kierunku zgodnym z kierunkiem ruchem

Na płaszczyźnie dany jest trójk at o bokach a, b, c; można na nim zbudować jako na podsta-  wie nieskończenie wiele ostrosłupów o danej

Okazuje się, że jeśli miary wszystkich kątów trójściennych przy wierzchołkach czworościanu ABCD są mniejsze od π, to punkt F leży wewnątrz tego czworościanu (przez miarę

Jeśli chcemy wyznaczyć wszystkie liczby pierwsze nieprzekraczające n, wypisujemy na kartce liczby naturalne od 1 do n, wykreślamy 1, bo nie jest pierwsza, zostawiamy 2 i

Kwota przeznaczona na reali- zację ustawy nie załatwia problemu wierzytelno- ści szpitali, tym bardziej, że jest to tylko pożycz- ka.. Ustawodawca bazuje na pewnych