boris pein - odjel za matematikumdjumic/uploads/diplomski/pei02.pdf · vidimo da je svaka...

47
Sveuˇ ciliˇ ste J.J. Strossmayera u Osijeku Odjel za matematiku Sveuˇ ciliˇ sni nastavniˇ cki studij matematike i informatike Boris Pein Deloneove triangulacije i Voronojevi dijagrami Diplomski rad Osijek, 2012.

Upload: others

Post on 16-Feb-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

Sveuciliste J.J. Strossmayera u Osijeku

Odjel za matematiku

Sveucilisni nastavnicki studij matematike i informatike

Boris Pein

Deloneove triangulacije i Voronojevi dijagrami

Diplomski rad

Osijek, 2012.

Page 2: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

Sveuciliste J.J. Strossmayera u Osijeku

Odjel za matematiku

Sveucilisni nastavnicki studij matematike i informatike

Boris Pein

Deloneove triangulacije i Voronojevi dijagrami

Diplomski rad

Voditelj: Doc. dr. sc. Domagoj Matijevic

Osijek, 2012.

Page 3: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

Sadrzaj

1. Uvod 1

2. Voronojevi dijagrami 3

2.1. Problem postanskog ureda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.2. Definicija i osnovna svojstva . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.3. Veza s konveksnom ljuskom . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3. Delonova triangulacija 10

3.1. Interpolacija visine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.2. Triangulacija skupa tocaka ravnine . . . . . . . . . . . . . . . . . . . . . . . . 10

3.3. Optimalne triangulacije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.4. Deloneova triangulacija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.5. Svojstva Deloneove triangulacije . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4. Racunanje Deloneove triangulacije 20

4.1. Donja granica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

4.2. Rastuci algoritam za racunanje Deloneove triangulacije . . . . . . . . . . . . . 21

4.3. Deloneovo stablo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4.4. Analiza slozenosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

5. Implementacija rastuceg algoritma za racunanje Deloneove triangulacije 32

5.1. Struktura podataka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

5.2. Geometrijski testovi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

5.3. Graficki prikaz triangulacije . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

5.4. Statistika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

6. Zakljucak 40

7. Sazetak 42

8. Summary 43

9. Zivotopis 44

Page 4: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

1

1. Uvod

Izracunljiva geometrija u sirem smislu je grana racunarstva koja proucava algoritme za rjesavanje

geometrijskih problema na racunalu. Kao zasebna grana razvila se 1970–ih kao posljedica ra-

zvoja racunalne grafike i dizajna pomocu racunala. Ona predstavlja sistematsko proucavanje

algoritama i struktura podataka za geometrijske objekte, posebno usmjereno na trazenje eg-

zaktnih i asimptotski brzih algoritama. Jedan od osnovnih problema algoritamske geometrije

je problem odredivanja Voronojevog dijagrama skupa tocaka (i dualnog problema – Deloneove

triangulacije).

Voronojevi dijagrami se, za razliku od vecine problema izracunljive geometrije, pojavljuju vec

u 17. stoljecu. Ilustracijom u svojoj knjizi Principi filozofije, Descartes opisuje dekompozi-

ciju svemira (prostora) u konveksne regije koje sadrze svu materiju pod utjecajem pojedine

zvijezde, no dobivene regije ne definira eksplicitno.

Slika 1.1: Descartesova dekompozicija prostora.

Ideja koja proizlazi iz ilustracije je sljedeca:

neka su dani prostor M , skup P lokacija u M , te utjecaj kojim lokacija p djeluje na tocku

x ∈M . Tada se regija od p sastoji od svih tocaka x za koje je utjecaj lokacije p najjaci od

svih lokacija iz P .

Page 5: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

2

Ovaj koncept se neovisno pojavljivao u raznim podrucjima znanosti (biologija, kemija, kris-

talografija, meteorologija) i u svakom podrucju se razlicito imenovao. Matematicari Dirichlet

i Voronoi su prvi formalno uveli koncept te se po njima on naziva Dirichletovo poplocenje ili

Voronojev dijagram.

Voronoi je prvi promotrio i dual ove strukture, u kojem su svake dvije lokacije koje imaju

zajednicku granicu pripadnih podrucja povezane. Kasnije je Delone dobio istu strukturu po-

vezivanjem lokacija koje leze na istom krugu cija unutrasnost ne sadrzi tocke iz P . Po njemu

je ta struktura nazvana Deloneovo poplocenje ili Deloneova triangulacija.

U prva dva poglavlja definirani su Voronojevi dijagrami i Deloneova triangulacija, te je

dan pregled njihovih svojstava i medusobne dualnosti tih dviju struktura. Sljedece poglavlje

bavi se rastucim algoritmom za racunanje Deloneove triangulacije. Dan je sam algoritam,

dokazana je njegova tocnost te je analizirana njegova vremenska slozenost. Kao prakticni dio

rada napravljen je C++ program DelaunayTriangulation koji je objasnjen u posljednjem

poglavlju.

Page 6: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

3

2. Voronojevi dijagrami

2.1. Problem postanskog ureda

Vjerojatno najizravniju primjenu Voronojevih dijagrama predstavlja tzv. problem postanskog

ureda (engl. post office problem). Dane su nam lokacije postanskih ureda na nekom podrucju.

Za odredenu zgradu zelimo utvrditi koji je njoj najblizi postanski ured.

Ovaj pristup se primjenjuje u mnogim poljima, poput analize ponasanja potrosaca, gdje

su kretanja potrosaca modelirana kao kretanja izmedu lokacija, i izbor istih je utemeljen na

udaljenosti. Primjerice, planira li se otvaranje nove poslovnice trgovackog centra, Vorono-

jev dijagram moze posluziti kao gruba procjena profitabilnosti, odnosno procjenjivanja broja

kupaca koje ce poslovnica privuci. Promatramo lokacije poslovnica. Pri tome uvodimo pret-

postavke

• cijene proizvoda su iste na svakoj lokaciji

• trosak kupovine proizvoda je jednak cijeni proizvoda plus trosak prijevoza do lokacije

• trosak prijevoza do lokacije je jednak euklidskoj udaljenosti od lokacije

• potrosaci zele minimizirati trosak kupovine.

Slika 2.1: Podjela Nizozemske po lokacijama glavnih gradova provincija.

Geometrijska interpretacija navedenog modela rezultira u subdiviziji promatranog po-

drucja u regije. Subdivizija inducirana ovim modelom se naziva Voronojevim skupom skupa

lokacija.

Page 7: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

4

2.2. Definicija i osnovna svojstva

Skup P = p1, . . . , pn oznacavat ce skup n tocaka ravnine, koje nazivamo lokacijama. Za

tocke p i q s d(p, q) oznacimo njihovu euklidsku udaljenost:

d(p, q) =√

(px − qx)2 + (py − qy)2.

Voronojeva celija lokacije pi ∈ P je skup svih tocaka ravnine koje su blize pi nego ikojoj

drugoj lokaciji iz P , odnosno skup

V(pi) = x : d(pi, x) < d(pj, x), j 6= i.

Voronojev dijagram od P (oznaka Vor(P )) je subdivizija ravnine na Voronojeve celije loka-

cija iz P . U nastavku Vor(P ) ce podrazumijevati samo bridove i vrhove subdivizije. Proucimo

Slika 2.2: Voronojev dijagram skupa od 8 lokacija.

strukturu Voronojevih celija. Za lokacije pi, pj ∈ P definiramo njihovu simetralu od kao

simetralu duzine pipj, odnosno skup

B(pi, pj) = x : d(pi, x) = d(pj, x).

Kao sto znamo, simetrala od pi i pj je pravac okomit na duzinu pipj koji prolazi kroz njeno

poloviste. Simetrala dijeli ravninu na dvije otvorene poluravnine; oznacimo onu koja sadrzi

tocku pi s H(pi, pj), a onu koja sadrzi pj s H(pj, pi). Primijetimo da je x ∈ H(pi, pj) ako i

samo ako je d(x, pi) < d(x, pj) pa Voronojevu celiju mozemo definirati i kao

V(pi) =⋂

1≤j≤n,j 6=i

H(pi, pj).

Vidimo da je svaka Voronojeva celija V(pi) presjek n − 1 otvorenih poluravnina pa je ona

poligonalan otvoren i konveksan skup omeden s najvise n− 1 vrhova i najvise n− 1 bridova.

Pri tome su bridovi ravne crte, jer su oni dijelovi simetrala parova lokacija.

Promotrimo sada izgled i strukturu cijelog Voronojevog dijagrama.

Page 8: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

5

Slika 2.3: Voronojeva celija kao presjek poluravnina.

Teorem 2.1. Neka je P skup lokacija u ravnini. Ako su sve lokacije kolinearne Vor(P ) se

sastoji od n − 1 paralelnih pravaca. U suprotnom, Vor(P ) je povezan te su njegovi bridovi

duzine ili polupravci.

Dokaz. Voronojev dijagram kolinearnog skupa lokacija ce ocito ciniti n− 1 paralelnih pravaca

– simetrala dviju susjednih lokacija.

Pretpostavimo sada da lokacije nisu kolinearne te da postoji brid e ∈ V or(P ) koji je puni

pravac. Neka je on granica dviju celija V(pi) i V(pj). Neka je pk ∈ P lokacija koja nije

kolinearna s pi i pj. Simetrala od pj i pk tada sijece e. No, kako je dio pravca e koji se nalazi

u h(pk, pj) blizi lokaciji pk nego pj, on ne moze biti na granici od V(pj). Time smo pokazali

da su bridovi Voronojevog dijagrama nuzno duzine ili polupravci.

Slika 2.4: Slika uz dokaz.

Pokazimo jos povezanost skupa bridova i vrhova. Pretpostavimo li suprotno, postojala bi

Voronojeva celija V(pi) koja dijeli ravninu na dva dijela. Kako je V(pi) konveksna, slijedi da

njezine bridove cine dva paralelna pravca, sto je u suprotnosti s prethodno dokazanom tvrd-

njom. 2

Vrhovi Voronojevog dijagrama predstavljaju presjek simetrala parova lokacija pa nuzno slijedi

da se u svakom vrhu sastaje barem tri brida.

Page 9: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

6

Postavlja se pitanje slozenosti samog dijagrama, odnosno ukupnog broja bridova i vrhova.

Kako svaka celija ima najvise n − 1 bridova i vrhova, zakljucujemo da je slozenost Vor(P )

najvise n(n− 1) = O(n2). Sljedeci teorem kazuje da Voronojev dijagram ima O(n) bridova i

vrhova.

Teorem 2.2. Za n ≥ 3, broj vrhova Voronojevog dijagrama skupa P je najvise 2n− 5, a broj

bridova najvise 3n− 6.

Dokaz. Ako su sve lokacije kolinearne, tvrdnja slijedi iz teorema 2.1 pa pretpostavimo da

