Trianguleringer i planet.

Like dokumenter
INF-MAT5370. Trianguleringer i planet (Preliminaries)

INF-MAT5370. Grafer og datastrukturer

INF-MAT5370. Delaunay-trianguleringer og Voronoi-diagram

Algoritmer for Delaunay-triangulering

Algoritmer for Delaunay-triangulering

INF Triangulering. Med sterk støtte fra Petter Kristiansen. Skal først se på et eksempel fra Google Earth

Obligatoriske oppgaver 2009

Visualisering av trianguleringer og trianguleringsprosesser. Hovedfagsoppgave. Per-Idar Evensen

MAT1140: Kort sammendrag av grafteorien

Kontinuasjonseksamen i fag SIF8010 Algoritmer og Datastrukturer Torsdag 9. August 2001, kl

MAT1140: Kort sammendrag av grafteorien

Data-avhengige trianguleringer

Aksiom 3.1 (Likhet av mengder). La A og B være mengder. Da er A og B like hvis og bare hvis de har akkurat de samme elementene.

MAT1030 Forelesning 22

Introduksjon. MAT1030 Diskret Matematikk. Introduksjon. En graf. Forelesning 22: Grafteori. Roger Antonsen

Introduksjon. MAT1030 Diskret matematikk. Søkealgoritmer for grafer. En graf

MAT1030 Diskret matematikk

Grunnleggende Grafalgoritmer

Løsningsforslag til 3. oblogatoriske oppgave i Diskret Matematikk. Høsten 2018

MA2401 Geometri Vår 2018

Komplekse tall og komplekse funksjoner

Grunnleggende Grafteori

Forelesningsnotat i Diskret matematikk tirsdag 1. november Pascals trekant. Legg merke til møsteret! Det gir oss Pascals identitet:

LØSNINGSFORSLAG, EKSAMEN I ALGORITMER OG DATASTRUKTURER (IT1105)

kap. 8.6 Computational Geometry Hovedkapittelet (kap. 8) dreier seg generelt om devide-and-conquer eller splitt og hersk :

Definisjon av binært søketre

PG4200 Algoritmer og datastrukturer Forelesning 10

INF2220: Forelesning 1. Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel )

Spenntrær, oppsummert: Kruskal: Traverserer ikke. Plukker kanter i hytt og vær Prim: Legger alltid til den noden som er nærmest treet

Kommentarer til Eksamen IM005 - V02

Kombinatorikk. MAT1030 Diskret Matematikk. Oppsummering av regneprinsipper

MAT1030 Diskret Matematikk

MAT1030 Forelesning 22

MA2401 Geometri Vår 2018

Løsningsforslag Øving 9 TMA4140 Diskret matematikk Høsten i for i = 0, 1, 2, 3, 4, og så er W 4 svaret

Fig1. Den konvekse innhyllinga av 100 tilfeldige punkter i planet (de samme som nyttes i oppgaven.)

INF Algoritmer og datastrukturer

MA2401 Geometri Vår 2018

UNIVERSITETET I OSLO. Det matematisk-naturvitenskapelige fakultet. INF1080 Logiske metoder for informatikk

Oppgaver MAT2500 høst 2011

Plangeometri Romgeometri Høyere dimensjoner. Vinkler. Arne B. Sletsjøe. Universitetet i Oslo. Faglig-pedagogisk dag, 1.

Newtons interpolasjon og dividerte differanser

Platonske legemer i klasserommet

TMA4210 Numerisk løsning av part. diff.lign. med differansemetoder Vår 2005

Kul geometri - overflateareal og volum av kuler

To geometriske algoritmer, kap. 8.6

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

Øvingsforelesning 2 - TDT4120. Grafer og hashing. Benjamin Bjørnseth

MAT1030 Diskret Matematikk

MAT1030 Diskret Matematikk

GIB2 - Stikkord. Alexander Nossum I-IKT desember Kartografi 2

Løsningsforslag for eksamen i fag TDT4120 Algoritmer og datastrukturer Tirsdag 9. desember 2003, kl

Forelesning 4 torsdag den 28. august

Forelesning 29: Kompleksitetsteori

