Topologiske operatorer og operasjoner, G-maps. Presentasjon og analyse av datastrukturer. Kort om objekt-orientert implementasjon

Like dokumenter
INF-MAT5370. Grafer og datastrukturer

UNIVERSITETET I OSLO

Trianguleringer i planet.

INF-MAT5370. Trianguleringer i planet (Preliminaries)

DEFINISJON. (Data-avhengig triangulering) En triangulering AÂPÃ, P = ÆÂx i,y i,z i ÃÇ, der valg av sidekanter i A avhenger av funksjonsverdiene

Klassisk teori: Optimale trianguleringer og Delaunay-trianguleringer. Voronoi-diagram og Delaunay trianguleringer. Delaunay-trianguleringer:

Harald Bjørnestad: Variasjonsregning en enkel innføring.

MAT1030 Forelesning 26

Forelesning 26. MAT1030 Diskret Matematikk. Trær med rot. Litt repetisjon. Definisjon. Forelesning 26: Trær. Roger Antonsen

av Erik Bédos, Matematisk Institutt, UiO, 25. mai 2007.

(x 0,y 0,0) α. Oppgave 3. Ved tiden t har vi følgende situasjon: α = ω1t β = ω2t

E K S A M E N S O P P G A V E : FAG: FYS105 Fysikk LÆRER: Per Henrik Hogstad KANDIDATEN MÅ SELV KONTROLLERE AT OPPGAVESETTET ER FULLSTENDIG

FYS3220 Oppgaver om Fourieranalyse

Krefter og betinget bevegelser Arbeid og kinetisk energi

Bevegelse i én dimensjon (2)

Trafikktellinger mai 2013 i vegkrysset Nygårdsvikveien/ Johan Berentsens vei.

Repetisjon

UNIVERSITETET I OSLO. Det matematisk-naturvitenskapelige fakultet. Oppgave 1 OpenGL (vekt 1 5 )

Arbeid og kinetisk energi

Go to and use the code Hva var viktig i siste forelesning? FYS-MEK

Øving 1: Bevegelse. Vektorer. Enheter.

Eksamen R2, Hausten 2009

INF april 2017

Trianguleringer og anvendelser

Ut i tid og rom. Mål under entydighetsskranke? Uavhengige og avhengige variabler. Enda et eksempel kast med 2 terninger

Arbeid og kinetisk energi

Diskretisering av tidsavhengig endimensjonal varmelikning

Arbeid og kinetisk energi

Newtons lover i to og tre dimensjoner

Forelesning 25. Trær. Dag Normann april Beskjeder. Oppsummering. Oppsummering

INF-MAT5370. Delaunay-trianguleringer og Voronoi-diagram

Beskjeder. MAT1030 Diskret matematikk. Oppsummering. Oppsummering

IN Algoritmer og datastrukturer

1 Trigonometriske Funksjoner Vekt: 1. 2 Trigonometriske Funksjoner Vekt: 1

Styring av romfartøy STE6122

Betinget bevegelse neste uke: ingen forelesning (17. og 19.2) ingen data verksted (19. og 21.2) gruppetimer som vanlig

3. Beregning av Fourier-rekker.

x x x x konkurranser: Tester: x x x x x Ressurstrenings -periode 1

YF kapittel 3 Formler Løsninger til oppgavene i læreboka

Repetisjon Eksamensverksted i dag, kl , Entropia

Arbeid og kinetisk energi

Arbeid og potensiell energi

Betinget bevegelse

Sensorveiledning UNIVERSITETET I OSLO ØKONOMISK INSTITUTT. ECON 1310 Obligatorisk øvelsesoppgave våren 2012

INF 2310 Digital bildebehandling. Hva er segmentering? forelesning nr 11 12/ Segmentering av bilder. To segmenterings-kategorier

System 2000 HLK-Relais-Einsatz Bruksanvisning

Algoritmer for Delaunay-triangulering

