Učinkovita izvedba algoritma Goldberg-Tarjan Teja Peklaj 26. februar Definicije Definicija 1 Naj bo (G, u, s, t) omrežje, f : E(G) R, za katero v

Podobni dokumenti
Bellman-Fordov algoritem za iskanje najkraj²ih poti Alenka Frim 19. februar 2009 Popravek 25. februar 2009 Imamo usmerjen graf G z uteºmi na povezavah

Ime in priimek: Vpisna št: FAKULTETA ZA MATEMATIKO IN FIZIKO Oddelek za matematiko Verjetnost Pisni izpit 5. februar 2018 Navodila Pazljivo preberite

EKVITABILNE PARTICIJE IN TOEPLITZOVE MATRIKE Aleksandar Jurišić Politehnika Nova Gorica in IMFM Vipavska 13, p.p. 301, Nova Gorica Slovenija Štefko Mi

RAM stroj Nataša Naglič 4. junij RAM RAM - random access machine Bralno pisalni, eno akumulatorski računalnik. Sestavljajo ga bralni in pisalni

Ravninski grafi Tina Malec 6. februar 2007 Predstavili bomo nekaj osnovnih dejstev o ravninskih grafih, pojem dualnega grafa (k danemu grafu) ter kako

1. izbirni test za MMO 2018 Ljubljana, 16. december Naj bo n naravno število. Na mizi imamo n 2 okraskov n različnih barv in ni nujno, da imam

Urejevalna razdalja Avtorji: Nino Cajnkar, Gregor Kikelj Mentorica: Anja Petković 1 Motivacija Tajnica v posadki MARS - a je pridna delavka, ampak se

6.1 Uvod 6 Igra Chomp Marko Repše, Chomp je nepristranska igra dveh igralcev s popolno informacijo na dvo (ali vec) dimenzionalnem prostoru

Vrste

Microsoft Word - avd_vaje_ars1_1.doc

Mere kompleksnih mrež (angl. Network Statistics) - Seminarska naloga pri predmetu Izbrana poglavja iz diskretne matematike

Segmentacija slik z uporabo najvecjega pretoka

RAČUNALNIŠKA ORODJA V MATEMATIKI

Diapozitiv 1

DS2.dvi

VST: 1. kviz

Datum in kraj

ELEKTRIČNI NIHAJNI KROG TEORIJA Električni nihajni krog je električno vezje, ki služi za generacijo visokofrekvenče izmenične napetosti. V osnovi je "

Vaje: Matrike 1. Ugani rezultat, nato pa dokaži z indukcijo: (a) (b) [ ] n 1 1 ; n N 0 1 n ; n N Pokaži, da je množica x 0 y 0 x

UNIVERZA V LJUBLJANI FAKULTETA ZA MATEMATIKO IN FIZIKO Katja Ciglar Analiza občutljivosti v Excel-u Seminarska naloga pri predmetu Optimizacija v fina

Turingov stroj in programiranje Barbara Strniša Opis in definicija Definirajmo nekaj oznak: Σ abeceda... končna neprazna množica simbolo

C:/Users/Matevž Èrepnjak/Dropbox/FKKT/TESTI-IZPITI-REZULTATI/ /Izpiti/FKKT-avgust-17.dvi

3. Metode, ki temeljijo na minimalnem ostanku Denimo, da smo z Arnoldijevim algoritmom zgenerirali ON bazo podprostora Krilova K k (A, r 0 ) in velja

Univerza na Primorskem FAMNIT, MFI Vrednotenje zavarovalnih produktov Seminarska naloga Naloge so sestavni del preverjanja znanja pri predmetu Vrednot

Microsoft PowerPoint - IPPU-V2.ppt

resitve.dvi

5 SIMPLICIALNI KOMPLEKSI Definicija 5.1 Vektorji r 0,..., r k v R n so afino neodvisni, če so vektorji r 1 r 0, r 2 r 0,..., r k r 0 linearno neodvisn