lokacije nisu kolinearne. Za dokaz cemo primijeniti Eulerovu formulu za ravninske grafove:

svaki povezani ravninski graf s v cvorova, e bridova i f strana zadovoljava jednadzbu

v − e+ f = 2.

No, Vor(P ) nije pravi graf, zbog bridova – polupravaca. Dodamo li skupu vrhova vrh v∞ i

Slika 2.5: Uvodenjem vrha v∞ dobijamo ravninski graf.

na njega povezemo sve bridove – polupravce dobijamo pravi ravninski grav s v + 1 cvorova, e

bridova i n strana. Uvrstavanjem u formulu dobijamo jednakost

(v + 1)− e+ n = 2. (2.1)

Svaki brid u nasem grafu ima tocno dva vrha pa je suma stupnjeva svih vrhova dvostruko veca

od broja bridova. No, kako je stupanj svakog vrha barem 3, vrijedi nejednakost

2e ≥ 3(v + 1). (2.2)

Sada tvrdnja teorema slijedi uvrstavanjem (2.1) u nejednakost (2.2). 2

Page 10: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

7

Cinjenica da simetrala parova lokacija ima O(n2), dok je slozenost samog Voronojevog di-

jagrama linearna vodi do zakljucka da ne djeluju sve simetrale na stvaranje odredene celije.

Za tocku q ravnine definiramo najveci prazan krug obzirom na P , CP (q), kao najveci krug sa

sredistem u q koji ne sadrzi nijednu lokaciju u svojoj unutrasnjosti. Pomocu najvecih praznih

krugova mozemo odrediti koje simetrale i njihovi presjeci odreduju Voronojevu celiju.

Teorem 2.3. Za Voronojev dijagram skupa lokacija P vrijedi:

(i) q je vrh od Vor(P ) ako i samo ako CP (q) sadrzi tri ili vise lokacija na svojem rubu.

(ii) Simetrala B(pi, pj) odreduje brid u Vor(P ) ako i samo ako postoji tocka q na B(pi, pj)

takva da CP (q) osim pi i pj, ne sadrzi druge lokacije na svom rubu.

Dokaz.

(i) Neka je q vrh Voronojevog dijagrama. Kao i svaki vrh, on je incidentan barem trima

bridovima pa je incidentan i barem trima celijama V(pi), V(pj) i V(pk). q je jednako

udaljena od lokacija pi, pj i pk, te ne moze postojati lokacija koja je bliza tocki q (inace

se celije V(pi), V(pj) i V(pk) ne bi spajale u vrhu q). Iz toga slijedi da unutrasnjost kruga

CP (q) ne moze sadrzavati nijednu lokaciju.

Neka je q tocka takva da kruznica od CP (q) sadrzi tri ili vise lokacija. Neka su pi, pj i

pk te lokacije. Kako u unutrasnjosti kruga nema lokacija, a q je jednako udaljena od pi,

pj i pk, slijedi da q pripada granicama celija V(pi), V(pj) i V(pk) pa mora biti i vrh u

Vor(P ).

(ii) Neka je q tocka na simetrali od pi i pj sa svojstvom iz tvrdnje teorema. Buduci da CP (q)

ne sadrzi nijednu lokaciju u unutrasnjosti, slijedi da je d(q, pi) = d(q, pj) ≤ d(q, pk),∀k =

1, . . . , n pa q lezi ili na bridu ili na vrhu Voronojevog dijagrama. Kako kruznica od CP (q)

ne sadrzi nijednu drugu lokaciju uz pi i pj, iz prvog dijela teorema slijedi da q ne moze

biti vrh, te mora biti na bridu Voronojevog dijagrama.

Obratno, neka simetrala od pi i pj odreduje Voronojev brid. Za svaku tocku q brida,

kruznica od CP (q) moze sadrzavati samo lokacije pi i pj (u suprotnom bi q bila Voronojev

vrh) 2

2.3. Veza s konveksnom ljuskom

Jedan od osnovnih problema izracunljive geometrije je problem odredivanja konveksne ljuske.

Za dan konacan skup tocaka P treba odrediti CH(P ), odnosno najmanji konveksan skup koji

sadrzi sve tocke iz P . Moze se pokazati (vidi [2]) da je konveksna ljuska konacnog skupa tocaka

konveksan mnogokut. Pritom su vrhovi tog mnogokuta iskljucivo tocke iz P .

Iz Vor(P ) lako mozemo odrediti rub od CH(P ):

Page 11: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

8

Teorem 2.4. Lokacije pi, pj ∈ P su uzastopni vrhovi ruba od CH(P ) ako i samo ako V(pi) i

V(pj) imaju zajednicki brid koji je polupravac.

Dokaz. Pretpostavimo da su pi i pj uzastopni vrhovi na rubu od CH(P ). Pravac pipj dijeli

ravninu na dvije otvorene poluravnine. Oznacimo ih s L i R. Bez smanjenja opcenitosti neka

poluravnina L sadrzi sve ostale lokacije iz P . S l oznacimo dio simetrale B(pi, pj) koji lezi

u poluravnini R. Neka je x ∈ l te neka je C(x) krug sa sredistem u x cija kruznica prolazi

kroz pi i pj kao na slici 2.6. Pomicemo li x udesno, dio kruga sadrzanog u poluravnini R ce

Slika 2.6: Slika uz dokaz.

se povecavati, a luk od C(x) omeden s pi i pj ce sve vise priblizavati duzini pipj. Kako R

ne sadrzi nijednu lokaciju, x mozemo proizvoljno daleko pomaknuti, a da C(x) ne prode kroz

nijednu drugu lokaciju. Slijedi da je l polupravac, i prema teoremu 2.3(ii) dio Voronojevog

brida zajednickog celijama V(pi) i V(pj).

Obratno, pretpostavimo da su pi i pj Voronojevi susjedi ciji je zajednicki brid polupravac. Na

isti nacin se pokazuje da tada poluravnina R ne sadrzi nijednu lokaciju, pa je pipj stranica

mnogokuta–ruba od CH(P ). 2

Svaki vrh pi ruba od CH(P ) ima susjedni vrh pj. Po teoremu 2.4, V(pi) i V(pj) imaju za-

jednicki brid–polupravac. Dakle V(pi) je neomedena celija.

Obratno, ako je V(pi) neomedena Voronojeva celija, slijedi da ona dijeli brid s nekom drugom

celijom V(pj) te da je pri tome taj brid polupravac. Iz teorema 2.4 slijedi da su pi i pj uzastopni

vrhovi ruba od CH(P ). Dakle pi mora biti vrh ruba od CH(P ). Time smo dokazali sljedeci

korolar.

Korolar 2.1. V(pi) ∈ Vor(P ) je neomedena celija ako i samo ako je pi vrh ruba od CH(P ).

Page 12: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

9

Slika 2.7: Konacan Voronojev dijagram.

Nekada je pogodno zamisliti jednostavnu zatvorenu krivulju Γ koja presjeca samo neomedene

Voronojeve bridove (vidi sliku 2.7). Tada setnjom po Γ mozemo pobrojati vrhove konveksne

ljuske u ciklickom poretku. Uklonimo li dijelove neomedenih bridova koji se nalaze izvan Γ,

dobijamo povezan ravninski graf s n + 1 strana. Taj graf nazivamo konacnim Voronojevim

dijagramom.

Page 13: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

10

3. Delonova triangulacija

3.1. Interpolacija visine

Vazan dio kompjuterske grafike cine aproksimacije dijelova Zemljine povrsine. Zemljinu povrsinu

mozemo modelirati kao teren – graf funkcije f : A ⊂ R2 → R, koja svakoj tocki p domene A

pridruzuje njenu visinu f(p). No, ne znamo tocnu visinu svake tocke na promatranom dijelu

Zemljine povrsine, znamo je samo u tockama u kojima je ona izmjerena. Dakle, poznate su

vrijednosti funkcije f samo u konacnom skupu tocaka P ⊂ A. Te vrijednosti trebamo iskoris-

titi kako bismo aproksimirali visinu i u ostalim tockama.

Pokazalo se kako se triangulacijom skupa P , odnosno subdivizijom cije su unutrasnje strane

trokuti, a vrhovi tocke iz P, moze dobiti teren koji izgleda prirodno. Ideja je sljedeca: trian-

Slika 3.1: Model zemljine povrsine kao terena dobivenog triangulacijom.

guliramo skup tocaka P cije visine znamo, te tocke iz P podignemo na njihovu visinu. Time

dobijamo poliedarski teren koji je graf neprekidne, po dijelovima linearne, funkcije. Taj poli-

edarski teren koristimo kao aproksimaciju pocetnog terena. U ovom dijelu rada pokazat cemo

da postoji triangulacija posebno korisna za interpolaciju visine, Deloneova triangulacija, te

pokazati neka njezina svojstva. No, prvo cemo precizirati pojam triangulacije.

3.2. Triangulacija skupa tocaka ravnine

Kao i do sada, skup P = p1, . . . , pn oznacava skup lokacija u ravnini. Podsjetimo se,

planaran graf je graf koji se moze smjestiti (nacrtati) u ravnini R2 tako da mu se bridovi sijeku

samo u vrhovima. Graf koji je vec tako smjesten u ravnini nazivamo ravninskim grafom.

Triangulacija T je ravnocrtan ravninski graf sa skupom vrhova P koji je maksimalan u

smislu da mu se ne moze dodati brid bez ponistavanja njegove planarnosti. Drugim rijecima,

svaki ravni brid koji nije u triangulaciji nuzno sijece neki od bridova u triangulaciji. Unutrasnje

strane triangulacije cine trokuti, kao posljedica maksimalnosti.

Page 14: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

11

Slika 3.2: Triangulacija konveksne ljuske od P .

Nije tesko pokazati da duzina koja spaja dva uzastopna vrha na rubu konveksne ljuske

nuzno mora biti i brid u triangulaciji. Ova tvrdnja implicira da je unija unutrasnjih strana

od T konveksna ljuska od P . Vanjska strana od T odgovara komplementu konveksne ljuske.

Stoga se cesto kaze da je konveksna ljuska skupa P domena triangulacije.

Naravno, postoji vise razlicitih triangulacija skupa P , no svaka triangulacija dat ce isti broj

trokuta i bridova:

Teorem 3.1. Neka je P skup n lokacija u ravnini, koje nisu sve kolinearne, te neka je k broj

lokacija koje leze na rubu konveksne ljuske od P . Tada svaka triangulacija od P ima 2n−2−ktrokuta i 3n− 3− k bridova.

Dokaz. Neka je T triangulacija od P, a m broj trokuta u T . Broj strana f , jednak je m + 1

(m trokuta–unutrasnjih strana zajedno s neomedenom vanjskom stranom). Svaki trokut ima

tri brida, a vanjska je strana omedena s k bridova. Kako je svaki brid incidentan dvjema

