Grunnleggende Grafalgoritmer II

Størrelse: px
Begynne med side:

Download "Grunnleggende Grafalgoritmer II"

Transkript

1 Grunnleggende Grafalgoritmer II Lars Vidar Magnusson March 17, 2015 Kapittel 22 Dybde-først søk Topologisk sortering Relasjonen til backtracking

2 Dybde-Først Søk Dybde-først søk i motsetning til et bredde-først søk vil gå så dypt som mulig før den returnerer. Input er en graf G = (V, E) som kan være enten rettet eller urettet. Output er to tidsstempler v.d og v.f som angir henholdsvis når en node oppdages og når den er ferdig utforsket. Tidsstemplene vil være til nytte for algoritmer vi skal se på senere. Koden i boka bygger også et dybde-først tre ved å lagre v.π. Algoritmen vi presenterer her garanterer å besøke alle noder i.e. den bygger en skog av dybde-først trær. Dette er ikke et krav.

3 Ideen bak Dybde-Først Søk I et dybde-først søk så begynner vi å undersøke en node så snart den oppdages Vi bruker ingen kø som i et bredde-først søk Dybde-først søket benytter seg av fargekoder under kjøringen av algoritmen white - hittils uoppdagede noder gray - oppdagede men ikke ferdig utforsket black - ferdig utforskede noder Tidstempelene følger følgende regler. Unike heltall mellom 1 og 2 V. v V : 1 v.d < v.f 2 V

4 Pseudokode for Dybde-Først Søk (DFS) Pseudokoden for dybde-først søk (DFS) er listet under. Koden bruker en global variabel time for å holde styr på tiden. Denne koden initialiserer algoritmen og sørger for at alle node blir besøkt. DFS kaller algoritmen DFS-Visit for å utføre selve søket.

5 Pseudokode for Dybde-Først Søk (DFS-Visit) Pseudokode for DFS-Visit er listet under. Denne algoritmen er ansvarlig for å utføre dybde-først søket.

6 Hvordan DFS Fungerer Figuren under viser hvordan DFS kjører på en eksempelgraf.

7 Analyse av DFS I et dybde-først søk vil alle noden utforskes én gang. Alle kanter besøkes én gang Dette gir oss en kjøretid på Θ(V + E). Dette er nesten det samme som BFS. Forskjellen mellom de to er at DFS besøker alle nodene og undersøker alle kantene i.e. Θ ikke O

8 Egenskaper ved DFS For alle u og v så gjelder en av de følgende forholdene. u.d < u.f < v.d < v.f eller v.d < v.f < u.d < u.f. Intervallene [u.d, u.f ] og [v.d, v.f ] er ikke overlappende i.e hverken u eller v er etterkommer av den andre. u.d < v.d < v.f < u.f. v er etterkommer av u. v.d < u.d < u.f < v.f. u er etterkommer av v. Det vil aldri skje at u.d < v.d < u.f < v.f. Dette er analogt med at d og f for de ulike nodene danner balanserte paranteser. v er en etterkommer av u bare hvis ved tiden u.d eksisterer en sti fra u til v med bare hvite noder (unntatt u).

9 Visulisering av Egenskapene ved DFS Figuren under viser hvordan egenskapene ved DFS henger sammen.

10 Klassifisering av Kanter Egenskapene til et dybde-først søk kan brukes til å klassifisere kantene i en graf. Tre-kant (tree): en kant som er med i dybde-først treet. Tilbake-kant (back): en kant fra en etterkommer til en forgjenger Forover-kant (forward): en kant fra en forgjenger til en etterkommer som ikke er med i dybde-først treet. Kryss-kant (cross): er alle andre kanter. I en urettet graf kan disse skillene by på noen problemer siden en kant går begge veier. I disse tilfellene klassifiseres den som den først passende. I en urettet graf får vi bare tre- og tilbake-kanter.

11 Visualisering av Klassifisering av Kanter Figuren under viser hvordan kantene i en graf kan klassifiseres utifra egenskapene til et dybde-først søk.

12 Topologisk Sortering Vi skal se på hvordan vi kan utføre et såkalt topologisk sortering av rettet graf uten sykler (directed acyclic graph) (DAG). Vi vil finne en lineær rekkefølge av noder slik at hvis en kant (u, v) E så må u komme før v. Algoritmen er egnet for å sortere strukturer og prosesser som har en delvis rekkefølge. a > b og b > c a > c Vi kan også ha a og b som vi ikke vet noe om rekkefølgen på. Topologisk sortering av en DAG kan alltid finne en total rekkefølge utifra en delvis rekkefølge.

13 Eksempel På Delvis Rekkefølge Figuren under viser en graf som har en delvis rekkefølge.