Osnove matematicne analize 2018/19

Brownova kovariancna razdalja

Lehmerjev algoritem za racunanje najvecjega skupnega delitelja

C:/AndrejT/vestnik/76_1/Rotovnik/main.dvi

UNIVERZA V MARIBORU FAKULTETA ZA NARAVOSLOVJE IN MATEMATIKO Oddelek za matematiko in računalništvo DIPLOMSKO DELO Denis Kolarič Maribor, 2010

Microsoft Word - M docx

resitve.dvi

Strojna oprema

Matematika Diferencialne enačbe prvega reda (1) Reši diferencialne enačbe z ločljivimi spremenljivkami: (a) y = 2xy, (b) y tg x = y, (c) y = 2x(1 + y

UNIVERZA V MARIBORU FAKULTETA ZA NARAVOSLOVJE IN MATEMATIKO Oddelek za matematiko in računalništvo DIPLOMSKO DELO Peter Škofič Maribor, 2014

Microsoft Word - UP_Lekcija04_2014.docx

C:/Users/Matevž Èrepnjak/Dropbox/FKKT/testi in izpiti/ /IZPITI/FKKT-februar-14.dvi

Kazalo 1 DVOMESTNE RELACIJE Operacije z dvomestnimi relacijami Predstavitev relacij

'Kombinatoricna optimizacija / Lokalna optimizacija'

ŠTEVCI PROMETA IN NJIHOVA UPORABA ZA NAMENE STATISTIK ČRT GRAHONJA

Mrežni modeli polimernih verig Boštjan Jenčič 22. maj 2013 Eden preprostejših opisov polimerne verige je mrežni model, kjer lahko posamezni segmenti p

Ime in priimek: Vpisna št: FAKULTETA ZA MATEMATIKO IN FIZIKO Oddelek za matematiko Statistika Pisni izpit 31. avgust 2018 Navodila Pazljivo preberite

STAVKI _5_

Osnove verjetnosti in statistika

Wienerjevemu indeksu podobni indeksi na grafih

FGG14

Osnove verjetnostne metode doc. dr. R. Škrekovski Oddelek za Matematiko Fakulteta za Matematiko in Fiziko Univerza v Ljubljani

Ime in priimek

MATLAB programiranje MATLAB... programski jezik in programersko okolje Zakaj Matlab? tipičen proceduralni jezik enostaven za uporabo hitro učenje prir

Univerza v Mariboru Fakulteta za naravoslovje in matematiko Oddelek za matematiko in računalništvo Enopredmetna matematika IZPIT IZ VERJETNOSTI IN STA

2. izbirni test za MMO 2017 Ljubljana, 17. februar Naj bosta k 1 in k 2 dve krožnici s središčema O 1 in O 2, ki se sekata v dveh točkah, ter

predstavitev fakultete za matematiko 2017 A

Ime in priimek: Vpisna št: FAKULTETA ZA MATEMATIKO IN FIZIKO Oddelek za matematiko Statistika Pisni izpit 6. julij 2018 Navodila Pazljivo preberite be

UNIVERZA V MARIBORU FAKULTETA ZA NARAVOSLOVJE IN MATEMATIKO Oddelek za matematiko in računalništvo DIPLOMSKO DELO Vika Koban Maribor, 2012

Osnove teorije kopul in maksmin kopule

POKAL YUGO 2011

Microsoft Word - M docx

Microsoft Word - Avditorne.docx

seminarska_naloga_za_ev

GHOSTBUSTERS navodila za učitelje O PROJEKTU S tem projektom se učenci sami naučijo izdelati igro. Ustvariti morajo več ikon (duhcov ali kaj drugega)

Poslovilno predavanje

Microsoft Word - M docx

Microsoft Word - M doc

Microsoft Word - Seštevamo stotice.doc

Poglavje 3 Reševanje nelinearnih enačb Na iskanje rešitve enačbe oblike f(x) = 0 (3.1) zelo pogosto naletimo pri reševanju tehničnih problemov. Pri te

glava.dvi

Poročilo za 1. del seminarske naloge- igrica Kača Opis igrice Kača (Snake) je klasična igrica, pogosto prednaložena na malce starejših mobilnih telefo

resitve.dvi

Univerza v Ljubljani FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Tržaška c. 25, 1000 Ljubljana Realizacija n-bitnega polnega seštevalnika z uporabo kvan

Mladi za napredek Maribora srečanje DOLŽINA»SPIRALE«Matematika Raziskovalna naloga Februar 2015

Opozorilo: Neuradno prečiščeno besedilo predpisa predstavlja zgolj informativni delovni pripomoček, glede katerega organ ne jamči odškodninsko ali kak

Microsoft Word - YUGO Pokal Pravilnik.doc

Naloge iz kolokvijev Analize 1 (z rešitvami) E-UNI, GING, TK-UNI FERI dr. Iztok Peterin Maribor 2009 V tej datoteki so zbrane naloge iz kolokvijev za

Microsoft PowerPoint - 07-bostjan_tavcar.ppt

Microsoft PowerPoint _12_15-11_predavanje(1_00)-IR-pdf

UNIVERZA V MARIBORU FAKULTETA ZA KEMIJO IN KEMIJSKO TEHNOLOGIJO Petra Žigert Pleteršek MATEMATIKA III Maribor, september 2017

APS1

Delavnica Načrtovanje digitalnih vezij

Namesto (x,y)R uporabljamo xRy

Optimizacija z roji delcev - Seminarska naloga pri predmetu Izbrana poglavja iz optimizacije

UNIVERZA V MARIBORU FAKULTETA ZA NARAVOSLOVJE IN MATEMATIKO Oddelek za matematiko in računalništvo MAGISTRSKO DELO Daša Štesl Maribor, 2017

Del 1 Limite

Toplotne črpalke

Microsoft Word doc

Univerza v Ljubljani Fakulteta za računalništvo in informatiko Anže Vrhovnik Aproksimacijski algoritmi za reševanje problema najkrajšega hodnika DIPLO

Microsoft Word - ELEKTROTEHNIKA2_ junij 2013_pola1 in 2

GeomInterp.dvi

VOLILNA ŠTEVILA

I Z B R A N A P O G L AV J A I Z D I S K R E T N E M AT E M AT I K E zbornik seminarskih nalog iz diskretne matematike Matjaž Krnc, Riste Škrekovski J

Diapozitiv 1

KRMILNA OMARICA KO-0

FGG02

Microsoft Word - vaje2_ora.doc

NAVADNA (BIVARIATNA) LINEARNA REGRESIJA O regresijski analizi govorimo, kadar želimo opisati povezanost dveh numeričnih spremenljivk. Opravka imamo to

Microsoft Word - M docx

Avtomatizirano modeliranje pri celostnem upravljanju z vodnimi viri

Transkripcija:

Učinkovita izvedba algoritma Goldberg-Tarjan Teja Peklaj 26. februar 2009 1 Definicije Definicija 1 Naj bo (G, u, s, t) omrežje, f : E(G) R, za katero velja 0 f(e) u(e) za e E(G). Za v V (G) definiramo presežek f v točki v: ex f (v) := f(e) f(e) e δ (v) e δ + (v) Opomba 1 Če je ex f (v) = 0 v V (G)\{s, t} in je ex f (t) 0, potem je f (s, t)-tok. Definicija 2 Omejen f je (s, t)-predtok, če je ex f (v) 0 za v V (G)\{s}. Točka v je aktivna, če je njen prežek ex f (v) > 0. (s, t)-tok je (s, t)-predtok, ki nima aktivnih točk. Opomba 2 Omejen f je maskimalen (s, t)-tok, kadar veljata: 1. ohranitev toka (ex f (v) = 0) v V (G)\{s, t}, 2. v G f ni povečujoče poti. Goldberg-Tarjanov algoritem ves čas vzdržuje 2. točko in na koncu doseže 1. Ford-Fulkersonov algoritem pa ves čas vzdržuje 1. in šele na koncu zagotovi 2. Definicija 3 Naj bo (G, u, s, t) omrežje in f (s, t)-predtok. Funkcija Ψ : V (G) Z je razdaljna označitev, če velja: 1. Ψ(v) 0 za v V (G), za točki s in t pa velja: Ψ(s) = n in Ψ(t) = 0 2. Ψ(u) + 1 Ψ(v) za uv E(G f ) 1

Če velja v 2. enačaj, rečemo, da je povezava dopustna. 2. točka nam pove, da Ψ pade vzdolž povezave kvečjemu za 1. Opomba 3 Če je Ψ razdaljna označitev, potem je Ψ(v) za v s spodnja meja za razdaljno označitev od v do t v G f. 2 Algoritem Push-Relabel Goldberg-Tarjanov algoritem izvajamo s pomočjo postopka Push - Relabel. Vhod: omrežje (G, u, s, t) Izhod: maksimalni (s, t)-tok f 1. Naj bo: f(e) := u(e) za e δ + (s) f(e) := 0 za e / δ + (s) Imamo začetni (s, t)-tok. 2. Naj bo: Ψ(s) = n in Ψ(u) = 0 za u V (G)\{s}, kjer je n = V (G). Imamo začetno razdaljno označitev. 3. Dokler obstaja aktivna točka naredi naj bo v aktivna točka Push(e) če ne obstaja dopustna povezava e δ + (G f ) potem Relabel(v) sicer naj bo e δ + (G f ) dopustna povezava in naredi Push(e) 1. Naj bo γ = min{ex f (v), u f (e)}, kjer je e δ + (G f ). (Torej je u začetek povezave e.) 2. Spremeni f vzdolž e za γ. (Povečamo f, če je povezava originalna, in jo zmanjšamo, če je nasprotna.) Relabel(u) 1. Naj bo Ψ(v) = min{ψ(w)+1; e = (v, w) E(G f )}. (Pogledamo konce izhodnih povezav iz u in ustrezno spremenimo razdaljno onzačitev.) 2

3 Trditve o Push-Relabel Trditev 1 Med izvajanjem algoritma je f (s, t)-predtok in Ψ razdaljna označitev. Lema 1 (o razdaljnih označitvah) Naj bo f (s, t)-predtok in Ψ razdaljna označitev glede na f. Potem velja: a) Točka s je v G f dosegljiva iz vsake aktivne točke. b) Če je točka v v G f dosegljiva iz točke u, potem velja: Ψ(u) Ψ(v) + n 1. c) Točka t v G f ni dosegljiva iz točke s. Posledica 1 Ko se algoritem Push-Relabel konča, je f maksimalni (s, t)-tok. Lema 2 (o Relabel) a) Vsak klic Relabel poveča Ψ od argumenta. Vrednosti razdaljne označitve Ψ se nikoli ne zmanjšajo. b) Na vsakem koraku algoritma velja Ψ(u) 2n 1 n. c) Za vsako točko kličemo Relabel kvečjemu 2n 1-krat. Skupno število klicev je 2n 2 n. Enako velja za skupno povečanje kateregakoli Ψ. Ločimo dve vrsti klicev Push: nasičene, pri katerih je po klicu u f (e) = 0 nenasičene, pri katerih u po klicu ni več aktivna. Lema 3 (lema o nasičenih Push) Število nasičenih klicev je 2mn. Lema 4 (lema o nenasičenih Push) Število nenasičenih klicev je 4(m + n)n 2. Trditev 2 Z Goldberg-Tarjanovim algoritmom lahko poiščemo maksimalni pretok v času O(mn 2 ), kar je za n boljše od Edmonds-Karpovega algoritma. 3