stranama, ukupan broj bridova u triangulaciji je e = (3m + k)/2. Uvrstavanjem u Eulerovu

formulu za ravninske grafove dobijamo m = 2n− k − 2, iz cega slijedi e = 3n− k − 3. 2

Moze se pokazati da je broj triangulacija konacnog skupa tocaka konacan[5].

3.3. Optimalne triangulacije

U brojnim primjenama, triangulaciju zelimo optimizirati u odredenom smislu kako bismo

izbjegli lose oblikovane trokute. Iz tog nacina gledanja, proizlaze mnogi kriteriji odlucivanja

onog sto triangulaciju cini ”dobrom”. Mozemo reci, u svrhu izbjegavanja lose oblikovanih

trokuta, da je triangulacija dobra ako su trokuti priblizno ekviangularni (jednakokutni). Iz

slike 3.3 je jasno da bismo tesko mogli iskoristiti triangulaciju T2 u svrhu aproksimacije terena.

Promatramo li sve moguce triangulacije od P , mozemo preferirati triangulaciju koja ima

trokut s minimalnim najvecim kutom (MinMax kriterij), ili onu ciji trokut ima maksimalni

najmanji kut (MaxMin kriterij). U ovom radu fokusirat cemo se na MaxMin kriterij.

Page 15: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

12

Slika 3.3: Dvije triangulacije istog skupa lokacija.

Precizirajmo sada optimalnost triangulacije po MaxMin kriteriju. Neka je T triangulacija

od P s m trokuta. Promatramo najmanje unutrasnje kutove svakog od tih trokuta, te ih

poredamo u rastucem poretku. Neka je α1, α2, . . . , αm niz tih kuteva nakon sortiranja, dakle,

vrijedi αi ≤ αj, i < j. Tada vektor

I(T ) = (α1, α2, . . . , αm)

nazivamo indikatorom triangulacije T . Kazemo da je indikator od T veci od indikatora

triangulacije T ′ (I(T ) > I(T ′)) ako je I(T ) leksikografski veci od I(T ′), tj. ako postoji indeks

i, 1 ≤ i ≤ m, takav da je

αj = α′j, j < i,

αi > α′i.

Sada mozemo definirati optimalnu triangulaciju T po MaxMin kriteriju. Kazemo da je Toptimalna triangulacija ako vrijedi I(T ) ≥ I(T ′) za svaku triangulaciju T ′ od P .

Slucaj kada su cetiri tocke kocirkularne smatra se degenerativnim za problem triangu-

lacije. Primjerice, formiraju li cetiri tocke pravokutnik, moguce su dvije triangulacije, ovisno

koju dijagonalu uzmemo za brid. No obje triangulacije ce davati iste kutove, pa optimalnom

mozemo nazvati bilo koju od njih. U svrhu izbjegavanja tih viseznacnosti i pojednostavljivanja

iskaza i dokaza tvrdnji, pretpostavljamo da ne postoje cetiri kocirkularne tocke u P i da sve

tocke iz P nisu kolinearne. Za takav skup tocaka P kazemo da je u opcem polozaju.

Za karakterizaciju optimalnih triangulacija koristit cemo neke rezultate elementarne ge-

ometrije. Najvazniji od njih poznati je Talesov teorem.

Teorem 3.2. (Talesov teorem) Neka je C krug i ab njegova tetiva te neka su p, q, r i s cetiri

tocke koje se nalaze s iste strane pravca ab. Ako je r u unutrasnjosti kruga, p i q leze na

njegovoj kruznici, a s se nalazi izvan C, tada vrijedi

∠asb < ∠apb = ∠aqb < ∠arb.

Page 16: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

13

Slika 3.4: Ilustracija Talesovog teorema.

Sljedece leme izravno slijede iz Talesovog teorema.

Lema 3.1. Neka je p1p2p3p4 konveksan cetverokut. Vrh p2 se nalazi izvan kruga opisanog

trokutu 4p1p3p4 ako i samo ako se p4 nalazi izvan kruga opisanog trokutu 4p1p2p3.

Lema 3.2. Neka je p1p2p3p4 konveksan cetverokut. Vrh p4 se nalazi u unutrasnjosti kruga

opisanog trokutu 4p1p2p3 ako i samo ako se p1 nalazi izvan kruga opisanog trokutu 4p2p3p4.

Dokaz ovih tvrdnji se moze naci u [7].

Promotrimo prvo triangulaciju skupa od cetiri tocke. Ako one cine vrhove strogo konvek-

snog cetverokuta p1p2p3p4, postoje dvije triangulacije tog skupa, ona s dijagonalom p2p4 kao

bridom, i ona s dijagonalom p1p3. Pitamo se koja od njih zadovoljava MaxMin kriterij, tj. ciji

ce trokut imati veci najmanji kut.

Lema 3.3. Neka je Q konveksan cetverokut s vrhovima p1, p2, p3 i p4. MaxMin kriterij bira

brid p2p4 kao dijagonalu od Q ako i samo ako p3 lezi izvan kruga opisanog trokutu 4p1p2p4.

Dokaz. Neka je T2,4 triangulacija s bridom i p2p4 te T1,3 triangulacija s p1p3 kao na slici 3.5.

Kako je p3 izvan kruga opisanog trokutu p1p2p4 u T1,3 (kutovi b+ p i c+ q su veci od pravog),

najmanji kut u toj triangulaciji moze biti jedan od b′, c′, p′ i q′. Kut p′+ q′ svakako je veci od

svojih sastavnih dijelova p′ i q′. Isto vrijedi i za kut b′ + c′. Kut c je obodni kut nad tetivom

p1p4, pa je po Talesovom teoremu c > c′. Istim razmatranjem uz primjenu leme 3.1 dobijamo

i nejednakosti b > b′, p > p′ i q > q′. Dakle, bez obzira na to koji je kut u T2,4 najmanji, on

ce uvijek biti veci od najmanjeg kuta u T1,3. 2

Promotrimo sada neku triangulaciju T skupa od n tocaka. Neka je e = pipj unutrasnji

brid u T . Ako on nije incidentan vanjskoj strani, incidentan je dvama trokutima 4pipjpk i

4pipjpl. Ako ta dva trokuta cine strogo konveksan cetverokut Q, iz T mozemo dobiti novu

Page 17: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

14

Slika 3.5: Slika uz dokaz leme 3.3.

Slika 3.6: Zamjena bridova.

triangulaciju T ′ uklanjanjem brida pipj i dodavanjem brida plpk. Ovaj postupak nazivamo

zamjenom brida (edge swap). Neka su αi i α′i, 1 ≤ i ≤ 6 kutovi promatranih trokuta u gore

navedenim triangulacijama T i T ′. Za brid pipj kazemo da je ilegalan ako je

min1≤i≤6

αi < min1≤i≤6

α′i.

Brid pipj je ilegalan ako i samo ako se pl nalazi unutar kruga opisanom trokutu 4pipjpk(lema 3.3). Iz leme 3.3 i leme 3.2 slijedi da se ilegalan brid uvijek moze zamijeniti, te da ce se

tom zamjenom lokalno povecati najmanji kut i time dobiti lokalno bolja triangulacija T ′.Stoga definiramo postupak lokalne optimizacije (PLO). Postupak se izvrsava na bridovima

triangulacije i provjerava moguce zamjene bridova. Ako Q nije strogo konveksan, ili ako se

radi o vanjskom bridu, ne mozemo zamijeniti brid. U suprotnom zamjenjujemo brid ako je

on ilegalan. Brid koji se primjenom PLO–a ne zamjenjuje nazivamo lokalno optimalnim

bridom. Naravno, svi rubni bridovi triangulacije su lokalno optimalni.

Zamjenom brida dobijamo i globalno bolju triangulaciju:

Lema 3.4. Neka je T triangulacija od P i neka je e unutrasnji brid od T . Neka primjenom

PLO–a dode do zamjene brida e, te neka je T ′ dobivena nova triangulacija. Tada vrijedi

I(T ) < I(T ′).

Page 18: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

15

Dokaz. Neka su αi i αj dvije komponente vektora I(T ) koje predstavljaju najmanje kutove

dvaju trokuta ciji je zajednicki brid e. Pretpostavimo da je i < j, pa je αi ≤ αj, odnosno

indikator je oblika I(T ) = (α1, . . . , αi, . . . , αj, . . . , αm). Kako je doslo do zamjene brida e

bridom e′, najmanji kut dvaju trokuta uz e′ po MaxMin kriteriju mora biti strogo veci od αi.

Iz toga slijedi da je I(T ′) leksikografski veci od I(T ) 2

Ponavljamo li PLO na bridovima triangulacije, vektor indikator postaje leksikografski veci

svakom zamjenom brida, sto implicira da se iste triangulacije nece ponavljati. Kako je broj

mogucih triangulacija konacan, PLO ce nakon konacnog broja zamjena bridova zavrsiti. Do-

bivena triangulacija ce imati sve bridove lokalno optimalne (odnosno nijedan ilegan). Takvu

triangulaciju nazivamo lokalno optimalnom triangulacijom.

3.4. Deloneova triangulacija

U dokazu teorema 2.2 Voronojev dijagram smo promatrali kao ravninski graf. Ravninskom

grafu G na prirodni je nacin pridruzen njegov dualni graf G∗. Vrhovi od G∗ su strane od G,

a dva vrha iz G∗ su spojena bridom e∗ ako i samo ako su pripadne strane iz G incidentne

sa zajednickim bridom e. Kako svakoj strani (celiji) Voronojevog dijagrama pripada tocno

jedna lokacija, povezemo li lokacije koje su Voronojevi susjedi, ocito dobijamo graf G, dual

Voronojevog dijagrama. On ima vrh za svaku Voronojevu celiju, a brid izmedu dvaju vrhova

ako su pripadne Voronojeve celije Voronojevi susjedi.

Slika 3.7: Dualan graf Voronojevog dijagrama.

Dualnost Voronojevog dijagrama i grafa G mozemo svesti na cinjenice:

• svaki Voronojev vrh odgovara jednoj unutrasnjoj strani grafa G,

• svaki Voronojev brid odgovara jednom bridu u G

Page 19: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

16

• svaka Voronojeva celija odgovara jednom vrhu u G.

Ravnocrtno smjestanje grafa G nazivamo Deloneovim grafom od P i oznacavamo s DG(P ).

Slika 3.8: Deloneov graf DG(P ).

Daljnom analizom pokazat cemo da je DG(P ) triangulacija od P (uz pretpostavku opceg

polozaja), te da je ona optimalna po MaxMin kriteriju.

Primjecujemo da je, uz pretpostavku opceg polozaja (svaki Voronojev vrh je stupnja 3), svaka

unutrasnja strana od G incidenta s tocno tri brida, pa su strane u DG(P ) trokuti. Pokazimo

jos da je DG(P ) ravninski graf. Za dokaz tvrdnje iskoristit cemo teorem 2.3 izrazen preko

