Rettede, ikke-sykliske grafer (DAG)

Like dokumenter
INF Algoritmer og datastrukturer

INF1020 Algoritmer og datastrukturer GRAFER

INF Algoritmer og datastrukturer

IN Algoritmer og datastrukturer

INF Algoritmer og datastrukturer

Obligatorisk oppgave 2 - inf

Korteste vei i en vektet graf uten negative kanter

INF Algoritmer og datastrukturer

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

INF Algoritmer og datastrukturer

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

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

INF Algoritmer og datastrukturer

INF1020 Algoritmer og datastrukturer GRAFER

Obligatorisk oppgave 2 inf

Dijkstras algoritme. Her finnes det også (minst) en riktig rekkefølge for Relax, men den må vi oppdage litt etter hvert.

Alle mot alle. Åttende forelesning. (eller eller Bellman-Ford, eller BFS, alt ettersom) fra alle noder.

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

Eksamen iin115 og IN110, 15. mai 1997 Side 2 Oppgave 1 Trær 55 % Vi skal i denne oppgaven se på en form for søkestrukturer som er spesielt godt egnet

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Grunnleggende Grafteori

PG4200 Algoritmer og datastrukturer Forelesning 10

INF Algoritmer og datastrukturer

INF1020 Algoritmer og datastrukturer GRAFER

Vi skal se på grafalgoritmer for:

Korteste Vei I. Lars Vidar Magnusson Kapittel 24 Hvordan finne korteste vei Egenskaper ved korteste vei

Dijkstras algoritme Spørsmål

Dagens plan: INF Algoritmer og datastrukturer. Eksempel. Binære Relasjoner

Løsningsforslag - Korteste vei

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

Løsningsforslag for utvalgte oppgaver fra kapittel 9

INF Algoritmer og datastrukturer

Teoriøving 7 + litt om Ford-Fulkerson. Magnus Lie Hetland

Grunnleggende Grafalgoritmer

Dagens plan. INF Algoritmer og datastrukturer. Koding av tegn. Huffman-koding

Korteste vei problemet (seksjon 15.3)

Oppgave 3 a. Antagelser i oppgaveteksten. INF1020 Algoritmer og datastrukturer. Oppgave 3. Eksempelgraf

IN Algoritmer og datastrukturer

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

Kap 9 Tre Sist oppdatert 15.03

MAT1030 Forelesning 22

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

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

Likning- bingo ark 1

Anvendelser av grafer

INF2220: Forelesning 1. Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel )

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Øvingsforelesning Korteste vei: Alle til alle

Algoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2

klassen Vin må få en ny variabel Vin neste alle personvariable (personpekere) i listeklassen må byttes til Vin

INF Algoritmer og datastrukturer. Hva er INF2220? Algoritmer og datastrukturer

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer

Dijkstras algoritme. Her finnes det også (minst) en riktig rekkefølge for Relax, men den må vi oppdage litt etter hvert.

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

Kompleksitet. IN algoritmer og datastrukturer Plenumstime / repetisjon

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

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

Minimum Spenntrær - Kruskal & Prim

Norsk informatikkolympiade runde

MAT1030 Forelesning 25

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

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

Ny/utsatt EKSAMEN. Dato: 6. januar 2017 Eksamenstid: 09:00 13:00

INF2810: Funksjonell Programmering. Lokale variabler. Og trær.

INF Algoritmer og datastrukturer

Forelesning 25. MAT1030 Diskret Matematikk. Litt repetisjon. Litt repetisjon. Forelesning 25: Trær. Roger Antonsen

INF Algoritmer og datastrukturer

Eksamen i tdt4120 Algoritmer og datastrukturer

MAT1030 Forelesning 22

Kombinatorikk. MAT1030 Diskret Matematikk. Oppsummering av regneprinsipper

MAT1030 Diskret Matematikk

MAT1030 Forelesning 25

LO118D Forelesning 10 (DM)

Grunnleggende Grafalgoritmer II

MAT1030 Diskret Matematikk

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Svarforslag til ukeoppgaver til INF 4130

EKSAMEN. Dato: 18. mai 2017 Eksamenstid: 09:00 13:00

Forelesning 24. Grafer og trær. Dag Normann april Vektede grafer. En kommunegraf

Vektede grafer. MAT1030 Diskret matematikk. En kommunegraf. En kommunegraf. Oppgave

Transkript:

Rettede, ikke-sykliske grafer (DAG) Dersom vi vet at grafen ikke inneholder løkker, kan vi lage en forbedret versjon av Dijkstras algoritme ved å forandre metoden for å velge neste kjente node. Den nye regelen er at vi velger nodene i en topologisk ordning. Nårvivelgerennodev, vet vi at den har riktig korteste avstand: Fordi den topologiske ordningen garanterer at den valgte noden ikke har inngående kanter fra ukjente noder, kan ikke avstanden til denne noden bli forandret senere. Merk at dette gjelder selv om vi tillater negative avstander! Tidsforbruk: O( V + E ) Ark 1 av 8 Forelesning 18.10.2004

