Autumn 2016 Lecture 9 Dijkstra’s algorithm

Slides:



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

Introduction to Algorithms 6.046J/18.401J/SMA5503
1 Discrete Structures & Algorithms Graphs and Trees: II EECE 320.
CSE 421 Algorithms Richard Anderson Dijkstra’s algorithm.
CSE 421 Algorithms Richard Anderson Lecture 6 Greedy Algorithms.
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.
Lecture 27 CSE 331 Nov 3, Combining groups Groups can unofficially combine in the lectures.
Lecture 25 CSE 331 Nov 2, Adding teeth to group talk Form groups of size at most six (6) Pick a group leader I will ask group leader(s) to come.
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.
CSE 331: Review. Main Steps in Algorithm Design Problem Statement Algorithm Real world problem Problem Definition Precise mathematical def “Implementation”
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.
Lecture 19 Minimal Spanning Trees CSCI – 1900 Mathematics for Computer Science Fall 2014 Bill Pine.
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.
CSE 421 Algorithms Richard Anderson Lecture 8 Greedy Algorithms: Homework Scheduling and Optimal Caching.
CSCI-256 Data Structures & Algorithm Analysis Lecture Note: Some slides by Kevin Wayne. Copyright © 2005 Pearson-Addison Wesley. All rights reserved. 11.
By Laksman Veeravagu and Luis Barrera
Shortest Path Problems
Lecture 23 CSE 331 Oct 26, 2016.
Autumn 2016 Lecture 11 Minimum Spanning Trees (Part II)
Lecture 21 CSE 331 Oct 21, 2016.
Richard Anderson Autumn 2015 Lecture 8 – Greedy Algorithms II
Autumn 2015 Lecture 11 Minimum Spanning Trees (Part II)
Lecture 21 CSE 331 Oct 20, 2017.
Algorithms (2IL15) – Lecture 5 SINGLE-SOURCE SHORTEST PATHS
CSE 332: Data Structures Disjoint Set Union/Find
Autumn 2015 Lecture 9 Dijkstra’s algorithm
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.
Richard Anderson Lecture 9 Dijkstra’s algorithm
Advanced Algorithms Analysis and Design
Lecture 22 CSE 331 Oct 24, 2016.
Autumn 2015 Lecture 10 Minimum Spanning Trees
Greedy Algorithms: Homework Scheduling and Optimal Caching
Minimum Spanning Tree Algorithms
Richard Anderson Lecture 6 Greedy Algorithms
Richard Anderson Autumn 2016 Lecture 7
Fundamental Data Structures and Algorithms
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
Autumn 2016 Lecture 10 Minimum Spanning Trees
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
Winter 2019 Lecture 10 Minimum Spanning Trees
Single-Source Shortest Path & Minimum Spanning Trees
Lecture 13 Shortest Path (cont’d) Minimum Spanning Tree
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:

Autumn 2016 Lecture 9 Dijkstra’s algorithm CSE 421 Algorithms Autumn 2016 Lecture 9 Dijkstra’s algorithm

Last Week – Greedy Algorithms Task scheduling to minimize maximum lateness Interchange lemma Farthest in the future algorithm for optimal caching Discard element whose first occurrence is last in the sequence di dj j i 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 Topics Reading Dijkstra’s Algorithm (Section 4.4) Wednesday: Shortest Paths / Minimum Spanning Trees Friday: Minimum Spanning Trees 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 (starting 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?