Deloneovog grafa (naravno, uz pretpostavku opceg polozaja skupa P ):

Teorem 3.3. Neka je P skup lokacija.

(i) Tri lokacije pi, pj, pk ∈ P su vrhovi koji pripadaju istoj strani u DG(P ) ako i samo ako

krug kroz pi, pj, pk ne sadrzi nijednu drugu lokaciju.

(ii) Lokacije pi, pj ∈ P cine brid u DG(P ) ako i samo ako postoji zatvoreni krug C kroz pi i

pj koji ne sadrzi nijednu drugu lokaciju.

Teorem 3.4. Deloneov graf skupa tocaka ravnine je ravninski graf.

Dokaz. Neka je tij trokut ciji su vrhovi pi, pj i srediste kruga Cij, Sij. Buduci da Sij lezi

na Voronojevom bridu zajednickom celijama V(pi) i V(pj), stranica piSij je sadrzana u V(pi);

slicno vrijedi i za pj. Neka je pkpl drugi brid u DG(P ), za koji analogno definiramo krug Ckl i

trokut tkl. Pretpostavimo da se pipj i pkpl sijeku. Po teoremu 3.3(ii) su pk i pl izvan Cij, time

i izvan trokuta tij, pa pkpl mora sjeci jos jednu stranicu trokuta, onu kojoj je vrh u Sij. Na

isti nacin zakljucujemo da pipj sijece tkl u jos jednoj stranici, ciji je vrh u Skl. Promotrimo

Page 20: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

17

Slika 3.9: Slika uz dokaz teorema 3.4.

Slika 3.10: Moguci odnosi dvaju trokuta koji se sijeku, pri cemu se barem dva vrha prvogtrokuta nalaze izvan drugog i obratno.

li sve moguce odnose ta dva trokuta, vidimo da se i stranice kojima su vrhovi u Sij, odnosno

Skl sijeku. Kako te stranice pripadaju razlicitim Voronojevim celijama, dosli smo do kontra-

dikcije. 2

Dakle, ako je P u opcem polozaju, DG(P ) je triangulacija od P . Trokute i bridove te trian-

gulacije nazivamo Deloneovim trokutima i bridovima.

Promotrimo i degenerativan slucaj, u kojem Voronojev vrh moze imati stupanj veci od 3.

Neka je v vrh u Vor(P ) koji pripada Voronojevim celijama lokacija p1, p2, . . . , pk, k ≥ 3. Tada

njemu odgovarajuca strana f u DG(P ) ima p1, p2, . . . , pk kao svoje vrhove. Iz teorema 2.3(i)

slijedi da te lokacije leze na istoj kruznici, pa je f konveksan k-terokut. Kako se svaki konveksni

mnogokut moze triangulirati (vidi [1]), zakljucujemo da iz DG(P ) i u degenerativnom slucaju,

dodavanjem bridova (dijagonala k-terokuta), mozemo dobiti triangulaciju od P . Pri tome

triangulacija nije jedinstvena jer se k-terokut moze triangulirati na vise nacina.

U oba slucaja triangulaciju induciranu Deloneovim grafom nazivamo Deloneovom triangu-

lacijom, i oznacavamo s DT (P ). Iz dualnosti Voronojevog dijagrama i Deloneovog grafa za-

kljucujemo da je Deloneova triangulacija od P jedinstvena ako i samo ako je DG(P ) = DT (P ).

Page 21: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

18

3.5. Svojstva Deloneove triangulacije

Za triangulaciju T od P kazemo da zadovoljava kriterij praznog kruga ako krug opisan

svakom trokutu u T ne sadrzi druge tocke iz P , osim vrhova trokuta. Svaka Deloneova

triangulacija ispunjava kriterij praznog kruga (teorem 3.3(i)). Pitamo se vrijedi li i obrat.

Obrat vrijedi, sto daje najcescu karakterizaciju Deloneove triangulacije:

Teorem 3.5. Neka je P skup lokacija u ravnini i T triangulacija od P . T je Deloneova

triangulacija od P akko T zadovoljava kriterij praznog kruga.

Dokaz. Neka je pi ∈ P i pi1, pi2, . . . , pik vrhovi trokuta incidentnih pi. Nadalje, neka su

qi1, qi2, . . . , qik sredista krugova Ci1, Ci2, . . . , Cik opisanih trokutima 4pipi1pi2, . . . ,4pipikpi1u smjeru suprotnom od kazaljke sata. pipij je okomit1 na qijqi(j−1), j = 1, . . . , k pa je

mnogokut s vrhovima qi1, qi2, . . . , qik dan s ∩kj=1H(pi, pij). Po pretpostavci Ci1, Ci2, . . . , Cik,

Slika 3.11: Slika uz dokaz teorema 3.5.

osim vrhova njihovih trokuta, ne sadrze druge tocke iz P pa postoji barem jedna tocka

ph ∈ P\ pi1, pi2, . . . , pik koja lezi izvan tih krugova. Neka piph sijece kruznicu od Cij u

tocki rh. Kako simetrala svake tetive prolazi kroz srediste kruga, simetrala od pi i ph prolazi

kroz qij te je mnogokut s vrhovima qi1, qi2, . . . , qik sadrzan u poluravnini H(pi, rh), odnosno

vrijedik⋂

j=1

H(pi, pij) ⊂ H(pi, rh) ⊂ H(pi, ph).

Kako to vrijedi za svaku tocku ph ∈ P\ pi1, pi2, . . . , pik, vrijedi

k⋂j=1

H(pi, pij) =k⋂

j 6=i

H(pi, pj) = V(pi).

1Spojnica sredista dvaju krugova koji se sijeku u dvije tocke A i B lezi na simetrali duzine AB

Page 22: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

19

Mnogokut s vrhovima qi1, qi2, . . . , qik je Voronojeva celija od pi. Ako bismo isti postupak

ponovili za sve pi ∈ P , dobili bismo Vor(P). Slijedi da je triangulacija T dual Voronojevog

dijagrama 2

Kako DT (P ) zadovoljava kriterij praznog kruga, po lemi je DT (P ) lokalno optimalna tri-

angulacija. Vrijedi i obrat, sto dovodi do nove karakterizacije Deloneove triangulacije.

Teorem 3.6. Neka je P skup tocaka ravnine. Triangulacija T od P je lokalno optimalna ako

i samo ako je T Deloneova triangulacija od P .

Dokaz. Pokazimo da je svaka lokalno optimalna triangulacija nuzno Deloneova. Neka je Tlokalno optimalna triangulacija i e = pipj brid u T . Neka su4pipjpk 4pipjpl njemu incidentni

trokuti. e je lokalno optimalan, pa pl lezi izvan kruga1 opisanom trokutu 4pipjpk. Kako su

bridovi pipl, pjpl, pipk i pkpj po pretpostavci takoder lokalno optimalni, slijedi da krugovi opi-

sani trokutima 4pipjpk 4pipjpl ne mogu sadrzavati nijednu drugu tocku iz P . Primijenimo

li ovo zakljucivanje na svaki brid u T vidimo da T ispunjava kriterij praznog kruga pa je

T = DT (P ). 2

Teorem pokazuje da uzastopnim primjenom PLO–a na bilo koju triangulaciju T nuzno dola-

zimo do Deloneove triangulacije (jer je ista lokalno optimalna i jedinstvena ako je P u opcem

polozaju). Naravno, svaka primjena PLO–a je reverzibilna, pa iz DT (P ) mozemo nizom za-

mjena bridova doci do triangulacije T .

Ovo razmatranje implicira da se iz svake triangulacije T od P nizom zamjena bridova moze

doci do bilo koje triangulacije T ′ od P .

Teorem 3.7. Triangulacija skupa P je optimalna ako i samo ako je T Deloneova triangulacija

od P .

Dokaz. Ako je T 6= DT (P ), slijedi da T nije lokalno optimalna pa ima ilegalan brid. Primje-

nom PLO–a na taj brid dobijamo triangulaciju ciji je indikator leksikografski veci od I(T ).

To znaci da T nije optimalna triangulacija.

Neka je T Deloneova triangulacija i pretpostavimo suprotno, I(T ) nije leksikografski najveci

vektor indikator. Tada postoji triangulacija T ′ takva da I(T ′) > I(T ). Ako T ′ ima ilegalne

bridove, uzastopnom primjenom PLO–a dolazimo do triangulacije T ∗ ciji su bridovi svi lokalno

optimalni i vrijedi I(T ∗) > I(T ). Uz to T ∗ mora biti Deloneova triangulacija jer je lokalno

optimalna. Kako je Deloneova triangulacija jedinstvena vrijedi T = T ∗ pa je I(T ) = I(T ∗),sto je kontradikcija.

1Primijetimo da i bridovi ciji trokuti cine nekonveksan cetverokut svakako ispunjavaju kriterij praznogkruga.

Page 23: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

20

4. Racunanje Deloneove triangulacije

U ovom poglavlju proucavamo problem racunanja Voronojevog dijagrama i Deloneove trian-

gulacije DT (P ) skupa P od n lokacija. Postoji mnostvo algoritama za racunanje Voronojevog

dijagrama, no u praksi se on najcesce racuna pomocu Deloneove triangulacije. Iz dualnosti

Vor(P ) i DT (P ) i njihove linearne velicine slijedi da Voronojev dijagram mozemo izracunati

iz dane Deloneove triangulacije u O(n) vremenu.

Najpoznatiji algoritmi su takozvani plane sweep i podijeli–pa–vladaj algoritmi, no njihova im-

plementacija zahtjeva prilicnu slozenost pri programiranju. Zato u ovom radu proucavamo

rastuci algoritam sa slucajnim poretkom dodavanja lokacija, cija je implementacija znatno

laksa, uz pravilan odabir struktura podataka. Takoder, njegova se slozenost moze analizirati

pomocu rezultata teorije vjerojatnosti.

4.1. Donja granica

Prvo ustanovimo donju granicu slozenosti algoritama za racunanje Deloneove triangulacije (i

Voronojevog dijagrama). Poznato je da iz obje strukture lako odredujemo lokacije koje leze

na rubu konveksne ljuske skupa lokacija.

Neka je dano n realnih brojeva x1, x2, . . . , xn. Iz Deloneove triangulacije skupa P = pi =

(xi, x2i ), 1 ≤ i ≤ n u linearnom vremenu mozemo doznati vrhove ruba konveksne ljuske od

P u smjeru obrnutom od kazaljke sata. Krenemo li od prve tocke slijeva, vidimo da je taj

Slika 4.1: CH(P ), za P = pi = (xi, x2i ), 1 ≤ i ≤ 6.

niz vrhova pi sortiran po rastucim vrijednostima xi. Zakljucujemo da konstrukciju konveksne

ljuske (time i Deloneove triangulacije) mozemo iskoristiti za sortiranje niza brojeva. Slijedi

