Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

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

Liknende presentasjoner


Presentasjon om: "INF 295 Forelesning 15 - kap 9 Grafer Hans Fr. Nordhaug (Ola Bø)"— Utskrift av presentasjonen:

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

2 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

3 Graf

4 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

5 Graf

6 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

7

8 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

9

10

11 Definisjoner Grad Urettet graf Graden er antall kanter noden er en del av Rettet graf Inngraden er antall innkanter Utgraden er antall utkanter

12 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

13 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

14 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

15

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

17

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

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

20 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

21 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


Laste ned ppt "INF 295 Forelesning 15 - kap 9 Grafer Hans Fr. Nordhaug (Ola Bø)"

Liknende presentasjoner


Annonser fra Google