• Nie Znaleziono Wyników

[wersja do druku]

N/A
N/A
Protected

Academic year: 2021

Share "[wersja do druku]"

Copied!
18
0
0

Pełen tekst

(1)

Maksymalny przepªyw

dr Andrzej Mróz (UMK w Toruniu)

2013

Projekt wspóªnansowany ze ±rodków Unii Europejskiej w ramach Europejskiego Funduszu Spoªecznego Projekt pn. Wzmocnienie potencjaªu dydaktycznego UMK w Toruniu w dziedzinach

matematyczno-przyrodniczych

(2)

Spis tre±ci

1 Wst¦p 3 1.1 Kontekst . . . 3 1.2 Problem . . . 3 2 Poj¦cia 3 2.1 Sie¢ przepªywowa . . . 3

2.2 Sie¢ przepªywowa  przykªady . . . 4

2.3 Przepªyw . . . 4 2.4 Przepªyw dodatni . . . 6 2.5 Maksymalny przepªyw . . . 6 3 Ford-Fulkerson 7 3.1 Metoda . . . 7 3.2 Sieci residualne . . . 8

3.3 Przykªady sieci residualnych . . . 8

3.4 Droga powi¦kszaj¡ca . . . 9 3.5 Przykªady dróg powi¦kszaj¡cych . . . 9 3.6 Poprawno±¢ . . . 10 3.7 Algorytm . . . 10 3.8 Algorytm  przebieg I . . . 11 3.9 Algorytm  przebieg II . . . 11 3.10 Uwagi . . . 13 4 Maksymalne skojarzenie 13 4.1 Problem . . . 13 4.2 Przykªad . . . 14 4.3 Zastosowania . . . 15 4.4 Algorytm naiwny . . . 15

4.5 Maksymalne skojarzenie a przepªyw . . . 17

4.6 Przykªad . . . 17

(3)

1 Wst¦p

1.1 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.

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. Interpretacja:

• 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±¢ zachowa-nia przepªywu, por. prawo Kirchhoa).

1.2 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.

Zdeniujemy teraz niezb¦dne poj¦cia nieco bardziej formalnie.

2 Poj¦cia

2.1 Sie¢ przepªywowa

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

(4)

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ªo s i uj±cie t,

• o grae G zakªadamy, »e ka»dy wierzchoªek le»y na pewnej drodze ze ¹ródªa do uj±cia. Zatem c mo»na rozwa»a¢ jako funkcj¦ c : V × V → R+.

2.2 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 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 2.3 Przepªyw

Denicja. Przepªyw w sieci G = dowolna funkcja f : V × V → R speªniaj¡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.

(5)

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} X

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, wi¦c c(u, v) = 0 = c(v, u), st¡d (z w-ku przepustowo±ci): f(u, v) ≤ c(u, v) = 0i 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.  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.

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

(dla u = b podobnie). 

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

(6)

2.4 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→v+ | = |fv→+ |.

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. 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).

2.5 Maksymalny przepªyw

Denicja. Warto±¢ przepªywu f to liczba |f | =X

v∈V

f (s, v).

Przepªyw f nazywamy maksymalnym, gdy jego warto±¢ jest najwi¦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

(7)

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. 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±¢ algo-rytmów, wªasno±¢ stopu...) s¡ do±¢ gª¦bokie. Skupimy si¦ na gªównych ideach i opisie samego algorytmu. Po szczegóªow¡ analiz¦ odsyªamy np. do ksi¡»ki [1] ze spisu literatury do wykªadu (T. H. Cormen et al.).

3 Ford-Fulkerson

3.1 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. B¦dziemy zatem realizowa¢ ogólny algorytm:

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 return f

(8)

3.2 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¢ przepus-towo±ci.

• Przepustowo±¢ residualna mo»e by¢ wi¦ksza ni» przepustowo±¢!

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 ! • Gdy f = 0 oraz c(u, v) > 0 dla ka»dej (u, v) ∈ E, to Gf = G.

3.3 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

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

(9)

Sie¢ residualna Gf ma posta¢:  * 5      11 H H H H j 5 H H 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 3.4 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}.

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 | + cf(p) > |f |.

3.5 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¡ pw 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

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

(10)

mamy dwie drogi powi¦kszaj¡ce w Gf:  * 5      11 H H H H j 5 H H 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  * 5      11 H H H H j 5 H H 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 3.6 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¦ksza-j¡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. algo-rytmem BFS.

3.7 Algorytm

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

1 begin

2 for ka»da (u, v) ∈ V×Vdo f[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;

(11)

• Wiersz 3:

 skonstruuj sie¢ Gf zgodnie z denicj¡,

 znajd¹ drog¦ z s do t (np. BFS dla grafu skierowanego). • Wiersz 5:

 cf(p) = zmienna pomocnicza;

 warto±ci cf(u, v)obliczamy korzystaj¡c z odpowiedniego wzoru.

3.8 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 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

Brak drogi powi¦kszaj¡cej ⇒ KONIEC, f maksymalny!

3.9 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

(12)

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 c f(p) = 12 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 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 9 H H 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 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

(13)

Gf:  * 4      12 H H H H j 2 H H 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

Brak drogi powi¦kszaj¡cej ⇒ KONIEC, f maksymalny!

3.10 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. 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¦kszaj¡ce (przy u»yciu BFS, wówczas algorytm ten nazywa si¦ te» algorytmem 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) (tzw. algorytmy

przed-przepªywowe).

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±ci-ach ∞.

• Wielomateriaªowe sieci przepªywowe.

4 Maksymalne skojarzenie

4.1 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).

(14)

4.2 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 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

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

(15)

4.3 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.

4.4 Algorytm naiwny

Problem maksymalnego skojarzenia wydaje si¦ by¢ 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.

Przykªad. Przebieg powy»szego algorytmu: 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 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

(16)

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 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 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

Koniec! Otrzymali±my skojarzenie o liczno±ci 4. Czy jest ono maksymalne? Nie! Skojarzenie maksymalne ma liczno±¢ 5:

(17)

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

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

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

4.5 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|).

4.6 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

(18)

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 4.7 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

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

Uzasadnij, »e wysoko±¢ w trójk¡cie prostok¡tnym wysoko±¢ poprowadzona z wierzchoªka przy k¡cie prostym ma dªugo±¢ b¦d¡c¡ ±redni¡ geometryczn¡ dªugo±ci odcinków

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

Spo ród badanych gruszek azjatyckich najwi ksz zawarto ci cukrów ogółem odznaczały si owoce odmiany Hosui 10,8%, przy czym była to warto zbli ona do tej, jak

Celem niniejszej pracy było okre lenie zale no ci pomi dzy poszczególnymi parametrami reologicznymi jogurtu, okre lenie ich zmienno ci w czasie oraz podj cie próby

skrobi MKW (rys. Zaobserwowano wzrost lepko ci roztworów wraz ze wzrostem st enia GK. około 60ºC, przy wi kszym st eniu gumy ksantanowej mieszanina kleikowała ju od temp.

Na końcu załączone są dwa skojarzenia pokazujące jak w prosty sposób zapamiętać, za pomocą jednego zerknięcia, pierwiastki będące gazami, uwzględniając podział na

W ciągu 4 lat pomogłam uczestnikom Akademii Smart Brand pozyskać tysiące klientów, zwiększać zasięgi, budować z sukcesem marki i zarabiać milionowe kwoty. swoich i