Page 24: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

21

da je slozenost konstrukcije Deloneove triangulacije ili Voronojevog dijagrama barem jednaka

slozenosti sortiranja n realnih brojeva, koja je Θ(n log n). Dakle, donja granica slozenosti

racunanja Voronojevog dijagrama i Deloneove triangulacije n lokacija je Ω(n log n).

4.2. Rastuci algoritam za racunanje Deloneove triangulacije

Rastuci algoritam se temelji na sljedecoj ideji:

iz dane Deloneove triangulacijeDT i prvih i lokacija iz P , racunamoDT i+1 nakon dodavanja

lokacije pi+1.

Polaznu triangulaciju DT 0 cini jedan trokut 4p−1p−2p−3, dovoljno velik da sadrzi sve lokacije

iz P u svojoj unutrasnjosti. Pri tome je vazno da vrhovi tog trokuta ne leze ni u jednom krugu

definiranom s bilo koje tri tocke iz P .

Slika 4.2: Pocetni trokut za triangulaciju.

Umjesto triangulacije skupa P , izracunat cemo Deloneovu triagulaciju skupa P ∪ P0, gdje

je P0 = p−1, p−2, p−3. Nakon zavrsetka racunanja, DT (P ) dobijamo uklanjanjem tocaka

p−1, p−2, p−3 te svih njima incidentnih bridova iz DT (P ∪ P0). Kako tocke u P0 ne leze u

krugovima oko trokuta u DT (P ), uklanjanje njima incidentnih bridova nema utjecaja na

DT (P ).

Sada u triangulacije DT i, i = 0, . . . , n − 1 dodajemo lokacije iz P slucajnim redosljedom,

odrzavajuci pritom Deloneovu triangulaciju trenutnog skupa lokacija.

Promotrimo poblize r–ti korak algoritma – dodavanje lokacije pr u DT r−1 = DT (P0 ∪p1, . . . , pr−1). Moguca su dva slucaja (slika 4.3):

• pr se nalazi u unutrasnjosti nekog Deloneovog trokuta iz DT r−1. Tada dodajemo bridove

od pr do vrhova tog trokuta.

• pr lezi na Deloneovom bridu e. Dodajemo bridove iz pr do nasuprotnih vrhova trokuta

koji dijele brid e.

Page 25: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

22

Slika 4.3: Dva slucaja kod dodavanja lokacije pr.

U oba slucaja dobili smo novu triangulaciju T , koja vise nije nuzno Deloneova. Primijenimo

li PLO na ilegalne bridove od T dolazimo do lokalno optimalne triangulacije. Po teoremu 3.6

ta je triangulacija Deloneova. Primjecujemo da se dodavanjem pr nece mijenjati svi trokuti

iz DT r−1; mijenjat ce se oni trokuti koji ne zadovoljavaju kriterij praznog kruga, odnosno

ciji opisani krugovi sadrze pr. Dakle, primjenom PLO–a ne moramo provjeravati svaki brid

u DT r−1 nakon dodavanja lokacije pr. Pitamo se koji bridovi mogu postati ilegalni dodava-

Slika 4.4: Dodavanje lokacije pr i zamjena ilegalnog brida.

njem pr. Bridovi nastali povezivanjem lokacije pr s vrhovima trokuta kojem (kojima) pripada

se ne mogu zamijeniti, buduci da ne cine dijagonalu strogo konveksnog cetverokuta. Jedini

kandidati za zamjenu su bridovi novih trokuta, nasuprotni lokaciji pr. Ostali bridovi u Trsu dijagonale istih cetverokuta kao u DT r−1, a kako je DT r−1 Deloneova triangulacija, oni

su lokalno optimalni. No, svaka zamjena brida moze uciniti i druge bridove ilegalnima. Na-

kon zamjene brida dobijamo cetiri nova kandidata za zamjenu, buduci da su bridovi trokuta

Page 26: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

23

incidentnih novom bridu sada dijagonale novih cetverokuta.

Pretpostavimo da je brid e = pipj zamijenjen bridom e′ = prpk kao na slici 4.4. Lema 4.1

ce pokazati da nakon zamjene brida e najvise dva brida mogu postati ilegalna, i to ona dva

brida koja se nalaze nasuprot lokacije pr u cetverokutu cija je dijagonala e′. Neka je e1

jedan od njih. On je dijagonala cetverokuta cija su dva brida incidentna s pr. Ako se on

ilegalan, zamijenimo ga, a novi je brid opet incidentan lokaciji pr. Dalje provjeravamo dva

brida nasuprot pk. Ovo razmatranje mozemo ponoviti redom na svakom sljedecem kandidatu

za zamjenu. Stoga definiramo proceduru SwapIllegal. Ukoliko ona zamjeni brid, rekurzivnim

pozivom ce provjeriti oba potencijalno ilegalna brida.

Procedura SwapIllegal(pr, pipj, T )

1. / *Lokacija koja se dodaje je pr, pipj je brid u T koji se provjerava */2. ako je pipj ilegalan tada3. Neka su pipjpk i prpipj trokuti incidentni bridu pipj4. Zamijeni pipj s prpk5. SwapIllegal(pr, pipk, T )6. SwapIllegal(pr, pkpj, T )

Lema 4.1. Svaka zamjena brida u proceduri SwapIllegal generira najvise dva kandidata za

zamjenu.

Slika 4.5: Slika uz dokaz leme 4.1.

Page 27: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

24

Dokaz. Neka je pipj brid koji postaje ilegalan dodavanjem lokacije pr, te neka je on primjenom

procedure zamijenjen bridom prpk kao na slici 4.5. Tada krug C oko trokuta pipjpk sadrzi je-

dino lokaciju pr u svojoj unutrasnjosti (jer je bio Deloneov trokut u DT r−1). Neka je C ′ krug

kroz pr,pj i pk. Oznacimo s D′ dio kruga C ′ omeden kruznim lukom pj − pr − pk i tetivom

pkpj. Kako D′ sadrzi pr na svom rubu, a pr je u unutrasnjosti kruga C, i D′ je sadrzan u

C. Tada D′ ne moze sadrzavati nijednu lokaciju u unutrasnjosti, te C ′ ne moze sadrzavati x.

Time smo pokazali da je prpj lokalno optimalan. Na isti nacin se moze pokazati da je i prpi

lokalno optimalan. Dakle, jedino su pjpk i pkpi potencijalno ilegalni. 2

Ilegalnost brida u 2. koraku procedure mozemo provjeriti koristenjem leme 3.1, o cemu ce

vise rijeci biti u sljedecem poglavlju.

Kako imamo proceduru koja nakon svakog dodavanja lokacije zamijenjuje ilegalne bridove,

mozemo dati i glavni algoritam za racunanje Deloneove triangulacije od P .

Algoritam DeloneovaTriangulacija(P )

Ulaz: Skup Pod n lokacija u ravnini.Izlaz: Deloneova triangulacija od P .1. Odaberi tocke p−1, p−2 i p−3 takve da je P sadrzan u 4p−1p−2p−3

2. Postavi 4p−1p−2p−3 za pocetnu triangulaciju T .3. Izracunaj slucajnu permutaciju p1, p2, . . . , pn od P .4. za r ← 1 do n do5. / *Dodaj pr u triangulaciju T */6. Nadi trokut 4pipjpk koji sadrzi pr.7. ako pr lezi u unutrasnjosti 4pipjpk tada8. Dodaj bridove iz pr do vrhova pi, pj, pk.9. SwapIllegal(pr, pipj, T )

10. SwapIllegal(pr, pjpk, T )11. SwapIllegal(pr, pkpp, T )12. inace13. / *pr lezi na bridu pipj trokuta 4pipjpk */14. Dodaj bridove iz pr do pk i do vrha pl drugog trokuta ciji je brid pipj.15. SwapIllegal(pr, pipl, T )16. SwapIllegal(pr, plpj, T )17. SwapIllegal(pr, pjpk, T )18. SwapIllegal(pr, pkpi, T )19. Ukloni p−1, p−2 i p−3 i njima incidentne bridove iz T20. vrati T

Kako bismo pokazali tocnost algoritma, trebamo dokazati da nakon svih poziva procedure

ne ostaje nijedan ilegalan brid. Iz koda SwapIllegal i prijasnjih razmatranja jasno je da je svaki

novi brid nastao dodavanjem pr incidentan s pr te se dalje nece mijenjati niti provjeravati

tijekom izvodenja procedure. Tocnost algoritma je dokazana pokazemo li da je svaki novi

Page 28: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

25

brid lokalno optimalan (buduci da ih ne provjeravamo procedurom). Takoder, algoritam ne

moze uci u beskonacnu petlju, buduci da svakom zamjenom brida vektor indikator postaje

leksikografski veci.

Slika 4.6: Svi novi bridovi su incidentni s pr.

Lema 4.2. Svaki novi brid kreiran u algoritmu DeloneovaTriangulacija ili u proceduri Swa-

pIllegal dodavanjem pr je Deloneov brid u DT (P0 ∪ p1, . . . , pr).

Dokaz. Promotrimo bridove stvorene spajanjem lokacije pr i vrhova trokuta 4pipjpk u kojem

pr lezi. Kako je 4pipjpk Deloneov u DT r−1, njemu opisani krug C sigurno ne sadrzi lokaciju

pt, t < r u unutrasnjosti. Smanjivanjem kruga C mozemo naci krug C ′ ⊂ C kroz pr i,

primjerice, pi. Tada ocito ni C ′ ne sadrzi lokacije u unutrasnjosti. Po teoremu 3.3(ii), prpi je

Deloneov brid. Isto razmatranje mozemo provesti i za bridove prpj i prpk (te prpl ako je pr

pao na postojeci brid pipj).

Neka je procedura zamijenila brid pipj trokuta 4pipjpk bridom prpl kao na slici 4.7. Neka

Slika 4.7: Slika uz dokaz leme 4.2.

je C krug opisan tom trokutu. Kako je pipj nakon dodavanja pr postao ilegalan (inace ne bi

bio zamjenjen), pr je u unutrasnjosti kruga C. Ponovno mozemo smanjiti krug C do kruga C ′

kroz pr i pl koji ne sadrzi nijednu drugu lokaciju. 2

Page 29: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

26

4.3. Deloneovo stablo

U 6. koraku algoritma potrebno je locirati trokut u DT r−1 koji sadrzi novu lokaciju pr koju

dodajemo u triangulaciju. U tu svrhu koristit cemo hijerarhijsku strukturu, Deloneovo stablo

D, realiziranu kao usmjereni aciklicki graf. Listovi u D odgovaraju trokutima u trenutnoj

triangulaciji, dok unutrasnji cvorovi odgovaraju trokutima koji su bili dio triangulacije u nekom

prethodnom koraku, ali su unisteni dodavanjem lokacije ili zamjenom brida. Korijen strukture

