INF-MAT5370. Grafer og datastrukturer
|
|
|
- Irene Holmen
- 9 år siden
- Visninger:
Transkript
1 INF-MAT5370 Grafer og datastrukturer Øyvind Hjelle Simula Research Laboratory, August 3, 2009
2 Innhold Kort om grafer Topologiske operatorer og operasjoner, G-maps Presentasjon og analyse av forskjellige datastrukturer Kort om objekt-orientert implementasjon
3 Grafer Definisjon En graf G(V,E) består av et sett noder V og et sett kanter E som forbinder to og to noder i V. (a) (b) Grafer har i utgangspunktet ingen geometrisk informasjon. I forbindelse med trianguleringer snakker vi om embedded graphs, dvs. vi assosierer geometri til de topologiske elementene noder og kanter.
4 Topologi og geometri Vi prøver å skille mellom topologi og geometri: Topologi: Noder Kanter Trekanter Geometri: punkter kurver (linjer) flatelapper
5 Grafer og trianguleringer Trianguleringer kan sees på som spesialtilfeller av grafer: Hver trekant er implisitt gitt som en cycle av tre kanter (og tre noder). G (V,E) er planar. Definisjon En graf G(V,E) kalles planar dersom den kan tegnes i planet slik at en hver kant e i,j = (v i,v j ) ikke skjærer G utenom i v i og v j. Grafen i figur (a) er opplagt planar. Det kan vises at grafen i figur (b) ikke er planar.
6 Grafer... Andre definisjoner: Rettet graf: Kantene e i,j har retninger, for eks., fra v i til v j Multigraf: Det kan være mer enn en kant mellom to noder v i og v j. Ellers kalles grafen en enkel graf. Noen datastrukturer for trianguleringer er basert på halv-kanter (half-edges) der hver sidekant er to topologiske elementer som peker i hver sin retning; altså en Planar rettet multigraf. Ved å se på trianguleringer som grafer kan vi nyttegjøre oss av grafteortiske konsepter og graf-algoritmer.
7 Elementære topologiske operasjoner Med topologiske operasjoner på en triangulering menes operasjoner som ikke bruker geometrisk informasjon (embedding). Konseptuelt har vi to typer: I. Operasjoner som endrer topologien i. II. Operasjoner for å traversere (I) kan bestå av operatorer som: bevarer antall topologiske elementer, V, E og T, for eks. swapping, 2 fjerner topologiske elementer, 3 legger til topologiske elementer. Vi skal se nærmere på operatorer av typen II.
8 G-maps (generalized maps) G-maps muliggjør en algebraisk beskrivelse av topologien i B-rep strukturer (B-rep= Boundary Representation ). G-maps er basert på noen få enkle konsepter, og gir oss et kraftig verktøy til å implementere interfacer til datastrukturer. Vi skal bruke konsepter fra G-maps til å lage traverserings-operatorer (iteratorer) på trianguleringer. TTL (Triangulation Template Library), til bruk i øvinger, er basert på G-maps.
9 G-maps... Definisjon En dart i en triangulering er et entydig trippel d = (v i,e j,t k ) der v i er en av nodene i kanten e j, og e j er en sidekant i trekanten t k. Topologien i en triangulering består dermed av et entydig sett D av darts. e j t k v i d=(v i,e j,t k )
10 α-iteratorer (involusjoner) Vi definerer tre entydige funksjoner α 0, α og α 2 som opererer på settet D av darts. α i : D D, i = 0,,2 (dvs.α i (d) = d ) α i, i = 0,,2 er en-til-en avbildninger og bijektive, dvs. α i (α i (d)) = d. Initial dart Result of α 0 Result of α Result of α 2
11 α-iteratorer... Initial dart Result of α 0 Result of α Result of α 2 node edge triangle α 0 (switch nodes) fixed fixed α (switch edges) fixed fixed α 2 (switch triangles) fixed fixed
12 G-maps... flere definisjoner Fix point: Dersom e j i en dart d = (v i,e j,t k ) er på randen Ω av en triangulering, definerer vi d til å være uendret under α 2 : α 2 (d) = d. Komposisjon: En komposisjon α i (α j (d)) skrives α i α j (d) En triangulering kan nå representeres som en graf G (D,α 0,α,α 2 ) som vi kaller en G-map.
13 Orbits d d d α,α 2 ( d ) α,α ( d ) α,α ( d ) orbit -orbit 2-orbit Definisjon (k-orbit, k = 0,, 2) La {α i } være en, to eller alle tre α -iteratorer til en G-map G(D,α 0,α,α 2 ), og la d D. En orbit {α i } (d) av d er settet av alle darts i D som kan nås med komposisjoner av {α i } (i vilkårlig rekkefølge) ved å starte fra d. α i,α j, i,j k, i j (d) kalles k-orbit til d.
14 Egenskaper ved α-iteratorer Hvis en komposisjon α i α j utføres gjentatte ganger har vi: orbits... α 0 α itererer over noder og kanter i en trekant (2-orbit) α α 2 itererer rundt en node (0-orbit) α 0 α 2 iterer rundt en sidekant (-orbit) Hvis vi bytter α i α j med α j α i itereres det i motsatt retning. Alle d D i en regulær triangulering kan nås med komposisjoner av α i, i = 0,,2 α i (d), i = 0,,2 bytter klokke-retning på d unntatt for et fix point, dvs. for α 2 (d) når d er på randen.
15 egenskaper... I tillegg har vi og α i α i (d) = d, i = 0,,2 (α 0 α 2 (d)) 2 = α 0 α 2 α 0 α 2 (d) = d. e j t k v i d=(v i,e j,t k )
16 Dualen til en G-map er en merket graf: Dualen til G(D,α 0,α,α 2 ): En node svarer til en dart En graf-kant merket i svarer til α i (d). Grafen er regulær av grad 3.
17 n-g-maps... G-maps kan generaliseres til n dimensjoner; n-g-map Eksempel: tetrahedrisering, n = 3; 3-G-map: d = (node, edge, triangle, tetrahedron) α-iteratorer: α i, i = 0,,2,3. node edge triangle tetrahedron α 0 fixed fixed fixed α fixed fixed fixed α 2 fixed fixed fixed α 3 fixed fixed fixed
18 Datastrukturer for trianguleringer Valg av datastruktur er avhengig av applikasjonen. Generelt; trade-off mellom hastighet av å utføre topologiske operasjoner, dvs. α 0, α, α 2, og 2 lagringsbehov (i RAM eller database). Eksempel: Visualisering: Må ha tilstrekkelig naboskapsrelasjon for å ekstrahere trekant-striper raskt. Lagring på database: Trenger en datastruktur som tar liten plass. I mange applikasjoner trengs flere datastrukturer; og verktøy for å mappe mellom dem.
19 Eksempel-triangulering
20 recall... Fra preliminaries : T 2 V, E 3 V, V deg(v i ) 6 V i= (når V >> V B.) T = 2 V I + V B 2 T 2 V 5 E 3 V 6 V 3 V B 3
21 Lagring av geometrisk informasjon Hvis en triangulering representerer en terrengmodell, er den oftest stykkevis lineær; og kun nodene, {(x i,y i,z i )}, må lagres: 3 V 8 (bytes pr. double) = 24 V bytes (For glatte Bernstein-Bezier flater kan det være aktuelt å lagre mange koeffisienter i tillegg.)
22 Minimal trekant-basert datastruktur Kun en liste med trekanter uten topologisk informasjon: Triangle # : 2: 3: 4: 5: 6: Triangle i j k
23 Lagringsbehov for pekere : La N P være antall pekere. Bruker T 2 V 5, og T 2 V. N P = 3 T 6 V 5 og N P 6 V.
24 minimal trekantbasert... Hvis hver peker krever 4 bytes, må det lagres 4N P 24 V bytes, dvs. det samme som for geometrien ((x i,y i,z i )-koordinatene til nodene). Kompakt lagring Ingen naboskapsinformasjon α 2 er en O(N) operasjon. Brukes for lagring i database?
25 Trekant-basert med naboer Lagrer også nabotrekanter (mot klokka). k t k,i t j,k t i,j,k i t i,j j Triangle # : 2: 3: 4: 5: 6: Triangle i j k neighbours t j,k t k,i t i,j
26 trekantbasert med naboer... Lagringsbehovet for pekere er det doble av den minimale strukturen: N P 2 V 30 and N P 2 V
27 α 0, α og α 2 er O(). 4 α 0 ( d) d α ( d 2 ) α ( d) 6 d = (v 6,e 6,7,t 7,,6 ) α 0 (d) = (v 7,e 6,7,t 7,,6 ). α (d) = (v 6,e,6,t 7,,6 ). α 2 (d) = (v 6,e 7,6,t 7,6,4 ).
28 Node-basert med naboer Pseudo node 6
29 node-basert med naboer... Vertex # Adjaceny (ADJ) End (END)
30 lagringsbehov: N ADJ = V deg(v i ) + V B, inkludert pseudonoder, og i= N END = V. N ADJ = 2 E + V B = 2(3 V V B 3) + V B = 6 V 2 V B 6 + V B = 6 V V B 6 (Recall: E = 3 V V B 3)
31 lagringsbehov... N P = N ADJ + N END = (6 V V B 6) + V = 7 V V B 6 7 V 9 7 V når V >> V B. Dette er betydelig mindre enn for trekant-basert (N P 2 V ), men vi har ingen liste av trekanter. Med trekanter: N P 3 V. (pluss 2 3 V ) α 0, α og α 2 er O() og (muligens) raskere enn trekant-basert.
32 Halv-kant (half-edge) datastruktur Hver sidekant splittes i to rettede halv-kanter orientert i hver sin retning. (a) En halv-kant hører kun til en trekant og er orientert mot klokka. Hver halv-kant har tre pekere i) Node, ii) NextEdge, iii) TwinEdge (b) 7 6 4
33 Half- Edge # : 2: 3: 4: 5: 6: 7: 8: 9: 0: : 2: 3: 4:... Vertex Half-edge pointers Next edge Twin-edge
34 Lagringsbehov: N V : antall nodepekere N Eh : antall halv-kant pekere Totalt: N P = N V + N Eh 8 V. Hvis vi også skal ha trekanter må vi lagre 2 V pekere i tillegg, dvs. totalt: N P 20 V. Krever mer minne enn de andre strukturene, men α 0, α og α 2 er (mye) raskere.
35 Dart-basert datastruktur Lar dart en være det eneste topologiske elementet i datastrukturen. (a) (b) α α α 0 6 Dette konseptet brukes bl.a. i 3D geologisk modellering, for eks. i gocad. Kan brukes for små modeller.
36 (a) (b) Dart d : 2: 3: 4: 5: 6: 7: 8: 9: 0: : α 2 6 α 3 α 0 Dart pointers Vertex α 0 (d) α (d) α 2 (d)
37 dart-basert... lagringsbehov: 6 darts for hver trekant bruker T 2 V 5 og T 2 V N P 48 V 20 og N P 48 V. Hvis en liste av trekanter også lagres (hver trekant som en leading dart ), får vi i tillegg 2 V pekerfelter; dvs. totalt N P 50 V. ca. tre ganger lagringsbehovet for halv-kant strukturen!!! Men, rask: ingen beregninger eller sammenligninger for å utføre α 0, α og α 2. Konklusjon: uakseptabelt for store datamengder.
38 Sammendrag, datastrukturer Trade-off mellom lagringsbehov og hastighet: Struktur Lagring Effektivitet Minimal trekant-basert N P 6 V α 2 = O(N) Node-basert med naboer N P 7 V god Trekant-basert med nab. N P 2 V god+ Halv-kant (Half-Edge) N P 8 V god++ Dart-basert N P 48 V O(0)
39 Objekt-orientert design Eksempel med halv-kant (half-edge) struktur: Klasser: Node, HalfEdge, Triangle, Triangulation. (twin edge) Node 0 Half-Edge Triangle N Tiangulation (next in triangle) Klassediagram
40 Implementasjon class Triangle kan implementeres som en peker til en av halv-kantene. class Triangulation kan implementeres som std::list<triangle>. Typiske medlemsfunksjoner: HalfEdge::getNextHalfEdge: α α 0 (d) HalfEdge::getTwinEdge: α 0 α 2 (d)
INF-MAT5370. Trianguleringer i planet (Preliminaries)
INF-MAT5370 Trianguleringer i planet (Preliminaries) Øyvind Hjelle [email protected], +47 67 82 82 75 Simula Research Laboratory, www.simula.no August 23, 2009 Innhold Notasjon og terminologi Graf-egenskaper
Trianguleringer i planet.
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
Trianguleringer og anvendelser
INF-MAT5370 Trianguleringer og anvendelser Fra seilflysimulatoren Silent Wings Bakgrunn for kurset: Kurset ble til til mens vi vi (foreleserne) arbeidet med oppdrag for industrien på SINTEF. Samtlige deler
Algoritmer for Delaunay-triangulering
Algoritmer for Delaunay-triangulering Øyvind Hjelle [email protected], +47 67 82 82 75 Simula Research Laboratory, www.simula.no September 21, 2009 Innhold Algoritmer 1 En enkel algoritme 2 Radial Sweep
INF-MAT5370. Delaunay-trianguleringer og Voronoi-diagram
INF-MAT5370 Delaunay-trianguleringer og Voronoi-diagram Øyvind Hjelle [email protected], +47 67 82 82 75 Simula Research Laboratory, www.simula.no September 7, 2009 Innhold Klassisk teori Optimale trianguleringer
UNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF330 Metoder i grafisk databehandling og diskret geometri Eksamensdag: 3. desember 010 Tid for eksamen: 14.30 18.30 Oppgavesettet
Visualisering av trianguleringer og trianguleringsprosesser. Hovedfagsoppgave. Per-Idar Evensen
UNIVERSITETET I OSLO Institutt for informatikk Visualisering av trianguleringer og trianguleringsprosesser Hovedfagsoppgave Per-Idar Evensen ([email protected]) November 2004 2 Forord Denne hovedfagsrapporten
IN Algoritmer og datastrukturer
IN010 - Algoritmer og datastrukturer HØSTEN 018 Institutt for informatikk, Universitetet i Oslo Forelesning 6: Grafer III Ingrid Chieh Yu (Ifi, UiO) IN010 0.10.018 1 / 0 Dagens plan: Dybde-først søk Biconnectivity
INF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer HØSTEN 2016 Institutt for informatikk, Universitetet i Oslo Forelesning 6: Grafer II Ingrid Chieh Yu (Ifi, UiO) INF2220 28.09.2016 1 / 30 Dagens plan: Dijkstra fort.
Data-avhengige trianguleringer
Data-avhengige trianguleringer Øyvind Hjelle [email protected], +47 67 82 82 75 Simula Research Laboratory, www.simula.no October 5, 2009 Definition (Data-avhengig triangulering) En triangulering (P),
INF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 6: Grafer Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 1 / 31 Dagens plan:
Grunnleggende Grafteori
Grunnleggende Grafteori 2. September, 2019 Institutt for Informatikk 1 Dagens plan Terminologi og definisjoner Hvordan representere grafer i datamaskinen Traversering Dybde-først-søk Bredde-først-søk Topologisk
PG4200 Algoritmer og datastrukturer Forelesning 5 Implementasjon av lister
PG4200 Algoritmer og datastrukturer Forelesning 5 Implementasjon av lister Lars Sydnes, NITH 5. februar 2014 I. Implementasjoner Tabell-implementasjon av Stakk Tabellen er den lettest tilgjengelige datastrukturen
Dagens plan: INF Algoritmer og datastrukturer. Grafer vi har sett allerede. Det første grafteoretiske problem: Broene i Königsberg
Dagens plan: INF2220 - Algoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 6: Grafer Definisjon av en graf Grafvarianter Intern representasjon
INF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer HØSTEN 2016 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 5: Grafer I Ingrid Chieh Yu (Ifi, UiO) INF2220 H2016, forelesning 5 1 / 49
Liste som abstrakt konsept/datatype
Lister Liste som abstrakt konsept/datatype Listen er en lineær struktur (men kan allikevel implementeres ikke-lineært bak kulissene ) Hvert element har en forgjenger, unntatt første element i listen Hvert
Innhold. Innledning 1
Innhold Innledning 1 1 Kompleksitetsanalyse 7 1.1 Innledning.............................. 8 1.2 Hva vi beregner........................... 8 1.2.1 Enkle operasjoner...................... 8 1.2.2 Kompleksitet........................
Innhold uke 10. Objektorientert programmering i Python. Oblig 7 og 8. IN1000 Seminar! IN1000 Høst 2018 uke 10 Siri Moe Jensen
Innhold uke 10 Hva bruker vi klasser til? Objektorientert programmering i Python IN1000 Høst 2018 uke 10 Siri Moe Jensen Noen sentrale datastrukturer for programmering lenkede lister trær grafer Eksempler:
PG4200 Algoritmer og datastrukturer Forelesning 10
PG4200 Algoritmer og datastrukturer Forelesning 10 Lars Sydnes, NITH 9. april 2014 NOE Å STUSSE PÅ? Quadratic probing i Hash-tabell: ( ) 2 i + 1 p = p + ( 1) i+1 2 Underforstått forutsetning: Heltallsaritmetikk
Pensum: fra boken (H-03)+ forelesninger
Pensum: fra boken (H-03)+ forelesninger unntatt kursorisk tema KAP. 1 KAP. 2 KAP. 3 JAVA I-110 (ikke gjennomgått) OO + ABSTRAKSJON /GENERISK PROGRAMMERING REKURSJON ALGORITME-TIDSANALYSE; O-NOTASJON KAP.
Hva er en liste? Hvert element har en forgjenger, unntatt første element i listen. Hvert element har en etterfølger, unntatt siste element i listen
Lister Hva er en liste? Listen er en lineær datastruktur Hvert element har en forgjenger, unntatt første element i listen Hvert element har en etterfølger, unntatt siste element i listen I motsetning til
Kap 9 Tre Sist oppdatert 15.03
Kap 9 Tre Sist oppdatert 15.03 Definere et tre som en datastruktur. Definere begreper knyttet til tre. Diskutere mulige implementasjoner av tre Analysere implementasjoner av tre som samlinger. Diskutere
INF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer HØSTEN 2017 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 5: Grafer I Ingrid Chieh Yu (Ifi, UiO) INF2220 H2017, forelesning 5 1 / 53
Hva er en liste? Hvert element har en forgjenger, unntatt første element i listen. Hvert element har en etterfølger, unntatt siste element i listen
Lister Hva er en liste? Listen er en lineær datastruktur Hvert element har en forgjenger, unntatt første element i listen Hvert element har en etterfølger, unntatt siste element i listen I motsetning til
Et eksempel: Åtterspillet
Trær Et eksempel: Åtterspillet To spillere som «trekker» annenhver gang I hvert trekk velges et av tallene 1, 2, 3, men ikke tallet som motspiller valgte i forrige trekk Valgte tall summeres fortløpende
INF Algoritmer og datastrukturer
INF0 - Algoritmer og datastrukturer HØSTEN 05 Institutt for informatikk, Universitetet i Oslo Forelesning 6: Grafer II Ingrid Chieh Yu (Ifi, UiO) INF0.09.05 / 8 Dagens plan: Minimale spenntrær Prim Kruskal
INF Algoritmer og datastrukturer
IN2220 - lgoritmer og datastrukturer HØSTN 2016 Institutt for informatikk, Universitetet i Oslo orelesning 7: rafer III Ingrid hieh Yu (Ifi, UiO) IN2220 05.10.2016 1 / 28 agens plan: evis for Prim ybde-først
INF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 13: Dynamisk programmering (Ifi, UiO) INF2220 H2017, forelesning 13 1 / 30 Dagens plan Dynamisk
INF Triangulering. Med sterk støtte fra Petter Kristiansen. Skal først se på et eksempel fra Google Earth
INF 4130 17. november 2011 Triangulering Stein Krogdahl Med sterk støtte fra Petter Kristiansen Skal først se på et eksempel fra Google Earth De bruker en underliggende triangulering av landskapet, men
INF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer HØSTEN 2015 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 5: Grafer I Ingrid Chieh Yu (Ifi, UiO) INF2220 H2015, forelesning 5 1 / 55
INF1020 Algoritmer og datastrukturer GRAFER
GRAFER Dagens plan: Minimale spenntrær Prim Kapittel 9.5.1 Kruskal Kapittel 9.5.2 Dybde-først søk Kapittel 9.6.1 Løkkeleting Dobbeltsammenhengende grafer Kapittel 9.6.2 Å finne ledd-noder articulation
Anvendelser av grafer
Grafer Anvendelser av grafer Brukes for datasett med ikke-lineære og ikkehierarkiske forbindelser mellom dataobjektene Forbindelsene i en graf er ofte usystematiske Typisk anvendelser er modellering av
Notat med oppgaver for MAT1140
Notat med oppgaver for MAT1140 1 Injeksjon, surjeksjon Oppgave 1.1. La f : A B være en avbildning. Vis at da er f injektiv hvis og bare hvis følgende holder: for hver mengde C og for hver g, h : C A hvis
Vi skal se på grafalgoritmer for:
Grafalgoritmer Vi skal se på grafalgoritmer for: Traversering: Oppsøk alle nodene i grafen en og bare en gang, på en eller annen systematisk måte Nåbarhet: Finnes det en vei fra en node til en annen node?
Romlig datamanipulering
Romlig datamanipulering Gunnar Tenge, 18.04.08 Romlige manipuleringsteknikker brukes i GIS-analyser. I denne artikkelen forklares alle manipuleringsteknikker som man kan forvente å finne i et GIS-program.
A study of different matching heuristics. Hovedfagspresentasjon Jan Kasper Martinsen
A study of different matching heuristics Hovedfagspresentasjon Jan Kasper Martinsen ([email protected]) Terminologi: Graf teori En graf består av et sett med noder Nodene er tilknyttet hverandre ved hjelp
Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først
Køer Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først Et nytt element legges alltid til sist i køen Skal vi ta ut et element, tar vi alltid
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.
Notat 3 for MAT1140 3 Mengder 3.1 Mengder definert ved en egenskap Det matematiske begrepet mengde har sin opprinnelse i vår intuisjon om samlinger. Objekter kan samles sammen til et nytt objekt kalt mengde.
Fra Kap.10 Binære søketre (BS-tre) Sist oppdatert 20.03.10 Definere en abstrakt datastruktur binært søketre. Vise hvordan binær søketre kan brukes
Fra Kap.10 Binære søketre (BS-tre) Sist oppdatert 20.03.10 Definere en abstrakt datastruktur binært søketre. Vise hvordan binær søketre kan brukes til å løse problemer. Undersøke ulike implementasjoner
Definisjon. I et binært tre har hver node enten 0, 1 eller 2 barn
Binære trær Definisjon I et binært tre har hver node enten 0, 1 eller 2 barn Rekursiv definisjon: Et binært tre er enten tomt, eller: Består av en rotnode og to binære trær som kalles venstre subtre og
Binære søketrær. En ordnet datastruktur med raske oppslag. Sigmund Hansen
Binære søketrær En ordnet datastruktur med raske oppslag Sigmund Hansen Lister og trær Rekke (array): 1 2 3 4 Lenket liste (dobbelt-lenket): 1 2 3 4 Binært søketre: 3 1 4 2 Binære
Korteste vei i en vektet graf uten negative kanter
Dagens plan: IN - Algoritmer og datastrukturer HØSTEN 7 Institutt for informatikk, Universitetet i Oslo IN, forelesning 7: Grafer II Korteste vei, en-til-alle, for: Vektet rettet graf uten negative kanter
KORTESTE STI. Vektede Grafer. Korteste Sti. Dijkstra s Algoritme. Vektet Urettet Graf
Vektet Urettet Graf KORTESTE STI Finn: fra en Enkel Kilde til Alle Noder. (Engelsk: Single Source Shortest Path - SSSP) Vektede Grafer vekter på kanter representerer f.eks. avstand, kostnad, båndbredde...
Velkommen til webseminar. - Store modeller. Novapoint DCM. VIANOVA/Statens vegvesen. Solveig Fiskaa, 14.12.2015
Velkommen til webseminar Novapoint DCM - Store modeller VIANOVA/Statens vegvesen Solveig Fiskaa, 14.12.2015 Innhold Hvitbok Store modeller Hva gjør en modell stor? Tiltak Demo Egen modell for eksisterende
Dagens plan: INF Algoritmer og datastrukturer. Eksempel. Binære Relasjoner
Dagens plan: INF2220 - Algoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 10: Disjunkte Mengder Definisjon av binær relasjon Definisjon av ekvivalens
Det første grafteoretiske problem: Broene i Königsberg
Dagens plan: INF0 - Algoritmer og datastrukturer HØSTEN 007 Institutt for informatikk, Universitetet i Oslo INF0, forelesning 6: Grafer Denisjon av en graf (kap. 9.1) Grafvarianter Intern representasjon
Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først
Køer Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først Et nytt element legges alltid til sist i køen Skal vi ta ut et element, tar vi alltid
Kapittel 10 fra læreboka Grafer
Kapittel 10 fra læreboka Grafer (utdrag) En graf er en samling punkter (noder) og kanter mellom punktene (eng. nodes, vertex, edge). En graf kalles rettet hvis kantene har en retning og urettet hvis kantene
Lenkelister, iteratorer, indre klasser. Repetisjonskurs våren 2018 kristijb
Lenkelister, iteratorer, indre klasser Repetisjonskurs våren 2018 kristijb Lenket liste av objekter Vi lager en lenke ved at objekter refererer til hverandre. Vanlige er ofte å ha Node-objekter som har
MAT1140: Kort sammendrag av grafteorien
MAT1140, H-15 MAT1140: Kort sammendrag av grafteorien Dette notatet gir en kort oppsummering av grafteorien i MAT1140. Vekten er på den logiske oppbygningen, og jeg har utelatt all motivasjon og (nesten)
Flerveis søketrær og B-trær
Flerveis søketrær og B-trær Flerveis (multi-way, n-ært) søketre Generalisering av binært søketre Binært søketre: Hver node har maksimalt 2 barn og 1 nøkkelverdi. Barna ligger sortert på verdi i forhold
INF2220: Forelesning 1. Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel )
INF2220: Forelesning 1 Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel 4.1-4.3 + 4.6) PRAKTISK INFORMASJON 2 Praktisk informasjon Kursansvarlige Ragnhild Kobro Runde ([email protected])
Øvingsforelesning 2 - TDT4120. Grafer og hashing. Benjamin Bjørnseth
Øvingsforelesning 2 - TDT4120 Grafer og hashing Benjamin Bjørnseth Informasjon Studasser [email protected] Program Presentasjon av øving 2 Grafer og traverseringsalgoritmer BFS, DFS Hashing Gjennomgang
Eksamen i Geometrisk Modellering
Eksamen i Geometrisk Modellering STE6081 Sivilingeniørutdanningen ved Høgskolen i Narvik, Data/IT og Ingeniørdesign, 10.mars 2000 Til denne eksamenen er godkjente formelsamlinger samt alle typer kalkulatorer
Definisjon av binært søketre
Binære søketrær Definisjon av binært søketre For alle nodene i et binært søketre gjelder: Alle verdiene i nodens venstre subtre er mindre enn verdien i noden Alle verdiene i nodens høyre subtre er større
Grunnleggende Grafalgoritmer
Grunnleggende Grafalgoritmer Lars Vidar Magnusson 19.3.2014 Kapittel 22 Representere en graf Bredde-først søk Grafer i Informatikken Problem med grafer går ofte igjen i informatikkens verden, så det å
Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først
Køer Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først Et nytt element legges alltid til sist i køen Skal vi ta ut et element, tar vi alltid
Anvendelser av grafer
Grafer Anvendelser av grafer Passer for modeller/datastrukturer med usystematiske forbindelser Ikke-lineære og ikke-hierarkiske koblinger mellom dataobjektene Modellering av nettverk: Veisystemer/rutekart
Grunnleggende Grafalgoritmer II
Grunnleggende Grafalgoritmer II Lars Vidar Magnusson March 17, 2015 Kapittel 22 Dybde-først søk Topologisk sortering Relasjonen til backtracking Dybde-Først Søk Dybde-først søk i motsetning til et bredde-først
Sist gang (1) IT1101 Informatikk basisfag. Sist gang (2) Oppgave: Lenket liste (fysisk) Hva menes med konseptuelt og fysisk i forb med datastrukturer?
IT1101 Informatikk basisfag Plan de siste ukene: I dag: siste om datastruktuter (kap. 7) Mandag 17/11: dobbel forelesning om filstrukturer (kap. 8) Torsdag 20/11: øvingsforelesning med Inge Mandag 24/11:
Binære søketrær. Et notat for INF1010 Stein Michael Storleer 16. mai 2013
Binære søketrær Et notat for INF Stein Michael Storleer 6. mai 3 Dette notatet er nyskrevet og inneholder sikkert feil. Disse vil bli fortløpende rettet og datoen over blir oppdatert samtidig. Hvis du
Maps og Hashing. INF Algoritmer og datastrukturer. Map - ADT. Map vs Array
Maps og Hashing INF0 - Algoritmer og datastrukturer HØSTEN 00 Institutt for informatikk, Universitetet i Oslo INF0, forelesning : Maps og Hashing Map - Abstrakt Data Type (kapittel.) Hash-funksjoner (kapittel..)
IN Algoritmer og datastrukturer
IN00 - Algoritmer og datastrukturer HØSTEN 08 Institutt for informatikk, Universitetet i Oslo Forelesning 5: Grafer II Ingrid Chieh Yu (Ifi, UiO) IN00 8.09.08 / Dagens plan: Korteste vei en-til-alle vektet
Lineære ligningssystemer og gausseliminasjon
Kapittel Lineære ligningssystemer og gausseliminasjon Vi skal lære en metode for å finne og beskrive alle løsninger av systemer av m lineære ligninger med n ukjente Oppvarming Her er et eksempel på et
SIF8010 ALGORITMER OG DATASTRUKTURER
SIF8010 ALGORITMER OG DATASTRUKTURER KONTINUASJONSEKSAMEN, 1999; LØSNINGSFORSLAG Oppgave 1 (12%) Anta at du skal lage et støtteprogram som umiddelbart skal varsle om at et ord blir skrevet feil under inntasting
INF Algoritmer og datastrukturer. Hva er INF2220? Algoritmer og datastrukturer
Praktiske opplysninger INF2220 - Algoritmer og datastrukturer HØSTEN 2007 Institutt for informatikk, Universitetet i Oslo Tid og sted: Mandag kl. 12:15-14:00 Store auditorium, Informatikkbygningen Kursansvarlige
Heap* En heap er et komplett binært tre: En heap er også et monotont binært tre:
Heap Heap* En heap er et komplett binært tre: Alle nivåene i treet, unntatt (muligens) det nederste, er alltid helt fylt opp med noder Alle noder på nederste nivå ligger til venstre En heap er også et
Maps og Hashing. INF Algoritmer og datastrukturer. Map - ADT. Map vs Array
Maps og Hashing INF0 - Algoritmer og datastrukturer HØSTEN 00 Institutt for informatikk, Universitetet i Oslo INF0, forelesning : Maps og Hashing Map - Abstrakt Data Type Hash-funksjoner hashcode Kollisjonshåndtering
AlgDat 12. Forelesning 2. Gunnar Misund
AlgDat 12 Forelesning 2 Forrige forelesning Følg med på hiof.no/algdat, ikke minst beskjedsida! Algdat: Fundamentalt, klassisk, morsomt,...krevende :) Pensum: Forelesningene, oppgavene (pluss deler av
INF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 3: Maps og Hashing Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 3 1 / 25 Maps
EKSAMEN. GIS og kart
EKSAMEN 5708 GIS og kart 06.06.2017 Tid: 4 timer (9:00-13:00) Målform: Sidetall: Hjelpemiddel: Merknader: Vedlegg: Norsk 5 (inkludert denne) Sensuren finner du på StudentWeb. Bokmål Generelt: Oppgavesettet
EKSAMENSOPPGAVE. INF-1100 Innføring i programmering og datamaskiners virkemåte. Ingen. Elektronisk (WiseFlow) Robert Pettersen
Fakultet for naturvitenskap og teknologi EKSAMENSOPPGAVE Eksamen i: Dato: 20.02.2017 Klokkeslett: 09:00 13:00 INF-1100 Innføring i programmering og datamaskiners virkemåte Sted: Teorifagbygget, Hus 3,
GRAFER. Korteste vei i en vektet graf uten negative kanter. Korteste vei, en-til-alle, for: Minimale spenntrær
IN Algoritmer og datastrukturer GRAER IN Algoritmer og datastrukturer Dagens plan: orteste vei, en-til-alle, for: ektet rettet graf uten negative kanter (apittel 9..) (Dijkstras algoritme) ektet rettet
Enkle datastrukturer. Lars Greger Nordland Hagen. Introduksjon til øvingsopplegget og gjennomgang av python
1 Enkle datastrukturer Lars Greger Nordland Hagen [email protected] Introduksjon til øvingsopplegget og gjennomgang av python 2 I dag Stack Kø (queue) Lenkede lister (linked list) Trær Binære søketrær
Lars Vidar Magnusson
Binære Søketrær Lars Vidar Magnusson 14.2.2014 Kapittel 12 Binære Søketrær Søking Insetting Sletting Søketrær Søketrær er datastrukturer som støtter mange dynamiske sett operasjoner. Kan bli brukt både
MATEMATIKK. September
MATEMATIKK Periode Hovedområde Kompetansemål Innhold / metode August Tall og algebra Sette sammen og dele opp tiergrupper Gjenkjenne, samtale om og videreføre September strukturer i enkle tallmønstre Bruke
Lineære likningssystemer
Lineære likningssystemer Mange fysiske problemer kan formuleres som lineære likningssystemer i vektorrommet, 1/19 Lu = f Lineær: betyr at virkningen av L på u + v er L(u + v) = Lu + Lv, og skaleres som
Algoritmeanalyse. (og litt om datastrukturer)
Algoritmeanalyse (og litt om datastrukturer) Datastrukturer definisjon En datastruktur er den måten en samling data er organisert på. Datastrukturen kan være ordnet (sortert på en eller annen måte) eller
Programmeringsspråket C Del 3
Programmeringsspråket C Del 3 Michael Welzl E-mail: [email protected] 29.08.13 inf1060 1 Dynamisk allokering Ofte trenger man å opprette objekter under kjøringen i tillegg til variablene. Standardfunksjonen
INF2220: Time 12 - Sortering
INF0: Time 1 - Sortering Mathias Lohne mathialo Noen algoritmer Vi skal nå se på noen konkrete sorteringsalgoritmer. Gjennomgående i alle eksempler vil vi sortere tall etter tallverdi, men som diskutert
Søkeproblemet. Gitt en datastruktur med n elementer: Finnes et bestemt element (eller en bestemt verdi) x lagret i datastrukturen eller ikke?
Søking Søkeproblemet Gitt en datastruktur med n elementer: Finnes et bestemt element (eller en bestemt verdi) x lagret i datastrukturen eller ikke? Effektiviteten til søkealgoritmer avhenger av: Om datastrukturen
