Presentation is loading. Please wait.

Presentation is loading. Please wait.

Def BFS(G, source): for v in G: color[v] <- WHITE Q <- MAKE-QUEUE() ADD(Q, source) color[source] <- GRAY while Q not empty: v <- REMOVE(Q) color[v] <-

Similar presentations


Presentation on theme: "Def BFS(G, source): for v in G: color[v] <- WHITE Q <- MAKE-QUEUE() ADD(Q, source) color[source] <- GRAY while Q not empty: v <- REMOVE(Q) color[v] <-"— Presentation transcript:

1 def BFS(G, source): for v in G: color[v] <- WHITE Q <- MAKE-QUEUE() ADD(Q, source) color[source] <- GRAY while Q not empty: v <- REMOVE(Q) color[v] <- BLACK for u adjacent to v: if color[u] == WHITE color[u] = GRAY ADD(Q, u) Initialize Relax

2 def DIJKSTRA(G, source): for v in G: color[v] dist[v]+weight(u,v) dist[u] = dist[v]+weight(u,v) parent[u] <- v if color[u] == WHITE: color[u] <- GRAY ADD(Q, u) Initialize Relax

3 def PRIM(G, source): for v in G: color[v] weight(u,v): dist[u] = weight(u,v) parent[u] <- v if color[u] == WHITE: color[u] <- GRAY ADD(Q, u) Initialize Relax

4 SIMPLIFICATION (Dijkstra)

5 def DIJKSTRA(G, source): for v in G: color[v] dist[v]+weight(u,v) dist[u] = dist[v]+weight(u,v) parent[u] <- v if color[u] == WHITE: color[u] <- GRAY ADD(Q, u) Initialize Relax

6 def DIJKSTRA(G, source): for v in G: color[v] dist[v]+weight(u,v) dist[u] = dist[v]+weight(u,v) parent[u] <- v if color[u] == WHITE: color[u] <- GRAY ADD(Q, u) Initialize Relax

7 def DIJKSTRA(G, source): for v in G: color[v] dist[v]+weight(u,v) dist[u] = dist[v]+weight(u,v) parent[u] <- v Initialize Relax

8 SIMPLIFICATION (PRIM)

9 def PRIM(G, source): for v in G: color[v] weight(u,v): dist[u] = weight(u,v) parent[u] <- v if color[u] == WHITE: color[u] <- GRAY ADD(Q, u) Initialize Relax

10 def PRIM(G, source): for v in G: color[v] weight(u,v): dist[u] = weight(u,v) parent[u] <- v if color[u] == WHITE: color[u] <- GRAY ADD(Q, u) Initialize Relax

11 def PRIM(G, source): for v in G: color[v] weight(u,v): dist[u] = weight(u,v) parent[u] <- v Initialize Relax

12 BFS utilizing dist[], parent[] fields dist[] keeps track of the level parent[] keep track of how vertex was reached

13 def DIJKSTRA(G, source): for v in G: color[v] <- WHITE dist[v] <- INF parent[v] <- NIL dist[source] <- 0 Q <- MAKE-QUEUE() ADD(Q, source) color[source] <- GRAY while Q not empty: v <- REMOVE(Q) color[v] <- BLACK for u adjacent to v: if color[u] == WHITE: dist[u] = dist[v]+1 parent[u] <- v color[u] <- GRAY ADD(Q, u) Initialize Relax


Download ppt "Def BFS(G, source): for v in G: color[v] <- WHITE Q <- MAKE-QUEUE() ADD(Q, source) color[source] <- GRAY while Q not empty: v <- REMOVE(Q) color[v] <-"

Similar presentations


Ads by Google