cini pocetni trokut 4p−1p−2p−3. Pretpostavimo da se ∆ = 4pipjpk dodavanjem pr podijelio

na tri (ili dva) trokuta. Tada u D dodajemo listove koji odgovaraju novim trokutima te

Slika 4.8: Strukturne promjene Deloneovog stabla D.

postavljamo pokazivace iz ∆ na njih. Time ∆ postaje unutrasnji cvor. Na isti nacin se odrzava

hijerarhijska struktura prilikom zamjene brida, kojom se trokuti 4pkpipj i 4pipjpl zamjenjuju

trokutima 4pkplpj i 4pkpipl. Novi trokuti postaju listovi, te se postavljaju pokazivaci na njih

Page 30: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

27

iz oba stara trokuta. Slika 4.8 pokazuje promjene u strukturi D tijekom izvodenja algoritma.

Primjecujemo da svaki unutrasnji cvor moze imati najvise tri izlazna pokazivaca.

D sada lako mozemo koristiti za lociranje trokuta kojem pr pripada u trenutnoj triangu-

laciji. Prvo provjeravamo kojem od tri trokuta– djece korijenskog cvora pr pripada. Tada se

rekurzivno spustamo do odgovarajuceg djeteta, dok ne dodemo do lista. Taj list odgovara

trokutu trenutne triangulacije koji sadrzi lokaciju pr.

Kako je broj djece svakog cvora najvise tri, vrijeme spustanja do lista je linearno u broju

cvorova na putu kojim pretrazujemo.

4.4. Analiza slozenosti

Pokazat cemo da se rastucim algoritmom mozemo izracunati Deloneovu triangulaciju n lokacija

u ocekivanom vremenu O(n log n). U daljnjim razmatranjima Pr := p1, . . . , pr oznacavat ce

skup vec dodanih lokacija nakon r-te iteracije algoritma, a DT r, kao i dosada, Deloneovu

triangulaciju skupa P0 ∪ Pr.

Lema 4.3. Ocekivani (prosjecni) stupanj slucajno odabrane lokacije iz Pr je manji od 6.

Dokaz. Oznacimo s deg(pr,DT r) stupanj od pr u DT r. Broj bridova u DT r jednak je broju

bridova u Vor(P ), koji je po lemi 2.2 najvise 3(r + 3) − 6. Kako je u svakom grafu suma

stupnjeva svih vrhova dvostruko veca od broja bridova, slijedi da je suma stupnjeva vrhova u

DTr najvise 2[3(r + 3)− 9] = 6r, pa je ocekivani stupanj vrha u DT r manji od 6. 2

Teorem 4.1. Ocekivani broj zamjena bridova nakon dodavanja pr je O(1).

Dokaz. Fiksirajmo skup Pr i napravimo analizu unatrag. Prije izvrsavanja procedure SwapIl-

legal, pr je incidentam trima (ili cetvorima) bridovima– onima koju povezuju pr s vrhovima

trokuta iz DTr−1 kojem pr pripada. Ostali incidentni bridovi se kreiraju iskljucivo zamjenom

bridova, i to po jedan za svaku zamjenu. Tako je broj zamjena bridova koje procedura obavi

nakon dodavanja pr je dan s deg(pr,DT r)− 3. Stoga je

E[broj zamjena nakon dodavanja pr] = E[deg(pr,DT r)]− 3

=1

r + 3

r+3∑i=1

deg(pi,DT r)− 3

≤ 1

r + 36(r + 3)− 3

= 3

= O(1).

Lema 4.4. Ocekivani broj trokuta kreiranih algoritmom je najvise 9n+ 1.

Page 31: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

28

Dokaz. Dodavanjem pr trenutni tokut se dijeli na tri (ili cetiri) nova trokuta. Svaka zamjena

brida kreira dva nova trokuta i jedan novi brid incidentan s pr. Dakle, broj trokuta kreiranih

dodavanjem pr je najvise 2 deg(pr, DTr)− 3.

E[broj trokuta kreiranih u koraku r] ≤ E[2 deg(pr,DT r)− 3]

= 2E[deg(pr,DT r)]− 3

≤ 2 · 6− 3 = 9.

Ukupan broj trokuta kreiranih algoritmom je jedan, za pocetni trokut 4p−1p−2p−3, plus

broj trokuta kreiranih u svakom koraku algoritma nakon dodavanja svake od n lokacija.

Koristenjem linearnosti ocekivanja dobijamo da je ukupan ocekivani broj kreiranih trokuta

najvise 9n+ 1. 2

Teorem 4.2. Deloneova triangulacija skupa n lokacija u ravnini se moze izracunati u O(n log n)

ocekivanom vremenu.

Dokaz. Tocnost algoritma je dokazana lemom 4.2. Promotrimo prvo vrijeme izrsavanja algo-

ritma ne uzimajuci u obzir postupak trazenja trokuta kojemu lokacija pripada. Tada je vrijeme

izvrsavanja proporcionalno broju trokuta kreiranih u toku algoritma, koji je po lemi 4.4 O(n).

Pokazimo slozenost postupka lociranja trokuta. Primijetimo da svaki cvor koji prodemo

spustanjem u Deloneovom stablu odgovara trokutu koji je ranije bio kreiran i unisten, i koji

sadrzi pr. Uzmemo li posebno trokut trenutne triangulacije, vidimo da je vrijeme potrebno

za lociranje pr jednako O(1) plus vrijeme potrebno za posjete vec unistenih trokuta koji

sadrzavaju pr. Neka je ∆1 = 4pipjpk, a ∆2 = 4pipjpl njemu susjedan trokut. ∆1 se unistava

u dva slucaja:

• neka lokacija je dodana u unutrasnjost (ili na rub) od ∆1, te je on podijeljen na tri (ili

dva) trokuta,

• zamjena brida ∆1 i ∆2 zamjenjuje trokutima ∆′1 ∆′2.

U prvom slucaju, ∆1 je bio Deloneov prije dodavanja pr. U drugom slucaju, ili je ∆1 bio

Deloneov trokut i dodan je nasuprotni vrh pl, ili je ∆2 bio Deloneov i dodan je nasuprotni

vrh pk. Buduci da je brid pipj zamjenjen, nuzno pk i pr leze u krugu opisanom Deloneovom

trokutu ∆2.

U oba slucaja, za trokut ∆1 koji posjetili u setnji po D, postoji Deloneov trokut ∆ koji

je unisten kad i ∆1, i ciji opisani krug sadrzi pr. S K(∆) oznacimo skup lokacija iz P koje se

nalaze unutar kruga opisanog trokutu ∆. Za posjetu svakog trokuta ∆1 u D pri lociranju pr

postoji Deloneov trokut ∆ takav da je pr ∈ K(∆) koji nestaje kad i ∆1. Ocito je da takav

trokut mozemo proci najvise jednom kod dodavanja svake od lokacija iz K(∆). Kako imamo

Page 32: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

29

n dodavanja lokacija, ukupno vrijeme lociranja trokuta koji sadrzi pr je

O

(n+

∑∆

‖K(∆)‖

),

pri cemu sumiramo preko svih Deloneovih trokuta koji su kreirani u toku izvodenja algoritma.

Sljedecom lemom pokazat cemo da je ocekivana vrijednost te sume O(n log n) cime je teorem

dokazan. 2

Lema 4.5. Za skup P u opcem polozaju vrijedi∑∆

‖K(∆)‖ = O(n log n),

gdje sumiramo po svim Deloneovim trokutima ∆ kreiranih algoritmom.

Dokaz. Uz pretpostavku opceg polozaja skupa P , i Pr ⊂ P je u opcem polozaju pa je njegova

Deloneova triangulacija jedinstvena. Oznacimo s Tr skup trokuta iz DT r. Tada je skup

Deloneovih trokuta kreiranih u r-toj iteraciji algoritma dan s Tr\Tr−1. Sada sumu iz tvrdnje

leme mozemo zapisati kaon∑

r=1

∑∆∈Tr\Tr−1

‖K(∆)‖

.

Za tocku q s k(Pr, q) oznacimo broj trokuta ∆ ∈ Tr takvih da je q ∈ K(∆), a s k(Pr, q, pr)

broj trokuta koji su pritome i incidentni s pr. Kako je svaki Deloneov trokut kreiran u r–toj

iteraciji incidentan s pr, vrijedi∑∆∈Tr\Tr−1

‖K(∆)‖ =∑

q∈P\Pr

k(Pr, q, pr). (4.1)

Fiksiramo Pr i promatramo ocekivanja na svim permutacijama od P za koje je Pr ⊂ P jednak

nekom fiksnom skupu P ∗r . Promatramo, dakle, razlicite poretke dodavanja istih r lokacija.

Kako je vjerojatnost da je trokut ∆ ∈ Tr incidentan slucajno odabranoj lokaciji p ∈ Pr najvise

3/r, dobijamo

E[k(Pr, q, pr)] ≤3k(Pr, q)

r.

Sumiramo li po svim q ∈ P\Pr i iskoristimo (4.1), imamo

E

∑∆∈Tr\Tr−1

‖K(∆)‖

≤ 3

r

∑q∈P\Pr

k(Pr, q). (4.2)

Za svaki q ∈ P\Pr vjerojatnost da se pojavi kao pr+1 je jednaka 1/(n− r) pa vrijedi

E[k(Pr, pr+1)] =1

n− r∑

q∈P\Pr

k(Pr, q).

Page 33: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

30

Uvrstavanjem u (4.2) dobijamo

E

∑∆∈Tr\Tr−1

‖K(∆)‖

≤ 3n− rr

E[k(Pr, pr+1)].

k(Pr, pr+1) je broj trokuta it Tr ciji opisani krugovi sadrze pr+1, a tocno ti ce se trokuti dodava-

njem pr+1 unistiti pa je k(Pr, pr+1) = ‖Tr\Tr+1‖, sto cemo uvrstiti u prethodnu nejednadzbu.

E

∑∆∈Tr\Tr−1

‖K(∆)‖

≤ 3n− rr

E[‖Tr\Tr+1‖].

Iz teorema 3.1 mozemo vidjeti da se broj trokuta svakim dodavanjem lokacije povecava za

2. Svaka zamjena brida unistava dva trokuta i kreira nova dva, a povezivanje nove lokacije

dodavanjem bridova unistava jedan i kreira tri nova trokuta (ili unisti dva, a kreira cetiri nova

trokuta). Zakljucujemo da je razlika broja kreiranih i broja unistenih trokuta dva. Stoga je

‖Tr\Tr+1‖ = ‖Tr+1\T r‖ − 2, pa mozemo sumu zapisati kao

E

∑∆∈Tr\Tr−1

‖K(∆)‖

≤ 3n− rr

E [‖Tr+1\T r‖ − 2] .

Dosada smo Pr promatrali kao fiksni skup. Nejednakost vrijedi za sve izbore Pr ⊂ P , pa