14 Pseudokode for Topological-Sort Pseudokoden for Topological-Sort er listet under Pseudokoden impliserer en sortering av nodene på dets avslutningstid. Dette er strengt tatt ikke nødvendig. Vi kan skrive ut nodene direkte når de avsluttes. Da vil rekkefølgen vi er ute etter være den omvendte av det som blir skrevet ut. Vi kan legge til avsluttede noder på begynnelsen av en lenket liste.

15 Hvordan Topological-Sort Fungerer Figuren under viser en graf som har en delvis rekkefølge samt den lineære rekkefølgen som Topological-Sort genererer.

16 Analyse av Topological-Sort Siden algoritmen er identisk med DFS bortsett fra utskrift/innsetting av fullførte noder, så vil også kjøretiden være den samme. Kjøretiden for Topological-Sort er Θ(V + E).

17 Korrektheten til Topological-Sort For å bevise at Topological-Sort er korrekt må vi bare bevise at hvis (u, v) E så må v.f < u.f. Når vi utforsker (u, v) så må u være grå, og v en av følgende. Hvis v er hvit så blir v en etterkommer av u og da vet vi at v.f < u.f. Hvis v er svart så er v allerede ferdig utforsket i.e. v.f < u.f v kan ikke være grå, for det vil gitt grafen en tilbake-kant, som ikke er mulig i en DAG (se fagboka).

18 Relasjonen Mellom Dybde-Først Søk og Backtracking Backtracking er en algoritmestrategi som er relatert til dybde-først søk. Vi prøver hver mulighet så snart de oppdages og går tilbake (backtrack) når vi når en situasjon som ikke kan lede til en løsning. Backtracking-løsninger er gjerne rekursive. Vi bygger en løsning inkrementelt Prøver mulighetene sekvensielt i hvert rekursive kall De potensielle muligheten kan sees som noder i en graf, og at de rekursive kallene er et søk gjennom grafen. Grafen må ikke alltid være eksplisitt. Den kan bygges etter behov.

19 Maze-Problemet Maze-problemet går ut på å finne en vei gjennom en labyrint gitt et startpunkt. Dette kan enkelt løses ved å utforske alle gyldige veier i labyrinten rekursivt. Hvert rekursive kall som utforsker en ny posisjon i labyrinten kan sees som en node i en graf med alle posisjonene som kan nås fra den posisjonen som nabonodene.

20 Dronning-Problemet Dronning-problemet er et problem med historisk klang. Problemet går ut på plassere n dronninger på et n n sjakkbrett slik at de ikke angriper hverandre. Dette problemet kan løses på mange ulike måter. Teste alle mulige kombinasjoner (veldig ineffektivt) Teste litt smartere ved å unngå plasseringer på samme rad og kolonne. Bygge løsningen inkrementelt med backtracking De mulige posisjonene for hver dronning kan sees som noder i en graf og backtracking algoritmen som en dybde-først søk.

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

Minimum Spenntrær - Kruskal & Prim

Minimum Spenntrær - Kruskal & Prim Minimum Spenntrær - Kruskal & Prim Lars Vidar Magnusson 4.4.2014 Kapittel 23 Kruskal algoritmen Prim algoritmen Kruskal Algoritmen Kruskal algoritmen kan beskrives med følgende punkter. Vi har en en sammenkoblet

Detaljer

Alg. Dat. Øvingsforelesning 3. Grafer, BFS, DFS og hashing. Børge Rødsjø rodsjo@stud.ntnu.no

Alg. Dat. Øvingsforelesning 3. Grafer, BFS, DFS og hashing. Børge Rødsjø rodsjo@stud.ntnu.no Alg. Dat Øvingsforelesning 3 Grafer, BFS, DFS og hashing Børge Rødsjø rodsjo@stud.ntnu.no Dagens tema Grafer Terminologi Representasjon av grafer Bredde først søk (BFS) Dybde først søk (DFS) Hashing Hashfunksjoner,

Detaljer

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

Øvingsforelesning 4. Topologisk sortering, Strongly Connected Components og Minimale spenntrær. Magnus Botnan Øvingsforelesning 4 Topologisk sortering, Strongly Connected Components og Minimale spenntrær Magnus Botnan botnan@stud.ntnu.no 09/10/09 1 I dag Topologisk Sortering Sterke Komponenter Minimale Spenntrær

Detaljer

Lars Vidar Magnusson

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

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

Alg. Dat. Øvingsforelesning 3. Grafer, BFS, DFS og hashing

Alg. Dat. Øvingsforelesning 3. Grafer, BFS, DFS og hashing Alg. Dat Øvingsforelesning 3 Grafer, BFS, DFS og hashing Dagens tema Grafer Terminologi Representasjon av grafer Bredde først søk (BFS) Dybde først søk (DFS) Hashing Hashfunksjoner, hashtabeller Kollisjonshåndtering

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

Grunnleggende Grafalgoritmer III

