1 Introduction
Our main contribution is a polynomialtime algorithm to reduce a colorable gammoid to a colorable partition matroid. Before elaborating on the statement of this result, we first give the necessary definitions, and the most relevant prior work. After stating the result we then explain some of the algorithmic ramifications.
1.1 Definitions
A set system is a pair where is a universe of elements and is a collection of subsets of . Sets in are called independent and the rank is the maximum cardinality of a set in . A partition of into independent sets is a coloring of . The coloring number of is the smallest such that a coloring exists.
If each element has an associated list of allowable colors, then a list coloring is a coloring such that if an is in then . The list coloring number of is the smallest that guarantees that if for it is the case that if then a list coloring exists.
If then the restriction of to , denoted by , is a set system where the universe is and where a set is independent if and only if and .
A hereditary set system is a set system where if and then . A matroid is an hereditary set system with the additional properties that and if , , and then there exists an such that . The intersection of matroids on common universe is a hereditary set system with universe where a set is independent if and only if for all it is the case that .
A gammoid is a matroid that has a graphical representation , where is a directed graph, is a collection of source vertices and is a collection of sink vertices. In the gammoid that is represented by a set is in if and only if there exists vertexdisjoint paths from the vertices in to some subcollection of vertices in . A partition matroid is a type of matroid that can be represented by a partition of . In the partition matroid that is represented by the partition a set is in if and only if for all . ^{1}^{1}1Technically one can generalize this to let there be a separate upper bound for each on the number of elements can obtain from , but in this paper we only consider partition matroids where the bound is one.
A matroid is a reduction (also called weak map) of a matroid , with the same universe, if and only if every independent set in is also an independent set in . If is a partition matroid, then we say that there exists a partition reduction from to . [5] defined the following decomposability concept, which generalizes partition reduction.
Definition 1.1.
A matroid is decomposable if can be partitioned into sets such that:

For all , it is the case that , where is the coloring number of .