Løsning: V = Ed og C = Q/V. Spenningen ved maksimalt elektrisk felt er

Sensorveiledning UNIVERSITETET I OSLO ØKONOMISK INSTITUTT. ECON 1310 Eksamensoppgave høsten 2011

Repetisjon: Om avsn og kap. 3 i Lay

Arbeid og potensiell energi

Et eksempel: Åtterspillet

Grunnleggende Grafalgoritmer

1. Betrakt følgende modell: Y = C + I + G C = c 0 + c(y T ), c 0 > 0, 0 < c < 1 T = t 0 + ty, 0 < t < 1

Grunnleggende Grafteori

Repetisjon

Betinget bevegelse

Newtons lover i to og tre dimensjoner

Newtons lover i to og tre dimensjoner

Skjulte Markov Modeller

Bevegelse i én dimensjon

Infoskriv ETØ-1/2016 Om beregning av inntektsrammer og kostnadsnorm for 2015

Forelesning nr.9 INF 1410

Repetisjon: om avsn og kap. 3 i Lay

8 Vektorer og kurver. Løsning til KONTROLLOPPGAVER OPPGAVE 1. t t ) Vi finner skjæringspunktet med y-aksen ved å sette x = 0.

Bakgrunn. En fonologisk analyse av et korpus på 200 tegn. Produksjonsansvarlig: Møller kompetansesenter (Statped) Trondheim

H Ø G S K O L E N I B E R G E N Avdeling for lærerutdanning

Obligatoriske oppgaver 2009

Eksamen i Geometrisk Modellering

Vi skal se på grafalgoritmer for:

Kort om ny reguleringskurvelogikk. Trond Reitan 19/8-2013

Håndbok for FarmSert

EKSAMENSOPPGAVE. Fagnr: SO 458 K Dato: Antall oppgaver:

Oppgaveverksted 3, ECON 1310, h14

, og dropper benevninger for enkelhets skyld: ( ) ( ) L = 432L L = L = 1750 m. = 0m/s, og a = 4.00 m/s.

Anvendelser av grafer

Grunnleggende Grafalgoritmer II

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.

Aliasing: Aliasfrekvensene. Forelesning 19.februar Nyquist-Shannons samplingsteorem

Spesiell relativitetsteori

Styringsteknikk. Kraner med karakter. ABUS kransystemer målrettet krankjøring. setter ting i bevegelse. Kransystemer. t t v. max.

FYSIKK-OLYMPIADEN

FAG: FYS117 Fysikk/Kjemi LÆRER: Fysikk : Per Henrik Hogstad Kjemi : Turid Knutsen

Arbeid og potensiell energi

Hashtabeller. Lars Vidar Magnusson Kapittel 11 Direkte adressering Hashtabeller Chaining Åpen-adressering

Fart. Eksempel: Gjennomsnittsfart

Notat med oppgaver for MAT1140

6. mai 2018 MAT Obligatorisk oppgave 2 av 2 - Løsningsforslag

FYS3140 KORT INTRODUKSJON TIL KONTINUERLIGE GRUPPER

HØGSKOLEN I SØR-TRØNDELAG Avdeling for teknologi

Løsningsforslag til eksempeloppgave 2 i fysikk 2, 2009

Øvingsforelesning 4. Topologisk sortering, Strongly Connected Components og Minimale spenntrær. Magnus Botnan

INF5490 RF MEMS. L10: RF MEMS resonatorer II. V2008, Oddvar Søråsen Institutt for informatikk, UiO

Eksempel på beregning av satser for tilskudd til driftskostnader etter 4

TFY4104 Fysikk Eksamen 18. desember 2013 Side 1 av 18

Bruksanvisning for NTNUs telefonsvar-tjeneste på web

INF Algoritmer og datastrukturer

t [0, t ]. Den er i bevegelse langs en bane. Med origo menes her nullpunktet

