graph theory prof amir geva eitan netzer. g=(v,e) v – vertex e – edges
TRANSCRIPT
![Page 1: Graph theory Prof Amir Geva Eitan Netzer. G=(V,E) V – Vertex E – Edges](https://reader036.vdocuments.site/reader036/viewer/2022062519/5697bff71a28abf838cbeccc/html5/thumbnails/1.jpg)
Graph theory
Prof Amir GevaEitan Netzer
![Page 2: Graph theory Prof Amir Geva Eitan Netzer. G=(V,E) V – Vertex E – Edges](https://reader036.vdocuments.site/reader036/viewer/2022062519/5697bff71a28abf838cbeccc/html5/thumbnails/2.jpg)
G=(V,E)
•V – Vertex•E – Edges
![Page 3: Graph theory Prof Amir Geva Eitan Netzer. G=(V,E) V – Vertex E – Edges](https://reader036.vdocuments.site/reader036/viewer/2022062519/5697bff71a28abf838cbeccc/html5/thumbnails/3.jpg)
Directed Graph
![Page 4: Graph theory Prof Amir Geva Eitan Netzer. G=(V,E) V – Vertex E – Edges](https://reader036.vdocuments.site/reader036/viewer/2022062519/5697bff71a28abf838cbeccc/html5/thumbnails/4.jpg)
Undirected Graph
![Page 5: Graph theory Prof Amir Geva Eitan Netzer. G=(V,E) V – Vertex E – Edges](https://reader036.vdocuments.site/reader036/viewer/2022062519/5697bff71a28abf838cbeccc/html5/thumbnails/5.jpg)
Weighted Graph
![Page 6: Graph theory Prof Amir Geva Eitan Netzer. G=(V,E) V – Vertex E – Edges](https://reader036.vdocuments.site/reader036/viewer/2022062519/5697bff71a28abf838cbeccc/html5/thumbnails/6.jpg)
Representation
![Page 7: Graph theory Prof Amir Geva Eitan Netzer. G=(V,E) V – Vertex E – Edges](https://reader036.vdocuments.site/reader036/viewer/2022062519/5697bff71a28abf838cbeccc/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062519/5697bff71a28abf838cbeccc/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062519/5697bff71a28abf838cbeccc/html5/thumbnails/9.jpg)
BFS
![Page 10: Graph theory Prof Amir Geva Eitan Netzer. G=(V,E) V – Vertex E – Edges](https://reader036.vdocuments.site/reader036/viewer/2022062519/5697bff71a28abf838cbeccc/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062519/5697bff71a28abf838cbeccc/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062519/5697bff71a28abf838cbeccc/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062519/5697bff71a28abf838cbeccc/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062519/5697bff71a28abf838cbeccc/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062519/5697bff71a28abf838cbeccc/html5/thumbnails/15.jpg)
![Page 16: Graph theory Prof Amir Geva Eitan Netzer. G=(V,E) V – Vertex E – Edges](https://reader036.vdocuments.site/reader036/viewer/2022062519/5697bff71a28abf838cbeccc/html5/thumbnails/16.jpg)
Negative example
![Page 17: Graph theory Prof Amir Geva Eitan Netzer. G=(V,E) V – Vertex E – Edges](https://reader036.vdocuments.site/reader036/viewer/2022062519/5697bff71a28abf838cbeccc/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062519/5697bff71a28abf838cbeccc/html5/thumbnails/18.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062519/5697bff71a28abf838cbeccc/html5/thumbnails/19.jpg)