Richard Anderson Lecture 9 Dijkstra’s algorithm

Slides:



Advertisements
Similar presentations
1 Discrete Structures & Algorithms Graphs and Trees: II EECE 320.
Advertisements

CSE 421 Algorithms Richard Anderson Dijkstra’s algorithm.
CSE 421 Algorithms Richard Anderson Lecture 10 Minimum Spanning Trees.
Dijkstra’s Shortest Paths CS 312 Lecture 4. Announcements Project 1 comes out Friday –Min spanning trees and scheduling –due 2 weeks from Friday (1 week.
TECH Computer Science Graph Optimization Problems and Greedy Algorithms Greedy Algorithms  // Make the best choice now! Optimization Problems  Minimizing.
1 Shortest Path Calculations in Graphs Prof. S. M. Lee Department of Computer Science.
Using Dijkstra’s Algorithm to Find a Shortest Path from a to z 1.
Introduction to Algorithms Jiafen Liu Sept
1 Introduction to Algorithms L ECTURE 17 (Chap. 24) Shortest paths I 24.2 Single-source shortest paths 24.3 Dijkstra’s algorithm Edsger Wybe Dijkstra
CSEP 521 Applied Algorithms Richard Anderson Winter 2013 Lecture 3.
CSE 421 Algorithms Richard Anderson Lecture 8 Optimal Caching Dijkstra’s algorithm.
CSCI-256 Data Structures & Algorithm Analysis Lecture Note: Some slides by Kevin Wayne. Copyright © 2005 Pearson-Addison Wesley. All rights reserved. 10.
CSCI-256 Data Structures & Algorithm Analysis Lecture Note: Some slides by Kevin Wayne. Copyright © 2005 Pearson-Addison Wesley. All rights reserved. 11.
Lecture 23 CSE 331 Oct 26, 2016.
Autumn 2016 Lecture 11 Minimum Spanning Trees (Part II)
Richard Anderson Autumn 2015 Lecture 8 – Greedy Algorithms II
Autumn 2015 Lecture 11 Minimum Spanning Trees (Part II)
Autumn 2016 Lecture 9 Dijkstra’s algorithm
Algorithms (2IL15) – Lecture 5 SINGLE-SOURCE SHORTEST PATHS
CSE 332: Data Structures Disjoint Set Union/Find
Autumn 2015 Lecture 9 Dijkstra’s algorithm
Lecture 13 CSE 331 Oct 1, 2012.
Lecture 24 CSE 331 Oct 25, 2013.
Richard Anderson Lecture 9 Dijkstra’s algorithm
Lecture 22 CSE 331 Oct 23, 2017.
Lecture 23 CSE 331 Oct 25, 2017.
Lecture 24 CSE 331 Oct 29, 2012.
Lecture 23 CSE 331 Oct 24, 2011.
Advanced Algorithms Analysis and Design
Lecture 22 CSE 331 Oct 24, 2016.
Autumn 2015 Lecture 10 Minimum Spanning Trees
Richard Anderson Lecture 21 Network Flow
Greedy Algorithms: Homework Scheduling and Optimal Caching
Minimum Spanning Tree Algorithms
Richard Anderson Lecture 6 Greedy Algorithms
Lecture 12 CSE 331 Sep 26, 2011.
Richard Anderson Autumn 2016 Lecture 7
Richard Anderson Lecture 10 Minimum Spanning Trees
Lecture 22 CSE 331 Oct 15, 2014.
Richard Anderson Lecture 7 Greedy Algorithms
Lecture 14 Shortest Path (cont’d) Minimum Spanning Tree
Richard Anderson Winter 2019 Lecture 8 – Greedy Algorithms II
Chapter 24: Single-Source Shortest Paths
Lecture 24 CSE 331 Oct 24, 2014.
Autumn 2016 Lecture 10 Minimum Spanning Trees
Lecture 12 CSE 331 Sep 22, 2014.
CSE332: Data Abstractions Lecture 17: Shortest Paths
Richard Anderson Autumn 2016 Lecture 8 – Greedy Algorithms II
Lecture 23 CSE 331 Oct 24, 2011.
Winter 2019 Lecture 9 Dijkstra’s algorithm
Lecture 26 CSE 331 Nov 1, 2010.
Chapter 24: Single-Source Shortest Paths
CSE 417: Algorithms and Computational Complexity
Richard Anderson Winter 2019 Lecture 7
Winter 2019 Lecture 11 Minimum Spanning Trees (Part II)
Dijkstra Algorithm examples
Richard Anderson Autumn 2015 Lecture 7
Richard Anderson Lecture 20 Shortest Paths and Network Flow
Winter 2019 Lecture 10 Minimum Spanning Trees
Single-Source Shortest Path & Minimum Spanning Trees
Lecture 13 Shortest Path (cont’d) Minimum Spanning Tree
Richard Anderson Lecture 20 Space Efficient LCS
Single-Source All-Destinations Shortest Paths With Negative Costs
Data Structures and Algorithm Analysis Lecture 8
Richard Anderson Autumn 2019 Lecture 7
Richard Anderson Autumn 2019 Lecture 8 – Greedy Algorithms II
Lecture 24 CSE 331 Oct 29, 2018.
Autumn 2019 Lecture 9 Dijkstra’s algorithm
Autumn 2019 Lecture 11 Minimum Spanning Trees (Part II)
Presentation transcript:

Richard Anderson Lecture 9 Dijkstra’s algorithm CSE 421 Algorithms Richard Anderson Lecture 9 Dijkstra’s algorithm

Last Week Farthest in the future algorithm for optimal caching Discard element whose first occurrence is last in the sequence A, B, C, A, C, D, C, B, C, A, D

Announcement Collaboration Policy Discussing problems with other students is okay Write ups must be done independently Acknowledge people you work with

This week Today Rest of the week Reading Dijkstra’s Algorithm (Section 4.4) Rest of the week Wednesday: Punya Biswal, SP/MST Friday: Ben Birnbaum, MST Reading 4.4, 4.5, 4.7, 4.8

Single Source Shortest Path Problem Given a graph and a start vertex s Determine distance of every vertex from s Identify shortest paths to each vertex Express concisely as a “shortest paths tree” Each vertex has a pointer to a predecessor on shortest path 1 u u 1 2 3 5 s x s x 4 3 3 v v

Construct Shortest Path Tree from s 2 d d 1 a a 5 4 4 4 e e -3 c c s -2 s 3 3 2 6 g g b b 3 7 f f

Warmup If P is a shortest path from s to v, and if t is on the path P, the segment from s to t is a shortest path between s and t WHY? v t s

Dijkstra’s Algorithm Assume all edges have non-negative cost S = {}; d[s] = 0; d[v] = infinity for v != s While S != V Choose v in V-S with minimum d[v] Add v to S For each w in the neighborhood of v d[w] = min(d[w], d[v] + c(v, w)) 4 3 y 1 1 u 1 1 4 s x 2 2 2 2 v 2 3 5 z

Simulate Dijkstra’s algorithm (strarting from s) on the graph Vertex Added Round s a b c d 1 1 2 3 4 5 c a 1 3 2 1 s 4 4 6 1 b d 3

Who was Dijkstra? What were his major contributions?

http://www.cs.utexas.edu/users/EWD/ Edsger Wybe Dijkstra was one of the most influential members of computing science's founding generation. Among the domains in which his scientific contributions are fundamental are algorithm design programming languages program design operating systems distributed processing formal specification and verification design of mathematical arguments

Dijkstra’s Algorithm as a greedy algorithm Elements committed to the solution by order of minimum distance

Correctness Proof Elements in S have the correct label Key to proof: when v is added to S, it has the correct distance label. y x s u v

Proof Let v be a vertex in V-S with minimum d[v] Let Pv be a path of length d[v], with an edge (u,v) Let P be some other path to v. Suppose P first leaves S on the edge (x, y) P = Psx + c(x,y) + Pyv Len(Psx) + c(x,y) >= d[y] Len(Pyv) >= 0 Len(P) >= d[y] + 0 >= d[v] y x s u v

Negative Cost Edges Draw a small example a negative cost edge and show that Dijkstra’s algorithm fails on this example

Bottleneck Shortest Path Define the bottleneck distance for a path to be the maximum cost edge along the path u 6 5 s x 2 5 4 3 v

Compute the bottleneck shortest paths 6 d d 6 a a 5 4 4 4 e e -3 c c s -2 s 3 3 2 6 g g b b 4 7 f f

How do you adapt Dijkstra’s algorithm to handle bottleneck distances Does the correctness proof still apply?