ocekivanje vrijedi i za sve permutacije od P . Broj trokuta novih trokuta u Tr+1 jednak je

broju bridova incidentnih s pr+1, cije je ocekivanje 6 pa je

E

∑∆∈Tr\Tr−1

‖K(∆)‖

≤ 12n− rr

.

Sumiranjem po r dobijamo nejednakost iz tvrdnje leme. 2

Dakle, nas rastuci algoritam je worst–case optimalan. Primijetimo da nismo uzimali u obzir

distribuciju tocaka u ravnini, ocekivana slozenost je O(n log n) za svaki moguci skup P . No,

postoje slucajevi kada algoritam zahtjeva Θ(n2) vremena. To se dogada iskljucivo kada se

uzima u obzir i redoslijed dodavanja lokacija.

Promotrimo, primjerice, trianguliranje n = 10 lokacija na paraboli y = 12x2 kao na slici 4.9.

Pretpostavimo da su lokacije dodavane redoslijedom kojim su numerirane. Za svaku dodanu

lokaciju pi Deloneovi krugovi svih starih trokuta sadrze pi, te oni moraju biti zamijenjeni.

Tako dodavanjem pi dobijamo i− 1 novih Deloneovih bridova pipj, j < i, koji povezuju pi sa

svim dotada dodanim lokacijama. Slika (b) prikazuje DT 9. Nakon dodavanja p10 svi trokuti

triangulacije iz (b) se unistavaju te se kreiraju novi trokuti (slika (c)). U ovom primjeru

Page 34: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

31

ukupan broj promjena (ako ne uzimamo u obzir bridove s vrhovima u P0) je reda O(n2):

n∑i=4

=1

2n2 − 1

2n− 3.

Medutim, takvi su slucajevi vrlo rijetki. Broj strukturalnih promjena nakon dodavanja lokacije

pr je proporcionalan s deg(pr,DT r), te ce on, sa slucajnim redoslijedom dodavanja lokacija, u

prosjeku biti manji od 6.

Slika 4.9: Primjer worst–case slucaja.

Page 35: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

32

5. Implementacija rastuceg algoritma za racunanje De-

loneove triangulacije

Za prakticni dio rada implementiran je rastuci algoritam sa slucajnim poretkom dodava-

nja lokacija u programskom jeziku C++ kao program DelaunayTriangulation. Program

racuna Deloneovu triangulaciju, iz nje i Voronojev dijagram, te ih ispisuje u izlazne datoteke,

koje se potom mogu graficki prikazati. Kao sto ce statistika izvodenja programa pokazati,

DelaunayTriangulation je efikasan i brz, i za veliki broj lokacija.

5.1. Struktura podataka

Za reprezentaciju triangulacije u racunalu koristena je takozvana dvostruko povezana lista

bridova (Doubly–Connected Edge List – DCEL). DCEL je struktura podataka namjenjena za

efikasnu pohranu topoloskih informacija, cesto koristena za reprezentaciju ravninskih subdivi-

zija. Ona sadrzi sve potrebne informacije o incidenciji vrhova, bridova i strana. U implemen-

taciji rastuceg algoritma je iskoristena i prilagodena struktura podataka dana u [9]. DCEL je

odabran kao struktura podataka jer znatno olaksava postupak dohvacanja susjednog trokuta

kod zamjene bridova i kod odredivanja Voronojevog dijagrama iz Deloneove triangulacije.

DCEL struktura se temelji na konceptu polu—brida (half–edge), pa se ova inacica DCEL–a

naziva i strukturom polu–bridova. Umjesto izravne reprezentacije brida, DCEL svaki brid

predstavlja kao dva polu–brida suprotnih orijentacija, za koje kazemo da su blizanci (twins).

DCEL, uz polu–bridove, sadrzi jos i strukturu vrhova i strukturu strana subdivizije (trokuta).

Sada mozemo zamisliti da svaki polu–brid pripada tocno jednom trokutu u triangulaciji. Pri

tome su polu–bridovi odredenog trokuta orijentirani u smjeru suprotnom od kazaljke sata, kao

na slici 5.10.

Slika 5.10: Svakom trokutu triangulacije pripada tocno tri polu–brida, orijentiranih u smjerusuprotnom od kazaljke sata.

Page 36: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

33

Slijedi pojednostavljeni prikaz klasa iz programa DelaunayTriangulation, bez navodenja

metoda i konstruktora.

class half_edge

half_edge* twin; //pokazivac na polu -brid blizanac

vertex* target; //pokazivac na ciljni vrh

half_edge* next; //pokazivac na sljedeci polu -brid u trokutu

// u smjeru suprotnom od kazaljke sata

face* triangle; // pokazivac na trokut koji ga sadrzi

;

class vertex

double x,y; // koordinate lokacije

edge* out; // pokazivac na jedan proizvoljni polu -brid

// koji izlazi iz vrha

;

class face

half_edge* leading; // pokazivac na vodeci polu -brid trokuta

;

Sama triangulacija reprezentirana je klasom Delaunay, koja sadrzi pokazivace na prve

elemente tri liste – liste polu–bridova, liste vrhova i liste trokuta, te postavljanjem pokazivaca

medu tim listama. Vanjska strana, odnosno komplement konveksne ljuske, u triangulaciji je

prikazan posebnom instancom klase face, InfiniteFace, koja se ne mijenja tijekom izvodenja

programa. Klasa Delaunay sadrzi metode za dodavanje i brisanje elemenata listi, iteratore

za prolazak kroz sve tri liste, te metode za lociranje lokacije i zamjene bridova. Za vrhove

pocetne triangulacije odabrane su tocke cije su koordinate dovoljno velike da nisu sadrzane ni

u jednom krugu opisanom trokutima koje cine lokacije.

Za lociranje nove lokacije u postojecoj triangulaciji implementiran je usmjereni aciklicki graf,

opisan u proslom poglavlju, cije cvorove cine instance klase history_triangle.

class history_triangle

face* triangle; // pokazivac na trokut u trenutnoj triangulaciji

// NULL ako je trokut unisten

vertex* points [3]; // pokazivaci na tri vrha trokuta

// bez obzira je li on unisten ili ne

history_triangle* children [3]; // pokazivaci na djecu nastalu

// unistavanjem trokuta

;

Page 37: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

34

5.2. Geometrijski testovi

U programu DelaunayTriangulation iskoristena su dva geometrijska testa iz [10]: test za

provjeru orijentacije triju tocaka i test kojim odredujemo lezi li neka tocka u unutrasnjosti

kruga opisanog nekom trokutu.

Za provjeru orijentacije tocaka A, B i C implementiran je test ccw(A,B,C) koji vraca true

ako je trokut 4ABC orijentiran u smjeru suprotnom od kazaljke sata. Pomocu koordinata

tocaka, test je numericki realiziran kao

ccw(A,B,C)⇐⇒

∣∣∣∣∣∣∣xA yA 1

xB yB 1

xC yC 1

∣∣∣∣∣∣∣ ≥ 0.

Pri tome je gornja determinanta jednaka nuli ako i samo ako su A, B i C kolinearne. Taj slucaj,

kada nova lokacija padne na postojeci brid trenutne triangulacije DelaunayTriangulation

ne promatra zasebno. Naime, primjenom algoritma ce degenerativni trokut svakako nestati

zamjenom brida.

Za provjeru kriterija praznog kruga koristen je test in_circle(A,B,C,D) koji je istinit ako D

lezi u unutrasnjosti kruga opisanog trokutu 4ABC. Taj je uvijet ekvivalentan s

in_circle(A,B,C,D)⇐⇒

∣∣∣∣∣∣∣∣∣xA yA x2

A + y2A 1

xB yB x2B + y2

B 1

xC yC x2C + y2

C 1

xD yD x2D + y2

D 1

∣∣∣∣∣∣∣∣∣ > 0.

Naravno, postoji mogucnost da testovi vrate pogresnu vrijednost zbog pogresaka zaokruzivanja,

posebice u skoro kocirkularnih tocaka. Stoga se, posebno u profesionalnim aplikacijama, cesto

koristi aritmetika proizvoljne preciznosti. No, uz dobar odabir input tocaka i radi jednostav-

nosti, u programu zanemarujemo takve slucajeve.

Page 38: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

35

5.3. Graficki prikaz triangulacije

Za graficki prikaz triangulacije i Voronojevog dijagrama koristen je gnuplot 4.7, program

namjenjen za vizualizaciju podataka i prikazivanje grafova funkcija. Njegova prednost je jed-

nostavnost u koristenju, laka prilagodba i velik broj mogucnosti. DelaunayTriangulation

nakon racunanja pozivom za to namjenjenih funkcija klase Delaunay sprema izlazne podatke

u .dat datoteke, koje se potom graficki prikazuju u gnuplot–u.

Klasa Delaunay ima dvije metode za ispis datoteka: Delaunay::output_f(), za graficki prikaz

Deloneove triangulacije, te Delaunay::output_fVoron() za prikaz Voronojevog dijagrama.

Funkcija Delaunay::output_f() prolazi kroz listu trokuta trenutne triangulacije, racuna

koordinate sredista njima opisanih kruznica i pripadne radijuse te sve podatke ispisuje u

”out.dat” datoteku. Kako svaki trokut f ima pokazivac na svoj vodeci brid, lako se dohvacaju

njegovi vrhovi s f->leading->target, f->leading->next->target. . . Svaki trokut u dato-

teci je predstavljen na sljedeci nacin:

0.011536 0.293008 0.318367 0.472897 0.355676

0.478622 0.15537

0.322642 0.828547

0.011536 0.293008

Prva dva stupca predstavljaju x i y koordinate vrhova, treci i cetvrti koordinate sredista

trokutu opisane kruznice, a peti njezin radijus. Trokuti su odvojeni praznim redom u datoteci.

Sada gnuplot naredbom plot ’out.dat’ using 1:2 with lines crta ravne linije redom od

prvog do drugog vrha trokuta i tako dalje. Na slici 5.11 dan je graficki prikaz Deloneove

triangulacije 1000 lokacija.

Slika 5.11: Deloneova triangulacija 1000 lokacija u jedinicnom kvadratu.

Page 39: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

36

Ukoliko naredbi dodamo i using 3:4:5 with circles, gnuplot ce iscrtati i kruznice kroz

vrhove trokuta, kao na slici 5.12.

Slika 5.12: Prikaz Deloneove triangulacije i Deloneovih kruznica skupa od 7 lokacija u gnuplotu.

Na slican nacin radi i funkcija za ispis Voronojevih bridova. Funkcija prolazi kroz listu

svih trokuta triangulacije te u izlaznu datoteku sprema samo koordinate Voronojevih vrhova.

Voronojevi vrhovi su, naravno, sredista trokutu opisanih kruznica. Za svaki trokut f funkcija

