Algoritmer for Delaunay-triangulering

Størrelse: px
Begynne med side:

Download "Algoritmer for Delaunay-triangulering"

Transkript

1 Algoritmer for Delaunay-triangulering 1. En enkel algoritme 2. Radial Swee 3. Steg-for-steg 4. Inkrementelle algoritmer 5. Slitt-og-hersk Innsetting av unkter Punkt-lokalisering Tidsforbruk 1

2 Enkel LOP-basert algoritme Direkte resultat fra kaitlene foran; bruker: Algoritme I fra første del: Triangulering av et lukka olygon; bruker fremskutte unkt. Algoritme II; innsetting av et unkt i en triangulering. LOP (lokal otimerings-rosedyre) som swaer sidekanter etter Delaunay-kriterier til trianguleringen er Delaunay. Gitt et unktsett P. 1. Beregn Q ConvHullP. 2. Algoritme I å Q gir en triangulering. 3. Algoritme II for å sette inn alle unkter fra P innen for Q i gir en triangulering P. 4. LOP å sidekantene i helt til ingen sidekanter kan swaes gir: En triangulering P der alle sidekanter er lokalt otimale. I følge Teorem er Delaunay. 2

3 Kommentarer: ConvHullP kan beregnes i ONlog N. Ste4eravordenON 2 i verse fall. Krever en effektiv unktlokaliserings-algoritme i Ste 3. Algoritmen er ikke sesielt rask. Algoritmen kan være ustabil da vi ikke får swaet bort smale trekanter etter hvert. Hvordan kan vi få den mer stabil? 3

4 Radial Swee algoritme Bytter ut Ste 1,2,3 i enkel algoritme. (a) (b) (c) (d) 1. Velg et unkt nær senteret av P og lag sidekanter E,i N1 i1 ; figur (a) 2. Sorter og ordne P å retning og avstand fra og lag randkanter E B1 ; figur (b) triangulering P. 3. Lag trekanter T i1, i, i1 å randen av P og odater randen etter hvert. Reeter til ConvP er dekket av trekanter P; figur (c). 4. LOP å sidekantene i P helt til ingen sidekanter kan swaes; figur (d) En triangulering der alle sidekanter er lokalt otimale. I følge Teorem er P Delaunay 4

5 Kommentarer: Algoritmen er statisk, dvs. man må kjenne alle unktene når man starter algoritmen. SorteringeravordenONlog N Ste4avordenON 2 i verste fall. 5

6 Steg-for-steg algoritme Metoden går ut å å lage en og en Delaunay-trekant fra unkter i P til vi har en Delaunay-triang. P. Hvordan kan vi velge tre unkter i, j og k fra P slik at T i, j, k er en Delaunay-trekant? Fra forrige kaittel har vi: LEMMA (sirkel-lemma). Den omskrivende sirkel til en trekant i en Delaunay-triangulering av P omslutter ingen unkter fra P. Kan det finnes en trekant T i, j, k slik at CT i, j, k ikke omslutter unkter fra P, men som likevel ikke er Delaunay? TEOREM. En trekant T a,b,c med hjørneunkter a, b og c fra et unktsett P er en Delaunay-trekant i P (hvis og bare hvis) CT a,b,c omslutter ingen unkter fra P. 6

7 b α T ba c T abc E b α C(T abc ) a Bevis. Vi lager et konstruktivt bevis som samtidig definerer en algoritme. Anta at CT a,b,c omslutter ingen unkter fra P, se figur. La sirkelen vokse å motsatt side av E b fra c til den når et unkt. Hvis et unkt fra P ikke kan nås, må E b være en kant å ConvHullP;velgenannensidekantiT a,b,c som E b etc. Lag trekanten T b,a, ; CT b,a, omslutter nå ingen unkter fra P. Gjenta dette med en ny E b hver gang til hele ConvP er T dekket av trekanter T i i1 i en triangulering P. CT i, i 1,,T omslutter nå ingen unkter i P. P er en Delaunay-triangulering i følge Teorem og Teorem (eller Corollar). T a,b,c er en Delaunay trekant. 7

8 Hvis T a,b,c er en Delaunay-trekant i en Delaunay-triangulering P, så omslutter CT a,b,c ingen unkter fra P (i følge sirkel-lemma). 8

9 Algoritme (steg-for-steg). 1. Finn en Delaunay-sidekant E i, j fra P; for eksemel: a. i og j er to nærmste naboer i P, eller: b. i og j er to naboer å ConvHullP. 2. Lag den første voksende sirkelen C I tilfelle (a); la C ha senter i i j /2 I tilfelle (b), la C være uendelig stor med senter utenfor ConvP 3. Resten blir som konstruksjonen i beviset ovenfor. Kommentarer: Vi trenger en assende underliggende data-struktur for P slik at søk etter et hjørneunkt til en Delaunay-trekant T a,b, blir effektiv. Hvis ikke, blir tidsforbruket alltid ON 2. Algoritmen undersøker vinkelen med tounkt i,se figur. Punktet som gir max velges. Algoritmen er statisk. 9

10 Inkrementelle algoritmer Inkrementelle algoritmer å et unktsett P kjennetegnes ved: 1. Starter med en initiell Delaunay-triangulering I,for eks.: a. I P; der P er et subsett av P ( I kan være en trekant) b. I S der S er temorære unkter som ikke hører til P. i ConvS, i 1,,N. 2. De gjenværende unktene blir satt inn ett og ett i vilkårlig rekkefølge. Trianguleringen odateres til å være Delaunay for hvert unkt som settes inn. I tilfelle (b) må S fjernes til slutt. *) Det vil lønne seg å sortere unktene, f.eks. leksikografisk å x og y for effektiv lokalisering. Figur, LEDA 10

11 Ste 2: Innsetting av et unkt i en Delaunay-triangulering N P slik at N1 P også er Delaunay. (a) (b) Q R DEFINISJON (Influens-region). R trekanter som må endres ved innsetting av. DEFINISJON (Influens-olygon). Q randen til R. Alternativ (a): i) Finn R ; ii) fjern alle trekantene i R ; iii) retrianguler Q. Alternativ (b): i) Finn trekanten T i, j, k slik at T i, j, k ; ii) lag sidekanter E,i, E,j og E,k ; iii) Swa kanter til trianguleringen er Delaunay. HVORDAN ER R? 11