4 Učinkovita izvedba algoritma Prava izvedba Goldberg-Tarjanovega algoritma pri algoritmu Push-Relabel pri 3. točki vedno izbere aktivno točko z največjim Ψ. Pokazali bomo, da je za tako izvedbo meja za časovno zahtevnost O(n 2 m). Dokažimo najprej, da se zanka dokler ponovi O(n 2 m)-krat: Relabel se po lemi 2 izvede v O(n 2 ) operacijah. Nasičenih klicev Push je po lemi 3 v O(2mn). Tukaj upoštevamo še: če je m n, potem velja tudi O(mn) O(n 2 m) in dobimo oceno: O(2mn) O(2n 2 m) = O(n 2 m). Z lemo 5 bomo dokazali, da če na 3. koraku Push-Relabel algoritma izberemo aktivno točko z največjo vrednostjo Ψ, potem je število nenasičenih klicev Push 8n 2 m. Lema 5 (o nenasičenih Push) Če na 3. koraku v algoritmu Push-Relabel vedno izberemo aktivno točko z največjo vrednostjo Ψ, potem število nenasičenih klicev Push ni večje od 8n 2 m. Dokaz. Predpostavimo lahko, da graf ni drevo, torej velja n m n 2. Združili smo torej vzporedne povezave. Definirajmo: Ψ := max{ψ(v); v aktivna}. Definiramo fazo kot zaporedje korakov algoritma, pri katerih je Ψ konstanten. Vemo, da se lahko Ψ poveča le pri Relabel, saj Relabel edini spremeni Ψ. Skupno povečanje Ψ je po lemi 2 o Relabel torej 2n 2. Začetna vrednost Ψ = 0, kar je tudi končna vrednost. Zato je skupno povečanje enako skupnemu zmanjšanju in število faz je zato 4n 2. Ločimo dve vrsti faz: - kratke, kjer algoritem vsebuje m nenasičenih Push - dolge, kjer so preostali klici nenasičenih Push. V vseh kratkih fazah je skupaj 4n 2 m nenasičenih Push ukazov in smo izrek dokazali za kratke faze. Za oceno pri dolgih fazah pa definirajmo: Φ := {v V (G); Ψ(v) Ψ(u)}. u aktivna Oglejmo si, kako se spreminja Φ: 4