TMA4100 Matematikk 1, høst 2013

Algoritmeanalyse. (og litt om datastrukturer)

Oppsummering TMA4100. Kristian Seip. 26./28. november 2013

SIF8010 ALGORITMER OG DATASTRUKTURER

Binomialkoeffisienter

LO118D Forelesning 10 (DM)

Notat om Peanos aksiomer for MAT1140

Dagens plan: INF Algoritmer og datastrukturer. Grafer vi har sett allerede. Det første grafteoretiske problem: Broene i Königsberg

PG4200 Algoritmer og datastrukturer forelesning 10. Lars Sydnes 21. november 2014

Kjøretidsanalyse. Hogne Jørgensen

Ninety-nine bottles. Femte forelesning. I dagens forelesning: Mest matematiske verktøy. Først: Asymptotisk notasjon. Så: Rekurrensligninger.

INF Algoritmer og datastrukturer

Løsnings forslag i java In115, Våren 1998

UNIVERSITETET I OSLO

GRAFER. Hva er en graf? Det første grafteoretiske problem: Broene i Königsberg. Grafer vi har sett allerede

Rekursiv programmering

Tessellering og mangekanter:

Løsningsforslag for eksamen i fag SIF8010 Algoritmer og Datastrukturer Tirsdag 18. Desember 2000, kl

Kul geometri - overflateareal og volum av kuler

IN Algoritmer og datastrukturer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

PG4200 Algoritmer og datastrukturer Forelesning 3 Rekursjon Estimering

Løsningsforlag til eksamen i Diskret matematikk. 29. november 2017

Uke 12 inf2440 v2018. Eric Jul PSE-gruppa Ifi, UiO

INF Algoritmer og datastrukturer

Karakterer. Kapittel Homomorfier av grupper. 8.2 Representasjoner

Kapittel 10 fra læreboka Grafer

Notater til INF2220 Eksamen

Kompleksitetsteori reduksjoner

MA2401 Geometri Vår 2018

Litt topologi. Harald Hanche-Olsen

Eksamen MAT H Løsninger

TMA4105 Matematikk 2 Vår 2014

Definisjon: Et sortert tre

MAUMAT644 ALGEBRA vår 2016 Første samling Runar Ile

Algoritmer og datastrukturer Kapittel 2 - Delkapittel 2.1

INF1020 Algoritmer og datastrukturer GRAFER

Kommentarer til oppgavene

Eliminasjon av ubetsemthet

Oppsummering TMA4100. Kristian Seip. 16./17. november 2015

Dynamisk programmering Undervises av Stein Krogdahl

MAT Grublegruppen Uke 37

Eksamen i fag SIF8010 Algoritmer og Datastrukturer Tirsdag 18. Desember 2000, kl

Oppsummering TMA4100. Kristian Seip. 17./18. november 2014

Eksamen i TMA4180 Optimeringsteori Løsningsforslag.

Transkript:

Trianguleringer i planet. Preliminaries Notasjon og teminologi Graf-egenskaper med trianguleringer i planet Enkle trianguleringsalgoritmer 1

Punkter og domener. Vi starter med et sett punkter i planet P p i, i 1,,N p i x i,y i. og et domene i planet slik og randen tilfredstiller: P, er ett eller flere enkle lukka polygoner (ikke selvskjærende) Hjørnepunktene i er punkter i P er ofte den konvekse omhylningen til P, for eks. i Delaunay trianguleringer. Ω 2

Hva er en triangulering? Grovt sagt er en triangulering av punktene i P en T dekomponering av i trekanter P T i i1 som ikke overlapper hverandre, og slik at hjørnene i alle T i er punkter i P. Eksempler: 3

Notasjoner og (norske) uttrykk. V, V I, V B Sett av noder, indre noder og randnoder E, E I, E B Tilsvarende for sidekanter (eller kanter ) T Sett av trekanter V, E, T Antall noder, sidekanter og trekanter V I, V B E I, E B V i,e i,t i E i,j T i,j,k Antall indre noder og randnoder V V I V B Tilsvarende for sidekanter E E I E B Node, sidekant, trekant Sidekant mellom noder V i og V j Trekant med V i, V j og V k som noder Alltid definert mot klokka. T, P Triangulering (av P), T i i1 CT i,j,k Omskrivende sirkel til trekant T i,j,k Vi skiller mellom topologi og geometri: Topologi: Noder, sidekanter og trekanter. Geometri: Punkter, kurver, flatelapper 4

