Disjoint Path Routing Algorithms

Slides:



Advertisements
Similar presentations
Design and Analysis of Algorithms Single-source shortest paths, all-pairs shortest paths Haidong Xue Summer 2012, at GSU.
Advertisements

Management Science 461 Lecture 2b – Shortest Paths September 16, 2008.
 Graph Graph  Types of Graphs Types of Graphs  Data Structures to Store Graphs Data Structures to Store Graphs  Graph Definitions Graph Definitions.
Chapter 5 Routing Algorithm in Networks. How are message routed from origin to destination? 1) Circuit-Switching → telephone net. Dedicated bandwidth.
Spring 2010CS 2251 Graphs Chapter 10. Spring 2010CS 2252 Chapter Objectives To become familiar with graph terminology and the different types of graphs.
Shortest Path Problems Directed weighted graph. Path length is sum of weights of edges on path. The vertex at which the path begins is the source vertex.
Chapter 9 Graph algorithms Lec 21 Dec 1, Sample Graph Problems Path problems. Connectedness problems. Spanning tree problems.
The Shortest Path Problem
& 6.855J & ESD.78J Algorithm visualizations Modified Label Correcting Algorithm.
Time-Constrained Flooding A.Mehta and E. Wagner. Time-Constrained Flooding: Problem Definition ●Devise an algorithm that provides a subgraph containing.
Chapter 4 Shortest Path Label-Setting Algorithms Introduction & Assumptions Applications Dijkstra’s Algorithm.
Operations Research Assistant Professor Dr. Sana’a Wafa Al-Sayegh 2 nd Semester ITGD4207 University of Palestine.
Shortest Path. Dijkstra’s Algorithm finds the shortest path from the start vertex to every other vertex in the network. We will find the shortest path.
Dijkstra’s algorithm N: set of nodes for which shortest path already found Initialization: (Start with source node s) n N = {s}, D s = 0, “s is distance.
TCP Traffic and Congestion Control in ATM Networks
Lecture 10 The Label Correcting Algorithm.
Diverse Routing Algorithms
Suppose G = (V, E) is a directed network. Each edge (i,j) in E has an associated ‘length’ c ij (cost, time, distance, …). Determine a path of shortest.
Decision Maths 1 Shortest path algorithm Dijkstra’s Algorithm A V Ali :
Survivability in IP over WDM networks YINGHUA YE and SUDHIR DIXIT Nokia Research Center, Burlington, Massachusetts.
Spanning Trees Dijkstra (Unit 10) SOL: DM.2 Classwork worksheet Homework (day 70) Worksheet Quiz next block.
SHORTEST ROUTE PROBLEM A Networking Model Report for DPA 702 QUANTITATIVE METHODS OF RESEARCH By: ALONA M. SALVA Cebu Technological University.
Cycle Canceling Algorithm
St. Edward’s University
Shortest Path from G to C Using Dijkstra’s Algorithm
C.Eng 213 Data Structures Graphs Fall Section 3.
Discrete Optimization Lecture 1
Rudra Dutta CSC Fall 2011, Section 001
Shortest Path Problems
EMIS 8374 Dijkstra’s Algorithm Updated 18 February 2008
Dijkstra’s Algorithm with two levels of buckets
Graph theory and routing: Background for Network Design
The Shortest Augmenting Path Algorithm for the Maximum Flow Problem
Graphs Chapter 11 Objectives Upon completion you will be able to:
15.082J & 6.855J & ESD.78J Visualizations
Dijkstra’s Algorithm for the Shortest Path Problem
15.082J & 6.855J & ESD.78J Visualizations
Lecture 6 Shortest Path Problem.
Shortest Path.
Shortest Path.
Dijkstra’s Algorithm for the Shortest Path Problem
Algorithms (2IL15) – Lecture 5 SINGLE-SOURCE SHORTEST PATHS
Autumn 2015 Lecture 10 Minimum Spanning Trees
Shortest Path Problems
Graphs.
Shortest-Path Property 4.1
Advanced Computer Networks
Honors Track: Competitive Programming & Problem Solving Avoiding negative edges Steven Ge.
Lecture 14 Shortest Path (cont’d) Minimum Spanning Tree
Shortest Path.
Weighted Graphs & Shortest Paths
Shortest Path Problems
Autumn 2016 Lecture 10 Minimum Spanning Trees
Dijkstra’s Algorithm for Shortest Paths
The Shortest Augmenting Path Algorithm for the Maximum Flow Problem
The Shortest Augmenting Path Algorithm for the Maximum Flow Problem
and 6.855J Dijkstra’s Algorithm
Visualizations Dijkstra’s Algorithm
Network Simplex Animations
CSE 417: Algorithms and Computational Complexity
15.082J & 6.855J & ESD.78J Visualizations
Implementation of Dijkstra’s Algorithm
Graphs.
Graphs.
Graphs.
Winter 2019 Lecture 10 Minimum Spanning Trees
Lecture 13 Shortest Path (cont’d) Minimum Spanning Tree
Chapter 9 Graph algorithms
GRAPHS.
15.082J & 6.855J & ESD.78J Visualizations
Presentation transcript:

Disjoint Path Routing Algorithms The slides are adapted from slides by Prof. Rudra Dutta at NCSU Disjoint Path Routing Algorithms Preparation for Project Part 2 Yu Wang, UNC Charlotte

Disjoint Paths Algorithms Simple approach (two-step) fails with trap topologies Remedy - “remember” first path found by link reversal As in flow problems Must be able to find shortest paths in presence of negative-cost arcs Remedy - modify Dijkstra’s algorithm Can also use general purpose shortest path algorithm for negative-cost arcs Can also use graph transformation to eliminate negative-cost arcs

Dijkstra’s Algorithm Given: Use: Undirected graph G with nodes V, Source node A, Destination node Z Edge costs l(ij) Use: N(i) = set of neighbors of i, d(i) = distance from A to i, S = set of nodes to which shortest distance has NOT been found, P(i) = predecessor of i in path from A

Dijkstra’s Algorithm Initialize Select new vertex to label permanently l(ij) cost of edge ij N(i) = neighbors of i d(i) = distance A to i S = nodes not found P(i) = predecessor of i Dijkstra’s Algorithm Initialize d(A) = 0; d(i) = l(Ai) for all i in N(A),  for all other i S = all vertices except A P(i) = A for all i in S Select new vertex to label permanently Choose j from S such that d(j) = min d(i), for i in S Remove j from S If j = Z, then stop; otherwise go to Step 3 Update distances For all i in N(j) such that i is also in S If d(j) + l(ij) < d(i), update d(i) to d(j) + l(ij) and set P(i) to j Back to Step 2

Dijkstra’s Algorithm - Example

Negative Cost Arcs Many reasonable cost metrics are positive-only However, sometimes negatives costs can turn up Sometimes introduced by specific desired transformations of graphs Graph may have cycles Cycles with negative total costs exist Concept of shortest path? If negative cost arcs, but not cycles? Specific family of such graphs generated by useful disjoint path routing algorithms Dijkstra’s algorithm fails with negative arc costs

Failure of Dijkstra - Example

Dijkstra’s Algorithm - Modified l(ij) cost of edge ij N(i) = neighbors of i d(i) = distance A to i S = nodes not found P(i) = predecessor of i Dijkstra’s Algorithm - Modified Initialize d(A) = 0; d(i) = l(Ai) for all i in N(A),  for all other i S = all vertices except A P(i) = A for all i in S Select new vertex to label permanently Choose j from S such that d(j) = min d(i), for i in S Remove j from S If j = Z, then stop; otherwise go to Step 3 Update distances For all i in N(j) such that i is also in S If d(j) + l(ij) < d(i), update d(i) to d(j) + l(ij) and set P(i) to j Back to Step 2 S =  ----------------------------- Also add i back to S

Modified Dijkstra - Example

Shortest Disjoint Path Pair Objective: find a pair of paths between a source a destination that are: Edge-disjoint Sum of their lengths is minimum

Simple Two-step Approach Fails Obvious approach - find one, then other May not find shortest pair May not find pair at all even when one exists Trap topology A B D Z E C 1 2

Shortest Disjoint Path Algorithms Various types Most based on flow canceling approaches (like flow maximization) One early approach by Bhandari Other early approach by Suurballe (and with Tarjan) Bhandari’s algorithm Simpler to state on undirected graphs Assumes original graph has non-negative edge costs Creates intermediate mixed graphs with negative directed arc costs Only specific family of such graphs - arcs form s-d path Modified Dijkstra’s algorithm works correctly on such graphs Can be used in lieu of more complicated negative cost algorithms R. Bhandari, “Optimal diverse routing in telecommunication fiber networks”, Proc. of IEEE INFOCOM (1994), 1498-1508.

Bhandari’s Algorithm Find the shortest path from A to Z with the modified Dijkstra algorithm Replace each edge of the shortest path by a single arc directed towards the source vertex Make the length of each of the above arcs negative Find the shortest path from A to Z in the modified graph with the modified Dijkstra algorithm Transform to the original graph, and erase any interlacing edges of the two paths found Group the remaining edges to obtain the shortest pair of edge-disjoint paths

Bhandari’s Algorithm - Example Copyright Rudra Dutta, NCSU, Spring, 2009

k Disjoint Paths Can be generalized to obtain more disjoint paths Edge-disjoint shortest triplet algorithm: Find the shortest edge-disjoint pair of paths between A and Z Replace the edges of the disjoint paths by arcs directed towards the source Make the length of the arcs negative Find the shortest path from A to Z in the modified graph using the modified Dijkstra algorithm Transform to the original graph, and erase any edges of this shortest path interlacing with the shortest edge-disjoint pair of paths Straightforward generalization to k > 3