SAKSFRAMLEGG. Saksbehandler: Anne Marie Lobben Arkiv: 040 H40 Arkivsaksnr.: 12/422

Transkript:

Kor om grafer Topologiske operaorer og operasjoner, G-maps Presenasjon og analyse av daasrukurer Kor om objek-oriener implemenasjon

Grafer DEFINISJON. En graf GÂV, EÃ besår av e se noder V og e se kaner E som forbinder o og o noder i V. (a) (b) Grafer har i ugangspunke ingen geomerisk informasjon. I forbindelse med rianguleringer snakker vi om embedded graphs, dvs. vi assosierer geomeri il de opologiske elemenene noder og kaner. Topologi: Noder Kaner Trekaner Geomeri: punker kurver (linjer) flaelapper

Trianguleringer kan sees på som spesialilfeller av grafer:. Hver rekan er gi implisi gi som en cycle av re kaner (og re noder).. G A ÂV,Eà er planar. DEFINISJON. En graf GÂV, Eà kalles planar dersom den kan egnes i plane slik a en hver kan E i,j = ÂV i,v j à ikke skjærer G uenom i V i og V j. Grafen i figur (a) er opplag planar. De kan vises a grafen i figur (b) ikke er planar. 3

Grafer... Andre definisjoner Ree graf: Kanene E i,j har reninger, for eks., fra V i il V j Muligraf: De kan være mer enn en kan mellom o noder V i og V j. Ellers kalles grafen en enkel graf. Noen daasrukurer for rianguleringer er baser på halv-kaner (half-edges) der hver sidekan er o opologiske elemener som peker i hver sin rening; alså en Planar ree muligraf. Ved å se på rianguleringer som grafer kan vi nyegjøre oss av grafeoriske konseper og graf-algorimer.

Elemenære opologiske operasjoner Med opologiske operasjoner på en riangulering A menes operasjoner som ikke bruker geomerisk informasjon (embedding). Konsepuel er de o yper: I. Operasjoner som endrer opologien i A. II. Operasjoner for å raversere A (I) kan beså av operaorer som:. bevarer anall opologiske elemener, V, E og T, for eks. swapping,. fjerner opologiske elemener, 3. legger il opologiske elemener. Vi skal se nærmere på operaorer av ypen II. 5

G-maps (generalized maps) G-maps muliggjør en algebraisk beskrivelse av opologien i B-rep srukurer. (B-rep: boundary represenaion ). G-maps er baser på noen få enkle konseper, og gir oss e krafig verkøy il å implemenere inerfacer il daasrukurer. Vi skal bruke konseper fra G-maps il å lage raverserings-operaorer (ieraorer) på rianguleringer.

G-maps... DEFINISJON. En dar dar i en riangulering er e enydig rippel d = ÂV i,e j,t k à der V i er en av nodene i kanen E j, og E j er en sidekan i rekanen T k. Topologien i en riangulering besår dermed av e enydig se D av dars. Dar d

DEFINISJON (J-ieraorer, eller involusjoner). Vi definerer re enydige funksjoner J0, J and J som opererer på see D. Ji, i = Ji : D D, i = 0,,.,,3 er en-il-en avbildninger og bijekiv; J iâj iâdãã = d. Vi definerer J-ieraorene slik: Iniial dar Resul of α 0 Resul of α Resul of α Dar d og J-ieraorer node edge riangle J 0 (swich nodes) fixed fixed J (swich edges) fixed fixed J (swich riangles) fixed fixed 8

J-ieraorer... Dersom E i i en dar d i = ÂV i,e i,t i à er på randen I av en riangulering, definerer vi d i il å være uendre under J: JÂd i à = d i. ( fix poin ) En komposisjon JiÂJjÂdÃà skrives Ji E JjÂdà En riangulering A kan nå represeneres som en graf G A ÂD, J0, J, Jà som vi kaller en G-map. 9

