Download presentation

Presentation is loading. Please wait.

Published byHaden Hosken Modified over 2 years ago

1
The Greedy Approach Chapter 8

2
The Greedy Approach It’s a design technique for solving optimization problems Based on finding optimal local solutions which may lead to optimal global one. Walk slowly but surely. At each step choose the best choice & hopefully it will be part of the optimal global solution.

3
The Single-source Shortest Path Problem Section 8.2

4
Problem Let G=(V,E) be a directed weighted graph where each edge has a length 0. Let s V be a certain vertex called the source. For simplicity, let V={1,2,..,n}, s=1 Find all [u] =distance from s to any vertex u.

5
Dijkstra’s Solution Divide V into two disjoint sets X and Y where X contains all vertices whose distances from 1have been already determined. So X={1} initially At each step, choose y Y whose [y] is min where [y]= length of shortest path from 1 to y walking through X only. 1 X Y y [y]

6
Dijkstra’s Solution Move y to X and remove it from Y Update [w], for all w Y that is adjacent to y. Claim: when y is moved to X then [y] = [y] y Y X

7
Algorithm: Dijkstra Input: weighted graph G=(V,E) Output: distances from 1 to every vertex X {1}; Y V - {1}; [1] 0 For y 2 to n if y is adjacent to 1 then [y] length[1,y] else [1] end for for i 1 to n-1 let y be the vertex with min [y] in Y X X {y}; Y Y-{y} for each edge (y,w) z [y] +length[y,w] if (w Y and z < [w]) then [w] z end for

8
Analysis Time = (m + n 2 ) = (n 2 ), where m is the number of edges. Notice that finding the min [y] costs (n) time

9
Implementation The graph G should be saved as adjacency list. Costs (m + n) space, where m is the number of edges Use binary arrays to represent the sets X and Y. Notice that Y= X c

10
Correction When a vertex y is moved to the set X and [y] is finite then [y] = [y]

11
Improving Dijkstra The time can be improved to (m log n) if m=o(n 2 /log n) by using min-heap to find the min [y]. Notice that updating the heap takes O(log n) time there could be at most m updates.

Similar presentations

OK

CSC 331: Algorithm Analysis Paths in Graphs. The DFS algorithm we gave is recursive. DFS generates a search tree showing paths from one vertex to all.

CSC 331: Algorithm Analysis Paths in Graphs. The DFS algorithm we gave is recursive. DFS generates a search tree showing paths from one vertex to all.

© 2018 SlidePlayer.com Inc.

All rights reserved.

Ads by Google

Ppt on mass media Ppt on earthquake and tsunami Ppt on laser diode Ppt on national education day of bangladesh Ppt on internet as a post office Ppt on elections in india download Ppt on solar system for class 7 Ppt on electric meter testing standards Ppt on basics of ms word 2007 Ppt on group development activities