530 likes | 725 Views
The connectivity of the Internet. Thomas Erlebach University of Leicester Linda Moonen KULeuven Frits Spieksma KULeuven Danica Vukadinovi ć ETH Zürich. Example. A. B. t. s. C. Example. A. B. t. s. C. Modelling the Internet.
E N D
The connectivity of the Internet Thomas Erlebach University of Leicester Linda Moonen KULeuven Frits Spieksma KULeuven Danica Vukadinović ETH Zürich
Example A B t s C
Example A B t s C
Modelling the Internet • Internet-based communication needs to be efficient, secure, and reliable • AS (autonomous system) sub-network under separate administrative control • Three different types of relationships between ASs • Customer-provider • Peer-to-peer • Sibling
Modelling the Internet • Model Internet as a graph: • ASs are vertices • Two ASs are connected by an edge if there is a physical link between them • Edges represent AS relationships:
Modelling the Internet • Routing policies are taken into account • Example: customers do not act as transit AS for their providers
Modelling the Internet • Routing policies are taken into account • Example: customers do not act as transit AS for their providers
Modelling the Internet Valid paths in this model: • Zero or more forward arcs, followed by zero or more backward arcs: …… • Zero or more forward arcs, followed by one undirected edge, followed by zero or more backward arcs: ……
Example A B t s C
Example of a valid path A B t s C
Example of an invalid path A B t s C
Modelling the Internet Connectivity measures Vertex-disjoint paths Branch-and-Price algorithm Branch-and-Bound algorithm Computational results Conclusion Overview
Number of vertex-disjoint paths Size of a minimum vertex-cut For ‘normal’ graphs: Both problems are easy to solve Max-flow = Min-cut For the Internet graph model: Both problems are NP-hard Max-flow Min-cut Connectivity measures
Example Question: what is the set of valid s-t paths? A B t s C
Example Question: what is the set of valid s-t paths? Answer: {(s,A,B,t), (s,A,B,C,t), (s,A,C,B,t), (s,A,C,t), (s,C,B,t)} A B t s C
Example Question: what is the set of valid s-t paths? Answer: {(s,A,B,t), (s,A,B,C,t), (s,A,C,B,t), (s,A,C,t), (s,C,B,t)} A B t s C Conclusion: (i) the maximum number of vertex-disjoint paths equals 1; (ii) The size of a minimum vertex-cut equals 2 [Erlebach et al. 2003].
Modelling the Internet Connectivity measures Vertex-disjoint paths Branch-and-Price algorithm Branch-and-Bound algorithm Computational results Conclusion Overview
Notation • Graph G=(V,E) • Two vertices s and t • P is the set of all valid s-t paths • Vp is the set of all vertices on path p
Pricing Problem: Does there exist a valid path such that ? Branch-and-Price algorithm:Column Generation • Subset P’ of valid paths solve LP-relaxation of VDP • Primal and dual solution x* and y*
Branch-and-Price algorithm:Pricing Problem • Add arc lengths: • Arcs (i,j) get length yj • Vertical arcs get length zero • A shortest s-t path in the 2-layer graph corresponds to a valid s-t path in the original graph that minimizes the sum of the yv values
A fractionalvertex is a vertex that has at least 3 incident edges that lie on valid paths with value xp* > 0 Branch-and-Price algorithm:Branching Procedure x*red = ½ x*blue = ½ x*green = ½
A fractionalvertex is a vertex that has at least 3 incident edges that lie on valid paths with value xp* > 0 Branch-and-Price algorithm:Branching Procedure x*red = ½ x*blue = ½ x*green = ½
Branch-and-Price algorithm:Branching Procedure • Select a fractional vertex v • Delete all edges incident to v except two that could lie consecutively on a valid path
Branch-and-Price algorithm:Branching Procedure • Select a fractional vertex v • Delete all edges incident to v except two that could lie consecutively on a valid path • New branches: • arcs a and b delete c
Branch-and-Price algorithm:Branching Procedure • Select a fractional vertex v • Delete all edges incident to v except two that could lie consecutively on a valid path • New branches: • arcs a and b delete c • arcs a and c delete b
Branch-and-Price algorithm:Branching Procedure • Select a fractional vertex v • Delete all edges incident to v except two that could lie consecutively on a valid path • New branches: • arcs a and b delete c • arcs a and c delete b • arcs b and c invalid
Branch-and-price algorithm • Calculate initial solution P • Repeat until integer optimum is found • Apply column generation to solve LP-relaxation of VDP • Select a fractional vertex v • Create a new branch for each possible way of deleting all edges incident to v except for two edges that could lie consecutively on a valid path
Modelling the Internet Connectivity measures Vertex-disjoint paths Branch-and-Price algorithm Branch-and-Bound algorithm Computational results Conclusion Overview
Branch-and-Bound algorithm • LB greedy heuristic • UB max-flow in 2-layer graph
Branch-and-Bound algorithm • LB greedy heuristic • UB max-flow in 2-layer graph
Branch-and-Bound algorithm • Selected vertex • is on forward part: • delete copy v2 from • 2-layer graph
Branch-and-Bound algorithm • Selected vertex • is on forward part: • delete copy v2 from • 2-layer graph
Branch-and-Bound algorithm • Selected vertex • is on backward part: • delete copy v1 from • 2-layer graph
Branch-and-Bound algorithm • Selected vertex • is on backward part: • delete copy v1 from • 2-layer graph
Branch-and-Bound algorithm • Selected vertex • is a ‘turn-point’: • delete all outgoing • edges from copy v1, • and all incoming • edges to copy v2
Branch-and-Bound algorithm • Selected vertex • is a ‘turn-point’: • delete all outgoing • edges from copy v1, • and all incoming • edges to copy v2
Branch-and-Bound algorithm • Calculate lower bound (heuristic) and upper bound (max-flow) • Select vertex v from original graph that is used more than once in flow • Create 3 new branches: • Delete copy v2 of v from the 2-layer graph • Delete copy v1 of v from the 2-layer graph • Delete all outgoing edges from v1 and all incoming edges to v2 from the 2-layer graph, except for edge (v1,v2) • In each new branching node, calculate a new max-flow in the modified 2-layer graph
Modelling the Internet Connectivity measures Vertex-disjoint paths Branch-and-Price algorithm Branch-and-Bound algorithm Computational results Conclusion Overview
Results • About the instances • After eliminating vertices with degree 1, the graphs contain up to 11.000 vertices and up to 30.000 directed edges. • From the 11.000 ASs, we selected 47. In this way we obtained 1081 instances of the vertex-disjoint paths problem. • About the implementation • The algorithms were implemented in C++ using CPLEX 9.0 to solve the LPs. • We used the LEDA library to solve the max-flow instances. • Experiments were done on a Sun Fire 480R workstation with a 900 MHz processor.