Presentation is loading. Please wait.

# The Greedy Approach Chapter 8. The Greedy Approach It’s a design technique for solving optimization problems Based on finding optimal local solutions.

## Presentation on theme: "The Greedy Approach Chapter 8. The Greedy Approach It’s a design technique for solving optimization problems Based on finding optimal local solutions."— Presentation transcript:

The Greedy Approach Chapter 8

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.

The Single-source Shortest Path Problem Section 8.2

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.

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]

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

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

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

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

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

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.

Download ppt "The Greedy Approach Chapter 8. The Greedy Approach It’s a design technique for solving optimization problems Based on finding optimal local solutions."

Similar presentations

Ads by Google