Grunnleggende Grafalgoritmer III Grunnleggende Grafalgoritmer III Lars Vidar Magnusson 26.3.2014 Kapittel 21 og 22 Usammenhengende-sett Strongly-connected components Usammenhengende Sett Usammenhengende sett er ikke en grafalgoritme i

Detaljer

Algdat - øvingsforelesning

Algdat - øvingsforelesning Algdat - øvingsforelesning Topologisk sortering og minimale spenntrær Nils Barlaug Dagens plan 1. 2. 3. 4. 5. Praktisk og dagens plan Topologisk sortering Minimale spenntrær a. Kruskal b. Prim Tips til

Detaljer

Løsningsforslag for Obligatorisk Oppgave 3. Algoritmer og Datastrukturer ITF20006

Løsningsforslag for Obligatorisk Oppgave 3. Algoritmer og Datastrukturer ITF20006 Løsningsforslag for Obligatorisk Oppgave 3 Algoritmer og Datastrukturer ITF20006 Lars Vidar Magnusson Frist 28.03.14 Den tredje obligatoriske oppgaven tar for seg forelesning 9 til 13, som dreier seg om

Detaljer

Korteste Vei I. Lars Vidar Magnusson 9.4.2014. Kapittel 24 Hvordan finne korteste vei Egenskaper ved korteste vei

Korteste Vei I. Lars Vidar Magnusson 9.4.2014. Kapittel 24 Hvordan finne korteste vei Egenskaper ved korteste vei Korteste Vei I Lars Vidar Magnusson 9.4.2014 Kapittel 24 Hvordan finne korteste vei Egenskaper ved korteste vei Korteste Vei Problemet I denne forelesningen skal vi se på hvordan vi kan finne korteste

Detaljer

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

Øvingsforelesning 2 - TDT4120. Grafer og hashing. Benjamin Bjørnseth Øvingsforelesning 2 - TDT4120 Grafer og hashing Benjamin Bjørnseth Informasjon Studasser algdat@idi.ntnu.no Program Presentasjon av øving 2 Grafer og traverseringsalgoritmer BFS, DFS Hashing Gjennomgang

Detaljer

PG4200 Algoritmer og datastrukturer Forelesning 10

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

Detaljer

Lars Vidar Magnusson Kapittel 13 Rød-Svarte (Red-Black) trær Rotasjoner Insetting Sletting

Lars Vidar Magnusson Kapittel 13 Rød-Svarte (Red-Black) trær Rotasjoner Insetting Sletting Rød-Svarte Trær Lars Vidar Magnusson 21.2.2014 Kapittel 13 Rød-Svarte (Red-Black) trær Rotasjoner Insetting Sletting Rød-Svarte Trær Rød-Svarte trær (red-black trees) er en variasjon binære søketrær som

Detaljer

IN Algoritmer og datastrukturer

IN Algoritmer og datastrukturer IN2010 - Algoritmer og datastrukturer HØSTEN 2018 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 4: Grafer I Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 1 / 54

Detaljer

Sortering i Lineær Tid

Sortering i Lineær Tid Sortering i Lineær Tid Lars Vidar Magnusson 5.2.2014 Kapittel 8 Counting Sort Radix Sort Bucket Sort Sammenligningsbasert Sortering Sorteringsalgoritmene vi har sett på så langt har alle vært sammenligningsbaserte

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

INF Algoritmer og datastrukturer

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:

Detaljer

Backtracking som løsningsmetode

Backtracking som løsningsmetode Backtracking Backtracking som løsningsmetode Backtracking brukes til å løse problemer der løsningene kan beskrives som en sekvens med steg eller valg Kan enten finne én løsning eller alle løsninger Bygger

Detaljer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer Institutt for datateknikk og informasjonsvitenskap Eksamensoppgave i TDT4120 Algoritmer og datastrukturer Faglig kontakt under eksamen Magnus Lie Hetland Telefon 918 51 949 Eksamensdato 4. desember, 2017

Detaljer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer Eksamensoppgave i TDT4120 Algoritmer og datastrukturer Faglig kontakt under eksamen Magnus Lie Hetland Tlf. 91851949 Eksamensdato 11. august 2014 Eksamenstid (fra til) 0900 1300 Hjelpemiddelkode D. Ingen

Detaljer

Korteste Vei II. Lars Vidar Magnusson 11.4.2014. Kapittel 24 Bellman-Ford algoritmen Dijkstra algoritmen

Korteste Vei II. Lars Vidar Magnusson 11.4.2014. Kapittel 24 Bellman-Ford algoritmen Dijkstra algoritmen Korteste Vei II Lars Vidar Magnusson 11.4.2014 Kapittel 24 Bellman-Ford algoritmen Dijkstra algoritmen Bellman-Ford Algoritmen Bellman-Ford er en single-source korteste vei algoritme. Den tillater negative

