1 / 21

INF 295 Forelesning 15 - kap 9 Grafer

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.

umed
Télécharger la présentation

INF 295 Forelesning 15 - kap 9 Grafer

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

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

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

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

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

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

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

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

More Related