1. Na začetku je Φ n 2, kar sicer velja vedno. Na koncu je Φ = 0, torej je zmanjšanje n 2. 2. Relabel poveča Φ kvečjemu za n, saj poveča le pri eni točki. (Število klicev Relabel je 2n 2 n.) 3. Nasičeni Push poveča Φ prav tako kvečjemu za n, saj morda dobimo eno novo aktivno točko. (Število klicev nasičenih Push je 2mn.) 4. Nenasičeni Push ne poveča Φ, saj izgubimo eno aktivno točko in hkrati morda dobimo novo, ki ima manjši Ψ. Ocenimo sedaj, kakšno je zmanjšanje Φ. Iz zgornjih ugotovitev 1., 2. in 3. sledi, da je skupno zmanjšanje Φ kvečjemu: n 2 + n(2n 2 n) + n(2mn) 4mn 2. 4. točke nismo upoštevali, ker nenasičeni Push ne poveča Ψ. Oglejmo si torej še nenasičene ukaze Push v dolgi fazi. Predpostavimo, da vsak nenasičeni Push v dolgi fazi zmanjša Φ za m. Potem je skupno število nenasičenih klicev Push v dolgih fazah 4mn2 m = 4n 2 m in s tem je izrek dokazan tudi za dolge faze. Sedaj moramo le še dokazati našo predpostavko. Recimo, da nenasičeni Push uporabimo na povezavi uv. Ker pri 3. točki algoritma Push-Relabel vedno izbiramo aktivno točko z največjim Ψ, velja Ψ = Ψ(u). Če smo naredili Push, vemo, da je morala biti povezava dopustna, kar je po definiciji: Ψ(u) = Ψ(v) + 1. Velja torej: Ψ = Ψ(u) = Ψ(v) + 1. S tem klicem smo točko u deaktivirali, točka v pa morda postane aktivna, vendar ima manjši Ψ. Faza (dolga) se konča v dveh primerih: Pri klicu Relabel, kjer smo Ψ povečali pri točki, pri kateri je bil dosežen maksimum. Zato Ψ pri vsakem klicu Relabel zraste in se s tem faza konča. Ko deaktiviramo zadnjo aktivno točko s Ψ = Ψ in ne obstaja več nobena aktivna točka s Ψ = Ψ, zato se faza zaključi. 5

