inf 295 forelesning 15 - kap 9 grafer

21
INF 295 Forelesning 15 - kap 9 Grafer Hans Fr. Nordhaug (Ola Bø)

Upload: umed

Post on 15-Jan-2016

39 views

Category:

Documents


0 download

DESCRIPTION

INF 295 Forelesning 15 - kap 9 Grafer. Hans Fr. Nordhaug (Ola Bø). Innhold. Definisjoner Graf Rettet eller urettet Sammenhengende, sterkt eller svakt Vei Lengde og kostnad Enkel eller ikke enkel Syklisk eller asyklisk Grad Anvendelser Grafrepresentasjoner Topologisk sortering. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: INF 295 Forelesning 15 - kap 9  Grafer

INF 295 Forelesning 15 - kap 9

Grafer

Hans Fr. Nordhaug

(Ola Bø)

Page 2: INF 295 Forelesning 15 - kap 9  Grafer

Innhold Definisjoner

Graf Rettet eller urettet Sammenhengende, sterkt eller svakt

Vei Lengde og kostnad Enkel eller ikke enkel Syklisk eller asyklisk

Grad Anvendelser Grafrepresentasjoner Topologisk sortering

Page 3: INF 295 Forelesning 15 - kap 9  Grafer

Graf

Page 4: INF 295 Forelesning 15 - kap 9  Grafer

Definisjoner

En graf G=(V,E) består av En mengde noder (vertices) V En mengde kanter (edges) E |V| er antall noder |E| er antall kanter

En kant er et par av noder (u,v) En kant modellerer at u er relatert til v En kant kan ha vekt eller kostnad

Rettet eller urettet graf Hvis rekkefølgen u, v har betydning sier vi at grafen er rettet,

ellers er den urettet En rettet (directed) graf kalles en digraf

Page 5: INF 295 Forelesning 15 - kap 9  Grafer

Graf

Page 6: INF 295 Forelesning 15 - kap 9  Grafer

Definisjoner

En vei er en sekvens av noder w1, w2, w3, slik at alle (wi, wi+1) er en kant Veilengden er antall kanter Veikostnaden er summen av kostnader (vekter) langs kantene. Vei fra wi til wi har lengde 0 - en slik vei kalles en loop. (ikke

betraktet i dette kurset) En vei er enkel hvis alle nodene er forskjellige (unntatt muligens

første og siste) En løkke (sykel) i en rettet graf har v1=vn og lengde >0

Hvis veien er enkel er det en enkel løkke I en urettet graf er u,v,u ikke regnet som en sykel Hvis grafen er rettet, kreves det at alle kanter i løkken være

forskjellig

Page 7: INF 295 Forelesning 15 - kap 9  Grafer
Page 8: INF 295 Forelesning 15 - kap 9  Grafer

Definisjoner

En rettet graf er asyklisk dersom den ikke har noen løkker

DAG er forkortelse for Directed Acyclic Graph - Rettet asyklisk graf

En urettet graf er sammenhengende hvis det finnes en vei fra hver node til alle andre noder

Rettet graf kan være Svakt sammenhengende

hvis tilsvarende urettet graf er sammenhengende Sterkt sammenhengende

hvis det finnes en vei fra hver node til alle andre noder

Page 9: INF 295 Forelesning 15 - kap 9  Grafer
Page 10: INF 295 Forelesning 15 - kap 9  Grafer
Page 11: INF 295 Forelesning 15 - kap 9  Grafer

Definisjoner

Grad Urettet graf

Graden er antall kanter noden er en del av Rettet graf

Inngraden er antall innkanter Utgraden er antall utkanter

Page 12: INF 295 Forelesning 15 - kap 9  Grafer

Anvendelser Vanlig bruk av grafer

Trær er grafer Noder er veikryss, kanter er veier

Kostnad kan være avstand, fartsbegrensning, tranghet Noder er flyplasser, kanter er flyruter

Kostnad kan være avstand, pris eller tid Noder er kurs, kanter uttrykker bygger på Noder er aktiviteter, kanter uttrykker avhengighet Kanter er aktiviteter med kostnad lik tidsforbruk, Noder

er milepæler

Page 13: INF 295 Forelesning 15 - kap 9  Grafer

Anvendelser

Noder er reservoarer, Kanter er rørledninger Noder er sammenkoplinger, Kanter er ledninger Noder er personer, Kanter er forbindelser Noder er personer, Kanter er slektskap Noder er objekter, Kanter er meldinger Noder er rom, kanter er dører Noder er waypoints, kanter er kurser

Page 14: INF 295 Forelesning 15 - kap 9  Grafer

Representasjon av grafer

Naboskapsmatrise A(u,v)=true hvis det går kant fra u til v eller A(u,v)=5, hvis kostnaden for kanten u,v er fem

Ingen vei indikeres med Størrelse er O(|V|2) -

uspiselig ved store grafer med få veier brukbart ved tette grafer

Naboskapslister. Hver node har en liste over naboer Egnet ved glisne grafer

Egen naboskapsmatrise (Java spesifikk) Hver node har en array av naboer Egnet når naboene er kjent når noden initieres

Page 15: INF 295 Forelesning 15 - kap 9  Grafer
Page 16: INF 295 Forelesning 15 - kap 9  Grafer

Topologisk sortering

Ordning av noder fra en DAG slik at hvis det går en sti fra node a til node b, så kommer b etter a i ordninga Umulig på sykliske grafer Ordninga er ikke nødvendigvis entydig

Algoritme Gi alle noder en inngrad tilsvarende antall inn-kanter Start med node med inngrad=0 For hver utkant, reduser inngraden i tilsvarende nabo Fortsett til det ikke er flere noder igjen. I utgangspunktet O(|V|2)

kan forbedres med kø av noder med inngrad 0 blir da O(|E|+|V|)

Page 17: INF 295 Forelesning 15 - kap 9  Grafer
Page 18: INF 295 Forelesning 15 - kap 9  Grafer

Traversering av grafer (vs. trær) Dybde først

Prøv stadig videre til neste node Bredde først

Prøv alle noder som kan rekkes fra en node i tur og orden Å besøke en node

i et tre er å behandle nodens data i en graf er å merke den som besøkt!

Traversering En tretraversering besøker alle treets noder En graftraversering som begynner i en bestemt node besøker

bare noder den kan rekke Er grafen sammenhengende blir alle noder besøkt i en slik

traversering.

Page 19: INF 295 Forelesning 15 - kap 9  Grafer

Dybde først

Gitt startnoden besøkes først startnoden, så en nabo av startnoden, så en nabo av en nabo av startnoden osv. til node med ingen ubesøkte naboer. Går så et skritt tilbake og prøver å finne ubesøkte naboer der.

Kan implementeres rekursivt.

Page 20: INF 295 Forelesning 15 - kap 9  Grafer

Bredde først

Gitt startnoden, besøkes først alle naboer til startnoden. Deretter besøkes alle naboene til naboene til startnoden - inntil alle tilgjengelige noder er besøkt.

Implementeres ved hjelp av kø. En node merkes som besøkt når den legges i køen. Prosedyre:

Plassere startnoden i køen

Gjenta til køen er tom

Hent node fra køen

Legg alle ubesøkte naboer i køen

Page 21: INF 295 Forelesning 15 - kap 9  Grafer

Oppsummering Definisjoner

Graf Rettet eller urettet Sammenhengende, sterkt eller svakt

Vei Lengde og kostnad Enkel eller ikke enkel Syklisk eller asyklisk

Grad Anvendelser Grafrepresentasjoner Topologisk sortering