Dualen il en G-map er en merke graf: 0 0 0 0 0 0 0 0 0 En node svarer il en dar En graf-kan merke i svarer il JiÂdà slik a d flyes over kanen. Grafen er regulær av grad 3. 0

Orbis d d d α ( d ) α ( d ) ( d ),α 0,α α 0,α 0-orbi -orbi -orbi DEFINISJON (k-orbi, k = 0,, ). La ÆJi Ç være en, o eller alle re J-ieraorer il en G-map GÂD, J0, J, JÃ, og la d 5 D. En orbi»æji ǼÂdà av d er see av alle dars i D som kan nås med komposisjoner av ÆJ i Ç (i vilkårlig rekkefølge) ved å sare fra d. Ji, Jj, i, j k, i j Âdà kalles k-orbi il d. Se figur.

Egenskaper ved J-ieraorer Alle d 5 D i en regulær riangulering kan nås med komposisjoner av Ji, i = 0,, JiÂdÃ, i = 0,, byer klokke-rening på d unna når d er på randen. Hvis en komposisjon J i E J j uføres gjenae ganger har vi: J0 E J iererer over noder og kaner i en rekan (-orbi) J E J iererer rund en node (0-orbi) J0 E J ierer rund en sidekan (-orbi) Hvis vi byer Ji E Jj med Jj E Ji iereres de i mosa rening. I illegg har vi Ji E JiÂdà = d, i = 0,,, og ÂJ0 E JÂdÃà = J0 E J E J0 E JÂdà = d.

n-g-maps... G-maps kan generaliseres il n dimensjoner; n-g-map Eksempel: erahedrisering, n = 3; 3-G-map: d = J-ieraorer: Ânode, edge, riangle, erahedronã Ji, i = 0,,,3 node edge riangle erahedron J 0 fixed fixed fixed J fixed fixed fixed J fixed fixed fixed J 3 fixed fixed fixed Merk a daasrukurer baser på dars vil a sor plass.; men vi kan bruke G-maps som (generisk) inerface il vikårlige daasrukurer. 3

Valg av daasrukur er avhengig av applikasjonen. Generel; rade-off mellom. hasighe av å uføre opologiske operasjoner, dvs. J0, J, J, og. lagringsbehov (i RAM eller daabase). Eksempel: Visualisering: Må ha ilsrekkelig naboskapsrelasjon for å eksrahere rekan-sriper rask. Lagring på daabase: Trenger en daasrukur som ar lien plass. I mange applikasjoner rengs flere daasrukurer; og verkøy for å mappe mellom dem.

3 3 5 A sample riangulaion 5 Fra preliminaries : T u V, E u 3V, > V i= degâv i à u V (når V >> V B ) T V? 5 E 3V? 5

Lagring av geomerisk informasjon Hvis en riangulering represenerer en errengmodell, er den ofes sykkevis lineær; og kun nodene, ÆÂx i,y i,z i ÃÇ, må lagres: 3 D V D 8 (byes pr. double) = V byes Generel, for Bernsein-Bezier flaer kan de være akuel å lagre (mange) koeffisiener i illegg. Dee behandles senere i kurse.

Minimal rekan-baser daasrukur Triangle # : : 3: : 5: : Triangle i j k 3 5 Lagringsbehov for opologisk informasjon: La N P være anall pekere. Bruker T T u V. N P N P u V. V? 5 and V? 5, og

Hvis hver peker krever byes, må de lagres N P u V byes, dvs. de samme som for geomerien (Âx i,y i,z i Ã-koordinaene il nodene). Kompak lagring Ingen naboskapsinformasjon J er en OÂNÃ operasjon. Brukes for lagring i daabase? 8

Trekan-baser med naboer Lagrer også naborekaner (mo klokka). k T k,i T j,k T i,j,k i T i,j j Triangle # : : 3: : 5: : Triangle i j k 3 5 neighbours T j,k T k,i T i,j - 3 - - 5 - - - Lagringsbehove er de doble av den minimale 9