Eksempel INF1020 Algoritmer og datastrukturer V 1 1 2 3 V 2 10 3 3 V 3 1 V 7 8 V 4 1 2 4 6 V 8 V 5 4 V 6 v kjent avstand vei v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8??? Hva hvis vi ønsker å ha v 2 som startnode? Forelesning 18.10.2004 Ark 2 av 8

Aktivitetsgrafer En veldig viktig anvendelse av DAG-er er i prosjektplanlegging: Vi har en mengde aktiviteter som hver tar en viss tid å gjennomføre. I tillegg er aktivitetene avhengige av hverandre, på den måten at noen aktiviteter ikke kan startes før visse andre aktiviteter er avsluttet. Eksempel: Husbygging Aktiviteter: Grunnmuren tar 4 dager Veggene tar 5 dager Gulvet tar 4 dager Taket tar 3 dager Vinduene tar 2 dager Det elektrisk anlegget tar 2 dager Vann og kloakk tar 4 dager Takrennene tar 1 dag Avhengigheter: Grunnmuren avhenger av vann og kloakk Veggene avhenger av grunnmuren Gulvet avhenger av grunnmuren Taket avhenger av veggene Vinduene avhenger av veggene El-anlegget avhenger av gulv, vegger og tak Takrennene avhenger av taket Forelesning 18.10.2004 Ark 3 av 8

Disse opplysningene kan overføres til en såkalt aktivitetsgraf: Hver aktivitet blir et nodeobjekt. Aktivitetens varighet (lengde) blir en variabel (vekt) i nodeobjektet. Avhengighetene modelleres ved rettede, uvektede kanter: Det går en kant fra node v til node w dersom aktivitet w er direkte avhengig av aktivitet v. Vann kloakk Grunn mur Vegger 5 d. Gulv Vindu 2 d. Tak 3 d. Takrenner 1 d. Elanlegg 2 d. Forelesning 18.10.2004 Ark 4 av 8

Typiske spørsmål for prosjektplanlegging: Kan prosjektet gjennomføres? Hva er minste totale gjennomførelsestid? Hvilke aktiviteter kan bli forsinket, og med hvor lenge, uten at totaltiden for prosjektet øker? Hvilke aktiveteter er kritiske, i betydningen at de må gjennomføres på fastsatt tid hvis prosjektet skal bli ferdig i tide? I kursets siste obligatoriske oppgave skal dere implementere algoritmer som svarer på disse spørsmålene for en tilfeldig aktivitetsgraf. Vi skal se på en annen metode som går ut på å gjøre om aktivitetsgrafen til en hendelsesgraf. Hovedpoenget er å flytte vektene fra nodene til kantene, slik at vi kan bruke varianter av korteste-vei algoritmen. Forelesning 18.10.2004 Ark 5 av 8

Hendelsesgrafer Hver node i en hendelsesgraf representerer at en aktivetet (og alle dens forgjengere) i aktivitetsgrafen er avsluttet. Hendelser som kan nås fra en node v, kan ikke settes i gang før node v er ferdig. Aktivitetene er nå representert ved kanter i stedet for ved noder. Oversettelsen fra aktivitetsgrafer til hendelsesgrafer kan foregå automatisk eller manuelt (for hånd). Dersom en aktivetet er avhengig av flere andre aktiveteter, kan det være nødvendig å legge til hjelpekanter og hjelpenoder for at grafene skal uttrykke akkurat de samme avhengighetene. Forelesning 18.10.2004 Ark 6 av 8

Eksempel: Husbyggingen Vann kloakk Grunn mur Vegger 5 d. Gulv Vindu 2 d. Tak 3 d. Takrenner 1 d. Elanlegg 2 d. Forelesning 18.10.2004 Ark 7 av 8

For å finne tidligste avslutningstid for prosjektet trenger vi bare å finne den lengste veien fra den første hendelsen. For hver node kan vi også finne tidligste avslutningstid og seneste tidspunkt som en node kan bli ferdig uten at den forsinker prosjektet. Slakken til en kant i hendelsesgrafen forteller hvor mye den tilhørende aktiviteten kan bli forsinket uten av totaltiden til prosjektet øker. Slakk(v,w) = seneste avslutningstid for w tidligste avslutningstid for v kostnaden fra v til w Aktiviteter som har null slakk, er kritiske aktiviteter. Forelesning 18.10.2004 Ark 8 av 8