Zaradi tega je znotraj dolge faze množica točk, za katere je Ψ = Ψ, konstantna. Vanjo namreč ne prihajajo nove točke. Ker je faza dolga, imamo v tej množici vsaj m točk. Kot smo videli zgoraj, v vsakem klicu nenasičenega Push iz vsote za Φ izgubimo točko u. Točka v, ki morda postane aktivna ima manjši Ψ, zato je novi člen v vsoti za Φ manjši od prejšnjega za točko z Ψ = Ψ. Ker pa je teh točk vsaj m, vsak nenasičeni Push v dolgi fazi zmanjša Φ za m. S tem smo dokazali našo predpostavko. Izrek 1 Izvedba algoritma Push-Relabel, pri kateri vedno izbiramo aktivno točko z največjo razdaljno označitvijo, v času O(n 2 m) pravilno reši problem maksimalnega toka. Dokaz. Vemo že, da algoritem deluje pravilno (če se konča). To vidimo iz trditve 1 in posledice 1. Videli smo tudi, da se zanka dokler ponovi O(n 2 m)-krat. V algoritmu moramo tako poskrbeti še za časovno zahtevnost: 1. Izbire aktivne točke z največjim Ψ. 2. Iskanja dopustne povezave iz izbrane aktivne točke. 3. Izvedbe min v Relabel. Za učinkovito izvedbo 3. točke lahko za iskanje minimuma uporabimo sprehod skozi seznam sosedov. V celoti u V (# klicev za u)deg(u) 2n u V deg(u) 2nm. Za učinkovito izvedbo točk 1. in 2. pa vodimo dve podatkovni strukturi: sezname L i, i {0,..., 2n 1}, ki vsebujejo aktivne točke z Ψ = i, in hkrati vodimo maksimalni indeks zadnjega nepraznega seznama. sezname A u, u V (G)\{s, t}, ki vsebujejo dopustne povezave iz G f, ki se začnejo v u. Obe strukturi nam omogočata preprosto izvedbo točk 1. in 2. Med postopkom ju vzdržujemo: 1. Relabel: Prestavimo u v nov prazen seznam L in popravimo maksimalni indeks zadnjega nepraznega seznama, izračunamo nov A u ter pogledamo tudi vhodne povezave. Po potrebi jih popravimo (dodamo ali odstranimo). 6

To storimo v času O(deg(u)). 2. Push: Pri klicu Push lahko dobimo novo aktivno točko ali pa izgubimo aktivno točko. To popravimo tako, da: Literatura naredimo sprehod iz maksimalnega indeksa nazaj do prvega nepraznega (celotna dolžina teh sprehodov ni večja od skupne rasti vseh Ψ, ta pa je O(n 2 )), popravimo še A u kot zgoraj. [1] B. Korte, J. Vygen, Combinatorial Optimization: Theory and Algorithms, 3. izdaja, Springer, Berlin, 2006. [2] http://www.fmf.uni-lj.si/ juvan/racunalnistvo3/gradivo/maxflow_gt.pdf 7