Uretta grafar (1) Mengde nodar Mengde kantar som er eit uordna par av nodar



Like dokumenter
Anvendelser av grafer

Grunnleggende Grafteori

Anvendelser av grafer

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

INF Algoritmer og datastrukturer

IN Algoritmer og datastrukturer

INF Algoritmer og datastrukturer

Korteste vei i en vektet graf uten negative kanter

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

HØGSKOLEN I BERGEN Avdeling for ingeniørutdanning

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer

TMA4140 Diskret Matematikk Høst 2016

INF Algoritmer og datastrukturer

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

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

IN Algoritmer og datastrukturer

Eksamen i tdt4120 Algoritmer og datastrukturer

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

PG4200 Algoritmer og datastrukturer Forelesning 10

INF1020 Algoritmer og datastrukturer GRAFER

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

INF1020 Algoritmer og datastrukturer GRAFER

LO118D Forelesning 9 (DM)

MAT1030 Forelesning 22

Kombinatorikk. MAT1030 Diskret Matematikk. Oppsummering av regneprinsipper

MAT1030 Diskret Matematikk

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

MAT1030 Forelesning 22

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

Grunnleggende Grafalgoritmer

Kap 9 Tre Sist oppdatert 15.03

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

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

MAT1030 Diskret matematikk

Alg. Dat. Øvingsforelesning 3. Grafer, BFS, DFS og hashing. Børge Rødsjø

Vi skal se på grafalgoritmer for:

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

SIF8010 ALGORITMER OG DATASTRUKTURER

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Vi skal se på grafalgoritmer for:

SIGNES VOTTAR. strikketeigen.com

GRAFER. Noen grafdefinisjoner. Korteste vei i en uvektet graf V 2 V 1 V 5 V 3 V 4 V 6

Grafalgoritmer: Korteste vei

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

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

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

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

Algdat - øvingsforelesning

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

MAT1030 Forelesning 25

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

Repetisjon og mer motivasjon. MAT1030 Diskret matematikk. Repetisjon og mer motivasjon

MAT1030 Diskret Matematikk

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

Løsningsforslag - Korteste vei

København 20 Stockholm

KONTSTRIKKING. Dersom det skal vere lue, genser, jakke eller skjørt, kan det vere naturleg å starte med ein høveleg kant og halve ruter.

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.

Eksamen i fag SIF8010 Algoritmer og Datastrukturer Tirsdag 14. Desember 1999, kl

Forelesning 28. Grafer og trær, eksempler. Dag Normann - 5. mai Grafer og trær. Grafer og trær. Grafer og trær

IN Algoritmer og datastrukturer

INF Algoritmer og datastrukturer

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

Forelesning 33. Repetisjon. Dag Normann mai Innledning. Kapittel 11

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

MAT1030 Diskret matematikk

Innledning. MAT1030 Diskret matematikk. Kapittel 11. Kapittel 11. Forelesning 33: Repetisjon

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

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

Disjunkte mengder ADT

Rettleiing aktivering av fritekstleverandørar i ehandel

MATEMATIKKVERKSTAD Mona Røsseland. GLASSMALERI (bokmål) Utstyr: Rammer (A3) i farga papp, pappremser, silkepapir, saks og lim

Eksamensrettleiing for vurdering av sentralt gitt eksamen. 1 Organisering av sentralt gitt skriftleg eksamen

LO118D Forelesning 10 (DM)

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

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

KappAbel 2010/11 Oppgåver 2. runde - Nynorsk

Grafteori. MAT1030 Diskret Matematikk. Repetisjon og mer motivasjon. Repetisjon og mer motivasjon. Forelesning 23: Grafteori.

GRØNNERØR GRØNNERØR RØR GRØNNE GRØNNERØR GRØNNERØR GRØNNERØR

Eksamen REA3028 Matematikk S2. Nynorsk/Bokmål

KORTESTE STI. Vektede Grafer. Korteste Sti. Dijkstra s Algoritme. Vektet Urettet Graf

Rettede, ikke-sykliske grafer (DAG)

FRÅSEGN MALME OG RØSHOL KRAFTVERK I FRÆNA KOMMUNE

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

MAT1030 Forelesning 23

MAT1030 Diskret Matematikk

Algdat-ninja på 60 minutter: Et galskapsprosjekt. Magnus Lie Hetland

Forelesning 23. MAT1030 Diskret Matematikk. Repetisjon og mer motivasjon. Repetisjon og mer motivasjon. Forelesning 23: Grafteori.

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

Begrepsundervisning. bidrag 0l å utjamne sosiale forskjellar når det gjeld borna si læring.

EKSAMENSOPPGAVE. NB! Det er ikke tillatt å levere inn kladd sammen med besvarelsen

MAT1030 Diskret Matematikk

All good things. Fjortende forelesning

Eksamen iin115, 14. mai 1998 Side 2 Oppgave 1 15 % Du skal skrive en prosedyre lagalle som i en global character array S(1:n) genererer alle sekvenser

Korteste vei problemet (seksjon 15.3)

Referat frå foreldremøte Tjødnalio barnehage

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

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Transkript:

Kapittel 13, Grafar

Uretta grafar (1) Ein uretta graf Mengde nodar Mengde kantar som er eit uordna par av nodar To nodar er naboar dersom dei er knytta saman med einkant Ein node kan ha kant til seg sjølv. Ein uretta graf er komplett dersom det finst ein kant mellom alle par av nodar

