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

Slides:



Advertisements
Liknende presentasjoner
Gjenfinningssystemer og verktøy II
Advertisements

@ TDT4120 Algoritmer og datastrukturer Trær og søking i dem, samt litt diverse emner Åsmund Eldhuset asmunde idi.ntnu.no.
TDT4120 Algoritmer og datastrukturer Trær og søking i dem, samt litt diverse emner Kristian Veøy
The Travelling Salesperson. LOG530 Distribusjonsplanlegging 2 2 Et forsyningsskip skal starte fra VestBase for å betjene 10 forskjellig installasjoner.
En innføring i spillet: Dobbeltkrig – Grønn
Korteste vei. LOG530 Distribusjonsplanlegging 2 2 Ofte står en overfor ønsket om å finne korteste kjørerute fra et gitt utgangspunkt til et ønsket bestemmelsessted.
Ulike sorteringsmetoder Kompleksitet av dem
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF 4130: Algoritmer: Design og effektivitet Eksamensdag:15. desember 2010.
Øvingsforelesning 9 Flytnettverk, maksimum flyt og maksimum bipartitt matching Jon Marius Venstad Redigert og forelest av Gleb Sizov.
Forside Korteste sti BFS Modifikasjon Dijkstra Eksempel Korrekthet Analyse Øving Spørsmål Dijkstras algoritme Åsmund Eldhuset asmunde *at* stud.ntnu.no.
@ TDT4120 Algoritmer og datastrukturer Trær og søking i dem, samt litt diverse emner Åsmund Eldhuset asmunde idi.ntnu.no.
Dijkstras algoritme Åsmund Eldhuset asmunde *at* stud.ntnu.no
Teoriøving 4 (1) Strongly connected component: ”det maksimale settet med noder slik at for alle nodepar (u,v) i settet finnes kantene u -> v og v -> u.
Øvingsforelesning 9 Flytnettverk, maksimum flyt og
Eksempel AOA (Activity On Arc)
1 Øvingsforelesning Andreas Knudsen Nils Grimsmo
Øvingsforelesning 3 Grafer, BFS, DFS og hashing
Korrekt dybde først-søk
Øvingsforelesning 12 Redusering av problemer,
Øvingsforelesning 2 Trær og søking i dem, samt litt diverse emner Kristian Veøy
Alg. Dat Øvingsforelesning 3 Grafer, BFS, DFS og hashing Børge Rødsjø
Øvingsforelesning Magnus Haug
Reiserute med maksimal opplevelse. LOG530 Distribusjonsplanlegging 2 2 I følgende eksempel er det en turist som ønsker å velge kjøreruten med mest severdigheter,
The Postmans Problem. LOG530 Distribusjonsplanlegging 2 2 Mista har fått i oppdrag å vedlikeholde veiene i landsdelen. Dette er et eksempel på den klassiske.
Komplekse tall Naturlige tall
1 Kap 08 Kø. 2 Kø - Definisjon En kø (eng queue) er en lineær struktur hvor elementer kan innsetttes kun i den ene enden av listen, kalt bak, og fjernes.
Kap 10 Graf.
Randomisering av deltakere i eksperiment
INF 295 Algoritmer og datastrukturer Forelesning 21 Merge, Quick og Bøtte, Radix og ekstern sortering Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 7 ADT Lister, Stakker og Køer Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 1 - kapittel 1 Introduksjon Hans F. Nordhaug (Ola Bø) (Ketil Danielsen, 2007)
INF 295 forelesning 14 - kap 8 Disjunkt mengde ADT Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 9a Søketrær Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 8 Trær Hans Fr. Nordhaug (Ola Bø)
INF 295 forelesning 13 - kap 6 Prioritetskø (Heap) Hans Fr. Nordhaug (Ola Bø)
INF 295 Forelesning 16 - kap 9 Minimalt spenntre og korteste vei i grafer Hans Fredrik Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 11 Når RAM ikke strekker til - B-trær og Utvidbar hashing Hans Fr. Nordhaug (Ola Bø)
INF 295 Forelesning 17 - kap 9 Korteste vei i grafer Hans Fr. Nordhaug (Ola Bø)
INF 295 Forelesning 20 - Kapittel 7 Boble-, innstikk-, Shell-, Heap-, Quick-, Mergesortering Hans Fr. Nordhaug (Ola Bø)
Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 4 Algoritmeanalyse Hans Fr. Nordhaug (Ola Bø)
INF 295 forelesning 13 - kap 6 Andre prioritetskøer Hans Fr. Nordhaug (Ola Bø)
INF 295 Forelesning 18 - kap 9 Aktivitetsgrafer
INF 295 Algoritmer og datastrukturer Forelesning 6 ADT Lister, Stakker og Køer Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 9b Balanserte (binære) trær Hans Fr. Nordhaug.
INF 295 Forelesning 19 - Dynamisk programmering Korteste vei alle til alle (Floyd) Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 10 Invarianter og Hashing Hans Fr. Nordhaug (Ola Bø)
Hovedfagspresentasjon
INF 4130 Eksamen 2008 Gjennomgang.
Magnus Haug Algoritmer og Datastrukturer
INF2820 Datalingvistikk – V2012
INF 295 forelesning 12 Repetisjon per 17. februar Hans F. Nordhaug (Ola Bø)
Alg. Dat Øvingsforelesning 11 Dynamisk programmering, grådighet
INF 295 Algoritmer og datastrukturer Forelesning 5 Algoritmeanalyse Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 22 Teknikker for algoritmeutvikling Hans Fr. Nordhaug/ Ola Bø.
Kontekstfri grammatikk Endelig mengde T av terminal(symbol)er Endelig mengde V av ikke-terminal(symbol)er Startsymbol S Endelig mengde P av produksjoner.
Sterke og 2-sammenhengende komponeneter, DFS
Praktisk Midtveisevaluering av kurset («femminutterslapper») i pausen. Undervisningsfri neste uke (ingen forelesninger eller grupper). NM i programmering.
Trekkstrukturer Bygges opp fra en mengde trekk f,g,h,… og en mengde atomære verdier a,b,c,… Defineres som en DAG (directed acyclic graph), det vil si en.
INF 295 Algoritmer og datastrukturer Web-spider Oblig 3 Hans Fr. Nordhaug (Ola Bø)
Inf1000 (Uke 5) Arrayer, filer og tekst
Korteste vei. LOG530 Distribusjonsplanlegging 2 2 Ofte står en overfor ønsket om å finne korteste kjørerute fra et gitt utgangspunkt til et ønsket bestemmelsessted.
LOG530 Distribusjonsplanlegging
Matematikk 1 årskurs 26. oktober 2009
Kapittel 12 Samlingar Samlingar og datastrukturar Ei samling (collection) blir brukt til å oppbevare og handtere andre objekt ArrayList – klassen.
Sannsynlighet og kombinatorikk
INF 295 Algoritmer og datastrukturer Forelesning 23 Kompleksitet Hans Fr. Nordhaug/ Ola Bø.
Livsstilsending - uke 5 -
5702 Geografisk analyse Nettverksanalyse. Evaluering av nettverksstruktur Nettverksdiameter Diameteren på et nettverk representerer maksimum antall.
1 Øvingsforelesning 4 Topologisk sortering Minimale spenntrær Håkon Jacobsen
Utskrift av presentasjonen:

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

Graf

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

Graf

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

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

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

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

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

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

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

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.

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.

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

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