For a set , consisting of one representative element from each , the matroid is colorable.
If then represents a partition matroid. Thus decomposability means there exists a partition reduction where the coloring number increases by at most a factor of .
1.2 Prior Work
There are two prior, independent, papers in the literature that are directly relevant to our results. [3] showed that any gammoid admits a decomposition. This proof is constructive, and can be converted into an algorithm. The resulting algorithm is essentially a local search algorithm that selects a neighboring solution in the dual matroid in such a way that an auxiliary potential function always decreases. But there seems to be little hope of getting a better than exponential bound on the time, at least using techniques from [3] as the potential can be exponentially large. Further [3] shows that no better bound is achievable.
[5] gave a polynomialtime algorithm to construct a decomposition of a gammoid. The reduction was shown by leveraging prior work on unsplittable flows [6]. Both paper [3, 5] also observed that partition reductions are relatively easily obtainable for other common types of combinatorial matroids. In particular transversal matroids are decomposable [3, 5], graphic matroids are decomposable [3, 5] and paving matroids are decomposable if they are of rank [3].
The main algorithmic result from [5] is:
Theorem 1.2.
[5] Consider matroids defined over a common universe, where matroid has coloring number . There is a polynomialtime algorithm that, given a decomposition of each matroid , computes a coloring of the intersection of using at most colors, where .
Combining Theorem 1.2 with the decompositions in [3, 5] one obtains approximation algorithms for problems that can be expressed as coloring problems on the intersection of common combinatorial matroids. Several natural examples of such problems are given in [5]. [1] showed that for two matroids and over a common universe with coloring numbers and , the coloring number of is at most . The proof in [1] uses topological arguments that do not directly give an algorithm for finding the coloring. The list coloring number of a single matroid equals its coloring number [9]. For the intersection of two matroids [3] observed that a list coloring could be efficiently computed by partition reducing each of the matroids. A consequence of the results in [3] is a constructive proof that the list coloring number of is at most if and are each one of the standard combinatorial matroids. Further a consequence of the results in [5] is an efficient algorithm to compute such a list coloring if and are each one of the standard combinatorial matroids besides a gammoid.
1.3 Our Main Result and Its Algorithmic Applications
We are now ready to state our main result:
Theorem 1.3.
A partition reduction from a colorable gammoid to a colorable partition matroid can be computed in polynomial time given a directed graph that represents as input.
Recall that [3] showed that the bound is tight.
Combining our main result, Theorem 1.3, with Theorem 1.2 from [5] we obtain significantly better approximation guarantees for matroid intersection coloring problems in which one of the matroids is a gammoid. One example is given by the following problem. Initially assume that the input consists of a directed graph with a designated file server location (a sink) and a collection of clients requesting files from the server at various locations in the networks (the sources). The goal is to as quickly as possible get every client the file that they want from the server, where in each time step one can service any collection of clients for which there exist disjoint paths to the server. This is a matroid coloring problem that can be solved exactly in polynomialtime [4]. Now assume that additionally the input identifies the company to which each client is employed by, and for each company there is a Service Level Agreement (SLA) that upper bounds on how many clients from that company can be serviced in one time unit. Now, the problem becomes a matroid intersection coloring problem, where the intersecting matroids are a gammoid and a partition matroid. Using the decomposition of a gammoid and Theorem 1.2 from [5] one obtains a polynomialtime approximation algorithm. However, combining the partition reduction of a gammoid from Theorem 1.3 with Theorem 1.2 from [5] we now obtain a polynomialtime 3approximation algorithm.^{2}^{2}2This is because Theorem 1.2 is a decomposition of a gammoid and a partition matroid is in itself a decomposition, so Theorem [5] states the approximation is 3.
Another algorithmic consequence is an efficient algorithm to list coloring the intersection of a colorable matroid and a colorable matroid if the list of allowable colors for each element has cardinality at least , and each of the matroids is either a graphic matroid, paving matroid, transversal matroid, or gammoid. Casting this into the context our running file server example implies that additionally each client has a list of allowable times when the file transfer may be scheduled. Our partition reduction of a gammoid then yields an efficient algorithm to find a feasible schedule as long as the cardinality of allowable times for each client is at least , where is time required if the network had infinite capacity (so only the SLA constraints come into play), and is the time required if the SLA allowed infinitely many file transfers (so only the network capacity constraints come into play).
Set cover is a cannonical algorithmic problem. So there is considerable interest in discovering examples of natural special types of set cover instances where approximation is possible. For example, several geometrically based types of instances are known, for example covering points in the plane using a discs [7], where a polynomial time approximation scheme is known. Our results provide another example of such a natural special case, namely when the sets come from the intersection of a small number of standard combinatorial matroids.
Theorem 1.3 and its proof reveal structural properties of gammoids that would seem likely to be of use to address future research on gammoids.
1.4 Overview of Techniques
Given a graphic representation of a gammoid, an optimal coloring can be computed in polynomialtime [4]. By superimposing the sourcesink paths for the various color classes one can obtain a flow from the sources to the sinks that moves at most units of flow over any vertex. Using standard cyclecanceling techniques [2] one can then convert to what we call an acyclic flow. A flow is acyclic if for every undirected cycle in at least one edge in either has flow or has no flow. Thus by deleting edges that support no flow in , as they are unnecessary, we are left with a forest of edges that have flow in the range and a collection of disjoint paths, which we call highways, that have flow . See Figure 1.
Now each part in the computed partition will be entirely contained in one tree , and the parts in a tree are computed independently of other trees in . There can be four types of vertices in : (1) sources that have outflow 1, (2) source portals , which are vertices that have a highway directed into them, and which have outflow in , (3) sink portals , which are vertices that have a highway directed out of them, and which have inflow in , and (4) normal vertices. Again see Figure 1.
We give a recursive partitioning algorithm for forming the parts in a tree . On each recursive step our algorithm first identifies a single part of at most sources and an associated sink portal that are in some sense near each other on the edge of . The algorithm then removes these sources and sink portal from , and reconnects disconnected sources back into appropriate places in . The algorithm then recurses on this new tree .
Most of the proof that our partitioning algorithm produces a decomposition focuses on routing individual trees in . So let be a collection of sources such that for all .
The first key part is proving that as the partitioning algorithm recurses on a tree , it is always possible to route both the flow coming into , and the flowing emanating within , out of , without routing more than units of flow through any vertex in . Note that as the algorithm recurses the tree loses a sink portal (which reduces the capacity of the flow that can leave by ) and loses up to sources (which means there is less flow emanating in that has to be routed out).
The second key part is to prove that there is a vertexdisjoint routing from the source portals in and the sources in to the sink portals in . To accomplish we trace our partitioning algorithm’s recursion backwards. So in each step a new collection of sources and a sink portal is added back into . We then prove by induction that no matter how the previously considered sources in were routed, there is always a feasible way to route the chosen source in to a sink portal in . Then we finish by observing that unioning the routings constructed within the trees with the highways gives a feasible routing for .
2 Preliminaries
This section introduces notation and other necessary definitions. Let be a directed graph that represents a gammoid. Let be a set of sources, and be the collection of sinks. We may assume without loss of generality that:

Each vertex has either outdegree 1 or indegree 1.

Each source has indegree 0 and outdegree 1.

Each sink has indegree 1 and outdegree 0 and .

If is an edge in then is not an edge in .
We assume without loss of generality that all color classes have full rank, that is . This can be assumed by adding dummy sources to .
Definition 2.1.

A feasible flow in a digraph from a collection is a collection of paths such that (1) is a simple path from to some sink, and (2) no vertex or edge in has more than such paths passing through it.

A feasible routing in a digraph from a collection is a collection of paths such that (1) is a simple path from to some sink, and (2) no vertex or edge in has more than one such path passing through it.
3 The Partition Reduction Algorithm
This section gives the Partition Reduction Algorithm. First, we define a corresponding flow graph. Using a CycleCanceling Algorithm, we decompose the flow graph into a collection of trees. Then we algorithmically create the partitions from the local structure in these trees. The analysis of the algorithm is deferred to the next section.
3.1 Defining the Flow Graph
Given the digraph we can compute a minimum such that is colorable in polynomial time using a polynomialtime algorithm for matroid intersection [8]. Further we can compute the collection of resulting color classes . So is a partition of the sources , and for each there exist vertexdisjoint paths in the digraph from the sources to . We create an where the flow on each edge is initialized to the number of paths that traverse , that is
A flow is acyclic if for every undirected cycle in at least one edge in either has flow or has no flow in . An arbitrary flow can be converted acyclic by finding cycles in a residual network . This is standard [2], but for completeness we define it here.
For every directed edge with there exists a forward directed edge in with capacity . For every directed edge with there exists a backward directed edge in with capacity . An augmenting cycle in is a simple directed cycle with strictly more than two edges.
CycleCanceling Algorithm. While there exists an augmenting cycle do the following:

Let be the minimum capacity of an edge in .

For each forward edge , increase by .

For each backward edge , decrease by .
As every iteration increases the number of edges that have flow in or that have no flow in by 1, the CycleCanceling Algorithm terminates after at most iterations. The following observations are straightforward.
Observation 3.1.
The following properties hold when the CycleCanceling Algorithm terminates:

is a feasible flow of units of flow from all the sources.

Every undirected cycle in contains at least one edge with flow in or one edge with no flow in .

The collection of edges in that has flow strictly between and in forms a forest.

The collection of edges in with flow in are a disjoint union of directed paths, which we will call highways.
3.2 Properties of the Acyclic Flows
We now give several definitions and straightforward observations about our acyclic flow that will be useful in our algorithm design and analysis.
Definition 3.2.

A vertex is a source portal if its indegree in is 1, and it has units of flow passing through it in .

A vertex is a sink portal if its outdegree in is 1, and it has units of flow passing through it in .

Let be the forest consisting of edges in that have flow in strictly between and .

For a tree and a vertex define to be the forest that results from deleting the vertex from .
Observation 3.3.
Each sink is in a tree that consists solely of .
Proof.
By assumption, the sink has indegree 1 in and all color classes have full rank. Hence, units of flow are entering through a unique edge. ∎
As our partition reduction algorithm partitions each tree independently, it will be notationally more convenient to fix an arbitrary tree , and make some definitions relative to this fixed , and make some observations that must hold for any such . To a large extent these observations are intended to show that the Figure 2 is accurate.
Definition 3.4.

Let be the collection of source portals in tree .

Let be the collection of sink portals in tree .

A normal vertex is a vertex that is none of a source, a sink, a source portal, nor a sink portal.
Definition 3.5.

A feasible flow in from a collection is a collection of paths, one path for each and paths for each source portal such that (1) is a simple path from to some sink portal, (2) each is a simple path from to a sink portal, and (3) no vertex or edge in has more than such paths passing through it.