Uretta grafar (2) Talet på kantar i ein komplett graf med n nodar (n-1) + (n-2) + + 1 = ((n-1) + 1 ) / 2 * (n-1) = n(n-1)/2 Ein sti er ein sekvens av kantar som knyter saman to nodar Lengda av ein sti er talet på kantar i stien Ei uretta graf er samanhengande dersom det finst ein sti mellom eit vilkårleg par av nodar Ein sykel er ein sti der første og siste node er den same og ingen av kantane kjem fleire gonger Ein graf utan syklar blir kall asyklisk

Retta grafar (1) Kantane er ordna par av nodar. Det betyr at kanten(a, b) er ulik (b, a) Ein sti i ein retta graf er ein sekvens av retta kantar som bind saman to nodar Ein retta graf er samanhengande dersom det finst ein sti mellom eit vilkårleg par av nodar (som før, men definisjonen på sti er endra)

Retta grafar (2) Dersom ein retta graf er asyklisk, er det mulig å ordne nodane slik om der er ein kant frå A til B, så kjem A før B. Blir kalla ei topologisk ordning Topologisk ordning er viktig i forbindelse med prosjektplanlegging Eit retta tre er ein retta graf med ein spesiell node som er rot og følgjande eigenskapar Ingen nodar har kant til rota Alle ikkje-rot nodar har nøyaktig ein kant inn Der finst ein sti frå rota til alle andre nodar

Nettverk (vekta graf) Eit nettverk er ein retta graf der kvar kant har ei vekt eller ein kostnad Kan kantar med eller utan retning

Grafgjennomgangar Breidde-først Liknar nivåordning gjennomgang av tre Djupne-først Liknar preorden gjennomgang av tre Skilnaden er at grafen ikkje har ei rot. I staden for tek vi utgangspunkt i ein startnode

Breidde-først breidde-først(t) lagkø(q) q.leggtil(t) så lenge q ikkje-tom v = q.taut() viss v ikkje er besøkt legg alle v sine umerka naboar til q merk v som besøkt behandle v gjenta

Djupne-først djupne-først(t) lagstabel(s) s.leggtil(s) så lenge t ikkje-tom v = s.taut() viss v ikkje er besøkt legg alle v sine umerka naboar til s merk v som besøkt behandle v gjenta

Djupne-først, rekursiv djupne-først(node x) besøk(x) resultatliste.leggtilbak(x) for kvar node y som er nabo til x viss y ikkje er besøkt djupne-først(y) gjenta

Teste om ein graf er samanhengande Uretta graf Kan bruke breidde-først eller djupne-først og sjå om vi får besøkt alle nodane med ein vilkårleg node som startnode Retta graf Kan bruke breidde-først eller djupne-først med alle nodar som startnode og sjå at vi får besøkt alle andre nodar Finst meir effektive algoritmer

Minste spenntre (MST) Eit spenntre for ein graf inneheld alle nodane i grafen og ei undermengde av kantane slik at dei dannar eit tre Eit minste spenntre er eit spenntre det summen av vektene er minst mulig

Prims algoritme for MST prim() s = vilkårleg startnode lagminhaug(h) legg alle kantar som går ut frå s til h så lenge h ikkje tom e = h.fjernmin() viss ikkje begge endepunkta til e er med i MST - la w vere endepunktet til e som ikkje er med i MST - legg e til MST - legg alle kantar mellom w og nodar som ikkje er med i MST til h gjenta

Kortaste sti To muligheiter Færrast mulig kantar Breidde-først Billegaste stien i ein vekta graf Dijkstras algoritme Effektivi algoritme Liknar Prims algoritme Detaljar er ikkje pensum

Implementasjon av grafar Operasjonar Legge til og fjerne nodar Legge til og fjerne kantar Grafgjennomgangar (breidde-først og djupne-først) Storleik, ertom, tostring, find Kortast sti frå ein node til ein eventuelt alle andre Bestemme om to nodar er naboar Finne alle naboane til ein node Konstruere eit minste spenntre Teste om grafen er samanhengande Skisserer to implementasjonar Nabomatrise Naboliste

Naboliste (adjacency list) Todimensjonal Boolsk tabell av storleik n x n der n er talet på nodar i grafen Ordnar nodane frå 0 til n-1 Elementet i posisjon (i, j) er sann viss der er ein kant frå i til j, usann elles Om grafen er uretta, vil elementa (i, j) og (j, i) ha same verdi. Matrisa blir symmetrisk Kan også brukast for nettverk eller vekta grafar. Har ei heiltalsmatrise, eventuelt flyttalsmatrise Brukar 0, eventuelt -1 for å markere at der ikkje er ein kant

Oppgåve Nodar 11, 12, 13, 14, 15, 16, 17 Kantar (11,12), (11,14), (12,13), (12, 14), (13, 15), (13,17), (14,16), (14,17), (15,16), (15,17) (16,17) Teikn opp grafen Vis korleis den blir representert i ei nabomatrise

Naboliste Kvar node har ei liste som inneheld alle naboane God datastruktur når vi treng finne alle naboane til ein node og kvar node ha få naboar Sentral operasjon både i Prims algoritme for minste spenntre og Dijkstras algoritme for å finne kortaste sti frå ein node til alle andre Ikkje pensum