12 LEMMA. En trekant T i må endres når settes inn hvis og bare hvis CT i. Bevis. Følger direkte fra Teorem over. TEOREM. La N1 være Delaunay-trianguleringen fra innsetting av i en Delaunay-triangulering N. Da vil alle nye (og endrede) trekanter i N1 ha som en felles node. Bevis (Motbevis). Merk først at kun trekantene innenfor Q i N vil endres. Anta at det er en Delaunay-trekant T i, j, k i N1 innenfor Q slik at ikke er en node i T i, j, k. i, j and k er Voronoi-naboer relativt til P. Da er de også Voronoi-naboer i P i følge Lemma ;og siden T i, j, k er en Delaunay-trekant i N1, er den også en Delaunay-trekant i N. Motsigelse: Siden T i, j, k er innenfor Q har vi at CT i, j, k og følgelig kan T i, j, k ikke være en Delaunay-trekant i N1. 12

13 (a) (b) Q R Konsekvenser: Nodene til trekantene i N innenfor R hører til Q R er sammenhengende (hvis er innenfor N ) Q er stjerneformet s.a. alle noder i Q er synlige fra Algoritme 1 (med R og Q. 1. Finn R,dvs.T i slik at CT i ; Figur (a) 2. Fjern alle T i 3. Lag sidekanter E,i der i er unkter å Q. 13

14 (c) (d) Hvis ligger utenfor N må vi sørge for at randen til N1 blir konveks. forbindes til alle unkter å ConvHullP som er synlige fra. 14

15 Punktinnsetting og rekursiv swaing Innsetting av i en triangulering: N P N1 P Det fremgår av det foregående at: 1. Influensregionen R er sammenhengende 2. R er ofte begrenset (men i verste fall kan R være hele P Vi skal utnytte dette til å lage en rask og komakt algoritme basert kun å swaing. 15

16 Algoritme 2 (med swaing). 1. Lokaliser en trekant T i, j, k slik at T i, j, k 2. Sett inn sidekanter E,i, E,j og E,k. 3. Swa kanter innenfor R i henhold til Delaunay-kriteriene. I unkt 3 kan vi f.eks. kjøre LOP, men vi skal utlede en smartere swae-strategi (men som fortsatt kun swaer kanter som ikke er lokalt otimale)... 16

17 Rekursiv swaerosedyre (a) (b) E 1,1 E 1,3 ' E 1 E 1 E 1,2 E 3 E 3 E 1,4 E 2 E 2 Start å rekursiv swaing Figur (a) viser situasjonen etter Ste 2 over E,i, E,j og E,k kan ikke swaes Kun E 1, E 2 and E 3 i (a) er kandidater for swaing. (Alle andre kanter er diagonaler i de samme kvadrilateraler som før innsetting av og er derfor lokalt otimale siden N er Delaunay ) SWAP, f.eks. E 1 til E 1 ; se figur (b). Merk at E 1 swaes til. E 1,1 and E 1,2 motsatt E 1 fra blir nye kandidater for swaing, 17

18 (a) (b) E 1,1 E 1,3 ' E 1 E 1 E 1,2 E 3 E 3 E 1,4 E 2 E 2 Start å rekursiv swaing men, hva med E 1,3 og E 1,4? Generelt blir også disse kandidater, men: Hyotese: E 1,3 og E 1,4 som har noder i er ikke kandidater for swaing (vises senere) SWAP E 1,2 og rekursjon, se over (E 1,1 er lokalt otimal i dette eksemelet) Algorithm (recswadelaunay(edge E i )) 1. if (swatest(e i ) OK) 2. RETURN 3. swaedge(e i ) // til 4. recswadelaunay(e i,1 ) // rekursjon 5. recswadelaunay(e i,2 ) // rekursjon 18

19 Konklusjon så langt (hvis hyotesen holder): Kan swae rekursivt utover fra uten å måtte beregne influensregionen R.... flere konklusjoner følger senere... 19

20 c x E i,3 E i,1 b ' E i E i,2 C E i,4 C a Hyotese LEMMA. Hver kant-swa i algoritme recswadelaunay genererer maks. to kandidater for swaing. Bevis. Må vise at E i,3 og E i,4 er lokalt otimale etter at E i er swaet til E i. Vi gjør dette for E i,3 vedåseå kvadrilateralet, b, c, x: C a,b,c (.g.a. at E i ble swaet), men ellers er C a,b,c unktfri siden T a,b,c er Delaunay i N. C c,,b : c b C a,b,c (siden c b interolerer.) c b er unktfri og x C c,,b og E i,3 er lokalt otimal. Tilsvarende for E i,4 følger fra symmetri. 20

21 Observasjoner og flere resultater: Swaing starter i 3 avgrensede vinkel-sektorer utsent av og E i, i 1, 2, 3 (som dekker hele lanet) For hver swa deles en vinkelsektor i to (rekursjon). Hver kant som sjekkes er å motsatt side av i en trekant med som node En kant swaes alltid til og vil ikke swaes igjen i recswadelaunay LEMMA. Ingen kanter sjekkes mer enn en gang i recswadelaunay. En vinkelsektor, E i i R 2 er ferdigbehandlet hvis E i ikke skal swaes. recswadelaunay convergerer Alle kanter i N1 er lokalt otimale og N1 er Delaunay 21

22 Det følger fra Lemma: KOROLLAR: Følgende er Delaunay-kanter: 1. E,i, E,j og E,k (nye kanter som ikke swaes) 2. Alle kanter som swaes (til ) 3. Alle kanter som asserer swatest. Dette er forskjellig fra generell LOP å en vilkårlig triangulering der en swa av en kant ikke nødvendigvis gir en Delaunay-kant. 22

23 Verifisering av Korollar med: TEOREM. En kant E i,j mellom to unkter i og j i P er en Delaunay-kant. det eksisterer en sirkel C gjennom i og j slik at det indre av C ikke inneholder unkter fra P. (a) C C (b) C C T i ' E i E i T i 1. E,i, E,j og E,k ; figur (a). 2. Alle kanter som swaes (til ); figur (b) 3. Alle kanter som asserer swatest.; figur (b). (i så fall: C) 23

24 Punktinnsetting forts.... Hvis settes inn å en eksisterende indre kant dekkes dette av teorien og recswadelaunay uten sesialbehandling Hvis settes inn å å en rand-kant E i må vi slitte E i hvis vi ikke tillater degenererte trekanter. Hvis settes inn utenfor trianguleringen: Får nye initielle kanter E,1,E,2,E,3, der 1, 2, 3, er alle noder som er synlige fra. Ellers er teorien den samme (og recswadelaunay). 24

25 Tidsforbruk for inkrementelle algoritmer Vi skal først undersøke tidsforbruk for en worst-case konfigurasjon av P. (a) 1 (b) (c) La P x i, y i være unkter uniformt fordelt å en arabel y 1 2 x2 ; figur (a). Start med T 1, 2, 3 og sett inn unkter i rekkefølgen: 4, 5,, 10. Anta at vi har satt inn k slik at 1,, k er Delaunay. Ved innsetting av k1 er influensregionen R 1,, k ; dvs. alle trekantene må endres for at 1,, k1 skal være Delaunay; figur (b) og (c). 25

26 Tidsforbruk for å triangulere N unkter blir: siden N i N2 1 2 N 3 ON2. i N NN 1/2 1 2 N2 1 2 N x 4-5 ON, ONlog N, ON 2 26

27 Kommentarer: Punktkonfigurasjoner som gir worst-case otrer nesten aldri i raksis. Tidsforbruket er valigvis mer avhengig av den underliggende data-struktur enn av teoretisk orden å algoritmer. I raksis, hvis man har en assende data-struktur, har de flese algoritmer et ONlog N eller nesten ON forlø. 27

28 Punkt-lokalisering PROBLEM. Gitt et unkt og en start-trekant T i i P. Finn trekanten T i P slik at T ; eller avgjør om er utenfor. Raske algoritmer for Problem er viktige i, inkrementelle algoritmer evaluering av P etc. Eksemel å løsning av Problem: Gitt en dart d i V i,e i,t i orientert mot klokka i T i. La Hd i være halvlanet til venstre for d i som inneholder V i og noden i 0 d i. T i Hd i H 1 0 d i H 0 1 d i Anta at randen til P er konveks: 2 d b d b og Hd b er utenfor P. 28

29 Algoritme: Gitt x,y og en dart d i V i,e i,t i orientert mot klokka i T i. Finn T slik at T d i 1. d start : d i 2. if Hd i 3. d i : 1 0 d i // next edge ccw. in T i 4. if d i d start 5. FOUND : true, RETURN // inside T i 6. else // try to move to the adjacent triangle 7. if 2 d i d i // check if on boundary 8. FOUND : false, RETURN // outside 9. d start : 0 2 d i 10. d i : 1 2 d i // next edge ccw. in adj. T 11. GOTO Ste 2 29

30 temlate class PointTye, class DartTye bool locateface(pointtye& oint, DartTye& dart_iter) { DartTye dart_start dart_iter; DartTye dart_rev; for (;;) { // endless loo if (dart_iter.inlefthalfplane(oint)) { dart_iter.alha0().alha1(); if (dart_iter dart_start) return true; // left to all edges in face } else { // try to move to the adjacent triangle dart_rev dart_iter; dart_iter.alha2(); if (dart_iter dart_rev) return false; // iteration to outside boundary dart_start dart_iter; dart_start.alha0(); dart_iter.alha1(); // avoid twice on same edge and ccw in next } } // end for } 30

31 Slitt-og-hersk algoritme Slitt-og-hersk (divide-and-conquer) er en generell teknikk brukt innen mange områder av CG, for eksemel: Konveks omhylning Nærmeste naboer Voronoi-diagram Generelt er slitt-og-hersk algoritmer av orden ONlog N. Slitt-og-hersk er den eneste triangulerings-algoritmen som teoretisk er av orden ONlog N Siden det finnes standard slitt og-hersk algoritmer for å finne Voronoi-diagrammet VDP, kunne vi avlede Delaunay-trianguleringen fra VDP i ON tid. Vi skal se å en slitt-og-hersk algoritme for å finne Delaunay-trianguleringen direkte. 31

32 Løsning: 1. Sorterer unktsettet P leksikografisk å X og Y: i x i,y i x j,y j j x i x j, eller x i x j og y i y j. 2. Deler o P rekursivt i unktsett P 1,,P N slik at hvert P i inneholder noen få unkter. N er et artall. 3. Lag Delaunay-trianguleringer P 1,,P N. 4. Sy sammen ( merge ) to og to nabo-trianguleringer P L og P R til P L P R. Ste 3 og 4 gjøres rekursivt til vi har en Delaunay-triangulering P. Vi skal se nærmere å ste 4. 32

33 (a) E u (b) L R E b Gitt P L og P R,finnP L P R : 1. Finn ConvHullP L P R. Siden ConvHullP L og ConvHullP R er funnet, gjøres dette enkelt i (max) ON tidvedåfinnee b og E u ; figur (a). 2. Start sammensying ved E b : Finn unktet fra P L eller P R som danner en Delaunay-trekant med E b. Bruk en voksende sirkel slik som i steg-for-steg algoritmen. T L, R, i figur (a) er nå en Delaunay-trekant i følge Teorem. Sidekanter i P L og P R som skjerer T L, R, fjernes. Sett E b til den nye sidekanten og reeter helt til E u nås. 3. P L P R er nå Delaunay siden ingen unkter i P L P R er innenfor en omskrevet sirkel til en trekant i P L P R 33

34 Tidsforbruk for slitt-og-hersk Merk at dette er rent teoretisk. Sammensyingen av P L og P R er av orden ON. tn tidsforbruk for Delaunay-triangulering av N unkter. MN MN/2, N/2 tidsforbruk for å sy sammen P L og P R hver med N/2 unkter. Merk at MN er lineær i tid slik at, 2MN/2 MN. Vi får følgende rekursjons-formel: tn 2tN/2 MN t1 0 Dette gir tn ONlog N. Viktig: I raksis viser det seg at slitt-og-hersk ikke er raskere enn andre algoritmer selv om den (teoretisk) er den eneste som er ONlog N. 34

35 Anta at P ble delt inn i 2 k subsett: tn 2tN/2 MN 22tN/4 MN/2 MN 4tN/4 2MN 8tN/8 3MN 16tN/16 4MN 2 k tn/2 k kmn. Anta totalt antall unkter N 2 m Hvis N er stor og k er stor er m k Worst-case er ON 2 for Delaunay-triangulering 1. ledd av orden: 2 k N/2 k 2 2 k 2 m /2 k 2 2 2mk 2 m (siden m k) N; dvs.on 2. ledd av orden (MN er ON): kn mn, menm log 2 N (siden N 2 m ); dvs. Nlog 2 N eller ON log N 35

Algoritmer for Delaunay-triangulering

Algoritmer for Delaunay-triangulering Algoritmer for Delaunay-triangulering Øyvind Hjelle oyvindhj@simula.no, +47 67 82 82 75 Simula Research Laboratory, www.simula.no September 21, 2009 Innhold Algoritmer 1 En enkel algoritme 2 Radial Sweep

Detaljer

INF-MAT5370. Delaunay-trianguleringer og Voronoi-diagram

INF-MAT5370. Delaunay-trianguleringer og Voronoi-diagram INF-MAT5370 Delaunay-trianguleringer og Voronoi-diagram Øyvind Hjelle oyvindhj@simula.no, +47 67 82 82 75 Simula Research Laboratory, www.simula.no September 7, 2009 Innhold Klassisk teori Optimale trianguleringer

Detaljer

Trianguleringer i planet.

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

Detaljer

INF-MAT5370. Trianguleringer i planet (Preliminaries)

INF-MAT5370. Trianguleringer i planet (Preliminaries) INF-MAT5370 Trianguleringer i planet (Preliminaries) Øyvind Hjelle oyvindhj@simula.no, +47 67 82 82 75 Simula Research Laboratory, www.simula.no August 23, 2009 Innhold Notasjon og terminologi Graf-egenskaper

Detaljer

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

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

Detaljer

INF-MAT5370. Grafer og datastrukturer

INF-MAT5370. Grafer og datastrukturer INF-MAT5370 Grafer og datastrukturer Øyvind Hjelle oyvindhj@simula.no, +47 67 82 82 75 Simula Research Laboratory, www.simula.no August 3, 2009 Innhold Kort om grafer Topologiske operatorer og operasjoner,

Detaljer

Obligatoriske oppgaver 2009

Obligatoriske oppgaver 2009 Obligatoriske oppgaver 2009 Sist oppdatert August 13, 2009. Generelt: Dokumentet kan bli oppdatert etter hvert med flere obligatoriske oppgaver. Endringer og tillegg til oppgaver som allerede er gitt blir

Detaljer

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

kap. 8.6 Computational Geometry Hovedkapittelet (kap. 8) dreier seg generelt om devide-and-conquer eller splitt og hersk : INF 4130, 17. november 2011 kap. 8.6 Computational Geometry Stein Krogdahl Hovedkapittelet (kap. 8) dreier seg generelt om devide-and-conquer eller splitt og hersk : Splitt problemet opp i mindre problemer.

Detaljer

Øvingsforelesning 3: Splitt og hersk. Daniel Solberg

Øvingsforelesning 3: Splitt og hersk. Daniel Solberg Øvingsforelesning 3: Splitt og hersk Daniel Solberg Plan for dagen Vi går raskt gjennom øving 2 Splitt og hersk Algoritmer: Mergesort Quicksort Binærsøk Rekurrenser, masse rekurrenser 2 Splitt og hersk

Detaljer

INF2220: Time 12 - Sortering

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

Detaljer

INF2220: Forelesning 2. Balanserte søketrær Rød-svarte trær (kapittel12.2) B-trær (kapittel 4.7)

INF2220: Forelesning 2. Balanserte søketrær Rød-svarte trær (kapittel12.2) B-trær (kapittel 4.7) INF2220: Forelesning 2 Balanserte søketrær Rød-svarte trær (kapittel12.2) B-trær (kapittel 4.7) REPETISJON: BINÆRE SØKETRÆR 2 Binære søketrær 8 4 12 2 7 9 15 6 11 13 16 For enhver node i et binært søketre

Detaljer

INF2220: Forelesning 2

INF2220: Forelesning 2 INF2220: Forelesning 2 Balanserte søketrær Rød-svarte trær (kapittel12.2) B-trær (kapittel 4.7) REPETISJON: BINÆRE SØKETRÆR 2 Binære søketrær 8 4 12 2 7 9 15 6 11 13 16 For enhver node i et binært søketre

Detaljer

INF2220: Forelesning 2

INF2220: Forelesning 2 INF2220: Forelesning 2 Mer om analyse av algoritmer Analyse av binære søketrær Balanserte søketrær Rød-svarte trær (kapittel12.2) B-trær (kapittel 4.7) ANALYSE AV ALGORITMER 2 Analyse av tidsforbruk Hvor

Detaljer

Rekursiv programmering

Rekursiv programmering Rekursiv programmering Babushka-dukker En russisk Babushkadukke er en sekvens av like dukker inne i hverandre, som kan åpnes Hver gang en dukke åpnes er det en mindre utgave av dukken inni, inntil man

Detaljer

To geometriske algoritmer, kap. 8.6

To geometriske algoritmer, kap. 8.6 INF 4130, 18. november 2010 To geometriske algoritmer, kap. 8.6 Computational Geometry Stein Krogdahl Hovedkapittelet t (kap. 8) dreier seg generelt om devide-and-conquer eller splitt og hersk : Splitt

Detaljer

Divide-and-Conquer II

Divide-and-Conquer II Divide-and-Conquer II Lars Vidar Magnusson 1712014 Kapittel 4 Analyse av divide-and-conquer algoritmer ved hjelp av rekursjonstrær Analyse av divide-and-conquer algoritmer ved hjelp av masterteoremet Løse

Detaljer

Rekursiv programmering

Rekursiv programmering Rekursiv programmering Babushka-dukker En russisk Babushkadukke er en sekvens av like dukker inne i hverandre, som kan åpnes Hver gang en dukke åpnes er det en mindre utgave av dukken inni, inntil man

Detaljer

LO118D Forelesning 2 (DM)

LO118D Forelesning 2 (DM) LO118D Forelesning 2 (DM) Kjøretidsanalyse, matematisk induksjon, rekursjon 22.08.2007 1 Kjøretidsanalyse 2 Matematisk induksjon 3 Rekursjon Kjøretidsanalyse Eksempel Finne antall kombinasjoner med minst

Detaljer

Data-avhengige trianguleringer

Data-avhengige trianguleringer Data-avhengige trianguleringer Øyvind Hjelle oyvindhj@simula.no, +47 67 82 82 75 Simula Research Laboratory, www.simula.no October 5, 2009 Definition (Data-avhengig triangulering) En triangulering (P),

Detaljer

Geometri i rommet. Kapittel Vektorer i R 3. Lengden av v er gitt ved

Geometri i rommet. Kapittel Vektorer i R 3. Lengden av v er gitt ved Kaittel 5 Geometri i rommet I dette kaitlet skal vi konsentrere oss om isometrier i R. Det er stort sammenfall mellom teoriene i og dimensjoner, og mange av resultatene fra forrige kaittel er gyldig også

Detaljer

Hva er en algoritme? INF HØSTEN 2006 INF1020. Kursansvarlige Ragnar Normann E-post: Dagens tema

Hva er en algoritme? INF HØSTEN 2006 INF1020. Kursansvarlige Ragnar Normann E-post: Dagens tema va er en algoritme? Vanlig sammenligning: Oppskrift. nput lgoritme NF1020 - ØSTEN 2006 Kursansvarlige Ragnar Normann E-post: ragnarn@ifi.uio.no Output Knuth : tillegg til å være et endelig sett med regler

Detaljer

LO118D Forelesning 12 (DM)

LO118D Forelesning 12 (DM) LO118D Forelesning 12 (DM) Trær 15.10.2007 1 Traversering av trær 2 Beslutningstrær 3 Isomorfisme i trær Preorden-traversering 1 Behandle den nåværende noden. 2 Rekursivt behandle venstre subtre. 3 Rekursivt

Detaljer

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 ) 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 (ragnhilk@ifi.uio.no)

Detaljer

PG4200 Algoritmer og datastrukturer Forelesning 3 Rekursjon Estimering

PG4200 Algoritmer og datastrukturer Forelesning 3 Rekursjon Estimering PG4200 Algoritmer og datastrukturer Forelesning 3 Rekursjon Estimering Lars Sydnes, NITH 22.januar 2014 I. Rekursjon commons.wikimedia.org Rekursjon i naturen En gren er et tre som sitter fast på et tre.

Detaljer

Algoritmer og Datastrukturer

Algoritmer og Datastrukturer Eksamen i Algoritmer og Datastrukturer IAI 21899 Høgskolen i Østfold Avdeling for informatikk og automatisering Torsdag 3. november 2, kl. 9. - 14. Hjelpemidler: Alle trykte og skrevne hjelpemidler. Kalkulator.

Detaljer

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

Løsnings forslag i java In115, Våren 1998 Løsnings forslag i java In115, Våren 1998 Oppgave 1 // Inne i en eller annen klasse private char S[]; private int pardybde; private int n; public void lagalle(int i) if (i==n) bruks(); else /* Sjekker

Detaljer

Kjøretidsanalyse. Hogne Jørgensen

Kjøretidsanalyse. Hogne Jørgensen Kjøretidsanalyse Hogne Jørgensen Program Presentasjon/tips til Øving 5 Kompleksitetsanalyse Kahoot Rekurrensligninger Kahoot 2 Øving 5 Veibygging i Ogligogo Finne dyreste kant i minimalt spenntre Prim

Detaljer

INF Algoritmer og datastrukturer

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

Detaljer

Oppgave 1 LØSNINGSFORSLAG. Eksamen i INF desember Betrakt følgende vektede, urettede graf:

Oppgave 1 LØSNINGSFORSLAG. Eksamen i INF desember Betrakt følgende vektede, urettede graf: INF100 Algoritmer og datastrukturer INF100 Algoritmer og datastrukturer Oppgave 1 LØSNINGSFORSLAG Betrakt følgende vektede, urettede graf: V 1 V Eksamen i INF100 1. desember 004 V V 4 V 4 V V Ragnar Normann

Detaljer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer Institutt for datateknikk og informasjonsvitenskap Eksamensoppgave i TDT0 Algoritmer og datastrukturer Faglig kontakt under eksamen Magnus Lie Hetland Telefon 98 5 99 Eksamensdato 7. desember, 06 Eksamenstid

Detaljer

Øvingsforelesning 6. Sorteringsalgoritmer. Kristian Veøy

Øvingsforelesning 6. Sorteringsalgoritmer. Kristian Veøy Øvingsforelesning 6 Sorteringsalgoritmer Kristian Veøy veoy@stud.ntnu.no 26.09.08 1 Spørsmål fra øvingsgruppene Må jeg kunne python på eksamen? (Nei) Er det lurt å gjøre alle programmeringsøvingene? (Ikke

Detaljer

Læringsmål og pensum. Algoritmeeffektivitet

Læringsmål og pensum. Algoritmeeffektivitet 1 TDT4110 Informasjonsteknologi grunnkurs: Tema: Algoritmer i praksis Professor Alf Inge Wang 2 Læringsmål og pensum Mål Lære å forstå og kunne programmere algoritmer for søk og sortering. Lære å forstå

Detaljer

TDT4110 Informasjonsteknologi grunnkurs: Tema: Algoritmer i praksis. Professor Alf Inge Wang

TDT4110 Informasjonsteknologi grunnkurs: Tema: Algoritmer i praksis. Professor Alf Inge Wang 1 TDT4110 Informasjonsteknologi grunnkurs: Tema: Algoritmer i praksis Professor Alf Inge Wang 2 Læringsmål og pensum Mål Lære å forstå og kunne programmere algoritmer for søk og sortering. Lære å forstå

Detaljer

Øvingsforelesning 6. Sorteringsalgoritmer. Martin Kirkholt Melhus Basert på foiler av Kristian Veøy 30/09/14 1

Øvingsforelesning 6. Sorteringsalgoritmer. Martin Kirkholt Melhus Basert på foiler av Kristian Veøy 30/09/14 1 Øvingsforelesning 6 Sorteringsalgoritmer Martin Kirkholt Melhus martme@stud.ntnu.no Basert på foiler av Kristian Veøy 30/09/14 1 Agenda l Spørsmål fra øving 4 l Sortering l Presentasjon av øving 6 30/09/14

Detaljer

INF2220: Gruppe me 2. Mathias Lohne Høsten 2017

INF2220: Gruppe me 2. Mathias Lohne Høsten 2017 INF0: Gruppe me Mathias Lohne Høsten 0 1 Rød-svarte trær Vanlige binære søketrær blir fort veldig ubalanserte. røv å sett inn 1,,, 4, 5,, 7,... (i den rekkefølgen) i et binært søketre. Da vil vi i praksis

Detaljer

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 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

Detaljer

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

Løsnings forslag i java In115, Våren 1996 Løsnings forslag i java In115, Våren 1996 Oppgave 1a For å kunne kjøre Warshall-algoritmen, må man ha grafen på nabomatriseform, altså en boolsk matrise B, slik at B[i][j]=true hvis det går en kant fra

Detaljer

Søkeproblemet. Gitt en datastruktur med n elementer: Finnes et bestemt element (eller en bestemt verdi) x lagret i datastrukturen eller ikke?

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

Detaljer

Disjunkte mengder ADT

Disjunkte mengder ADT Binære relasjoner A A = {(x, y) x, y A}: mengden av ordnede par over A. Disjunkte mengder ADT Weiss kap. 8.1 8.5 Løser ekvivalensproblemet Lett og rask implementasjon Vanskelig tidsforbrukanalyse Ark 1

Detaljer

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

Uke 12 inf2440 v2018. Eric Jul PSE-gruppa Ifi, UiO Uke 12 inf2440 v2018 Eric Jul PSE-gruppa Ifi, UiO Oblig 5 veiledning, 2018 i dag, den sekvensielle løsninga. Den konvekse innhyllinga til n punkter Oblig 4 Hva er det, definisjon Hvordan ser den ut Hva

Detaljer

3.9 Teori og praksis for Minste kvadraters metode.

3.9 Teori og praksis for Minste kvadraters metode. 3.9 Teori og praksis for Minste kvadraters metode. Vi fortsetter med minste kvadraters problem. Nå skal vi se nærmere på noen teoretiske spørsmål, bl.a. hvordan normallikningene utledes. Minner om MK problemstillingen:

Detaljer

Datastrukturer for rask søking

Datastrukturer for rask søking 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

Detaljer

EKSAMEN med løsningsforslag

EKSAMEN med løsningsforslag EKSAMEN med løsningsforslag Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: Eksamenstid: 20. mai 2009 kl 09.00 til kl 13.00 Hjelpemidler: 8 A4-sider (4 ark) med egne notater Kalkulator Faglærer:

Detaljer

Python: Rekursjon (og programmering av algoritmer) Python-bok: Kapittel 12 + teoribok om Algoritmer

Python: Rekursjon (og programmering av algoritmer) Python-bok: Kapittel 12 + teoribok om Algoritmer Python: Rekursjon (og programmering av algoritmer) Python-bok: Kapittel 12 + teoribok om Algoritmer TDT4110 IT Grunnkurs Professor Guttorm Sindre Læringsmål og pensum Mål Forstå, og kunne bruke, algoritmer

Detaljer

MA2401 Geometri Vår 2018

MA2401 Geometri Vår 2018 MA2401 Geometri Vår 2018 Norges teknisk naturvitenskapelige universitet Institutt for matematiske fag Løsningsforslag Øving 7 4.8 1 La ABC være en trekant og E et punkt i det indre av BC. Vi skal vise

Detaljer

TDT4105 Informasjonsteknologi, grunnkurs

TDT4105 Informasjonsteknologi, grunnkurs 1 TDT4105 Informasjonsteknologi, grunnkurs Matlab: Sortering og søking Anders Christensen (anders@idi.ntnu.no) Rune Sætre (satre@idi.ntnu.no) TDT4105 IT Grunnkurs 2 Pensum Matlab-boka: 12.3 og 12.5 Stoffet

Detaljer

Om Kurset og Analyse av Algoritmer

Om Kurset og Analyse av Algoritmer Om Kurset og Analyse av Algoritmer Lars Vidar Magnusson 8.1.2014 Praktisk informasjon om kurset Hva er en algoritme? (kapittel 1) Hvordan analysere en algoritme? (kapittel 2) Praktisk Informasjon Introduction

Detaljer

Kap.8 Sortering og søking sist oppdatert 16.03

Kap.8 Sortering og søking sist oppdatert 16.03 Kap.8 Sortering og søking sist oppdatert 16.03 Del 1 Søking - lineær søking m/u sorterte elementer - binærsøking - analyse Del 2 Sortering - gamle sorteringsmetoder fra i høst - nye -analyse Copyright

Detaljer

Lineære ligningssystemer og gausseliminasjon

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

Detaljer

Ekstra ark kan legges ved om nødvendig, men det er meningen at svarene skal få plass i rutene på oppgavearkene. Lange svar teller ikke positivt.

Ekstra ark kan legges ved om nødvendig, men det er meningen at svarene skal få plass i rutene på oppgavearkene. Lange svar teller ikke positivt. Side 1 av 5 Noen viktige punkter: (i) (ii) (iii) (iv) Les hele eksamenssettet nøye før du begynner! Faglærer går normalt én runde gjennom lokalet. Ha evt. spørsmål klare! Skriv svarene dine i svarrutene

Detaljer

Algoritmer og Datastrukturer IAI 21899

Algoritmer og Datastrukturer IAI 21899 Eksamen i Algoritmer og Datastrukturer IAI 21899 Høgskolen i Østfold Avdeling for informatikk og automatisering Torsdag 30. november 2000, kl. 09.00-14.00 LØSNINGSFORSLAG 1 Del 1, Binære søketrær Totalt

Detaljer

Kondisjonstest. Algoritmer og datastrukturer. Python-oppgaver. Onsdag 6. oktober Her er noen repetisjonsoppgaver i Python.

Kondisjonstest. Algoritmer og datastrukturer. Python-oppgaver. Onsdag 6. oktober Her er noen repetisjonsoppgaver i Python. Algoritmer og datastrukturer Kondisjonstest Python-oppgaver Onsdag 6. oktober 2004 Her er noen repetisjonsoppgaver i Python. Som alltid er den beste måten å lære å programmere på å sette seg ned og programmere

Detaljer

Divide-and-Conquer. Lars Vidar Magnusson 13.1.2015

Divide-and-Conquer. Lars Vidar Magnusson 13.1.2015 Divide-and-Conquer Lars Vidar Magnusson 13.1.2015 Kapittel 4 Maximum sub-array problemet Matrix multiplikasjon Analyse av divide-and-conquer algoritmer ved hjelp av substitusjonsmetoden Divide-and-Conquer

Detaljer

Først litt praktisk info. Sorteringsmetoder. Nordisk mesterskap i programmering (NCPC) Agenda

Først litt praktisk info. Sorteringsmetoder. Nordisk mesterskap i programmering (NCPC) Agenda Først litt praktisk info Sorteringsmetoder Gruppeøvinger har startet http://selje.idi.ntnu.no:1234/tdt4120/gru ppeoving.php De som ikke har fått gruppe må velge en av de 4 gruppende og sende mail til algdat@idi.ntnu.no

Detaljer

ALGORITMER OG DATASTRUKTURER

ALGORITMER OG DATASTRUKTURER Stud. nr: Side 1 av 6 NTNU Norges teknisk-naturvitenskapelige universitet BOKMÅL Fakultet for informasjonsteknologi matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap AVSLUTTENDE

Detaljer

Binære trær: Noen algoritmer og anvendelser

Binære trær: Noen algoritmer og anvendelser Binære trær: Noen algoritmer og anvendelser Algoritmer / anvendelser: Søking i usortert binært tre Telling av antall noder og nivåer i treet Traversering av binære trær Binære uttrykkstrær Kunstig intelligens(?):

Detaljer

INF Algoritmer og datastrukturer

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.

Detaljer

Kap.4 del I Top Down Parsering INF5110 v2005. Arne Maus Ifi, UiO

Kap.4 del I Top Down Parsering INF5110 v2005. Arne Maus Ifi, UiO Kap.4 del I Top Down Parsering INF5110 v2005 Arne Maus Ifi, UiO Innhold Motivering Boka gir først parsering uten First/Follow-mengder og så innfører dem. Vi tar teorien først First og Follow-mengder Fjerning

Detaljer

MA2401 Geometri Vår 2018

MA2401 Geometri Vår 2018 MA2401 Geometri Vår 2018 Norges teknisk naturvitenskapelige universitet Institutt for matematiske fag Løsningsforslag Øving 6 4.5 1 La ABC være en trekant, og la D være et punkt på AB slik at A B D. Utsagnet

Detaljer

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer Eksamensdato 14. desember 2011 Eksamenstid 1500 1900 Sensurdato 14. januar Språk/målform Bokmål Kontakt under eksamen Magnus Lie Hetland (tlf.

Detaljer

Ikke lineære likninger

Ikke lineære likninger Ikke lineære likninger Opp til nå har vi studert lineære likninger og lineære likningsystemer. 1/19 Ax = b Ax b = 0. I en dimensjon, lineære likninger kan alltid løses ved hjelp av formler: ax + b = 0

Detaljer

Quicksort. Lars Vidar Magnusson Kapittel 7 Quicksort Randomisert Quicksort Analyse av Quicksort

Quicksort. Lars Vidar Magnusson Kapittel 7 Quicksort Randomisert Quicksort Analyse av Quicksort Quicksort Lars Vidar Magnusson 29.1.2014 Kapittel 7 Quicksort Randomisert Quicksort Analyse av Quicksort Om Quicksort Quicksort er en svært populær sorteringsalgoritme. Algoritmen har i verstefall en kjøretid

Detaljer

Forelesning 14 torsdag den 2. oktober

Forelesning 14 torsdag den 2. oktober Forelesning 14 torsdag den 2. oktober 4.1 Primtall Definisjon 4.1.1. La n være et naturlig tall. Da er n et primtall om: (1) n 2; (2) de eneste naturlige tallene som er divisorer til n er 1 og n. Eksempel

Detaljer

Grådige algoritmer. Lars Vidar Magnusson Kapittel 16. Aktivitetvelgingsproblemet Huffmankoder

Grådige algoritmer. Lars Vidar Magnusson Kapittel 16. Aktivitetvelgingsproblemet Huffmankoder Grådige Algoritmer Lars Vidar Magnusson 12.3.2014 Kapittel 16 Grådige algoritmer Aktivitetvelgingsproblemet Huffmankoder Ideen bak Grådige Algoritmer Ideen bak grådige algoritmer er å løse optimaliseringsproblem

Detaljer

Trianguleringer og anvendelser

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

Detaljer

TMA4140 Diskret Matematikk Høst 2016

TMA4140 Diskret Matematikk Høst 2016 Norges teknisk naturvitenskapelige universitet Institutt for matematiske fag TMA4140 Diskret Matematikk Høst 2016 Seksjon 10.2 18 La G = (V,E) være en enkel graf med V 2. Ettersom G er enkel er de mulige

Detaljer

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

Fig1. Den konvekse innhyllinga av 100 tilfeldige punkter i planet (de samme som nyttes i oppgaven.) Oblig3 i INF2440 våren 2015-ver3. Den konvekse innhyllinga til en punktmengde - et rekursivt geometrisk problem. Innleveringsfrist fredag 27. mars kl. 23.59 En punktmengde P i planet består av n forskjellige

Detaljer

INF5110 V2012 Kapittel 4: Parsering ovenfra-ned

INF5110 V2012 Kapittel 4: Parsering ovenfra-ned INF5110 V2012 Kapittel 4: Parsering ovenfra-ned (top-down) Tirsdag 7. februar Stein Krogdahl, Ifi, UiO Oppgaver som gjennomgås i morgen, onsdag: -Spørsmålene på de to siste foilene fra onsdag 1/2 (Bl.a.

Detaljer

Ny/utsatt EKSAMEN. Dato: 5. januar 2018 Eksamenstid: 09:00 13:00

Ny/utsatt EKSAMEN. Dato: 5. januar 2018 Eksamenstid: 09:00 13:00 Ny/utsatt EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 5. januar 2018 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet

Detaljer

HØGSKOLEN I BERGEN Avdeling for ingeniørutdanning

HØGSKOLEN I BERGEN Avdeling for ingeniørutdanning HØGSKOLEN I BERGEN Avdeling for ingeniørutdanning EKSAMEN I KLASSE LVD525 Videregående algoritmer : 3DA og 3DB DATO :. april 2005 ANTALL OPPGAVER : 4 ANTALL SIDER : 4 VEDLEGG : side HJELPEMIDLER : ingen

Detaljer

Uke 5 Disjunkte mengder

Uke 5 Disjunkte mengder Uke 5 Disjunkte mengder MAW, kap.. 8 September 19, 2005 Page 1 Hittil Forutsetninger for og essensen i faget Metodekall, rekursjon, permutasjoner Analyse av algoritmer Introduksjon til ADT er Den første

Detaljer

Lineære ligningssystemer og gausseliminasjon

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

Detaljer

Hvorfor sortering og søking? Søking og sortering. Binære søketrær. Ordnet innsetting forbereder for mer effektiv søking og sortering INF1010 INF1010

Hvorfor sortering og søking? Søking og sortering. Binære søketrær. Ordnet innsetting forbereder for mer effektiv søking og sortering INF1010 INF1010 Hvorfor sortering og søking? Man bør ha orden i dataene umulig å leve uten i informasjonssamfunnet vi blir fort lei av å lete poleksempel internett alt er søking og sortering alternativer til sortering

Detaljer

12 Projeksjon TMA4110 høsten 2018

12 Projeksjon TMA4110 høsten 2018 Projeksjon TMA0 høsten 08 En projeksjon er en lineærtransformasjon P som tilfredsstiller P x = P x for alle x Denne ligningen sier at intet nytt skjer om du benytter lineærtransformasjonen for andre gang,

Detaljer

Kap. 4 del I Top Down Parsering INF5110 v2006. Stein Krogdahl Ifi, UiO

Kap. 4 del I Top Down Parsering INF5110 v2006. Stein Krogdahl Ifi, UiO Kap. 4 del I Top Down Parsering INF5110 v2006 Stein Krogdahl Ifi, UiO 1 Innhold First og Follow-mengder Boka ser på én parseringsmetode først, uten å se på First/Follow-mengder. Vi tar teorien først To

Detaljer

Forelesning 19 torsdag den 23. oktober

Forelesning 19 torsdag den 23. oktober Forelesning 19 torsdag den 23. oktober 5.3 Eulers kriterium Merknad 5.3.1. Følgende proposisjon er kjernen til teorien for kvadratiske rester. Kanskje ser beviset ikke så vanskelig ut, men la merke til

Detaljer

Dagens plan: INF Algoritmer og datastrukturer. Eksempel. Binære Relasjoner

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

Detaljer

Pensum: Starting out with Python

Pensum: Starting out with Python 1 Kunnskap for en bedre verden TDT4110 Informasjonsteknologi grunnkurs: Python: Repetisjon Matriser (2D-lister) try except rekursjon skrive pent til skjerm Terje Rydland - IDI/NTNU 2 Læringsmål og pensum

Detaljer

MAT1030 Forelesning 17

MAT1030 Forelesning 17 MAT1030 Forelesning 17 Rekurrenslikninger Roger Antonsen - 18. mars 009 (Sist oppdatert: 009-03-18 19:3) Forelesning 17 Forrige gang ga vi en rekke eksempler på bruk av induksjonsbevis og rekursivt definerte

Detaljer

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer INF2220 - Algoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 10: Disjunkte Mengder Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 10 1 / 27

Detaljer

Grunnleggende Datastrukturer

Grunnleggende Datastrukturer Grunnleggende Datastrukturer Lars Vidar Magnusson 7.2.2014 Kapittel 10 Stakker og køer Lenkede lister Pekere og objekter Trerepresentasjoner Datastrukturer Vi er i gang med tredje del av kurset hvor vi

Detaljer

Definisjon av binært søketre

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

Detaljer

Dynamisk programmering

Dynamisk programmering Dynamisk programmering Metoden ble formalisert av Richard Bellmann (RAND Corporation) på 50-tallet. Programmering i betydningen planlegge, ta beslutninger. (Har ikke noe med kode eller å skrive kode å

Detaljer

Komplekse tall. Kapittel 15

Komplekse tall. Kapittel 15 Kaittel 5 Komlekse tall Utgangsunktet for all regning er de naturlige tallene N = {,,3,...,} Den berømte matematikeren Leoold Kronecker formulerte dette som Gud skate de naturlige tallene, resten er menneskets

Detaljer

3.4 Geometriske steder

3.4 Geometriske steder 3.4 Geometriske steder Geometriske steder er punkter eller punktmengder som følger visse kriterier; dvs. ligger på bestemte steder i forhold til andre punkter eller punktmengder. Av disse kan man definere

Detaljer

Grunnleggende Grafteori

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

Detaljer

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

Løsnings forslag i java In115, Våren 1999 Løsnings forslag i java In115, Våren 1999 Oppgave 1a Input sekvensen er: 9, 3, 1, 3, 4, 5, 1, 6, 4, 1, 2 Etter sortering av det første, midterste og siste elementet, har vi følgende: 2, 3, 1, 3, 4, 1,

Detaljer

Logaritmiske sorteringsalgoritmer

Logaritmiske sorteringsalgoritmer Logaritmiske sorteringsalgoritmer Logaritmisk sortering Rekursive og splitt og hersk metoder: Deler verdiene i arrayen i to (helst) omtrent like store deler i henhold til et eller annet delingskriterium

Detaljer

Algoritmer og datastrukturer Kapittel 1 - Delkapittel 1.3

Algoritmer og datastrukturer Kapittel 1 - Delkapittel 1.3 Delkapittel 1.3 Ordnede tabeller Side 1 av 70 Algoritmer og datastrukturer Kapittel 1 - Delkapittel 1.3 1.3 Ordnede tabeller 1.3.1 Permutasjoner En samling verdier kan settes opp i en rekkefølge. Hver

Detaljer

INF5110 V2013 Stoff som i boka står i kap 4, men som er generelt stoff om grammatikker

INF5110 V2013 Stoff som i boka står i kap 4, men som er generelt stoff om grammatikker INF5110 V2013 Stoff som i boka står i kap 4, men som er generelt stoff om grammatikker 29. januar 2013 Stein Krogdahl, Ifi, UiO NB: Ikke undervisning fredag 1. februar! Oppgaver som gjennomgås 5. februar

Detaljer

At z + w og zw er reelle betyr at deres imaginrdeler er lik null, det vil si at b + d 0 ad + bc 0 Den frste ligningen gir b d. Setter vi dette inn i d

At z + w og zw er reelle betyr at deres imaginrdeler er lik null, det vil si at b + d 0 ad + bc 0 Den frste ligningen gir b d. Setter vi dette inn i d Lsningsforslag til utvalgte ogaver i kaittel I dette kaittelet har mange av ogavene et mindre teoretisk reg enn i de foregaende kaitlene, og jeg regner derfor med at lrebokas eksemler og fasit er dekkende

Detaljer

Stoff som i boka står i kap 4, men som er. 10. Februar Ifi, UiO

Stoff som i boka står i kap 4, men som er. 10. Februar Ifi, UiO INF5110 V2010 Stoff som i boka står i kap 4, men som er generelt stoff om grammatikker 10. Februar 2010 Stein Krogdahl Ifi, UiO Oppgaver som gjennomgås 16/2: - Spørsmålene på foil 35 og 36 fra 9/10 - Finn

Detaljer

EKSAMEN. Emne: Algoritmer og datastrukturer

EKSAMEN. Emne: Algoritmer og datastrukturer 1 EKSAMEN Emnekode: ITF20006 000 Dato: 19. mai 2010 Emne: Algoritmer og datastrukturer Eksamenstid: 09:00 til 13:00 Hjelpemidler: 8 A4-sider (4 ark) med egne notater Faglærer: Gunnar Misund Oppgavesettet

Detaljer

MAT1140: Kort sammendrag av grafteorien

MAT1140: Kort sammendrag av grafteorien MAT1140: Kort sammendrag av grafteorien Dette notatet gir en kort oversikt over den delen av grafteorien som er gjennomgått i MAT1140 høsten 2013. Vekten er på den logiske oppbygningen, og jeg har utelatt

Detaljer

Hvor raskt klarer vi å sortere?

Hvor raskt klarer vi å sortere? Sortering Sorteringsproblemet Gitt en array med n elementer som kan sammenlignes med hverandre: Finn en ordning (eller permutasjon) av elementene slik at de står i stigende (evt. avtagende) rekkefølge

Detaljer

EKSAMEN. Dato: 28. mai 2018 Eksamenstid: 09:00 13:00

EKSAMEN. Dato: 28. mai 2018 Eksamenstid: 09:00 13:00 EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 28. mai 2018 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet

Detaljer

PG 4200 Algoritmer og datastrukturer Innlevering 2

PG 4200 Algoritmer og datastrukturer Innlevering 2 PG 4200 Algoritmer og datastrukturer Innlevering 2 Frist: Mandag 21.april 2014 kl 23.55 Utdelt materiale: Se zip-filen innlevering2.zip. Innlevering: Lever en zip-fil som inneholder følgende: PG4200_innlevering_2.pdf:

Detaljer

Grunnleggende Grafalgoritmer

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 å

Detaljer

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

MAUMAT644 ALGEBRA vår 2016 Første samling Runar Ile MAUMAT644 ALGEBRA vår 2016 Første samling Runar Ile 1 Introduksjon: Grupper og ringer Ringer En ring er et sted hvor du kan addere, subtrahere og multiplisere. Hvis du også kan dividere kalles ringen for

Detaljer