srukuren: N P N P u V? 30 and V J0, J og J er OÂÃ. Eksempel: α ( d 0 ) d α ( d ) α ( d ) d = ÂV,E,,T,, à J0Âdà = ÂV,E,,T,, Ã. JÂdà = ÂV,E,,T,, Ã. JÂdà = ÂV,E,,T,, Ã. 0

Node-baser med naboer 5 5 - Pseudo node Verex # 3 5 Adjaceny ÂADJÃ 0 3 0 0 3 5 0 0 5 0 End ÂENDÃ 9 8 30

Lagringsbehov: N V ADJ = > i= og N END = V. degâv i à + V B, inkluder pseudonoder, N ADJ = E + V B = Â3V? V B? 3à + V B = V? V B? + V B = V? V B? V? 9 N P = N ADJ + N END, N P = når V >> V B. N ADJ + N END = V? V B? u V Dee er beydelig mindre enn for rekan-baser (N P u V), men vi har ingen lise av rekaner. Med rekaner: N P u 3V. (pluss u V D 3) J0, J og J er OÂà og raskere enn rekan-baser.

Halv-kan (half-edge) srukur Hver sidekan splies i o reede halv-kaner oriener i hver sin rening. (a) 9 3 3 8 5 3 8 0 5 5 (b) Half-edge daa srucure En halv-kan hører kun il en rekan og er oriener mo klokka. Hver halv-kan har re pekere i) Node, ii) NexEdge, iii) TwinEdge 3

Edge # : : 3: : 5: : : 8: 9: 0: : : 3: :... Verex 3... Half-edge poiners Nex edge Twin-edge - 3 8 5 3 8 9 - - 3 0 5 5 -......

Lagringsbehov: N V : anall nodepekere N Eh : anall halv-kan pekere Toal: N P = N V + N Eh u 8V. Hvis vi også skal ha rekaner må vi lagre V pekere i illegg, dvs. oal: N P u 0V. Krever mer memory enn de andre srukurene, men J0, J og J er (mye) raskere. 5

Dar-baser daasrukur Lar dar en være de enese opologiske elemene i daasrukuren. (a) 3 (b) 5 0 5 9 8 5 α 8 α 3 α 0 3 Dee konsepe brukes bl.a. i 3D geologisk modellering. Kan brukes for små daamengder.

(a) 3 (b) 5 0 5 9 8 5 8 α α 3 α 0 3 Dar d : : 3: : 5: : : 8: 9: 0: : : Dar poiners Verex J 0Âdà J Âdà J Âdà 3 3 5 5 8 8 3 9 0 8 5 9 0 3

Lagringsbehov: u dars for hver rekan bruker T V? 5 og T u V N P N P u 8V. 8V? 0 og Hvis en lise av dars også lagres, får vi i illegg D V = V pekerfeler; dvs. oal N P u 0V. ca. re ganger lagringsbehove for halv-kan srukuren!!!, men Rask: ingen beregninger eller sammenligninger for å uføre J0, J og J. Konklusjon: uaksepabel for sore daamengder. 8

Sammendrag Srukur Lagring Effekivie Minimal rekan-baser N P u V J = OÂNÃ Trekan-baser med naboer N P u V god Node-baser med naboer N P u V god+ Halv-kan (Half-Edge) N P u 8V god++ Dar-baser N P u 8V OÂ0Ã 9

Objek-oriener design Eksempel med halv-kan (half-edge) srukur: Klasser: Node, HalfEdge, Triangle, Triangulaion. (win edge) Node 0 Half-Edge Triangle N Tiangulaion (nex in riangle) Klassediagram class Triangle kan implemeneres som en peker il en av halv-kanene. class Triangulaion kan implemeneres som lis<triangle> Typiske medlemsfunksjoner: HalfEdge::geNexHalfEdge = J E J 0Âdà HalfEdge::geTwinEdge = J 0 E J Âdà 30