CSE 431/531 Homework 4 Due date: Apr 15, 2016 Lecturer: Shi Li

advertisement
CSE 431/531 Homework 4
Due date: Apr 15, 2016
Lecturer: Shi Li
Your Name:
Your University ID:
Problems
Max. Score
Your Score
1
10
2
12
3
14
4
14
Total Score
50
Problem 1 (10 points). Use Dijkstra’s algorithm to compute the shortest paths from s to all
other vertices in the following undirected graph.
a
40
8
b
s
13
25
f
1
17
19
c
5
e
18
5
19
d
16
You can use the following table to describe the execution of the algorithm. The algorithm
maintains a set S of vertices. The d value of a vertex v ∈ S is the distance from s to v; the d value
of a vertex v ∈
/ S is minu∈S:(u,v)∈E (d(u) + w(u, v)). The π value of a vertex v is the vertex u such
that d(v) = d(u) + w(u, v); if d(v) = ∞, then π(v) =“/”.
iteration
vertex added to S
1
2
3
4
5
6
7
s
a
d
13
b
π
s
d
∞
1
c
π
/
d
∞
d
π
/
d
∞
e
π
/
d
5
f
π
s
d
25
π
s
Problem 2 (12 points). Suppose we are give a directed graph G = (V, E) with edge weights
w : E → R, and there are no negative cycles in G. Prove that after the k-th iteration of FloydWarshall algorithm, f [i, j] is at most the length of the shortest path from i to j that only uses
{1, 2, 3, · · · , k} as intermediate vertices.
Problem 3 (14 points). Suppose we are give a directed graph G = (V, E) with edge weights
w : E → R. The Floyd-Warshall algorithm described in the class assumes that G does not contain
a negative cycle. Show how to use the f values (i.e., f [i, j] for every i, j ∈ V ) computed by the
algorithm to check if G contains a negative cycle or not. You need to prove the correctness of your
solution.
Problem 4 (14 points). Given a directed graph G = (V, E) with weights w : E → R≥0 , and
two vertices s and t, we want to compute the shortest path from s to t that uses even number of
edges. Show how to use Dijkstra’s algorithm to solve the problem.
2
Download