graph theory prof amir geva eitan netzer. g=(v,e) v – vertex e – edges

19
Graph theory Prof Amir Geva Eitan

Upload: juniper-mcdaniel

Post on 18-Jan-2016

231 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Graph theory Prof Amir Geva Eitan Netzer. G=(V,E) V – Vertex E – Edges

Graph theory

Prof Amir GevaEitan Netzer

Page 2: Graph theory Prof Amir Geva Eitan Netzer. G=(V,E) V – Vertex E – Edges

G=(V,E)

•V – Vertex•E – Edges

Page 3: Graph theory Prof Amir Geva Eitan Netzer. G=(V,E) V – Vertex E – Edges

Directed Graph

Page 4: Graph theory Prof Amir Geva Eitan Netzer. G=(V,E) V – Vertex E – Edges

Undirected Graph

Page 5: Graph theory Prof Amir Geva Eitan Netzer. G=(V,E) V – Vertex E – Edges

Weighted Graph

Page 6: Graph theory Prof Amir Geva Eitan Netzer. G=(V,E) V – Vertex E – Edges

Representation

Page 7: Graph theory Prof Amir Geva Eitan Netzer. G=(V,E) V – Vertex E – Edges

BFS

Shortest distance from vertex s to each vertex vWork on directed and undirected

First all are whiteDone with vertex blackElse grey

Time and space

Page 8: Graph theory Prof Amir Geva Eitan Netzer. G=(V,E) V – Vertex E – Edges

BFSBFS(G,s) for each vertex u V[G]-{s} ∈

do color[u]<-white d[u]<-∞ π [u]<-NULL

color[s]<-gray d[s]<-0π [s]<-NULL Q<-{s} while Q≠ φ

do u<-head[Q] for each v Adj[u] ∈

do if color[v] = White then color[v]<- Grayd[v]<- d[u]+1 π [v]<- u Enqueue(Q,v)

Dequeue(Q) color[u]<- Black

Page 9: Graph theory Prof Amir Geva Eitan Netzer. G=(V,E) V – Vertex E – Edges

BFS

Page 10: Graph theory Prof Amir Geva Eitan Netzer. G=(V,E) V – Vertex E – Edges

DFS

Search all vertexes starting at vertex sNot have to be minimal

Time

Space

Page 11: Graph theory Prof Amir Geva Eitan Netzer. G=(V,E) V – Vertex E – Edges

DFSDFS(G,s) for each vertex u V[G] ∈

do color[u]<-white π [u]<-NULL

time <- 0 for each vertex u V[G] ∈

do if color[u] = white then DFS-Visit(u)

DFS-Visit(u) color[u]<-Gray d[u] <- time <- time +1 for each vertex v Adj[u] ∈

do if color[v] =white then π [v]<-u

DFS-Visit(v) color[u] = Black f[u] <- time <- time +1

Page 12: Graph theory Prof Amir Geva Eitan Netzer. G=(V,E) V – Vertex E – Edges

Improve weight

Relax(u,v,w) if d[v]>d[u] + w(u,v)

then d[v]<- d[u] + w(u,v) π [v]<- u

Page 13: Graph theory Prof Amir Geva Eitan Netzer. G=(V,E) V – Vertex E – Edges

Dijkstra's algorithm

Find shortest path from vertex s to all other vertexes.Work on weighted directed and undirected.But non negative weights

List or array

Heap

Page 14: Graph theory Prof Amir Geva Eitan Netzer. G=(V,E) V – Vertex E – Edges

DijkstraDijkstra(G,w,s) for each vertex u V[G] ∈

do d[u]<-∞ π [u]<-NULL

d[s]<-0 S <- φ Q<-V[G] while Q≠ φ

do u<- extract-min(Q) S<-S {u} ∪for each vertex v Adj[u] , Q∈

do Relax(u,v,w)

Page 15: Graph theory Prof Amir Geva Eitan Netzer. G=(V,E) V – Vertex E – Edges
Page 16: Graph theory Prof Amir Geva Eitan Netzer. G=(V,E) V – Vertex E – Edges

Negative example

Page 17: Graph theory Prof Amir Geva Eitan Netzer. G=(V,E) V – Vertex E – Edges

Bellman–Ford algorithm

Find shortest path from vertex s to all other vertexes.Work on weighted directed can handle negative weights

Page 18: Graph theory Prof Amir Geva Eitan Netzer. G=(V,E) V – Vertex E – Edges

Bellman–FordBellman-ford(G,w,s) for each vertex u V[G] ∈

do d[u]<-∞ π [u]<-NULL

d[s]<-0 for i <- 1 to |V(G)|-1

do for each edge (u,v) E[G] ∈do Relax(u,v,w)

for each edge (u,v) E[G] ∈do if d[v]>d[u]+w(u,v)

then return FALSE return TRUE

Page 19: Graph theory Prof Amir Geva Eitan Netzer. G=(V,E) V – Vertex E – Edges