A feasible routing in from a collection is a collection of paths, one path for each and one path for each source portal such that (1) is a simple path from to some sink portal, (2) is a simple path from to a sink portal, and (3) no vertex or edge in has more than one such paths passing through it.
This following observation holds for trees in initially and gives intuition for the structure of . We remark that this observation may not hold throughout the execution of our algorithm for all trees.
Observation 3.6.
The number of sources in is an integer multiple of .
Proof.
This follows from the fact that each source portal has exactly units of flow coming into via in the flow and each sink portal has exactly units of flow leaving via in . ∎
Definition 3.7.

For two vertices , let be the unique undirected path from to in .

The backbone of is the subgraph of consisting of the union of all paths in between pairs of sink portals in , that is .

For the backbone , let be the induced forest that results from deleting from .

A vertex in a backbone is a branching vertex if either:

is not a sink portal and the forest contains at least two trees that each contain exactly one sink portal, or

is a sink portal and the forest contains at least one tree that contains exactly one sink portal.


Let be the forest that results from deleting the edges in from the tree .

For two vertices , let be the sources such that there exists a tree such that and such that contains a vertex . Intuitively these are the sources in trees in hanging off vertices of the path .

Let denote .
Observation 3.8.
If is a source portal in then is in the backbone and , that is has outdegree at least 2 in .
Proof.
By definition has a unique incoming edge, which is saturated in , at least one outgoing edge in that is not saturated in . Hence, . By flow conservation, there has to be at least two directed paths from to two different sink portals in . This implies that is in the backbone . ∎
Observation 3.9.
If contains at least two sink portals, then contains a branching vertex .
Proof.
Consider an arbitrary vertex . If is not a branching vertex, then there must be a subtree that contains two sink portals. One can then recurse on to find a branching vertex. ∎
Observation 3.10.
If is a source in then is not in the backbone .
Proof.
As has outdegree 1 in , it can not be on any path between sink portals in . ∎
Observation 3.11.
For each tree it must be the case that all edges in are directed towards the unique vertex in that is also in .
Proof.
This follows from the fact that can not contain a sink portal. ∎
Observation 3.12.
Assume that has at least two sink portals. Let be a branching vertex. Let be a tree in the forest that contains exactly one sink portal . Then the following must hold:

.

If contains a source portal , then .

The path contains at most one vertex such that .
Proof.
The first statement follows from the definition of and the fact that only contains one sink portal. The second statement follows since every vertex on a path other than its endpoints has degree two. For the last statement assume to reach a contradiction that there were two such ’s, and with being closer to in . Then the flow leaving toward could not be feasibly routed through . ∎
3.3 Description of the Partition Reduction Algorithm
Given the collection of trees , our Partition Reduction Algorithm returns a partition of the sources in . The algorithm iterates through the trees in and partitions the sources in based on their locality in . So let us consider a particular tree .
The algorithm performs the first listed case below that applies, with the base cases being checked before the other cases. In the nonbase cases the tree will be modified, and the algorithm called tailrecursively on the modified tree. We will show after the algorithm description that the algorithm maintains the invariant that there is a feasible flow on the tree throughout the recursion.
Base Case A: If contains no sources then the recursion terminates, and the algorithm moves to the next tree in .
Base Case B: Otherwise if contains at most sources and no source portal then these sources are added as a part in . The recursion terminates, and the algorithm then moves to the next tree in .
We perform the following recursively on if neither base case holds. Let be an arbitrary branching vertex in . We will show this must exist in Observation 4.1.
Let be a sink portal in some tree in that only contains one sink portal. If is not a sink portal, let be a sink portal in some tree , where , in that only contains one sink portal. If is a sink portal let .
The algorithm’s cases are broken up as follows. Case 1 is executed when there is a source portal at or in or in . Case 2 is executed when there is a vertex of outdegree 2 in or and there is no source portal. Case 3 is everything else.
Recursive Case 1a: The vertex is a source portal. In this case is modified as follows: (1) for each source a directed edge is added to , (2) is converted into a normal vertex, and (3) all the nonsources in are deleted from . The algorithm then recurses on this new .
Recursive Case 1b: In this case for some the path contains a source portal. In this case is modified as follows: (1) for each source a directed edge is added to , and (2) all the nonsources in are deleted from . The algorithm then recurses on this new .
Recursive Case 2a: In this case for some , the path contains a vertex with and . Add the sources in as a part to . The tree is then modified as follows: (1) for each source a directed edge is added to , and (2) the sources in and all the nonsources in are deleted from . The algorithm then recurses on this new .
Recursive Case 2b: In this case for some , the path contains a vertex with and . In this case the algorithm adds the sources in as a part to . The tree is then modified as follows: (1) for each source a directed edge is added to , and (2) the sources in and all the nonsources in are deleted from . The algorithm then recurses on this new .
Recursive Case 2c: In this case for some , the path contains a vertex with and . In this case the algorithm adds the sources in as a part to . The tree is then modified as follows: (1) for each source a directed edge is added to , and (2) the sources in and all the nonsources in are deleted from . The algorithm then recurses on this new .
Recursive Case 3a: In this case for some contains exactly sources. Add the sources in as a part to . The tree is modified by deleting . The algorithm then recurses on this new .
Recursive Case 3b: The set of sources in are added as a part in . The tree is modified by deleting the vertices in and . Add a new sink portal together with a directed edge to . The algorithm then recurses on this new .
4 Analysis of the Partition Reduction Algorithm
Our goal is to show that the partition matroid, represented by the partition constructed from the trees, indeed corresponds to a feasible partition reduction from the gammoid. The analysis has the following key components.