Gyldig triangulering 1. Ingen trekant T i,j,k i er degenerert, dvs. p i, p j, og p k er ikke kolineære. 2. IntT i,j,k IntT,, 3. Snittet T i,j,k T,, er en felles sidekant, en felles node eller. T 4. Unionen i1 T i, R 2 Regulær triangulering 5. Domenet (og er sammenhengende 6. (og ) har ingen hull 7. Hvis V i er en randnode i, så er det nøyaktig to randkanter som møtes i V i,dvs.v B E B. Gyldig, ikke regulær Regulær Ikke gyldig 5

Egenskaper ved trianguleringer. Vi kan se på trianguleringer som spesialtilfeller av grafer. Det er følgende samenheng mellom antall noder, kanter og trekanter. Lemma. For en regulær triangulering har vi: T 2V I V B 2 I E 3V I 2V B 3 II E I 3V I V B 3 III T E V 1. IV IV kalles Euler Polyhedron formelen, (eller Euler-Poincaré) 6

Bevis av I. Trivielt hvis T 1; daerv I 0 og V B 3. Induksjon: Anta T 2 og at en trekant T i fjernes fra slik at også er regulær. Vi har to tilfeller: 1. T i har kun en randkant i ; V I V I 1, ogv B V B 1. Anta at I holder for : T T 1 2V I V B 2 1 2V I 1 V B 1 2 1 2V I V B 2. 2. T i har to randkanter i ; V I V I, ogv B V B 1 Anta at I holder for : T T 1 2V I V B 2 1 2V I V B 1 2 1 2V I V B 2. (Bevis av II og III er øvinger.) 7

Bevis av IV. (IV) følger ved å kombinere (I), (II) og V V I V B : T 2V I V B 2 3V I 2V B 3 V I V B 1 E V 1. Nyttige observasjoner: Antall sidekanter og trekanter avhenger av randen Hvis vi setter inn en indre node økes T med2oge med 3. 8

Nedre og øvre grenser for T og E uttrykt i antall noder i. Lemma. For en regulær triangulering har vi: V 2 T 2V 5 2V 3 E 3V 6. Bevis. Vi bruker følgende: I og II V V I V B V B 3 V B V T 2V I V B 2 2V I V B V B 2 2V V B 2 E 3V I 2V B 3 3V I V B V B 3 3V V B 3 og resultatene følger. 9

Definisjon. Graden til en node V i, degv i,ien triangulering er antall sidekanter som møtes i V i. (degree or valency). Lemma (Grad-sum). For en triangulering (regulær eller ikke) har vi V i1 degv i 2E. Bevis. Trivielt; i en gyldig triangulering bidrar hver sidekant med 2 til grad-summen. Når V er stor og er den konvekse omhylningen til P, vil vi ha at V V B. Da får vi følgene nyttige uttrykk for gjennomsnittlig grad-sum (average valence). V i1 degv i 2E 23V I 2V B 3 6V 2V B 6 6V 10

Under de samme betingelsene, V V B,fårvifor antall trekanter og antall sidekanter: T 2V I V B 2 2V V B 2 2V E 3V I 2V B 3 3V V B 3 3V Estimatene over er nyttige når vi skal estimere: CPU-tid for algoritmer, spesielt traversering lagringsbehov for datastrukturer. Ellers, ved allokering av minne. 11

Enkel trianguleringsalgoritme 1. Gitt randen til som et lukka polygon. 2. Triangulerer settet av randnoder V B 3. Setter inn indre punkter (noder) 4. Setter inn predefinerte sidekanter Definisjon. Et punkt p i i et enkelt lukka polygon P p 1,p N kalles fremskutt (protruding) dersom 1. Den indre vinkelen ved p i i trekanten T i1,i,i1 er mindre enn. (Konvensjon: p N1 p 1 ) 2. Trekanten T i1,i,i1 inneholder ingen punkter fra P utenom p i1, p i,ogp i1. Det kan vises at et hvert lukka polygon har minst to fremskutte punkt. 12

(a) T i-1,i,i+1 (b) p i+1 p i 1 p i-1 (c) (d) 3 2 1 2 1 (e) 4 3 (f) 4 3 2 1 5 2 1 8 7 6 13

Algoritme I Triangulering av et enkelt lukka polygon P. 1. Finn et fremskutt punkt p i i P p 1,,p N ; figur (a) 2. Lag en sidekant E i1,i1 av punktene p i1 og p i1 og lag trekanten T i1,i,i1. La P p 1,,p N \ p i være det nye polygonet med N 1 punkter; figur (b) 3. If N 3, dvs. hvis P er en enkelt trekant STOP; figur (f) 4. GOTO 1. 14

Algoritme II Innsetting av et punkt p i i en triangulering. 1. Lokaliser en trekant T i ; p i T i 2. If p i IntT i erstatt T i med tre nye trekanter: figur (a) else if p i IntE i ; E i er en kant i T i erstatt T i og naboen til T i med fire trekanter; figur (b). (a) (b) p i p i E i T i T i 15

Algoritme I, og Algoritme II for alle p i, giren regulær triangulering i følge definisjonen over. Observasjon Antall trekanter og sidekanter økes med 2 og 3 for hvert punkt som settes inn med Algoritme II; jfr. ligning I og II. 16

Triangulering med føringer (Constrained triangulation) Med føringer menes predefinerte sidekanter som skal være med i. Anvendleser: Representasjon av elver, veier og geologiske forkastninger i terrengmodeller. Representasjon av features i DAK-modeller. Predefinerte kanter stiller krav til datastrukturer og algoritmer som må håndtere disse til lavest mulig kostnad. Teorien for Delaunay-trianguleringer er utvidet til å håndtere føringer. 17

Algoritme III. Innsetting av en predefinert sidekant (constrained edge) Gitt en predefinert sidekan E i,j.antaat endepunktene p i og p j er satt inn i med Algoritme II. 1. For alle T i i, If IntT i E ij, fjern T i fra Vi får en eller flere regioner R i på hver side av E i,j innenfor enkle lukka polygoner. (Mer enn en hvis E i,j skjærer kanter i endepunkter.) 2. Trianguler hver region R i med Algoritme I. 18

(a) E i,j p j p i (b) E i,j p j p i Innsetting av E i,j. 19

Algoritmer: Observasjoner Siden antall noder V B på randen er konstant, har vi full kontroll over antall trekanter T og antall sidekanter, E og E I i henhold til ligningene I IV. Passende datastrukturer/topologistrukturer med naboskapsinformasjon er nødvendig for å unngå worst case CPU-tid ON 2, for eks. ved lokaliserng av en trekant T i i slik at p i T i. P er ikke entydig; for eks., i Algoritme I avhenger av hvilken rekkefølge fremskutte punkter behandles. Vi skal senere se på en spesiell type triangulering, Delaunay, som er (nesten) entydig. 20

Swapping/Flipping/(Exchange) Swapping er en viktig operasjon på sidekanter i en triangulering. V 2 V 3 E 2,4 E 3,1 V 4 V 1 T 1,2,3, T 1,3,4 T 1,2,4,T 2,3,4 21

Swapping... Kan kun utføres på sidekanter som er diagonaler i strengt konvekse quadrilateraler. Men kan repeteres - det kan vises at: alle mulige trianguleringer av P kan nås via en sekvens av swaps. (Det er et endelig antall trianguleringer av P). Mange trianguleringsalgoritmer er basert på swapping. Kan benyttes for å optimere trianguleringer. Swapping kan gjøres etter ulike kriterier. Hvis vi bruker Delaunay kriterier vil vi til slutt få en Delaunay triangulering som er (nesten) entydig. 22

Swapping: Eksempel Triangulering før a og etter b swapping av to sidekanter. (a) (b) Observasjon: a har flere smale trekanter enn b Smale trekanter kan gi numeriske problemer i (geometriske) algoritmer. 23