dohvaca njegova tri susjedna trokuta (dohvacanjem trokuta na koje pokazuju blizanci polu–

bridova trokuta f) te u datoteku ispisuje sva tri Voronojeva brida – spojnice sredista njihovih

kruznica i koordinate lokacija. Naredbom plot ’outVoron.dat’ using 1:2 with lines,

using 3:4 with points gnuplot ce iscrtati sve Voronojeve bridove i lokacije (slika 5.13).

Page 40: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

37

Slika 5.13: Voronojev dijagram 300 lokacija.

Gnuplot takoder omogucava prikaz vise datoteka, pa mozemo istovremeno nacrtati Voro-

nojev dijagram i Deloneovu triangulaciju, kao na slici 5.14.

Slika 5.14: Vor(P ) i DT (P ), gdje je P skup 300 lokacija.

5.4. Statistika

Sljedeci rezultati su dobiveni izvrsavanjem DelaunayTriangulation na PC–u s Athlon 64 X2

5000+ procesorom, frekvencije 2.6 GHz i 4 GB RAM–a na operativnom sustavu Windows 7.

Vrijeme izvrsavanja programa dobiveno je koristenjem funkcije clock(). Mjereno je vrijeme

Page 41: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

38

potrebno za racunanje Deloneove triangulacije u memoriji racunala, ne racunajuci vrijeme

ispisa podataka u datoteke. Program je testiran na skupovima od 500, 5000, 50000 i 500000

Slika 5.15: Testirani skupovi 5000 lokacija u kvadratu i krugu.

lokacija smjestenih u kvadrat [0, 8]× [0, 8], te krug radijusa 4 sa sredistem u (4, 4) (slika 5.15).

Za svaki je skup napravljeno po 5 mjerenja, svako s razlicitim poretkom dodavanja lokacija, a

kao rezultat uzeto je prosjecno vrijeme izvrsavanja. Rezultati mjerenja dani su u tablici 5.1.

Vidljivo da su rezultati zadovoljavajuci; cak i za veliki broj tocaka program zavrsava u kratkom

vremenu.

500 5000 50000 500000

kvadrat 0.0082 0.1274 1.536 19.01

krug 0.009 0.128 1.563 19.715

Tablica 5.1: Vrijeme izvrsavanja programa u sekundama

Primjecuje se nesto dulje vrijeme potrebno za racunanje Deloneove triangulacije lokacija

smjestenih u krugu. Razlog tome lezi u cinjenici da su u krugu lokacije medusobno blize, sto

generira vrlo male trokute u triangulaciji. Tada setnja kroz Deloneovo stablo zahtjeva vise

koraka (posjeta cvorovima u stablu) za lociranje, sto se vidi i u tablici 5.2.

500 5000 50000 500000

kvadrat 8458.2 129912.6 1762956.8 23158898.6

krug 8563.6 133021.2 1770378 24924273.3

Tablica 5.2: Prosjecan broj posjeta cvorova u Deloneovom stablu za 5 mjerenja

Page 42: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

39

Takoder je izmjereno i vrijeme trianguliranja lokacija koje leze na lijevom kraku parabole

y = 0.5x2, x ≥ 0 kao u primjeru worst-case slucaja u 4. poglavlju. Testiran je postupak

triangulacije 500, 1000 i 1500 lokacija, i to za dva redosljeda dodavanja lokacija: za slucajni

poredak, te za poredak dodavanja obzirom na y koordinatu lokacije, od lokacije s najvecom

y koordinatom do one u ishodistu. Rezultati, vidljivi u tablici 5.3, u potpunosti su u skladu

s danim razmatranjima worst-case slucaja. U tom je slucaju za dva (tri) puta veci broj

lokacija potrebno gotovo cetiri (devet) puta vise vremena za racunanje Deloneove triangulacije.

Ocigledan je kvadratican porast vremena izvrsavanja programa u slucaju kada je uzet u obzir

poredak dodavanja lokacija, sto jos jednom demonstrira prednost odabira slucajnog redoslijeda

dodavanja lokacija.

500 1000 15000

slucajan poredak 0.0056 0.013 0.02

poredak po y koordinati 0.0464 0.177 0.4154

Tablica 5.3: Vrijeme(s) izvrsavanja programa za lokacije na paraboli

Page 43: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

40

6. Zakljucak

Problem odredivanja Voronojevog dijagrama (i Deloneove triangulacije) skupa lokacija spada

u osnovne probleme izracunljive geometrije. Voronojev dijagram skupa od n lokacija P pres-

tavlja subdiviziju ravnine na konveksne celije – skupove tocaka koje su blize lokaciji pojedine

celije nego ijednoj drugoj. Svaka je celija presjek poluravnina odredenih simetralama duzina–

spojnica parova lokacija. Voronojev dijagram povezan je s konveksnom ljuskom skupa P .

Lokacije cije su Voronojeve celije neomedene leze na rubu konveksne ljuske od P . Bitno svoj-

stvo Voronojevih dijagrama je i njihova mala velicina, svaki Voronojev dijagram ima O(n)

vrhova i bridova.

Deloneova triangulacija, DT (P ), je triangulacija skupa P koju mozemo dobiti kao ravnocrtno

smjestanje dualnog grafa od Vor(P ). Uz pretpostavku opceg polozaja skupa P , Deloneova

triangulacija od P je jedinstvena. Pokraj definicije Deloneove triangulacije kao geometrijskog

duala od Vor(P ), najcesce se koristi definicija preko kriterija praznog kruga. Naime, trian-

gulacija od P je Deloneova ako i samo ako kruznica opisana svakom trokutu u triangulaciji

ne sadrzi nijednu drugu lokaciju iz P . Takoder, Deloneova je triangulacija lokalno i globalno

optimalna, tj. ona maksimizira najmanji kut trokuta u triangulaciji.

Pomocu rezultata elementarne geometrije pokazano je da nizom zamjena bridova od bilo koje

triangulacije skupa P mozemo doci do DT (P ) u O(n2) vremenu. U ovom radu izveden

je, koristenjem dokazanih svojstava Deloneove triangulacije, rastuci algoritam sa slucajnim

poretkom dodavanja lokacija. Algoritam je worst-case optimalan, s ocekivanom slozenosti

O(n log n), te se i u praksi pokazao efikasnim za velik broj ulaznih podataka.

Uz probleme postanskog ureda, odredivanja konveksne ljuske i modeliranja terena, Voronojeve

dijagrame i Deloneove triangulacije karakterizira velik broj primjena u problemima izracunljive

geometrije. Neki od njih su:

• najblizi par – za dani skup tocaka P naci par tocaka koje su medusobno najblize,

• najveci prazni krug – za dani skup P naci najveci krug koji ne sadrzi nijednu tocku iz

P , a cije se srediste nalazi u unutrasnjosti CH(P )

• najblizi susjed – za skup tocaka P , svakoj tocki naci njenog najblizeg susjeda,

• euklidsko minimalno razapinjuce stablo – naci minimalno razapinjuce stablo grafa ko-

jemu su vrhovi tocke iz P , a tezina bridova euklidska udaljenost njihovih vrhova.

Uz primjene u izracunljivoj geometriji, velik je raspon primjena i u drugim poljima, poput

epidemiologije, meteorologije, kristalografije i kemije, biologije i dr.

Page 44: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

41

Literatura

[1] M. de Berg, M. van Krevald, M. Overmars, O. Schwarzkopf, Computational Geometry:

Algorithms and Applications, Springer, 2002.

[2] J. Chen, Computational Geometry: Methods and Applications, Texas A & M University,

1996.

[3] O. Hjelle, M. Daehlen, Triangulations and Applications, Springer, 2006.

[4] D. Austin, Voronoi Diagrams and a Day at the Beach, Feature Column from the AMS

(dostupno na http://www.ams.org/samplings/feature-column/fcarc-voronoi)

[5] A. Razen, J. Snoeyink, E. Welzl, Number of Crossing-Free Geometric Graphs vs. Trian-

gulations, Electronic Notes in Discrete Mathematics 31, 2008.

[6] D. Veljan, Kombinatorna i diskretna matematika, Algoritam, 2001.

[7] V. Sacristan, Triangulating Point Sets, Universitat Politecnica de Catalunya

(dostupno na www-ma2.upc.es/%7Egeoc/mat1q1112/Delaunay EN.pdf )

[8] Faniry Harijaona Razafindrazaka, Delaunay Triangulation Algorithm and Application to

Terrain Generation, African Institute for Mathematical Sciences, 2009.

[9] R. Holmes, The DCEL Data Structure for 3D Graphics, Graphics articles at Hol-

mes3D.net

(dostupno na http://www.holmes3d.net/graphics/dcel/ )

[10] L. J. Guibas, J. Stolfi, Primitives for the manipulation of general subdivisions and the

computation of Voronoi diagrams, ACM Transactions on Graphics 4, 74–123, 1985

Page 45: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

42

7. Sazetak

U radu su definirani i analizirani Voronojevi dijagrami i Deloneove triangulacije u ravnini.

Objasnjena je njihova dualnost, te je dan i dokazan pregled njihovih osnovnih svojstava.

Takoder, analiziran je i problem racunanja tih struktura, s posebnim naglaskom na racunanje

Deloneove triangulacije. U tu svrhu je implementiran rastuci algoritam sa slucajnim poretkom

dodavanja lokacija. Algoritam je optimalan, te koristi usmjereni aciklicki graf za problem

lociranja tocke u triangulaciji. U radu je pokazano da implementacija algoritma u C++ daje

zadovoljavajuce rezultate na velikom broju ulaznih podataka.

Kljucne rijeci: Voronojev dijagram, Deloneova triangulacija, izracunljiva geometrija, rastuci

algoritam

Page 46: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

43

8. Summary

This paper deals with two basic structures in computational geometry - two-dimensional Vo-

ronoi diagrams and Delaunay triangulations. Their duality is explained, and also their basic

properties are given and proven. Randomised incremental algorithm for computing Delaunay

triangulation is also analyzed. The algorithm uses a directed acyclic graph based structure,

Delaunay tree for point location procedure, and is optimal. C++ implementation of rando-

mised incremental algorithm was made and tested. Program tested good, even for large size

of input data.

Keywords: Voronoi diagram, Delaunay triangulation, computational geometry, randomised

incremental algorithm

Page 47: Boris Pein - Odjel Za Matematikumdjumic/uploads/diplomski/PEI02.pdf · Vidimo da je svaka Voronojeva celija V(p i) presjek n 1 otvorenih poluravnina pa je ona poligonalan otvoren

44

9. Zivotopis

Boris Pein roden je 24. prosinca 1986. godine u Osijeku. Osnovnu skolu zavrsio je u Dardi

2001. i iste godine upisuje I. gimnaziju u Osijeku.

2005. postaje student Odjela za matematiku Sveucilista J. J. Strossmayera u Osijeku na

diplomskom sveucilisnom nastavnickom studiju matematike i informatike.