Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

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.

Liknende presentasjoner


Presentasjon om: "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."— Utskrift av presentasjonen:

1 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 ”

2 (2) spenntrær Det minimale spenntreet til en graf er det ”billigste” settet med kanter som fremdeles gjør det mulig at det finnes en vei mellom alle nodepar (gjerne indirekte) Tenk på problemet å forbinde en øygruppe med fastlandet vha broer.

3 Øygruppe-bro-problemet.

4 Topologisk sortering Kan kun brukes på DAG (Directed Asyclic Graph) Ordne alle nodene på en lang rekke slik at ALLE piler går mot høyre. Kan bruke dybde først søk for å oppnå dette.

5 Topologisk sortering Kjør DFS på grafen, når en node er ferdigbehandlet, dytt den på en stack. Etter alle noder er ferdigbehandlet vil den rekkefølgen bli som på stacken (øverste fremst).

6 DFS(G) ( 0.5: i <- 0 ) 1: for each vertex u V[G] 2: Do color[u] <- white 3: parent[u] <- nil 4: time <- 0 5: for each vertex u V[G] 6: do if color[u] = white (6.5: i = i + 1 ) 7: DFS-Visit(u) DFS-Visit(u) 1: color[u] <- gray 2: d[u] <- time <- time + 1 3: for each v є Adj[v] 4: do if color[v] = white 5: then parent[v] <- u 6: DFS-Visit(v) 7: color[u] <- black 8: f[u] <- time<- time + 1

7 (3) Definisjoner Tre-kant: Kant i dybde-først-treet. (u,v) er bare en Tre-kant hvis v ble funnet via kanten (u,v) Tilbake-kant: en kant som går fra en node i dybde-først treet til en forgjenger. (kanter tilbake til seg selv er også tilbake-kanter) Fremover-kant: de kantene som ikke er tre- kanter men som forbinder en node til en etterkommer i dybdeførst treet. Kryss kant: alle andre kanter.

8 (4) Definisjoner Trygg kant: Gitt A, et subsett av det minimale spenntreet, kanten (u,v) er en trygg kant hvis den kan legges til A og A fremdeles er et minimum spenntre. Lett kant: Gitt et snitt gjennom en graf, så er kanten (u,v) lett hvis det er kanten med minst vekt som går over snittet. Respekt: et kutt respekterer et subsett hvis det ikke skjærer over noen kanter som inngår i subsettet

9 (5) DAG Antall forskjellige veier: 32 Kan løses rekursivt: tell(Node n){ if first return 1; return sum( tell(barnenoder) ); Lite effektivt, mye omarbeid (memoisering)

10 (5) DAG Kan bruke topologisk sortering til å legge noder i rekkefølge. Ta nodene og jobb fra venstre til høyre, begynn med verdi 1 (en) på første node, 0 på resten. For hver node (u), send verdien på noden til alle barn (v). (pluss u sin verdi til v sin verdi) Gå til neste node og gjenta. Siste node vil til slutt ha verdi lik antall veier å komme dit.


Laste ned ppt "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."

Liknende presentasjoner


Annonser fra Google