algoritmer og datastrukturer 2 graf repræsentationer, bfs og dfs [clrs, kapitel 22.1-22.3]

21
Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS [CLRS, kapitel 22.1-22.3] Gerth Stølting Brodal

Upload: anana

Post on 05-Jan-2016

47 views

Category:

Documents


0 download

DESCRIPTION

Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS [CLRS, kapitel 22.1-22.3]. Gerth Stølting Brodal. Grafer. Uorienterede grafer. Orienterede grafer. G = ( V , E ) graf med knuder V og kanter E E : { u , v } kant mellem u og v i en uorienteret graf og - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS  [CLRS, kapitel 22.1-22.3]

Algoritmer og Datastrukturer 2

Graf repræsentationer, BFS og DFS [CLRS, kapitel 22.1-22.3]

Gerth Stølting Brodal

Page 2: Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS  [CLRS, kapitel 22.1-22.3]

Grafer

Uorienterede grafer Orienterede grafer

G = (V,E) graf med knuder V og kanter E

E : {u,v} kant mellem u og v i en uorienteret graf og

(u,v) en orienteret kant fra u til v.

n = |V| = antal knuder

m = |E| = antal kanter (forbindelser mellem knuder)

Page 3: Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS  [CLRS, kapitel 22.1-22.3]

Planar Grafer - Eulers formel

For en sammenhængende planar graf gælder:

Eulers formel: |V| - |E| + # flader = 2

Korollar: |E| ≤ 3|V| - 6

V = 5E = 7

# flader = 4

(for |V| ≥ 3, ingen selvløkker, ingen parallelle kanter)

Page 4: Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS  [CLRS, kapitel 22.1-22.3]

Hvilken løsning finder den grådige algoritme?

a) ABABGACBABAD

b) ABABGACBABAD

c) ABABGACBABAD

d) Ved ikke

0 1 32 4 5 6

A,C,D,G B,C,D,G A,B,D,G A,C,D,G B,C,D,G A,C,D,G B,C,D,G A,B,C,D,G

B A C B A B A7

Page 5: Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS  [CLRS, kapitel 22.1-22.3]
Page 6: Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS  [CLRS, kapitel 22.1-22.3]
Page 7: Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS  [CLRS, kapitel 22.1-22.3]
Page 8: Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS  [CLRS, kapitel 22.1-22.3]
Page 9: Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS  [CLRS, kapitel 22.1-22.3]

Kort over Vest-Europa 18.029.721 knuder 42.199.587 orienterede kanter

Page 10: Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS  [CLRS, kapitel 22.1-22.3]
Page 11: Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS  [CLRS, kapitel 22.1-22.3]
Page 12: Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS  [CLRS, kapitel 22.1-22.3]

Tid Hor. Ska. Ry Aar.IC

125Re

3329ICL27

RX5335

10:43

10:49

10:57

10:58

11:00

11:08

11:09

11:11

11:12

11:18

11:25

11:26

11:31

11:40

uddrag af køreplaner

Rejseplan (Horsens til Ry)Tog Ank Afg Station

IC125  10:43 Horsens

10:57 10:58 Skanderborg St11:12   Aarhus H

Re3329   11:00 Horsens11:31   Aarhus H

ICL27  11:11 Horsens

11:25 11:26 Skanderborg St11:40   Aarhus H

RX5335  10:49 Aarhus H

11:08 11:09 Skanderborg St11:18   Ry St

AlgoritmeFind tidligste knude for Ry der kan nås fra

en given start-knude i Horsens

Page 13: Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS  [CLRS, kapitel 22.1-22.3]

Graf repræsentationer: Incidenslister og incidensmatricer

Uorienterede grafer

Orienterede grafer

Plads O(n+m) Plads O(n2)

Page 14: Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS  [CLRS, kapitel 22.1-22.3]

Bredde først søgning (BFS)

Tid O(n+m)

u.π = faderen til u i BFS træet

Q = kø af grå knuder (som er forbundet til sorte knuder)

u.d = afstand til s

u.color:WHITE = knuderne endnu ikke besøgtGRAY = knuderne i køen QBLACK = knuderne besøgt

Page 15: Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS  [CLRS, kapitel 22.1-22.3]
Page 16: Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS  [CLRS, kapitel 22.1-22.3]

BFS : Udskrivning af sti fra s til v

Page 17: Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS  [CLRS, kapitel 22.1-22.3]
Page 18: Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS  [CLRS, kapitel 22.1-22.3]

Dybde Først Søgning (DFS)

Tid O(n+m)

u.π = faderen til u i DFS træet

u.d = ”discover time” for uu.f = ”finishing time” for u

u.colorWHITE = knuderne endnu ikke besøgtGRAY = knuder på rekursionsstakken BLACK = knuderne besøgt

Page 19: Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS  [CLRS, kapitel 22.1-22.3]
Page 20: Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS  [CLRS, kapitel 22.1-22.3]

= træ-kanterB= tilbage-kanterC= kryds-kanterF= fremad-kanter

Page 21: Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS  [CLRS, kapitel 22.1-22.3]

BFS Finde afstande til startknuden(afstand = antal kanter, f.eks. RushHour)

DFS Topologisk sortering Stærke sammenhængskomponenter(næste forelæsning)

BFS og DFS anvendelser