1 Chapter 6 Dynamic Programming Slides by Kevin Wayne. Copyright © 2005 Pearson-Addison Wesley. All rights reserved.

Slides:



Advertisements
Similar presentations
Bellman-Ford algorithm
Advertisements

Introduction to Algorithms 6.046J/18.401J/SMA5503
Graph Algorithms - 3 Algorithm Design and Analysis Victor AdamchikCS Spring 2014 Lecture 13Feb 12, 2014Carnegie Mellon University.
CSCI-1680 Network Layer: Intra-domain Routing Based partly on lecture notes by David Mazières, Phil Levis, John Jannotti Rodrigo Fonseca.
Randomized Algorithms Randomized Algorithms CS648 1.
McGraw-Hill © The McGraw-Hill Companies, Inc., 2004 Chapter 22 Network Layer: Delivery, Forwarding, and Routing Copyright © The McGraw-Hill Companies,
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public ITE PC v4.0 Chapter 1 1 Distance Vector Routing Protocols Routing Protocols and Concepts –
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public ITE PC v4.0 Chapter 1 1 Link-State Routing Protocols Routing Protocols and Concepts – Chapter.
Single Source Shortest Paths
2015/4/11CS4335 Design and Analysis of Algorithms /Shuai Cheng Li Page 1 Evaluation of the Course (Modified) Course work:30% –Four assignments (25%) 7.5.
Mobile and Wireless Computing Institute for Computer Science, University of Freiburg Western Australian Interactive Virtual Environments Centre (IVEC)
Cs/ee 143 Communication Networks Chapter 5 Routing Text: Walrand & Parakh, 2010 Steven Low CMS, EE, Caltech.
4/12/2015© 2009 Raymond P. Jefferis IIILect Internet Protocol - Continued.
Chapter 4 Distributed Bellman-Ford Routing
COS 461 Fall 1997 Routing COS 461 Fall 1997 Typical Structure.
Routing Protocol.
CISCO NETWORKING ACADEMY Chabot College ELEC Routed and Routing Protocols.
Courtesy: Nick McKeown, Stanford
DYNAMIC PROGRAMMING. 2 Algorithmic Paradigms Greedy. Build up a solution incrementally, myopically optimizing some local criterion. Divide-and-conquer.
CMPE 150- Introduction to Computer Networks 1 CMPE 150 Fall 2005 Lecture 22 Introduction to Computer Networks.
Shortest Path With Negative Weights s 3 t
Unicast Routing Protocols: RIP, OSPF, and BGP
Routing.
Spring Routing & Switching Umar Kalim Dept. of Communication Systems Engineering 06/04/2007.
EE 122: Intra-domain routing Ion Stoica September 30, 2002 (* this presentation is based on the on-line slides of J. Kurose & K. Rose)
ROUTING ON THE INTERNET COSC Aug-15. Routing Protocols  routers receive and forward packets  make decisions based on knowledge of topology.
CSCI-256 Data Structures & Algorithm Analysis Lecture Note: Some slides by Kevin Wayne. Copyright © 2005 Pearson-Addison Wesley. All rights reserved. 22.
Dynamic Routing Protocols  Function(s) of Dynamic Routing Protocols: – Dynamically share information between routers (Discover remote networks). – Automatically.
1 Chapter 22 Network layer Delivery, Forwarding and Routing (part2)
Network and Communications Ju Wang Chapter 5 Routing Algorithm Adopted from Choi’s notes Virginia Commonwealth University.
Network Layer4-1 Chapter 4: Network Layer r 4. 1 Introduction r 4.2 Virtual circuit and datagram networks r 4.3 What’s inside a router r 4.4 IP: Internet.
10/4/10 A. Smith; based on slides by E. Demaine, C. Leiserson, S. Raskhodnikova, K. Wayne Adam Smith Algorithm Design and Analysis L ECTURE 17 Dynamic.
1 Internet Routing. 2 Terminology Forwarding –Refers to datagram transfer –Performed by host or router –Uses routing table Routing –Refers to propagation.
Prof. Swarat Chaudhuri COMP 482: Design and Analysis of Algorithms Spring 2012 Lecture 17.
1 Computer Communication & Networks Lecture 21 Network Layer: Delivery, Forwarding, Routing Waleed.
Networking and internetworking devices. Repeater.
ITI-510 Computer Networks ITI 510 – Computer Networks Meeting 3 Rutgers University Internet Institute Instructor: Chris Uriarte.
CS38 Introduction to Algorithms Lecture 10 May 1, 2014.
1 © 2004, Cisco Systems, Inc. All rights reserved. CCNA 1 Module 10 Routing Fundamentals and Subnets.
Spring 2000CS 4611 Routing Outline Algorithms Scalability.
Graph Algorithms Why graph algorithms ? It is not a “graph theory” course! Many problems in networks can be modeled as graph problems. Note that -The topology.
Spring Routing: Part I Section 4.2 Outline Algorithms Scalability.
Distance Vector Routing
CS 6401 Intra-domain Routing Outline Introduction to Routing Distance Vector Algorithm.
The network layer: routing
Centralized vs Distributed Routing
Dijkstra’s shortest path Algorithm
Chapter 4 Network Layer A note on the use of these ppt slides:
COMP 3270 Computer Networks
Dynamic Routing Protocols part2
Intra-Domain Routing Jacob Strauss September 14, 2006.
Routing: Distance Vector Algorithm
Routing.
Chapter 5: Dynamic Routing
CS 4700 / CS 5700 Network Fundamentals
Chapter 6 Dynamic Programming
CS 3700 Networks and Distributed Systems
Intradomain Routing Outline Introduction to Routing
Chapter 6 Dynamic Programming
ECE453 – Introduction to Computer Networks
Chapter 6 Dynamic Programming
CS 3700 Networks and Distributed Systems
Communication Networks
Advanced Computer Networks
Evaluation of the Course (Modified)
EE 122: Intra-domain routing: Distance Vector
Routing.
CSCI 465 Data Communications and Networks Lecture 16
Data Structures and Algorithm Analysis Lecture 8
Chapter 4 Network Layer A note on the use of these ppt slides:
Presentation transcript:

1 Chapter 6 Dynamic Programming Slides by Kevin Wayne. Copyright © 2005 Pearson-Addison Wesley. All rights reserved.

6.8 Shortest Paths

3 Shortest Paths Shortest path problem. Given a directed graph G = (V, E), with edge weights c vw, find shortest path from node s to node t. Ex. Nodes represent agents in a financial setting and c vw is cost of transaction in which we buy from agent v and sell immediately to w. s 3 t allow negative weights

4 Shortest Paths: Failed Attempts Dijkstra. Can fail if negative edge costs. Re-weighting. Adding a constant to every edge weight can fail. u t sv st

5 Shortest Paths: Negative Cost Cycles Negative cost cycle. Observation. If some path from s to t contains a negative cost cycle, there does not exist a shortest s-t path; otherwise, there exists one that is simple. st W c(W) <

6 Shortest Paths: Dynamic Programming Def. OPT(i, v) = length of shortest v-t path P using at most i edges. n Case 1: P uses at most i-1 edges. – OPT(i, v) = OPT(i-1, v) n Case 2: P uses exactly i edges. – if (v, w) is first edge, then OPT uses (v, w), and then selects best w-t path using at most i-1 edges Remark. By previous observation, if no negative cycles, then OPT(n-1, v) = length of shortest v-t path.

7 Shortest Paths: Implementation Analysis.  (mn) time,  (n 2 ) space. Finding the shortest paths. Maintain a "successor" for each table entry. Shortest-Path(G, t) { foreach node v  V M[0, v]   M[0, t]  0 for i = 1 to n-1 foreach node v  V M[i, v]  M[i-1, v] foreach edge (v, w)  E M[i, v]  min { M[i, v], M[i-1, w] + c vw } }