Detaljer

O, what a tangled. Fjerde forelesning. Robot-eksemplet som ikke ble gjennomgått sist blir frivillig selvstudium (ut fra foilene :-)

O, what a tangled. Fjerde forelesning. Robot-eksemplet som ikke ble gjennomgått sist blir frivillig selvstudium (ut fra foilene :-) Dagens oppvarming 1 O, what a tangled Fjerde forelesning Robot-eksemplet som ikke ble gjennomgått sist blir frivillig selvstudium (ut fra foilene :-) O, what a tangled web we weave / When first we practice

Detaljer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer Eksamensoppgave i TDT4120 Algoritmer og datastrukturer Faglig kontakt under eksamen Magnus Lie Hetland Tlf. 91851949 Eksamensdato 11. august 2014 Eksamenstid (fra til) 0900 1300 Hjelpemiddelkode D. Ingen

Detaljer

Vi skal se på grafalgoritmer for:

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?

Detaljer

INF Algoritmer og datastrukturer

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

Detaljer

Dijkstras algoritme. Her finnes det også (minst) en riktig rekkefølge for Relax, men den må vi oppdage litt etter hvert.

Dijkstras algoritme. Her finnes det også (minst) en riktig rekkefølge for Relax, men den må vi oppdage litt etter hvert. Her finnes det også (minst) en riktig rekkefølge for Relax, men den må vi oppdage litt etter hvert. Tenk vann som sprer seg i rør: Vi behandler krysningspunktene i den rekkefølgen de fylles. Det må gi

Detaljer

Minimum spenntrær. Lars Vidar Magnusson Kapittel 23. Kruskal Prim

Minimum spenntrær. Lars Vidar Magnusson Kapittel 23. Kruskal Prim Minimum Spenntrær Lars Vidar Magnusson 2.4.2014 Kapittel 23 Minimum spenntrær Kruskal Prim Minimum Spenntrær Et spenntre er et tre som spenner over alle nodene i en graf G = (V, E). Et minimum spenntre

Detaljer

Oppgave 3 a. Antagelser i oppgaveteksten. INF1020 Algoritmer og datastrukturer. Oppgave 3. Eksempelgraf

Oppgave 3 a. Antagelser i oppgaveteksten. INF1020 Algoritmer og datastrukturer. Oppgave 3. Eksempelgraf Oppgave 3 3 a IN1020 Algoritmer og datastrukturer orelesning 15: Gjennomgang av eksamen vår 2001 oppgave 3 Arild Waaler Institutt for informatikk, Universitetet i Oslo 11. desember 2006 Oppgave 3 a. Antagelser

Detaljer

IN Algoritmer og datastrukturer

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

Detaljer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer Eksamensoppgave i TDT4120 Algoritmer og datastrukturer Faglig kontakt under eksamen Magnus Lie Hetland Tlf.!! 91851949 Eksamensdato! 15. august 2013 Eksamenstid (fra til)! 0900 1300 Hjelpemiddelkode D.

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

N-dronningproblemet Obligatorisk oppgave 1 I120, H-2000

N-dronningproblemet Obligatorisk oppgave 1 I120, H-2000 N-dronningproblemet Obligatorisk oppgave 1 I120, H-2000 Innleveringsfrist : Mandag, 2. Oktober, kl.10:00 Besvarelsen legges i arkivskapet på UA i skuff merket I120 Innhold: utskrift av godt dokumentert

Detaljer

MAT1030 Forelesning 25

MAT1030 Forelesning 25 MAT1030 Forelesning 25 Trær Dag Normann - 27. april 2010 (Sist oppdatert: 2010-04-27 14:16) Forelesning 25 Litt repetisjon Vi har snakket om grafer og trær. Av begreper vi så på var følgende: Eulerstier

Detaljer

Løsningsforslag for eksamen i fag SIF8010 Algoritmer og datastrukturer Lørdag 9. august 2003, kl

Løsningsforslag for eksamen i fag SIF8010 Algoritmer og datastrukturer Lørdag 9. august 2003, kl SIF8010 2003-08-09 Stud.-nr: Antall sider: 1 Løsningsforslag for eksamen i fag SIF8010 Algoritmer og datastrukturer Lørdag 9. august 2003, kl. 0900 1500 Faglig kontakt under eksamen: Arne Halaas, tlf.

Detaljer

Algoritmer og Datastrukturer

Algoritmer og Datastrukturer Eksamen i Algoritmer og Datastrukturer IAI 21899 Høgskolen i Østfold Avdeling for informatikk og automatisering Lørdag 15. desember 2001, kl. 09.00-14.00 Hjelpemidler: Alle trykte og skrevne hjelpemidler.

Detaljer

Forelesning 25. MAT1030 Diskret Matematikk. Litt repetisjon. Litt repetisjon. Forelesning 25: Trær. Dag Normann

