• Keine Ergebnisse gefunden

Central to the design of a solution method for the SDP is the question of how many SDP in-stances we need to solve. When considering the largest VNMP inin-stances with 1000 substrate nodes, we know that each virtual node has about 50 different allowed locations in the substrate and that an instance contains about 1700 virtual arcs, which means that we can expect about 2500 SDP instances per virtual arc and 4.25 million instances in total. Section 9.6 will show that the real number is actually closer to 7.8 million. As there are only one million unique pairs of substrate nodes, we will need to solve the SDP for every pair multiple times with different delay values. We also know that the substrate graphs are sparse. Given these preconditions, we present the preprocessing procedure guided by an illustrative example.

Figure 9.1 shows a possible substrate network that will be the basis for solving SDPs. There are delays associated with the substrate, but they are inconsequential for now. Before we start to solve all SDPs, we perform a decomposition step that will allow us to derive partial SDP solu-tions to a whole range of SDP instances. The first step is calculating the biconnected components of the shadow of the substrate graph, as shown in Figure 9.2.

The red nodes are articulation points, all arcs labeled with the same number (and the nodes they connect) belong to the same biconnected component. As the second step, we build the block tree from this graph, by introducing a node for each biconnected component, which is then connected to all articulation points that connect the biconnected component to the rest of the network. Figure 9.3 shows the resulting block tree, the rectangular nodes represent biconnected

1

2

4

3

6

5

7

8

9 11

10

1 1

1 1

2

3 4 4

4 4

5 6

Figure 9.2: Biconnected components and articulation points of the shadow of the sample sub-strate network.

1 3 2 5

3

4 8

5

6 Figure 9.3: Block tree of the sample substrate network.

3 5 4 8

Figure 9.4: Simplified block tree.

components labeled by the component number, the circular ones are the articulation points which are labeled by their substrate node number.

This tree can be simplified further by removing all component nodes that are only connected to one articulation point (in this example nodes1, 3,5and6) and also all component nodes that represent bridges (i.e., only containing two articulation points and an edge between them), in this example component node2. The final result can be seen in Figure 9.4.

During this decomposition, we keep track of the location of the original substrate nodes, so that we know for instance that substrate node 4 is represented by articulation point 3 in the simplified block tree, or that node9is represented by component node4. We have now created a very compact representation of the original substrate graph that can be used to derive partial results to an SDP instance in the following way: Locate the representation ofs andt in the simplified block tree and find a path between them. Since this path is unique, we immediately know that all traversed articulation points belong to FNds,t (and PNds,t) and for every traversed bridge that the corresponding arc in the substrate belongs to FAds,t (and PAds,t). We also know which components are traversed and in addition by which articulation point we have to enter a

1

Figure 9.5: Partial domain forD211,10.

component and by which we have to leave. If those articulation points are the same, we do not consider the component traversed. The only exception to this is when bothsandt belong to the same component but are represented by an articulation point (i.e., the connected component node was removed during simplification). Then the representing articulation point is not in FNds,t (but possibly in PNds,t). Due to the applied simplification, the found path in the block tree might still be incomplete. If sis not an articulation point, but the start of the path is one, then we need to add the component that sbelongs to at the beginning of the path. As a refinement, if this component is a bridge, then we can immediately determine a fixed arc and do not need to consider the component. The same extension might be needed at the end of the path. The last piece of information that we can extract from the path in the simplified block tree is, that any node or arc that was not touched by the path (excluding all nodes and arcs contained in a traversed component) are definitely not in PNds,tor PAds,t.

TheDs,td we have calculated up to this point is a partial solution to the SDP, information concern-ing the traversed components is still missconcern-ing. However, note that thisDs,td is both independent ofdand valid for all SDP instances that start and end in the same component as the SDP that is currently being solved. As such, it is a prime candidate for memoization, as in storing partial domains given start and end nodes in the simplified block tree, so that they can be used while solving future SDP instances instead of calculating paths again. In some sense, this is the so-lution to the “easy” part of the SDP, and the “hard” part is determining the domains within the components.

Before we start outlining different methods for calculating the domains within the components, we will continue our example by considering the SDP withs= 1,t= 10, andd= 21for our example substrate. Figure 9.5 shows the created partial domainD211,10.

The process for deriving this is the following: Substrate node1 is represented by articulation point3and substrate node10is represented by articulation point8in the simplified block tree.

We search the corresponding path in the simplified block tree (which in this case is the complete tree). At the start of the path we need to extend with component node1. At the end we can immediately fix the arc in the substrate from node8to10, since the end component is a bridge.

Also, we can add substrate nodes1,3,5,8, and10to FN211,10and the arc from3to5to FA211,10. In Figure 9.5, FN211,10and FA211,10are marked in red, all nodes and arcs of the substrate that can not belong to PN211,10or PA211,10have been removed. Now we only need to solve the domain problem

1

2

3 5

7

8