Every tree has a corresponding feasible flow throughout the algorithm.

Every part of the partition has size at most and all sources are in some part.

Any collection of sources such that for all is in and, therefore, can each route a unit of flow to the sink in .
4.1 The Trees Always Have a Feasible Flow
This section’s goal is to show that each tree has a feasible flow as defined in Definition 3.4 throughout the execution of the algorithm. We will later use this to prove that our partition indeed represents a partition matroid that corresponds to a feasible partition reduction in the following section.
We begin by showing various invariants hold for each tree when a feasible flow exists. In particular, this will show that a branching vertex exists if any of the recursive cases are executed. Moreover, arriving at Cases (3a) and (3b) ensure the existence of and . All together this with the fact that each tree has a feasible flow will establish that the algorithm always has a case to execute if is nonempty.
This observation shows a branching vertex exists if neither base case holds.
Observation 4.1.
Fix a tree during the execution of the algorithm and say supports a feasible flow as defined in Definition 3.4. If neither of the base cases apply then contains at least two sink portals. Moreover a branching vertex must exist in in this case.
Proof.
This observation holds because must contain either more than sources or a source portal along with at least one source. In either case, we require two sink portals to support the strictly more than units of flow from these sources and source portal. A branching vertex must then exist by Observation 3.9. ∎
Observation 4.2.
Fix a tree during execution of the algorithm and say supports a feasible flow as defined in Definition 3.4. Say that has a branching vertex with a tree containing exactly one sink . Moreover say that there is no vertex with outdegree 2 in . It is the case that is a directed path from to .
Proof.
No vertex with outdegree 2 is in . Thus, is either a path from to or from to . Sink portals always have outdegree in , so the observation follows. We note that, sink portals have outdegree 0 in initially and are never given outgoing edges by the algorithm. ∎
The next observation shows that a branching vertex is not a sink portal when Cases (3a) or (3b) are executed.
Observation 4.3.
Fix a tree during execution of the algorithm and say supports a feasible flow as defined in Definition 3.4. Say that has a branching vertex and a corresponding tree with exactly one sink . If does not contain a vertex of outdegree 2 in , then is not a sink portal.
Proof.
Observation 4.2 implies that is a directed path form to . Sink portals always have outdegree in , so the observation follows. We note that, sink portals have outdegree 0 in initially and are never given outgoing edges by the algorithm. ∎
The previous observations guarantee the algorithm always has a case to execute if a feasible flow exists in all trees. The next lemma guarantees the existence of a feasible flow.
Lemma 4.4.
Fix any tree during the execution of the algorithm. There must be a feasible flow in as described in Definition 3.4.
Proof.
The statement trivially holds at the beginning of the algorithm. In particular, each edge of supports at most units of flow. Initially, every node in each tree has outdegree or indegree 1 ensuring that no vertex supports more than units of flow. We remark that during the execution of the algorithm it can be the case that there are vertices with both out and indegree more than one in some trees.
We inductively show that it holds after a single iteration. Let be the tree at the beginning of the iteration and the tree at the end. Let be the initial flow on that is feasible and we will use this to construct a flow on . We break the proof into the case that gets executed.
Consider Recursive Case (1a). Let be the set of sources from the tree which have newly created edges into . There must be at least units of flow in departing that (1) do not enter and (2) originate from sources in or the source portal . This is because has one sink that can support at most units of flow. Let denote these units of flow from to sinks. Set to include all flow paths in except those in . Note these paths never enter the deleted nodes or edges. Next observe that the sink is removed and is no longer a source portal. Thus, we simply need to find a way to send flow for the sources in . These nodes each route one unit of flow to their new edge directly to and then choose a unique flow path in and add these paths to . Notice that no vertex or edge capacity is violated by definition of and .
Consider Recursive Cases (1b), (2b) and (2c). Again, let be the set of sources which have newly created edges into . Let be the tree that initially contained the sources. In this case there must be exactly units of flow in entering from nodes in . This is because in Case (1b) contains one source portal, one sink portal and there are sources in . In Case (2b), contains one sink portal, and there are other sources in . In Case (2c), contains one sink portal, and there are other sources in . Where this flow goes in will exactly correspond to where the flow in goes for the sources that now connect to . That is, has the same flow on every edge as for the edges shared by and . Additionally, there is one unit of flow from each of the sources on the new edge that connects to .
Consider Recursive Case (2a). In this case the node has outdegree two and the sources have a new direct edge into . Notice that any node in cannot reach (since they can’t route through to ). Thus, these sources route to a sink through . In this case, is the same as except these sources now directly send their flow to and then follow their remaining path to a sink as in .
Consider Recursive Case (3a). Let be the tree with exactly sources. There is one sink portal in . No flow in can enter via . This is because then has an outgoing edge in to a node in by Observation 4.2. Then all sources in and at least one unit of flow from must route to , contradicting that receives at most units of flow in . Set to be the same as for all shared edges between and , except remove any flow sent through from sources in in .
Consider Recursive Case (3b). We know is not a sink portal by Observation 4.3. Therefore and exist, each with a unique sink portal. At most units of flow in can route through by definition of . The flow is set to the same as on the shared edges between and . Further, the flow from to sinks and in now go directly to the new sink added that is adjacent to in . This sink must receive at most units of flow.
∎
4.2 Bounding the Size of the Parts in the Partition
This section shows that every source is in some part in and that every has size at most . Thus we have a valid partition with each part having the desired size.
Lemma 4.5.
It is the case that for all . Moreover, every source in is in some set in .
Proof.
It is easy to see that every source in is in some set in . This is because sources are always contained in some tree of until they are added to a set placed in and the algorithm stops once there is no tree in .
Now we show how to bound the size of sets in . Cases (1a) and (1b) do not add a set to . Cases (2b), (2c) and (3a) add a set to of size by definition. Case (2a) adds a set of size .
Case (3b) is more interesting. Consider the execution of this case on a tree with branching vertex . Let and be the corresponding sinks. We know is not a sink portal by Observation 4.3 and therefore and both exist. By Observation 4.2, the paths from to and are directed paths from to and from to . Hence, neither nor contains more than sources. Since case (3a) does not hold, and has strictly less than sources. Thus, there are at most sources in the set added to . ∎
4.3 Routing Sources within a Tree
In this section, we show that the algorithm is indeed a partition reduction from a colorable gammoid to a colorable partition matroid. That is, we show that every set , that is independent in the partition matroid represented by is also independent in the gammoid. More specifically, for any set where for all it is the case that or, equivalently, there is a feasible routing in the digraph from the sources in . The key to this will be Lemma 4.6 which essentially states that there exists a feasible routing in each tree .
Lemma 4.6.
Let be an arbitrary tree in . Let be the parts in that are also in . For a set with for all , let be the subset of sources in that are also in . Then there is a feasible routing in from .
Proof of Lemma 4.6.
For convenience we consider one fixed tree and drop for the notation. The proof is by reverse induction on the recursion in our partitioning algorithm. So the base case of the induction will be the base cases of the partitioning algorithm.
Consider Base Case (A). In this case does not contain any sources. By Lemma 4.4 there exists a feasible flow. Scaling by a factor of implies that we can route one unit of flow from every source portal in to the collection of sink portals, such that no more than one unit of flow is routed through any edge or vertex. Then there must also exist an integer flow, which equals a routing in .
Consider Base Case (B). In this case consists of a single part and there are no source portals in . Let be the unique source in , then can be routed in as is routed in the flow that is guaranteed to exist by Lemma 4.4.
For the recursive cases we construct a routing for the state of the tree before the recursive call from the routing that inductively exists for the state after the recursive calls.
Consider Recursive Case (1a). Let be the collection of sources in . Every source in has a directed edge into in . There can be at most one source since by the induction hypothesis is a routing and at most one path can pass through . If there is no then in the routing , is routed along to . Otherwise let be the unique source in . Let be the tree that contains and let be the unique vertex in . Then in , follows the path of in and is routed through to and from along the path to . We have to argue that there exists a directed path from to and from to in . Since is a source portal it has indegree 0 and, hence, does not contain a vertex with outdegree 2. By Observation 4.2, is a directed path from to . Observation 3.11 states that there also exists a directed path from to . We also have to argue that no vertex or edge in has more than one path passing through it. This clearly holds for the edges and vertices shared by and . Since the paths in are disjoint, it also holds for the edges and vertices that are in and not in .
Consider Recursive Case (1b). Let be the collection of sources in . Every source in has a directed edge into in . There can be at most one , since at most one path can pass through in . If there is no , then in the routing the source portal is routed through to . Otherwise let be the unique source in . Let be the tree that contains and let be the unique vertex in .
If then in is routed through to and from along the path to , where it follows the path of in . The source portal is routed through to .
If then in is routed through to and from along the path to . The source portal is routed through to , where it follows the path of in . By Observation 3.12, is the only vertex with outdegree 2 in . Hence, the path is a directed path from to and the path is a directed path from to . Together with Observation 3.11, which implies that there exists a directed path from to , it follows that the newly created paths above are directed paths from and to . On the edges and vertices in that are also in the routing equals the routing and in both cases, the new paths in are disjoint. Hence, fulfills the property that no more than one path passes through every vertex or edge in .
Consider Recursive Case (2a). Let be the tree that contains the selected source and let be the unique vertex in . Then in , is routed through to and from along the path to . Let be the collection of sources in . Every source in has a directed edge into in . There can be at most one source since at most one route can pass through in .
If there is such a source , let be the tree that contains the source and let be the unique vertex in . Then in is routed through to , from along to where it follows the path of in .
Consider Recursive Case (2b). Let be the tree that contains the unique source in . Let be the collection of sources in . Every source in has a directed edge into in . There can be at most one source since at most one route can pass through in . If there is no then in is routed through to and from along the path to . Otherwise, let be the tree that contains the unique source and let be the unique vertex in . If , then in is routed through to , from along to where it follows the path of in . Then is again routed through to and from along the path to .
If , then in is routed through to , from along to where it follows the path of in . The source is routed through to and from along to .
Consider Recursive Case (2c). Let be the tree that contains the unique source in and let be the unique vertex in . Let be the collection of sources in . Every source in has a directed edge into in . There can be at most one source since at most one route can pass through in . If there is no then in is routed through to and from along the path to . Otherwise, let be the tree that contains the unique source and let be the unique vertex in . Then in is routed through to , from along to where it follows the path of in . is still routed to .
In the Recursive Cases (2a), (2b) and (2c), by Observation 3.12, is the only vertex with outdegree 2 in . Hence, the path is a directed path from to and the path is a directed path from to . Together with Observation 3.11, which implies that there exists a directed path from to and from to , it follows that the newly created paths above are directed paths leaving at and . In all three cases, the routing on the edges and vertices in that are also in equals the routing . In every case, the new paths in are disjoint. Hence in the Recursive Cases (2a), (2b) and (2c), fulfills the property that no more than one path passes through every vertex or edge in .
Consider Recursive Case (3a). Let be the tree that contains the selected source and let be the unique vertex in . Then in is routed through to and from along the path to . By Observation 4.2, the path is a directed path from to . Together with Observation 3.11, which implies that there exists a directed path from to , it follows, that the path from to is a directed path. Since the routing equals the routing of on all edges and vertices shared by and and the route from to only uses edges and vertices in , also fulfills the property that no more than one path passes through every vertex or edge in .
Consider Recursive Case (3b). Let be the tree that contains the selected source and let be the unique vertex in . Then in is routed through to and from along the path to . Let . If there is a source routed to in , then in the route from to equals the route from to in . Instead of going to , we continue along the path
Comments
There are no comments yet.