May 8, 2009 - School of Computer Science and Engineering, University of Electronic ... Multiterminal Cut, and the curren
Theory Comput Syst (2010) 46: 723–736 DOI 10.1007/s00224-009-9215-5
Simple and Improved Parameterized Algorithms for Multiterminal Cuts Mingyu Xiao
Published online: 8 May 2009 © Springer Science+Business Media, LLC 2009
Abstract Given a graph G = (V , E) with n vertices and m edges, and a subset T of k vertices called terminals, the Edge (respectively, Vertex) Multiterminal Cut problem is to find a set of at most l edges (non-terminal vertices), whose removal from G separates each terminal from all the others. These two problems are NP-hard for k ≥ 3 but well-known to be polynomial-time solvable for k = 2 by the flow technique. In this paper, based on a notion farthest minimum isolating cut, we design several simple and improved algorithms for Multiterminal Cut. We show that Edge Multiterminal Cut can be solved in O(2l kT (n, m)) time and Vertex Multiterminal Cut can be solved in O(k l T (n, m)) time, where T (n, m) = O(min(n2/3 , m1/2 )m) is the running time of finding a minimum (s, t) cut in an unweighted graph. Furthermore, the running time bounds of our algorithms can be further reduced for small values of k: Edge 3-Terminal Cut can be solved in O(1.415l T (n, m)) time, and Vertex {3, 4, 5, 6}-Terminal Cuts can be solved in O(2.059l T (n, m)), O(2.772l T (n, m)), O(3.349l T (n, m)) and O(3.857l T (n, m)) time respectively. Our results on Multiterminal Cut can also be used to obtain faster √ algorithms for Multicut: O((min( 2k, l) + 1)2k 2l T (n, m))-time algorithm for Edge Multicut and O((2k)k+l/2 T (n, m))-time algorithm for Vertex Multicut. Keywords Graph algorithm · Parameterized algorithm · Multiterminal cut · Multicut A preliminary version of this paper was presented at the 3rd International Computer Science Symposium in Russia (CSR 2008), and appeared in [1]. The work was supported in part by UESTC Youth Science Funds and Earmarked Research Grant 410206 of the Research Grants Council of Hong Kong SAR. Most of the work was done when the author was a Ph.D. student in Department of Computer Science and Engineering, the Chinese University of Hong Kong. M. Xiao () School of Computer Science and Engineering, University of Electronic Science and Technology of China, Chengdu 610054, People’s Republic of China e-mail:
[email protected]
724
Theory Comput Syst (2010) 46: 723–736
1 Introduction Given a graph G = (V , E) with |V | = n vertices and |E| = m edges, positive integers k and l, and a set T ⊂ V of k vertices, called terminals, the Edge (respectively, Vertex) Multiterminal Cut problem is to find a subset S of at most l edges (non-terminal vertices) such that all terminals in T are in different components of G − S. These two Multiterminal Cut problems are fundamental network design problems and have applications in VLSI system design, parallel computing, distributed computing, clustering, and many others [2–4]. Dahlhaus et al. [2] initiated the study of Edge Multiterminal Cut by establishing its NP-hardness for each fixed k ≥ 3 and giving a polynomial-time (2 − 2/k)approximation algorithm. Later C˘alinescu et al. [5] used a novel geometric relaxation to obtain a polynomial-time (1.5 − 1/k)-approximation algorithm for Edge Multiterminal Cut, and the current best approximation algorithm is the polynomialtime (1.3438 − k )-approximation algorithm developed by Karger et al. [6]. Furthermore, Garg et al. [7] obtained a polynomial-time (2 − 2/k)-approximation algorithm for Vertex Multiterminal Cut, and Naor and Zosin [8] gave a polynomial-time 2approximation algorithm for the Multiterminal Cut problem in directed graphs. In terms of exact algorithms, Edge/Vertex Multiterminal Cuts for k = 2 degenerate to the well-known Minimum Edge/Vertex Cut problems and can be solved in polynomial time by the flow technique and some other techniques. For k ≥ 3, Dahlhaus et al. [2] gave an O((4k)k n(2k−1) log n)-time algorithm for solving Edge Multiterminal Cut in planar graphs, which was later improved to O(k4k n2k−4 log n) by Hartvigsen [9]. Yeh [3] also gave an O(k k (n − k)2k n log(n − k))-time algorithm for Planar Edge Multiterminal Cut. Chen and Wu [10] obtained an O(k 3 n + kn log n)-time algorithm for planar graphs where all the terminals are on the boundary of a face. Marx [11] 3 obtained a 4l nO(1) -time algorithm for Vertex Multiterminal Cut in general graphs. Recently, Chen et al. [12] and Guillemot [13] improved Marx’s result to 4l nO(1) respectively. In this paper, we concentrate on exact algorithms for Multiterminal Cut. To make them tractable, we put much attention to the scenarios where the size l of the multiterminal cut is small. This point of view has drawn much attention in NP-hard problems recently, such as Feige and Mahdian’s work [14] on finding small balanced cuts, and so on. Those who are familiar with Parameterized Complexity [15–17] will find our results positive on the fixed-parameter tractability of finding minimum multiterminal cuts. The running time bounds of most of our algorithms are in the form of f (l)|I |O(1) , where f (l) is a computable function and |I | is the input size of the problem, which implies that our problems are fixed-parameter tractable when l is taken as a parameter. A fixed-parameter tractable algorithm is also called a parameterized algorithm. k−2 We show that Edge Multiterminal Cut can be solved in O(2 k−1 l kT (n, m)) time, which implies that Edge Multiterminal Cut can be solved in polynomial time when l is O(log n). For Vertex Multiterminal Cut, we obtain an O(k l T (n, m))time algorithm. We also prove better running time bounds for small values of k: O(2.059l T (n, m)), O(2.772l T (n, m)), O(3.349l T (n, m)) and O(3.857l T (n, m))time algorithms for Vertex {3, 4, 5, 6}-Terminal Cuts respectively. Our algorithms for
Theory Comput Syst (2010) 46: 723–736
725
Edge Multiterminal Cut and Vertex {3, 4, 5, 6}-Terminal Cuts are the fastest parameterized algorithms so far. Furthermore, our algorithms for Multiterminal Cut can be easily applied to another famous problem—the Multicut problem, in which we are required to separate k given pairs of terminals by deleting √ at most l edges or vertices. We show that Edge Multicut can be solved in O((min( 2k, l)+1)2k 2l T (n, m)) time and Vertex Multicut can be solved in O((2k)k+l/2 T (n, m)) time. In particular, Edge Multicut and Vertex Multicut for k ≤ 5 can be solved in O(1.415l T (n, m)) and O(2.059l T (n, m)) time respectively. For most cases, our results improve the previ3 ously known result of 2kl 4l nO(1) [11] on Multicut. Our algorithms are based on some important properties of the farthest minimum isolating cut of a terminal (see the definition in Sect. 2.3) and a simple observation that each element (an edge, or a vertex for the vertex version) in the farthest minimum isolating cut of a terminal is either in the solution or not. We arbitrarily choose one element and branch on it by either including it in the solution or excluding it from the solution. In the former branch, the size of the current solution increases by 1; and in the latter branch, we can get an equivalent graph, in which the size of the farthest minimum isolating cut of the same terminal will increase. When a solution exists, the size of the solution and all the minimum isolating cuts are bounded by l, and thus we can build a bounded search tree to solve both Edge and Vertex Multiterminal Cuts. The rest of this paper is organized as follows: In Sect. 2, we first introduce some basic techniques and present some structural properties of optimal cut problems. Farthest minimum isolating cut is a frequently used notion in our algorithms. Based on it, we can identify a small set of edges (vertices) in various ways to branch upon in enumerating possible minimum mulk−2 titerminal cuts. In Sect. 3, we present an O(2 k−1 l kT (n, m))-time algorithm for Edge Multiterminal Cut (see Theorem 1). That algorithm only works for the edge version, since it will use a 2-approximation property and this property does not hold in the vertex version. In Sect. 4, we show that Vertex Multiterminal Cut can be solved in O(k l T (n, m)) time (see Theorem 3) and faster algorithms for small values of k: O(2.059l T (n, m)), O(2.772l T (n, m)), O(3.349l T (n, m)) and O(3.857l T (n, m))time algorithms for Vertex {3, 4, 5, 6}-Terminal Cuts respectively (see Theorem 2). In Sect. 5, we give a reduction from Multicut to Multiterminal Cut, which leads to improvements on Multicut.
2 Definitions and Structural Properties 2.1 Different Problem Versions It is easy to transform an Edge Multiterminal Cut instance to a Vertex Multiterminal Cut instance in polynomial time by using some standard techniques. But no polynomial-time reduction in the opposite direction is found, which implies that the edge version might be easier than the vertex version. In this paper our algorithms for the edge version are also faster than those for the vertex version. There are certain relations between those two versions as they have similar definitions and properties, and our algorithms for the vertex version are still applicable to the edge version.
726
Theory Comput Syst (2010) 46: 723–736
Considering their similarities, we will not discuss two versions separately. In the following sections, if no explicit statement is given, the defined terms are applicable for both the edge and vertex versions. For the vertex version cut problems, some papers [18, 19] also discuss the case that terminals can be added to the solution. They call it unrestricted vertex version when terminals are allowed to be removed, and restricted vertex version when terminals are not allowed to be removed. An Unrestricted Vertex Multiterminal Cut instance can be reduced to a restricted vertex version instance simply by adding, for each terminal ti , a new terminal ti adjacent only to ti . With some modifications our algorithms for the restricted vertex version are still applicable for the unrestricted vertex version. In this paper, we do not discuss the unrestricted vertex version problem individually, and vertex version always means restricted vertex version. 2.2 Basic Definitions In this paper, l always denotes the upper bound of the solution size, k the number of terminals (or the number of terminal pairs in the Multicut problem), T = {t1 , t2 , . . . , tk } the terminal set, and T−i = T − {ti } the set of terminals except ti . E(G) and V (G) denote the edge set and vertex set of graph G respectively. N (v) denotes the set of neighbors of vertex v. For a set V of vertices, N (V ) = v∈V N (v) − V is called the neighbor set of V . For a subgraph G in G, an edge e is incident with G if e has exactly one endpoint in V (G ), and a vertex v is adjacent to G if v has at least one neighbor in V (G ) and v ∈ / V (G ). We call an edge (non-terminal vertex) subset an edge (vertex) multiterminal cut, if its removal separates all the terminals. Among all the multiterminal cuts, those with the minimum size are called minimum multiterminal cuts. A minimal multiterminal cut is a multiterminal cut in case that any of its proper subsets is not a multiterminal cut. We call a subset Ci of edges (vertices) an isolating cut of terminal ti , if its removal separates ti from all other terminals T−i . A minimum isolating cut of ti is an isolating cut of ti with the minimum size. A minimum isolating cut, which may not be unique, can be found by using the methods for the Minimum (s, t) Cut problem. Let S be an arbitrary minimum multiterminal cut in G. We consider the connected components of the graph obtained by removing S. Let CPi be the component that contains terminal ti . We will use Si ⊆ S to denote all the edges incident with (vertices adjacent to) CPi in G (i = 1, 2, . . . , k). In Fig. 1, dash-dot lines indicate S1 . Obviously, Si is the minimum isolating cut of ti contained in S. Readers will see that the algorithm for Edge Multiterminal Cut in Sect. 3 will use some properties of Si ’s and the vertex version has no such good properties. In our algorithms, we often branch on an edge (vertex) by either including or excluding it in the solution. To exclude an edge (vertex) from the solution, we can shrink the edge (dissolve the vertex). Shrinking an edge means that we identify the two endpoints of it and keep all edges, including possible parallel edges, incident with the two endpoints, and delete self-loops. To dissolve a vertex we will delete this vertex and all the edges incident with it, and add an edge between every pair of nonadjacent vertices in its neighborhood. When a vertex to be dissolved is adjacent to a terminal, then we can simply implement the dissolving by shrinking the edge
Theory Comput Syst (2010) 46: 723–736
727
Fig. 1 Illustration for Si
Fig. 2 Shrinking and dissolving
between this vertex and the terminal.1 We use G · e to denote the graph after e shrinks (dissolves) in G. See Fig. 2 for an illustration for these two operations. Sometimes we will contract a subgraph into a single vertex, i.e., we replace this subgraph with a single vertex, and keep all the edges incident with it (including parallel edges), and delete self-loops. 2.3 Farthest Minimum Isolating Cuts First, we introduce the notion of farthest minimum isolating cut, which leads to a deep understanding about the structure of cut problems and forms the foundation of our algorithms. A minimum isolating cut Ci of terminal ti separates the graph into two components. One that contains ti is called the residual of Ci and denoted by Ri . The other one is the remaining part that contains T−i , and it is called the outside of Ci . The farthest minimum isolating cut of terminal ti is the minimum isolating cut that maximizes the cardinality of the residual Ri . Here we use ‘the minimum isolating cut’ as opposed to ‘a minimum isolating cut’, since the farthest minimum isolating cut of a given terminal is unique. The uniqueness is discussed and used in the literature [2, 20–22]. It can be easily derived from the Max flow/Min cut theorem [20]. How fast we can find the farthest minimum isolating cut is directly related to the running time of our algorithms since finding the farthest minimum isolating cut is a subroutine in our algorithms. In fact, many algorithms for the Minimum (s, t) Cut problem just find the farthest minimum isolating cut of s or t. The farthest minimum isolating cut of ti can be found in linear time if a maximum flow from ti to T−i is given. There are many fast algorithms for computing maximum flows in the literature. Reader can 1 When a vertex dissolves, the number of edges may increase, which will not cause trouble in our proofs.
In our algorithms, the vertices to be dissolved are adjacent to a terminal. Therefore, we can implement the dissolving in the simpler way without increasing the problem size.
728
Theory Comput Syst (2010) 46: 723–736
refer to [23] as a survey. In this paper, we will use Dinic’s O(min(n2/3 , m1/2 )m)-time algorithm [24] for finding maximum flows in unweighted graphs to compute farthest minimum isolating cuts. We will also use Ci to denote the farthest minimum isolating cut of ti , when there is no confusion. Lemma 1 The farthest minimum isolating cut of terminal ti will not change in the graph after e shrinks (dissolves, for the vertex version), where e is an edge (vertex) not in the farthest minimum isolating cut of ti . Proof Let G be the graph, Ci the farthest minimum isolating cut of terminal ti in G, and e an edge (vertex) not in Ci . Let G · e be the graph after e shrinks (dissolves), and Ci the farthest minimum isolating cut of ti in G·e. Since we keep all resulting parallel edges when shrinking e, then Ci is also a corresponding isolating cut of ti in G. Since e∈ / Ci , Ci is also an isolating cut of ti in G · e. Both Ci and Ci are minimum isolating cuts of ti in G and G · e. Considering the uniqueness of the farthest minimum cuts in two graphs, we can easily get Ci = Ci . Lemma 2 Let Ci be a minimum isolating cut of terminal ti , and Ri the residual of Ci in graph G, (1 ≤ i ≤ k). Then there is a minimum multiterminal cut S of G such that S ∩ E(Ri ) = ∅ (S ∩ V (Ri ) = ∅, for the vertex version). Proof We only give the proof of the vertex version. The edge version can be proved in the same way. Let S be a minimum vertex multiterminal cut of G, CPi the component of G − S that contains terminal ti , and Si ⊆ S the minimum isolating cut of ti contained in S. Obviously, Si is the set of vertices adjacent to CPi . Let Vi = V (Ri ) ∩ V (CPi ) and Vi = V (Ri ) ∪ V (CPi ) (see Fig. 3). Then each vertex in N (Vi ) is either in Si or in Ci . Let Ci = N(Vi ) ∩ Ci , Si = N (Vi ) − Ci , and Ci = Ci − Ci . Then we get Si ⊆ Si and N(Vi ) = Si − Si + Ci . Let Si∗ = S ∩ V (Ri ). Then we get Si ⊆ Si∗ . We argue that S = S − Si∗ + Ci is a minimum multiterminal cut satisfying the constraints of the lemma. First, we prove that S is a multiterminal cut such that S ∩ V (Ri ) = ∅. If there is any path P from one terminal to another in G − S , P must pass through at least one vertex in Si∗ . On the other hand, we can prove that Si∗ and T−i are disconnected in G − S . Since removal of N (Vi ) = Si − Si + Ci disconnects Si∗ ⊆ Vi and T−i , and Fig. 3 Illustration for Vi and Vi
Theory Comput Syst (2010) 46: 723–736
729
N(Vi ) ⊆ S , we know that in G − S no path from one terminal to another passes through a vertex in Si∗ . Second, we prove that S is minimum. Since N (Vi ) = Ci − Ci + Si is an isolating cut of ti and Ci is a minimum isolating cut of ti , we get |Ci | ≤ |N (Vi )| = |Ci − Ci + Si | and thus |Si | ≥ |Ci |.
(1)
Therefore, |S | = |S − Si∗ + Ci | ≤ |S − Si + Ci | = |S| − |Si | + |Ci | ≤ |S|.
We have finished the proof.
Corollary 1 Let Ci be the farthest minimum isolating cut of terminal ti in G, and G be the graph obtained by merging Ri into a new terminal ti . Then any minimum multiterminal cut in G is a minimum multiterminal cut in G. Proof It is obvious that any multiterminal cut in G is a corresponding multiterminal cut in G. We only need to prove that the size of the minimum multiterminal cut in G is not greater than the size of the minimum multiterminal cut in G. In the proof of Lemma 2, we construct a minimum multiterminal cut S in G and S is still a corresponding multiterminal cut in G . Then the size of the minimum multiterminal cut in G is not greater than |S |. Lemma 2 and Corollary 1 imply that we can find minimum multiterminal cuts in a reduced graph obtained by contracting the residuals of farthest minimum isolating cuts. We note that the edge version of Lemma 2 can also be inferred from the proof of Goldschmidt and Hochbaum’s main theorem in [21]. Dahlhaus et al. [2] also proved similar results of the edge version of Lemma 2 and Corollary 1 when discussing reducing the instance size of Edge Multiterminal Cut. However their arguments only work for the edge version.
3 The Algorithm for Edge Multiterminal Cut In this section we will combine farthest minimum isolating cuts and bounded search tree technique to obtain an algorithm for Edge Multiterminal Cut. An interesting analysis enables us to bound the depth of the search tree by k−2 k−1 l, therefore bounding k−2
the running time of our algorithm by O(2 k−1 l kT (n, m)). Before explaining the algorithm, we present some reduction rules to reduce the sizes of Edge Multiterminal Cut instances. Rule 1 For each terminal ti , let Ci and Ri be its farthest minimum isolating cut and the corresponding residual. We can contract Ri in the graph to form terminal ti .
730
Theory Comput Syst (2010) 46: 723–736
Rule 2 We can remove all the edges that connect two terminals from the graph and put them into the solution. The correctness of Rule 1 follows from Corollary 1 and the correctness of Rule 2 is obvious. For convenience, we call a Multiterminal Cut instance after applying Rule 1 and Rule 2 a reduced Edge Multiterminal Cut instance. In a reduced instance, the set of all the edges incident with terminal ti is the farthest minimum isolating cut Ci of ti , and all the farthest minimum isolating cuts are pairwise disjoint. Rule 3 Given a reduced Edge Multiterminal Cut instance, let Ci be a minimum isolating cut of terminal ti , (i = 1, 2, . . . , k). If | ki=1 Ci | > 2l, then there is no multi lk terminal cut with size at most l. If | ki=1 Ci | ≤ k−1 , then i =i Ci is a multiterminal cut with size at most l, where Ci satisfies |Ci | = maxki=1 |Ci |. Lemma 3 Rule 3 is correct. Proof Let S be a minimum multiterminal cut and Si ⊆ S the set of all edges incident with the component of G − S that contains ti (i.e., Si is the minimum isolating cut of ti contained in S), (i = 1, . . . , k). Since S is a minimum multiterminal cut, each edge in S is incident with two nontrivial components (components containing a terminal) of G − S. We get k
|Si | = 2|S|.
(2)
i=1
Since Ci is a minimum isolating cut of ti and Si is also an isolating cut of ti , we have |Ci | ≤ |Si |. Therefore, k k k |Ci | ≤ |Si | = 2|S|. Ci = i=1
i=1
i=1
k
i=1 |Ci | > 2l, then |S| > l. Next, we prove the second claim in Rule 3. It is obvious that i =i Ci is a multiterk lk lk k−1 minal cut. If | i=1 Ci | ≤ k−1 , then | i =i Ci | ≤ ki=1 |Ci | k−1 k ≤ k−1 · k = l.
If
Based on these three reduction rules, we design a simple but effective parameterized algorithm for Edge Multiterminal Cut. Our algorithm is described in Fig. 4. The main idea of the algorithm is that we first use the three reduction rules to reduce the instance size, and then branch on an edge in B = ki=1 Ci by either including the edge in the solution or excluding it from the solution. To analyze the time complexity of the algorithm, we build a recurrence relation based on the control value p = 2l − | ki=1 Ci |. It is obvious that in our algorithm p will not increase in Step 1 and Step 2, and the algorithm will stop in Step 3 when p < 0. In Step 4, we branch on an edge e by either including e in the solution or excluding e from the solution. We prove that in each branch p will decrease by at least 1. When e is included in the solution, then l decreases by 1. It is easy to see
Theory Comput Syst (2010) 46: 723–736
731
EMC(G, T , l) Input: A graph G = (V , E), a terminal set T = (t1 , t2 , . . . , tk ) ⊆ V and an integer l. Output: An edge multiterminal cut of size at most l when it exists and ⊥ when it does not exist. 1. For each terminal ti ∈ T do Find its farthest minimum isolating cut Ci and the corresponding residual Ri ; Contract Ri in G to form terminal ti . 2. Let E be the set of edges that directly connect two terminals. If {E = ∅ & EMC(G − E , T , l − |E |) =⊥}, then return ⊥; If {E = ∅ & EMC(G − E , T , l − |E |) =⊥}, then return E ∪EMC(G − E , T , l − |E |). 3. B ←− ki=1 Ci ; If {|B| > 2l}, then return ⊥; lk }, then return B − C , where C satisfies |C | = maxk |C | and i ∈ {1, 2, . . . , k}. If {|B| ≤ k−1 i i i i=1 i 4. Arbitrarily select an edge e ∈ B; C1 ←− EMC(G · e, T , l); C2 ←− EMC(G − e, T , l − 1). If {C1 =⊥}, then return C1 ; Else if {C2 =⊥}, then return {e} ∪ C2 ; Else return ⊥. Fig. 4 The Algorithm EMC(G, T , l)
that Ci − e is the farthest minimum isolating cut of ti in G − e. For any j = i, the size of the farthest minimum isolating cut in G − e will not change. (Note that if the farthest minimum isolating cut Cj of tj in G − e is of size less than Cj , then Cj + e is an isolating cut of tj in G of size not greater than |Cj |, which will imply that Cj is not the farthest minimum isolating cut of tj .) Therefore, | ki=1 Ci | = ki=1 |Ci | decreases by 1. Totally, p decreases by 1. When e shrinks, it is easy to see that the farthest minimum isolating cut of ti will increase its size by at least 1 and other farthest minimum isolating cuts will not change by Lemma 1. In this branch, p will also decrease by at least 1. Let C(p) be the size of the search tree generated by our algorithm when it is called on a problem with control value p, then we get C(p) ≤ C(p − 1) + C(p − 1) + 1.
(3)
C(p) = O(2p )
(4)
It is easy to verify that
satisfies (3). Next, we determine an upper bound for p. Recall p = 2l − | ki=1 Ci |. If lk | ki=1 Ci | ≤ k−1 , then we will find a solution in Step 3. Else we get k k − 2 l. p = 2l − Ci < k−1
(5)
i=1
k−2
It follows from (4) and (5) that C(p) = O(2 k−1 l ). Since at each node of the search tree, our algorithm will compute at most k farthest minimum isolating cuts, we get
732
Theory Comput Syst (2010) 46: 723–736 k−2
Theorem 1 Edge Multiterminal Cut can be solved in O(2 k−1 l kT (n, m)) time. Corollary 2 Edge 3-Terminal Cut can be solved in O(1.415l T (n, m)) time. 4 The Algorithm for Vertex Multiterminal Cut In this section we present our algorithm for Vertex Multiterminal Cut. The algorithm is also based on data reduction rules. We show that the idea in Sect. 3 can still be used for solving Vertex Multiterminal Cut, but the running time may be worse. First, we give some reduction rules for Vertex Multiterminal Cut. By Corollary 1, we know that Rule 1 for Edge Multiterminal Cut in Sect. 3 is still applicable to Vertex Multiterminal Cut. However, Rule 2 and Rule 3 make changes to Rule 2 There is no solution if one terminal is adjacent to another terminal. Rule 3 We can remove all the vertices that are common neighbors of two terminals and put them into the solution. A reduced Vertex Multiterminal Cut instance is a Vertex Multiterminal Cut instance after applying Rule 1, Rule 2 and Rule 3 . Cut instance, let Ci be a minimum Rule 4 Given a reduced Vertex Multiterminal isolating cut of terminal ti , (i = 1, 2, . . . , k). If | ki=1 Ci | > kl, then there is no ver lk tex multiterminal cut with size at most l. If | ki=1 Ci | ≤ k−1 , then i =i Ci is a multiterminal cut with size at most l, where Ci satisfies |Ci | = maxki=1 |Ci |. The reason why Rule 3 in Sect. 3 is not applicable to Vertex Multiterminal Cut is that (2) does not hold for minimum vertex multiterminal cuts. Instead, we have relation k
|Si | ≤ k|S|.
(6)
i=1
Therefore, we get Rule 4 . Similar to the algorithm in Sect. 3, we first use the four reduction rules to reduce the input size, then branch on a vertex in B = ki=1 Ci by either including it in the solution or excluding it form the solution. Put p = kl − | ki=1 Ci |. When we include a vertex v∈ B in the solution, l decreases by 1. As we discussed in Sect. 3, in this branch, | ki=1 Ci | will decrease by 1. Totally p decreases by k −1. When v dissolves, l does not change and | ki=1 Ci | increases by at least 1. In this branch, p will decrease by at least 1. We get the following recurrence relation: C(p) ≤ C(p − 1) + C(p − (k − 1)) + 1,
(7)
where C(p) is the size of the search tree generated by our algorithm when it is called on a problem with control value p.
Theory Comput Syst (2010) 46: 723–736
Since |
k
k i=1 Ci | > k−1 l,
733
we have
k 1 p = lk − Ci < (k − 1)l − l. k−1
(8)
i=1
By using the substitution method, we can verify that when k = 3, 4, 5 and 6, C(p) = O(2.059l ), O(2.772l ), O(3.349l ) and O(3.857l ) respectively satisfy (7) and (8). The problem of bounding a function C(r) satisfying a recurrence of the form C(r) ≤ C(r − ri ) + O(1) has been extensively studied [25]. The bound r is O([α(r, r 1 , r2 , . . .)] ), where α(r, r1 , r2 , . . .) is the largest root of the function −r i f (x) = 1 − x . Theorem 2 Vertex {3, 4, 5, 6}-Terminal Cuts can be solved in O(2.059l T (n, m)), O(2.772l T (n, m)), O(3.349l T (n, m)) and O(3.857l T (n, m)) time respectively. For general k, we will relax more to get a simplified running time bound. It is clear that C(p) ≤ C(p − 1) + C(p − (k − 1)) + 1 ≤ C(p − 2) + 2C(p − (k − 1)) + 2 ≤ · · · ≤ C(p − (k − 1)) + (k − 1)C(p − (k − 1)) + (k − 1) = kC(p − (k − 1)) + (k − 1). Therefore, C(p) = O(k
p k−1
).
Since k
p k−1