Forelesning 25. MAT1030 Diskret Matematikk. Litt repetisjon. Litt repetisjon. Forelesning 25: Trær. Dag Normann MAT1030 Diskret Matematikk Forelesning 25: Trær Dag Normann Matematisk Institutt, Universitetet i Oslo Forelesning 25 27. april 2010 (Sist oppdatert: 2010-04-27 14:16) MAT1030 Diskret Matematikk 27. april

Detaljer

Dijkstras algoritme Spørsmål

Dijkstras algoritme Spørsmål :: Forside s algoritme Åsmund Eldhuset asmunde *at* stud.ntnu.no folk.ntnu.no/asmunde/algdat/dijkstra.pdf :: Vi er ofte interessert i å finne korteste, raskeste eller billigste vei mellom to punkter Gods-

Detaljer

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer Eksamensdato 3. desember 2012 Eksamenstid 0900 1300 Sensurdato 3. januar 2013 Språk/målform Bokmål Kontakt under eksamen Magnus Lie Hetland (tlf.

Detaljer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer Eksamensoppgave i TDT4120 Algoritmer og datastrukturer Faglig kontakt under eksamen Magnus Lie Hetland Tlf.!! 91851949 Eksamensdato! 15. august 2013 Eksamenstid (fra til)! 0900 1300 Hjelpemiddelkode D.

Detaljer

MAT1030 Diskret Matematikk

MAT1030 Diskret Matematikk MAT1030 Diskret Matematikk Forelesning 25: Trær Dag Normann Matematisk Institutt, Universitetet i Oslo 27. april 2010 (Sist oppdatert: 2010-04-27 14:15) Forelesning 25 MAT1030 Diskret Matematikk 27. april

Detaljer

Heapsort. Lars Vidar Magnusson Kapittel 6 Heaps Heapsort Prioritetskøer

Heapsort. Lars Vidar Magnusson Kapittel 6 Heaps Heapsort Prioritetskøer Heapsort Lars Vidar Magnusson 24.1.2014 Kapittel 6 Heaps Heapsort Prioritetskøer Sorterings Problemet Sorterings problemet er et av de mest fundementalske problemene innen informatikken. Vi sorterer typisk

Detaljer

Eksamen i fag SIF8010 Algoritmer og datastrukturer Lørdag 9. august 2003, kl

Eksamen i fag SIF8010 Algoritmer og datastrukturer Lørdag 9. august 2003, kl SIF8010 2003-08-09 Stud.-nr: Antall sider: 1 Eksamen i fag SIF8010 Algoritmer og datastrukturer Lørdag 9. august 2003, kl. 0900 1500 Faglig kontakt under eksamen: Arne Halaas, tlf. 41661982; Magnus Lie

Detaljer

GRAF-TRAVERSERING. Hvordan utforske en labyrint uten å gå seg vill. Rekkefølge på kanter: Dybde-Først Søk A B C D E F G H I J K L M N O P

GRAF-TRAVERSERING. Hvordan utforske en labyrint uten å gå seg vill. Rekkefølge på kanter: Dybde-Først Søk A B C D E F G H I J K L M N O P R-TRVRSRIN ybde-ørst Søk redde-ørst Søk ruk av MetodeMal som designmønster (Template Method Pattern H Hvordan utforske en labyrint uten å gå seg vill. t dybde-først søk (S) i en urettet graf er som å vandre

Detaljer

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

Hashtabeller. Lars Vidar Magnusson Kapittel 11 Direkte adressering Hashtabeller Chaining Åpen-adressering Hashtabeller Lars Vidar Magnusson 12.2.2014 Kapittel 11 Direkte adressering Hashtabeller Chaining Åpen-adressering Dictionaries Mange applikasjoner trenger dynamiske sett som bare har dictionary oparsjonene

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

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

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

Detaljer

Eksamen i tdt4120 Algoritmer og datastrukturer

Eksamen i tdt4120 Algoritmer og datastrukturer Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Side 1 av 5 Oppgavestillere: Magnus Lie Hetland Jon Marius Venstad Kvalitetskontroll: Magnar Nedland Faglig

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

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

Kontinuasjonseksamen i fag SIF8010 Algoritmer og Datastrukturer Torsdag 9. August 2001, kl Student nr.: Side 1 av 5 Kontinuasjonseksamen i fag SIF8010 Algoritmer og Datastrukturer Torsdag 9. August 2001, kl 0900-1500 Faglig kontakt under eksamen: Arne Halaas, tlf. 73 593442. Hjelpemidler: Alle

Detaljer

INF1020 Algoritmer og datastrukturer GRAFER

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

Detaljer

Backtracking som løsningsmetode

Backtracking som løsningsmetode Backtracking Backtracking som løsningsmetode Backtracking løser problemer der løsningene kan beskrives som en sekvens med steg eller valg Kan enten finne én løsning eller alle løsninger Bygger opp løsningen(e)

Detaljer

Lars Vidar Magnusson

Lars Vidar Magnusson B-Trær Lars Vidar Magnusson 5.3.2014 Kapittel 18 B-trær Standard operasjoner Sletting B-Trær B-trær er balanserte trær som er designet for å fungere bra på sekundære lagringsmedium e.g. harddisk. Ligner

Detaljer

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer N0 - lgoritmer og datastrukturer ØSTN 0 nstitutt for informatikk, Universitetet i Oslo orelesning : rafer ngrid hieh Yu (fi, UiO) N0 0.0.0 / 0 agens plan: ybde-først søk Strongly connected components jesteforelesning:

Detaljer

MAT1030 Forelesning 22

MAT1030 Forelesning 22 MAT1030 Forelesning 22 Grafteori Roger Antonsen - 21. april 2009 (Sist oppdatert: 2009-04-21 15:13) Introduksjon Introduksjon Vi skal nå over til kapittel 10 & grafteori. Grafer fins overalt rundt oss!

Detaljer

Live life and be merry

Live life and be merry Om grådighet og først litt mer DP. Live life and be merry Ellevte forelesning for tomorrow you may catch some disgusting skin disease. [Edmund Blackadder] 1 2 g i t k i s K o rt Grådighet All form for

Detaljer

Algdat Eksamensforelesning. Nils Barlaug

Algdat Eksamensforelesning. Nils Barlaug Algdat Eksamensforelesning Nils Barlaug Eksamen Pensum Eksamen Pensum Oppgaver du har gjort og ting du har lest Eksamen Pensum Oppgave på eksamen Oppgaver du har gjort og ting du har lest Eksamen Pensum

Detaljer

Metode for å lære ny algoritme. Dagens forelesingsplan : time 1. Dybde-Først-Søk : Labyrint. Dybde-Først-Søk : Krigsstrategi. Dybde-Først-Søk : Hva

Metode for å lære ny algoritme. Dagens forelesingsplan : time 1. Dybde-Først-Søk : Labyrint. Dybde-Først-Søk : Krigsstrategi. Dybde-Først-Søk : Hva agens orelesingsplan : time 1 Metoe or å lære ny algoritme Gjennomgang av ybe-først-søk 5-10 min, Sune Gjennomgang av teori-øving 2 5-10 min, Sanve Presentasjon av teori-øving 3 5-10 min, Sanve Se litt

Detaljer

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

Introduksjon. MAT1030 Diskret Matematikk. Introduksjon. En graf. Forelesning 22: Grafteori. Roger Antonsen MAT1030 Diskret Matematikk Forelesning 22: Grafteori Roger Antonsen Institutt for informatikk, Universitetet i Oslo Introduksjon 21. april 2009 (Sist oppdatert: 2009-04-21 15:13) MAT1030 Diskret Matematikk

Detaljer

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

Introduksjon. MAT1030 Diskret matematikk. Søkealgoritmer for grafer. En graf Introduksjon MAT13 Diskret matematikk Forelesning 21: Grafteori Roger Antonsen Matematisk Institutt, Universitetet i Oslo 9. april 28 Vi skal nå over til kapittel 1 & grafteori. Grafer fins overalt rundt

Detaljer

MAT1030 Diskret matematikk

MAT1030 Diskret matematikk MAT1030 Diskret matematikk Forelesning 21: Grafteori Roger Antonsen Matematisk Institutt, Universitetet i Oslo 9. april 2008 Introduksjon Vi skal nå over til kapittel 10 & grafteori. Grafer fins overalt

Detaljer

Fra A til B. Syvende forelesning

Fra A til B. Syvende forelesning Fra A til B Syvende forelesning 1 Amøbeproblemet nok en gang. Hva er 1+2+4+ +n/2? 2 Skal la være å trekke frem binærtrefiguren igjen ;-) La oss se på det på en litt annen måte, som passer dagens tema (fra

Detaljer

Alle mot alle. Åttende forelesning. (eller eller Bellman-Ford, eller BFS, alt ettersom) fra alle noder.

Alle mot alle. Åttende forelesning. (eller eller Bellman-Ford, eller BFS, alt ettersom) fra alle noder. Enkel alle-til-allealgoritme: Kjør Dijkstra (eller eller Bellman-Ford, eller BFS, alt ettersom) fra alle noder. Kan fungere for spinkle grafer blir dyrt ellers. Alle mot alle Åttende forelesning 1 Dijkstra

Detaljer

Vi skal se på grafalgoritmer for:

Vi skal se på grafalgoritmer for: Grafalgoritmer Vi skal se på grafalgoritmer for: raversering: Nåbarhet: Oppsøk alle nodene i grafen en og bare en gang, på en eller annen systematisk måte innes det en vei fra en node til en annen node?

Detaljer

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer Eksamensdato 18. august 2011 Eksamenstid 0900 1300 Sensurdato 8. september Språk/målform Bokmål Kontakt under eksamen Magnus Lie Hetland (tlf.

Detaljer

INF Algoritmer og datastrukturer

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

Detaljer

INF Algoritmer og datastrukturer

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

Detaljer

København 20 Stockholm

København 20 Stockholm UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 115 Algoritmer og datastrukturer Eksamensdag: 26. mai 2001 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 7 sider. Vedlegg:

Detaljer

GRAFER. Korteste vei i en vektet graf uten negative kanter. Korteste vei, en-til-alle, for: Minimale spenntrær

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

Detaljer

Det første grafteoretiske problem: Broene i Königsberg

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

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

Studentnummer: Side 1 av 1. Løsningsforslag, Eksamen i TDT4120 Algoritmer og datastrukturer August 2005

Studentnummer: Side 1 av 1. Løsningsforslag, Eksamen i TDT4120 Algoritmer og datastrukturer August 2005 Studentnummer: Side 1 av 1 Løsningsforslag, Eksamen i TDT4120 Algoritmer og datastrukturer August 2005 Faglige kontakter under eksamen: Magnus Lie Hetland, Arne Halaas Tillatte hjelpemidler: Bestemt enkel

Detaljer

Oppgave 1. Sekvenser (20%)

Oppgave 1. Sekvenser (20%) Det matematisk-naturvitenskapelige fakultet UNIVERSITETET I BERGEN Eksamen i emnet I 20 - Algoritmer, datastrukturer og programmering Mandag 2.Mai 200, kl. 09-5. Ingen hjelpemidler tillatt. Oppgavesettet

Detaljer

Teoriøving 7 + litt om Ford-Fulkerson. Magnus Lie Hetland

Teoriøving 7 + litt om Ford-Fulkerson. Magnus Lie Hetland Teoriøving 7 + litt om Ford-Fulkerson Magnus Lie Hetland Oppgave 1 a s 7 t 3 x 4 2 2 8 2 u 6 v 3 w Bruk DIJKSTRA eller BELLMAN-FORD og finn minste avstand fra s til de andre nodene. Svar/utregning (DIJKSTRA):

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

MAT1030 Forelesning 25

MAT1030 Forelesning 25 MAT1030 Forelesning 25 Trær Roger Antonsen - 29. april 2009 (Sist oppdatert: 2009-04-29 00:28) Forelesning 25 Litt repetisjon Vi har snakket om grafer og trær. Av begreper vi så på var følgende. Eulerstier

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

INF Algoritmer og datastrukturer

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

Detaljer

IN1010 V18, Obligatorisk oppgave 5

IN1010 V18, Obligatorisk oppgave 5 IN1010 V18, Obligatorisk oppgave 5 Innleveringsfrist: Tirsdag 17.04. kl 10:00 Versjon 1.3 (12.04.2018) Sist modifisert av Silje Merethe Dahl. Innledning I denne oppgaven skal du bruke rekursjon til å lage

Detaljer

Forelesning 25. MAT1030 Diskret Matematikk. Litt repetisjon. Litt repetisjon. Forelesning 25: Trær. Roger Antonsen

Forelesning 25. MAT1030 Diskret Matematikk. Litt repetisjon. Litt repetisjon. Forelesning 25: Trær. Roger Antonsen MAT1030 Diskret Matematikk Forelesning 25: Trær Roger Antonsen Institutt for informatikk, Universitetet i Oslo Forelesning 25 29. april 2009 (Sist oppdatert: 2009-04-29 00:28) MAT1030 Diskret Matematikk

Detaljer

Lineær sortering. Radix sort

Lineær sortering. Radix sort Fra forrige gang 1 Lineær sortering Radix sort 2 Sorter hvert siffer for seg Bruk en stabil sortering (f.eks. CS) for å bevare arbeidet så langt Vi må begynne med minst signifikante siffer Konstant antall

Detaljer

A study of different matching heuristics. Hovedfagspresentasjon Jan Kasper Martinsen

A study of different matching heuristics. Hovedfagspresentasjon Jan Kasper Martinsen A study of different matching heuristics Hovedfagspresentasjon Jan Kasper Martinsen (janma@ifi.uio.no) Terminologi: Graf teori En graf består av et sett med noder Nodene er tilknyttet hverandre ved hjelp

Detaljer

Høgskoleni østfold EKSAMEN. 4 dobbeltsidige ark med notater Lars Magnusson

Høgskoleni østfold EKSAMEN. 4 dobbeltsidige ark med notater Lars Magnusson Høgskoleni østfold EKSAMEN Emnekode: ITF 20006 Emne: Algoritmer og Datastrukturer Dato: 22.05.2015 Eksamenstid: kl 09.00 til kl 13.00 Hjelpemidler: Faglærer: 4 dobbeltsidige ark med notater Lars Magnusson

Detaljer

Dijkstras algoritme. Her finnes det også (minst) en riktig rekkefølge for Relax, men den må vi oppdage litt etter hvert.

Dijkstras algoritme. Her finnes det også (minst) en riktig rekkefølge for Relax, men den må vi oppdage litt etter hvert. Her finnes det også (minst) en riktig rekkefølge for Relax, men den må vi oppdage litt etter hvert. Tenk vann som sprer seg i rør: Vi behandler krysningspunktene i den rekkefølgen de fylles. Det må gi

Detaljer

Definisjon. I et binært tre har hver node enten 0, 1 eller 2 barn

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

Detaljer

Innhold. Innledning 1

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

Detaljer

MAT1030 Forelesning 22

MAT1030 Forelesning 22 MAT1030 Forelesning 22 Grafteori Dag Normann - 14. april 2010 (Sist oppdatert: 2010-04-14 12:45) Kombinatorikk Oppsummering av regneprinsipper Ordnet utvalg med repetisjon: n r Ordnet utvalg uten repetisjon:

Detaljer

Kombinatorikk. MAT1030 Diskret Matematikk. Oppsummering av regneprinsipper

Kombinatorikk. MAT1030 Diskret Matematikk. Oppsummering av regneprinsipper MAT1030 Diskret Matematikk Forelesning 22: Grafteori Dag Normann Matematisk Institutt, Universitetet i Oslo Kombinatorikk 14. april 2010 (Sist oppdatert: 2010-04-14 12:43) MAT1030 Diskret Matematikk 14.

Detaljer

MAT1030 Diskret Matematikk

MAT1030 Diskret Matematikk MAT1030 Diskret Matematikk Forelesning 22: Grafteori Dag Normann Matematisk Institutt, Universitetet i Oslo 14. april 2010 (Sist oppdatert: 2010-04-14 12:42) Kombinatorikk MAT1030 Diskret Matematikk 14.

Detaljer

Søk i tilstandsrom. Backtracking (Kap. 10) Branch-and-bound (Kap. 10) Iterativ fordypning. Dijkstras korteste sti-algoritme A*-søk (Kap.

Søk i tilstandsrom. Backtracking (Kap. 10) Branch-and-bound (Kap. 10) Iterativ fordypning. Dijkstras korteste sti-algoritme A*-søk (Kap. Søk i tilstandsrom Backtracking (Kap. 10) DFS i tilstandsrommet. Trenger lite lagerplass. Branch-and-bound (Kap. 10) BFS Trenger mye plass: må lagre alle noder som er «sett» men ikke studert. Kan også

Detaljer

Korteste vei i en vektet graf uten negative kanter

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

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Eksamen i UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamensdag: 13. desember 2011 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 7 sider. Vedlegg: INF2220 lgoritmer og datastrukturer

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF2220 Algoritmer og datastrukturer Eksamensdag: 16. desember 2013 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 8 sider.

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Eksamen i UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamensdag: 14. desember 2012 Tid for eksamen: 14:30 18:30 Oppgavesettet er på 7 sider. Vedlegg: Tillatte hjelpemidler: INF2220

Detaljer

Morfologi i Binære Bilder

Morfologi i Binære Bilder Morfologi i Binære Bilder Lars Vidar Magnusson February 26, 2018 Delkapittel 9.1 Preliminaries Delkapittel 9.2 Dilation and Erosion Delkapittel 9.3 Opening and Closing Delkapittel 9.4 The Hit-or-Miss Transformation

Detaljer

Hva er en stack? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn sist

Hva er en stack? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn sist Stack Hva er en stack? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn sist Et nytt element legges alltid på toppen av stakken Skal vi ta ut et element, tar

Detaljer

Hva er en stack? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn sist

Hva er en stack? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn sist Stack Hva er en stack? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn sist Et nytt element legges alltid på toppen av stakken Skal vi ta ut et element, tar

Detaljer

INF1020 Algoritmer og datastrukturer GRAFER

INF1020 Algoritmer og datastrukturer GRAFER GRAFER Dagens plan: Definisjon av en graf (kapittel 9.1) Grafvarianter Intern representasjon av grafer (kapittel 9.1.1) Topologisk sortering (kapittel 9.2) Korteste vei, en-til-alle, for: uvektet graf

Detaljer

LO118D Forelesning 9 (DM)

LO118D Forelesning 9 (DM) LO118D Forelesning 9 (DM) Grafteori 26.09.2007 1 Introduksjon 2 Veier og sykler 3 Hamiltonsykler og omreisende handelsmenn Graf, urettet Definisjon En graf (eller urettet graf) G består av en mengde V

Detaljer