8 Shortest Paths: Practical Improvements Practical improvements. n Maintain only one array M[v] = shortest v-t path that we have found so far. n No need to check edges of the form (v, w) unless M[w] changed in previous iteration. Theorem. Throughout the algorithm, M[v] is length of some v-t path, and after i rounds of updates, the value M[v] is no larger than the length of shortest v-t path using  i edges. Overall impact. n Memory: O(m + n). n Running time: O(mn) worst case, but substantially faster in practice.

9 Bellman-Ford: Efficient Implementation Push-Based-Shortest-Path(G, s, t) { foreach node v  V { M[v]   successor[v]   } M[t] = 0 for i = 1 to n-1 { foreach node w  V { if (M[w] has been updated in previous iteration) { foreach node v such that (v, w)  E { if (M[v] > M[w] + c vw ) { M[v]  M[w] + c vw successor[v]  w } If no M[w] value changed in iteration i, stop. }

6.9 Distance Vector Protocol

11 Distance Vector Protocol Communication network. n Node  router. n Edge  direct communication link. n Cost of edge  delay on link. Dijkstra's algorithm. Requires global information of network. Bellman-Ford. Uses only local knowledge of neighboring nodes. Synchronization. We don't expect routers to run in lockstep. The order in which each foreach loop executes in not important. Moreover, algorithm still converges even if updates are asynchronous. naturally nonnegative, but Bellman-Ford used anyway!

12 Distance Vector Protocol Distance vector protocol. n Each router maintains a vector of shortest path lengths to every other node (distances) and the first hop on each path (directions). n Algorithm: each router performs n separate computations, one for each potential destination node. n "Routing by rumor." Ex. RIP, Xerox XNS RIP, Novell's IPX RIP, Cisco's IGRP, DEC's DNA Phase IV, AppleTalk's RTMP. Caveat. Edge costs may change during algorithm (or fail completely). t v 1 s 1 1 deleted "counting to infinity" 2 1

13 Path Vector Protocols Link state routing. n Each router also stores the entire path. n Based on Dijkstra's algorithm. n Avoids "counting-to-infinity" problem and related difficulties. n Requires significantly more storage. Ex. Border Gateway Protocol (BGP), Open Shortest Path First (OSPF). not just the distance and first hop

6.10 Negative Cycles in a Graph

15 Detecting Negative Cycles Lemma. If OPT(n,v) = OPT(n-1,v) for all v, then no negative cycles. Pf. Bellman-Ford algorithm. Lemma. If OPT(n,v) < OPT(n-1,v) for some node v, then (any) shortest path from v to t contains a cycle W. Moreover W has negative cost. Pf. (by contradiction) n Since OPT(n,v) < OPT(n-1,v), we know P has exactly n edges. n By pigeonhole principle, P must contain a directed cycle W. n Deleting W yields a v-t path with < n edges  W has negative cost. v t W c(W) < 0

16 Detecting Negative Cycles Theorem. Can detect negative cost cycle in O(mn) time. n Add new node t and connect all nodes to t with 0-cost edge. n Check if OPT(n, v) = OPT(n-1, v) for all nodes v. – if yes, then no negative cycles – if no, then extract cycle from shortest path from v to t v t

17 Detecting Negative Cycles: Application Currency conversion. Given n currencies and exchange rates between pairs of currencies, is there an arbitrage opportunity? Remark. Fastest algorithm very valuable! F$ £ ¥ DM 1/7 3/10 2/ /50 4/3 8 IBM 1/

18 Detecting Negative Cycles: Summary Bellman-Ford. O(mn) time, O(m + n) space. n Run Bellman-Ford for n iterations (instead of n-1). n Upon termination, Bellman-Ford successor variables trace a negative cycle if one exists. n See p. 304 for improved version and early termination rule.