# Data Structures and Algorithms (AT70.02) Comp. Sc. and Inf. Mgmt. Asian Institute of Technology Instructor: Dr. Sumanta Guha Slide Sources: CLRS “Intro.

## Presentation on theme: "Data Structures and Algorithms (AT70.02) Comp. Sc. and Inf. Mgmt. Asian Institute of Technology Instructor: Dr. Sumanta Guha Slide Sources: CLRS “Intro."— Presentation transcript:

Data Structures and Algorithms (AT70.02) Comp. Sc. and Inf. Mgmt. Asian Institute of Technology Instructor: Dr. Sumanta Guha Slide Sources: CLRS “Intro. To Algorithms” book website (copyright McGraw Hill) adapted and supplemented

CLRS “Intro. To Algorithms” Ch. 24: Single-Source Shortest Paths

The shortest-path weight from s to v is denoted δ(s,v)

Π(v) is the predecessor of v in the shortest path to v.

Properties of shortest paths and relaxation Triangle inequality: for any edge (u,v)  E, we have δ(s,v)  δ(s,u) + w(u,v). Upper bound property: We always have d[v] ≥ δ(s,v) for all vertices v  V, and once d[v] achieves the value δ(s,v), it never changes (even with further relaxations). No-path property: If there is no path from s to v, then we always have d[v] = δ(s,v) = . Convergence property: If s …  u  v is a shortest path in G for some u, v  V, and if d[u] = δ(s,u) at any time prior to relaxing edge (u,v), then d[v] = δ(s,v) at all times afterwards. Path relaxation property: If p = (v 0, v 1, …, v k ) is a shortest path from s = v 0 to v k, and the edges of p are relaxed in the order (v 0,v 1 ), (v 1,v 2 ), …, (v k-1,v k ), then d[v k ] = δ(s,v k ). This property holds regardless of any other relaxation steps that occur, even if they are intermixed with relaxations of the edges of p. Predecessor-subgraph property: Once d[v] = δ(s,v) for all v  V, the predecessor subgraph is a shortest paths tree rooted at s. (In fact, if there is no negative-weight cycle reachable from s then the predecessor subgraph is always a tree rooted at s.)

If there is no negative edge weight cycle reachable from s then Bellman-Ford returns TRUE and d[v] = δ(s,v) for every vertex v. If there is a negative edge weight cycle reachable from s then Bellman-Ford returns FALSE. Running time:  (|V||E|)

// all edge weights are assumed non-negative

Proof that Dijkstra is correct

x 1 – x 2 ≤ 0, x 1 – x 5 ≤ -1, x 2 – x 5 ≤ 1, x 3 – x 1 ≤ 5, x 4 – x 1 ≤ 4, x 4 – x 3 ≤ -1, x 5 – x 3 ≤ -3, x 5 – x 4 ≤ -3. Th. 24.9: Given a system Ax ≤ b of difference equations, let G = (V, E) be the corresponding constraint graph. If G contains no negative-weight cycles, then x = ( δ(v 0, v 1 ), δ(v 0, v 2 ), …, δ(v 0, v k ) ) is a feasible solution for the system. If G contains a negative-weight cycle, then there is no feasible solution for the system.

Problems Ex. 24.1-1 Ex. 24.2-1 Ex. 24.3-1 Ex. 24.3-2 Ex. 24.3-4 Ex. 24.4-1 Ex. 24-4.2 Ex. 24.4-4

Download ppt "Data Structures and Algorithms (AT70.02) Comp. Sc. and Inf. Mgmt. Asian Institute of Technology Instructor: Dr. Sumanta Guha Slide Sources: CLRS “Intro."

Similar presentations