Hardness Results and an Exact Exponential Algorithm for

1Center for Graduate Education Initiative, JAIST, Asahidai 1–1, Nomi, Ishikawa 923–1292, Japan. 2Graduate School of Information Sciences, Tohoku Unive...

0 downloads 16 Views 337KB Size
Journal of Graph Algorithms and Applications http://jgaa.info/ vol. 15, no. 6, pp. 727–751 (2011)

Hardness Results and an Exact Exponential Algorithm for the Spanning Tree Congestion Problem Yoshio Okamoto 1 Yota Otachi 2 Ryuhei Uehara 3 Takeaki Uno 4 1

Center for Graduate Education Initiative, JAIST, Asahidai 1–1, Nomi, Ishikawa 923–1292, Japan. 2 Graduate School of Information Sciences, Tohoku University, Sendai 980–8579, Japan. 3 School of Information Science, JAIST, Asahidai 1–1, Nomi, Ishikawa 923–1292, Japan. 4 National Institute of Informatics, 2–1–2 Hitotsubashi, Chiyoda-ku, Tokyo, 101–8430, Japan.

Abstract Spanning tree congestion is a relatively new graph parameter, which has been studied intensively. This paper studies the complexity of the problem to determine the spanning tree congestion for non-sparse graph classes, while it was investigated for some sparse graph classes before. We prove that the problem is NP-hard even for chain graphs and split graphs. To cope with the hardness of the problem, we present a fast (exponentialtime) exact algorithm that runs in O∗ (2n ) time, where n denotes the number of vertices. Additionally, we present simple combinatorial lemmas, which yield a constant-factor approximation algorithm for cographs, and a linear-time algorithm for chordal cographs.

Submitted: May 2011

Reviewed: September 2011

Final: October 2011 Article type: Regular paper

Revised: Accepted: October 2011 October 2011 Published: October 2011 Communicated by: S.-H. Hong

Extended abstract of this paper appeared in the proceedings of TAMC 2011 [22]. E-mail addresses: [email protected] (Yoshio Okamoto) [email protected] (Yota Otachi) [email protected] (Ryuhei Uehara) [email protected] (Takeaki Uno)

728

1

Okamoto et al. Spanning Tree Congestion Problem

Introduction

Spanning tree congestion is a graph parameter defined by Ostrovskii [23] in 2004. Simonson [27] also studied the same parameter under a different name as a variant of cutwidth. After Ostrovskii [23], several graph-theoretic results have been presented [5, 8, 14, 16, 17, 18, 19, 20, 21, 24, 25], and very recently the complexity of the problem for determining the parameter has been studied [4, 26]. The parameter is defined as follows. Let G be a connected graph and T be a spanning tree of G. The detour for an edge {u, v} ∈ E(G) is a unique u–v path in T . We define the congestion of e ∈ E(T ), denoted by cngG,T (e), as the number of edges in G whose detours contain e. The congestion of G in T , denoted by cngG (T ), is the maximum congestion over all edges in T . The spanning tree congestion of G, denoted by stc(G), is the minimum congestion over all spanning trees of G. We denote by STC the problem of determining whether a given graph has spanning tree congestion at most given k. If k is fixed, then we denote the problem by k-STC. Bodlaender, Fomin, Golovach, Otachi, and van Leeuwen [4, 26] studied the complexity of STC and k-STC. They showed that k-STC is linear-time solvable for apex-minor-free graphs and bounded-degree graphs, while k-STC is NPcomplete even for K6 -minor-free graphs with only one vertex of unbounded degree if k ≥ 8. They also showed that STC is NP-complete for planar graphs. Bodlaender, Kozawa, Matsushima, and Otachi [5] showed that the spanning tree congestion can be determined in linear time for outerplanar graphs. Although several complexity results are known as mentioned above, they are restricted to sparse graphs. The complexity for non-sparse graphs such as chordal graphs and chordal bipartite graphs were unknown. In this paper, we show that STC is NP-complete for these important nonsparse graph classes. More precisely, we show that STC is NP-complete even for chain graphs and split graphs. It is known that every chain graph is chordal bipartite, and every split graph is chordal. The hardness for chain graphs is quite unexpected, since there is no other natural graph parameter that is known to be NP-hard for chain graphs, to the best of our knowledge. The hardness for chain graphs also implies the hardness for graphs of clique-width at most three. To cope with the hardness of the problem, we present a fast exponential-time exact algorithm. Our algorithm runs in O∗ (2n ) time, while a naive algorithm that examines all spanning trees runs in O∗ (2m ) or O∗ (nn ) time, where n and m denote the number of vertices and the number of edges. Note that O∗ (f (n)) = O(f (n) · poly(n)). The idea, which allows us to achieve this running time, is to enumerate all possible combinations of cuts instead of all spanning trees. Using this idea, we can design a dynamic-programming-based algorithm that runs in O∗ (3n ) time. Then, by carefully applying the fast subset convolution method developed by Bj¨orklund, Husfeldt, Kaski, and Koivisto [1], we finally get the running time O∗ (2n ). We also study the problem on cographs. It is known that cographs are precisely the graphs of clique-width at most two. For some cographs such as complete graphs and complete p-partite graphs, the closed formulas for the spanning tree congestion are known [14, 17, 19, 23]. Although

JGAA, 15(6) 727–751 (2011)

729

the complexity of STC for cographs remains unsettled, we provide a constantfactor approximation algorithm for them. Furthermore, we present a linear-time algorithm for chordal cographs. Graphs in this paper are finite, simple, and connected, if not explicitly stated otherwise. We deal with edge-weighted graphs in Subsections 1.2 and 2.1. Our exponential-time exact algorithm runs in O∗ (2n ) time for edge-weighted graphs, too.

1.1

Graphs

Let G be a connected graph. For S ⊆ V (G), we denote by G[S] the subgraph induced by S. For an edge e ∈ E(G), we denote by G − e the graph obtained from G by the deletion of e. Similarly, for a vertex v ∈ V (G), we denote by G − v the graph obtained from G by the deletion of v and its incident edges. By NG (v), we denote the (open) neighborhood of v in G; that S is, NG (v) is the set of vertices adjacent to v in G. For S ⊆ V (G), we denote v∈S NG (v) by NG (S). We define the degree of v in G as degG (v) = |NG (v)|. If degG (v) = |V (G)| − 1, then v is a universal vertex of G. Let G and H be graphs. We say that G and H are isomorphic, and denote it by G ≃ H, if there is a bijection f : V (G) → V (H) such that {u, v} ∈ E(G) if and only if {f (u), f (v)} ∈ E(H). Now assume V (G) ∩ V (H) = ∅. Then the disjoint union of G and H, denoted by G ∪ H, is the graph with the vertex set V (G) ∪ V (H) and the edge set E(G) ∪ E(H). The join of G and H, denoted by G ⊕ H, is the graph with the vertex set V (G) ∪ V (H) and the edge set E(G) ∪ E(H) ∪ {{u, v} | u ∈ V (G), v ∈ V (H)}. For A, B ⊆ V (G), we define EG (A, B) = {{u, v} ∈ E(G) | u ∈ A, v ∈ B}. For S ⊆ V (G), we define the boundary edges of S, denoted by θG (S), as θG (S) = EG (S, V (G) \ S). Note that θG (∅) = θG (V (G)) = ∅. The congestion cngG,T (e) of an edge e ∈ E(T ) in a spanning tree T of G satisfies cngG,T (e) = |θG (Ae )|, where Ae is the vertex set of one of the two components of T −e. For an edge e in a tree T , we say that e separates A and B if A ⊆ Ae and B ⊆ Be , where Ae and Be are the vertex sets of the two components of T −e. Clearly, if T is a spanning tree of G and e ∈ E(T ) separates A and B, then cngG,T (e) ≥ |E(A, B)|. If e separates A and B, we also say that e divides A ∪ B into A and B. Let T be a tree rooted at r ∈ V (T ). Then we denote by prtT (v) the parent of v ∈ V (T ) in T . The parent of the root r is not defined. We denote by ChT (v) the children of v ∈ V (T ) in T . Clearly, NT (v) = {prtT (v)} ∪ ChT (v) for every non-root vertex v.

1.2

Spanning tree congestion of weighted graphs

A graph G may be associated with an edge-weight function wei : E(G) → Z+ . If a graph has such a function, then we call it an edge-weighted graph or just a weighted graph. Note that unweighted graphs can be considered as weighted graphs by setting wei(e) = 1 for eachPedge e. For an edge-weighted graph G and F ⊆ E(G), we define wei(F ) = f ∈F wei(f ) for F ⊆ E(G). We extend

730

Okamoto et al. Spanning Tree Congestion Problem

Perfect Bipartite Chordal bipartite

Chordal

Cograph

Split

Cograph ∩ Chordal = Trivially perfect

Interval bigraph

Open

Bipartite permutation Chain

NP-hard

P Cograph ∩ Split = Threshold

Figure 1: Relations among graph classes.

the notion of spanning tree congestion to edge-weighted graphs by defining the congestion of an edge e as the sum of the weights of edges whose detours pass through the edge e. If e ∈ E(T ) separates vertex sets A and B, then cngG,T (e) ≥ wei(E(A, B)). For a weighted graph G, we define the weighted degree of v in G as wdegG (v) = wei(θG ({v})). It is not difficult to see that the following fact holds. Proposition 1.1 Let G be a weighted graph, and let S ⊆ V (G). Then X wei(θG (S)) = wdegG (v) − 2wei(E(G[S])). v∈S

It is known that STC for weighted graphs is equivalent to STC for unweighted graphs in the following sense. Lemma 1.2 ([4, 26]) Let G be a weighted graph and let e ∈ E(G). Let G′ be the graph obtained from G by removing the edge e and adding wei(e) internally disjoint paths of arbitrary lengths between the endpoints of e, where each edge in the added paths is of unit weight. Then, stc(G) = stc(G′ ).

1.3

Graph classes

Here we introduce some graph classes. Figure 1 depicts relations among graph classes. For graph classes not defined in this subsection see textbooks on graph classes [6, 12]. A graph is chordal if it has no induced cycle of length greater than three. A graph G is a split graph if its vertex set V (G) can be partitioned into two sets C and I so that C is a clique of G and I is an independent set of G. Clearly, every split graph is a chordal graph (see [12]). A cograph (or complement-reducible graph) is a graph that can be constructed recursively by the following rules: 1. K1 is a cograph;

JGAA, 15(6) 727–751 (2011)

731

2. if G and H are cographs, then so is G ∪ H; 3. if G and H are cographs, then so is G ⊕ H. Note that if G is a connected cograph with at least two vertices, then G can be expressed as G1 ⊕ G2 for some nonempty cographs G1 and G2 . A cograph is a chordal cograph if it is also a chordal graph. Chordal cographs are also known as trivially perfect graphs [6, 12] and quasi-threshold graphs [28]. It is known that in the construction of a chordal cograph by the above rules, we can assume one of two operands of ⊕ is K1 [28]. Analogously to chordal graphs, chordal bipartite graphs are defined as the bipartite graphs without an induced cycle of length greater than four. A bipartite graph G = (X, Y ; E) is a chain graph if there is an ordering < on X such that u < v implies NG (u) ⊆ NG (v). It is known that every chain graph is 2K2 -free [29], and thus chordal bipartite. Clique-width is a graph parameter which generalizes treewidth in some sense. Many hard problems can be solved efficiently for graphs of bounded cliquewidth. It is known that every chain graph has clique-width at most three [7], and that a graph has clique-width at most two if and only if it is a cograph [9]. For the definition and further information of clique-width, see a recent survey by Hlinˇen´ y, Oum, Seese, and Gottlob [13].

2

Hardness for split graphs and chain graphs

This section presents our hardness results for split graphs and chain graphs. Namely, we prove the following theorems. Theorem 2.1 STC is NP-complete for split graphs. Theorem 2.2 STC is NP-complete for chain graphs. Since every chain graph has clique-width at most three, we have the following corollary. Corollary 2.3 STC is NP-complete for graphs of clique-width at most three. The weighted edge argument [4, 26] allows us to present a simple proof for split graphs. However, we are unable to present a simple proof based on the weighted edge argument for chain graphs. This is because, in the process of modifying a weighted graph to an unweighted graph, we may introduce many independent edges (see Lemma 1.2). Although we need somewhat involved arguments for chain graphs, the proofs are based on essentially the same idea. Clearly, STC is in NP. The proofs of NP-hardness are done by reducing the following well-known NP-complete problem to STC for both graph classes. Problem: 3-Partition [11, SP15]

732

Okamoto et al. Spanning Tree Congestion Problem

Instance: A multi-set A = {a1P , a2 , . . . , a3m } of 3m positive integers and a bound B ∈ Z+ such that ai ∈A ai = mB, a1 ≤ a2 ≤ · · · ≤ a3m , and B/4 < ai < B/2 for each ai ∈ A. Question: Can A beP partitioned into m disjoint sets A1 , A2 , . . . , Am such that, for 1 ≤ i ≤ m, a∈Ai a = B? (Thus each Ai must contain exactly three elements from A.) It is known that 3-Partition is NP-complete in the strong sense [11]. Thus we assume a3m ≤ poly(m), where poly(m) is some polynomial on m. By scaling each a ∈ A, we can also assume that a1 ≥ 3m + 2, m ≥ 3, B ≥ 8, and B/4 + 1 ≤ ai ≤ B/2 − 1.

2.1

Hardness for split graphs

In this subsection, we prove that STC is NP-hard for split graphs. We first show that STC is NP-hard for edge-weighted split graphs with weighted edges only in the maximum clique, by reducing an instance A of 3-Partition to an edgeweighted split graph GA such that A is a yes instance if and only if stc(GA ) ≤ k for some k. We then show that GA can be modified to an unweighted split graph G′A in polynomial time so that stc(GA ) = stc(G′A ). This proves Theorem 2.1. Let A be an instance of 3-Partition. We now construct GA from A in polynomial time (see Figure 2). Let I = {ui | 1 ≤ i ≤ 3m} and C = {x}∪V ∪W , where V = {vi | 1 ≤ i ≤ m} and W = {wi | m + 1 ≤ i ≤ a3m }. The graph GA has vertex set I ∪ C. The sets I and C are independent set and a clique of GA , respectively. Each ui ∈ I is adjacent to all vertices in V and vertices wm+1 , wm+2 , . . . , wai . More formally, E(GA ) is defined as follows: E(GA ) = {{c, c′ } | c, c′ ∈ C} ∪ {{u, v} | u ∈ I, v ∈ V } ∪ {{ui , wj } | ui ∈ I, m + 1 ≤ j ≤ ai }. Recall that ai > m for any i ≥ 1. The degrees of vertices in GA can be determined as follows: degGA (ui ) = ai , degGA (vi ) = |C| + |I| − 1, and degGA (wi ) = |C| + |{j | aj ≥ i}| − 1. Some edges of GA have heavy weights. Let k = 2B + 2|C| + 2|I| − 15. Then   if e = {x, vi }, α := (k + 1)/2 wei(e) = βi := k − degGA (wi ) + 1 if e = {x, wi },   1 otherwise. Clearly, GA is a split graph with weighted edges only in the clique C. The weighted degrees of vertices in GA is as follows: wdegGA (ui ) = ai , wdegGA (vi ) = α + |C| + |I| − 2 = k − B + 6, and wdegGA (wi ) = k. Lemma 2.4 Let k = 2B + 2|C| + 2|I| − 15. Then A is a yes instance if and only if stc(GA ) ≤ k.

JGAA, 15(6) 727–751 (2011)

733

x C α v1

v2

wm+1

... vm

...

I

u1

βai wm+2 ...

wai

...

wa3m

...

u2

ui

u3m

Figure 2: Reduction. (Unweighted edges in C are not depicted.) x

α v1

U1

...

Ui

vi

...

vm

βi ... wm+1

...

wi

wa3m

Um

Figure 3: Spanning tree T .

P Proof: ( =⇒ ) Let A1 , . . . , Am be a partition of A such that a∈Ai a = B for 1 ≤ i ≤ m. Let Ui denote the set {uj | aj ∈ Ai }. The desired spanning tree T of GA can be obtained from the partition A1 , . . . , Am as follows: E(T ) = {{x, c} | S c ∈ C \ {x}} ∪ 1≤i≤m {{vi , uj } | uj ∈ Ui }. Clearly, T is a spanning tree of GA (see Figure 3). The congestion of a leaf edge in T is at most ∆(GA ) = max{a3m , k, k−B+6}. Clearly, k ≥ k − B + 6 since B ≥ 8. Since |C| = a3m + 1 and B ≥ 8, we have k = 2B + 2|C| + 2|I| − 15 > 2a3m ≥ a3m . Thus ∆(GA ) = k and the congestion of any leaf edge is at most k. Every inner edge of T is of the form {x, vi }. From the definition of T , cngGA ,T ({x, vi }) = wei(θGA ({vi } ∪ Ui )). Since GA [{vi } ∪ Ui ] is a star with center vi , X wei(θGA ({vi } ∪ Ui )) = wdegGA (vi ) + wdegGA (uj ) − 2|Ui | uj ∈Ui

= (k − B + 6) + B − 6 = k.

( ⇐= ) Let T be a spanning tree of GA such that cngGA (T ) ≤ k. First we prove the following two properties of T .

734

Okamoto et al. Spanning Tree Congestion Problem

Property 2.5 All edges incident to x are included in T . Proof: Suppose there is a vertex y ∈ C \ {x} such that {x, y} ∈ / E(T ). Then, a unique path from x to y in T first visits a vertex z ∈ C \ {x, y} immediately after x. Hence, the edge {x, z} ∈ E(T ) has congestion at least wei(EGA ({x}, {y, z})) = wei({x, y}) + wei({x, z}) ≥ 2 min{α, βi }. If βi < α, then k < 2 degGA (wi ) − 1 ≤ 2|C| + 2|I| − 3. This contradicts B ≥ 8.  Therefore, wei(EGA ({x}, {y, z})) ≥ 2α = k + 1. Property 2.6 All ui and wi are leaves of T . Proof: By Property 2.5, it is easy to see that every ui is a leaf of T , since otherwise T has a cycle. Let Ni denote {uj | {wi , uj } ∈ E(T )}. Suppose Ni 6= ∅. Since each uj ∈ Ni is a leaf, cngGA ,T ({x, wi }) = wei(θGA ({wi } ∪ Ni )). Since GA [{wi } ∪ Ni ] is a star with center wi , X wei(θGA ({wi } ∪ Ni )) = wdegGA ({wi }) + wdegGA (uj ) − 2|Ni | uj ∈Ni

=k+

X

(aj − 2).

uj ∈Ni

Since aj > m ≥ 2, we have cngGA ,T ({x, wi }) > k, which is a contradiction.



From the above observations, each ui is a leaf and its unique neighbor in T is some vj . Therefore, T gives a partition A1 , . . . , Am of A such that ai ∈ Aj if and only if ui is adjacent to vj in T . Suppose there is some j such that P ai ∈Aj ai > B. Then clearly |Aj | ≥ 3 since ai < B/2 for any ai ∈ A. From the properties of T discussed above, cngGA ,T ({x, vj }) = wei(θGA ({vj } ∪ Uj )). By the same argument in the proof of Property 2.6, X wei(θGA ({vj } ∪ Uj )) = wdegGA ({vj }) + wdegGA (ui ) − 2|Uj | ui ∈Uj

=k−B+6+

X

ai − 2|Uj | > k + 6 − 2|Uj |.

ui ∈Uj

If |Uj | = 3, then wei(θGA ({vj } ∪ Uj )) > k + 6 − 2|Uj | = k. Hence, |Uj | ≥ 4. Since ai ≥ B/4 + 1, X wei(θGA ({vj } ∪ Uj )) = k − B + 6 + ai − 2|Uj | ui ∈Uj

≥ k − B + 6 + 4(B/4 + 1 − 2) = k + 2

This contradicts cngGA (T ) ≤ k.



Now we prove the NP-hardness of STC for unweighted split graphs. To this end, we first reduce an instance A of 3-Partition to a weighted split graph GA as stated above. Recall that all weighted edges of GA are in GA [C]. We need the following lemma.

JGAA, 15(6) 727–751 (2011)

C

wei({u, v}) = w u v

C

u

735

v

⇐⇒ I

I

...

x1

x2

xw−1

Figure 4: Weighted edge in the clique C.

Lemma 2.7 Let G be an edge-weighted split graph with a partition (C, I) of V (G), where C and I are a clique and an independent set of G, respectively. If the weighted edges are only in G[C] and the maximum edge weight is wmax , then an edge-unweighted split graph G′ satisfying stc(G) = stc(G′ ) can be obtained from G in O(wmax · |E(G)|) time. Proof: Let {u, v} ∈ E(G) be an edge of weight w = wei({u, v}) > 1. We replace the weighted edge between u and v by an unweighted edge, and add w − 1 unweighted u–v paths of length two, where the inner point of ith path is a new vertex xi ∈ I (see Figure 4). Let us call the obtained graph H. Obviously, this can be done in O(w) time, H has less weighted edges than G, and stc(H) = stc(G) by Lemma 1.2. Also it is easy to see that H is a split graph with weighted edges only in H[C]. Therefore, repeatedly applying this local modification, we eventually obtain the desired graph G′ in O(wmax ·|E(G)|) time.  Observe that the maximum edge-weight in GA is bounded by a polynomial function on B and m. Thus the above lemma implies that from an instance A of 3-Partition, we can construct in polynomial time an unweighted split graph G′A and k ∈ Z+ such that A is a yes instance if and only if stc(G′A ) ≤ k. This proves Theorem 2.1.

2.2

Hardness for chain graphs

Next we prove the NP-hardness for chain graphs. Given an instance A of 3Partition, we construct the graph GA = (P, Q; E). For convenience, let M = B + 3m − 4 and γi = |{aj ∈ A | aj ≥ i}|. Note that 0 < γi ≤ 3m for m + 1 ≤ i ≤ a3m . In particular, γm+1 = 3m and γa3m > 0. First we define the vertex sets P = U ∪ V ∪ W and Q = X ∪ Y ∪ Z as follows: U = {ui | 1 ≤ i ≤ m},

X = {xi | 1 ≤ i ≤ 3m},

V = {vi | m + 1 ≤ i ≤ a3m }, W = {wi | 1 ≤ i ≤ M − a3m },

Y = {yi | m + 1 ≤ i ≤ a3m }, Z = {zi | 1 ≤ i ≤ M − a3m }.

736

Okamoto et al. Spanning Tree Congestion Problem

P

U

V

W

P0 U0

V0

W0

Z1

Y1

X1 Q1

Q

X

Y

Z

Q0 X0

Y0

Z0

W1

V1

U1 P1

GA

HA

Figure 5: Graphs GA and HA . A solid line between two sets implies that the two sets induce a complete bipartite graph, and a dotted line between two sets implies that there are some (but not all) edges between the two sets. Two color classes of HA are P0 ∪ Q1 and Q0 ∪ P1 .

Next we define the edge set as follows:1   E = (X × U ) ∪ Y × (U ∪ V ) ∪ Z × (U ∪ V ∪ W ) ∪ {{xi , vj } | xi ∈ X, m + 1 ≤ j ≤ ai } ∪ {{yi , wj } | yi ∈ Y, 1 ≤ j ≤ M − a3m − γi }.

See Figure 5 for a simplified illustration of GA . Let G0 and G1 be two disjoint copies of GA . That is, GA ≃ G0 ≃ G1 and V (G0 ) ∩ V (G1 ) = ∅. By Pi , Qi , Ui , Vi , Wi , Xi , Yi , and Zi , we denote the vertex sets of Gi , i ∈ {0, 1}, that correspond to the vertex sets P , Q, U , V , W , X, Y , and Z of GA , respectively. Similarly, we denote the vertices of Gi , i ∈ {0, 1}, that correspond to vertices uj , vj , wj , xj , yj , and zj of GA by uij , vji , wji , xij , yji , and zji , respectively. We define the graph HA as follows (see Figure 5): V (HA ) = V (G0 ) ∪ V (G1 ) and E(HA ) = E(G0 ) ∪ E(G1 ) ∪ (P0 × P1 ). Lemma 2.8 The graph HA is a chain graph. Proof: Observe that in HA the following relations hold: NHA (x01 ) ⊆ · · · ⊆ NHA (x03m ) ⊆ NHA (y10 ) ⊆ · · · ⊆ NHA (ya03m ) 1 0 ) ⊆ · · · ⊆ NHA (w11 ) ) ⊆ NHA (wM−a ⊆ NHA (z10 ) = · · · = NHA (zM−a 3m 3m

⊆ NHA (va13m ) ⊆ · · · ⊆ NHA (v11 ) ⊆ NHA (u1m ) = · · · = NHA (u11 ). This ordering shows that HA is a chain graph.



Lemma 2.9 degHA (uij ) = 2M + 2m, degHA (vji ) = 2M − m + γj > 2M − m, 2M − a3m ≤ degHA (wji ) ≤ 2M − m, degHA (xij ) = ai , degHA (yji ) = M − γj < M ,  and degHA (zji ) = M . Moreover, ∆(HA ) = 2M + 2m and δ(HA ) = a1 . 1

For simplicity, we denote by S × T the set of unordered pairs {{s, t} | s ∈ S, t ∈ T }.

u02 x10

u0m ...

x20

JGAA, 15(6) 727–751 (2011)

737

v0m+1

P0

v0a3m

w01

...

0 xm ...

0 xm+1

...

0 x3m

y0m+1

...

w0M−a

3m

...

y0a3m

z01

v1a3m

w11

z0M−a

3m

...

Q0

u01

...

u11

u1j

...

{xh1 | ah ∈ A1}

{xh1 | ah ∈ A j}

...

u1m

...

{xh1 | ah ∈ Am}

...

v1m+1

...

...

y1m+1

w1M−a

3m

P1

...

y1a3m

z11

z1M−a

3m

Q1

Figure 6: Spanning tree T in the proof of Lemma 2.10.

Now we prove that A is a yes instance of 3-Partition if and only if stc(HA ) ≤ k. We divide the proof into the only-if-part (Lemma 2.10) and the if-part (Lemma 2.11). Lemma 2.10 Let k = 3M − m − 2. If A is a yes instance, then stc(HA ) ≤ k. P Proof: Let A1 , . . . , Am be the partition of A such that |Ai | = 3 and aj ∈Ai aj = B for 1 ≤ i ≤ m. We shall show that there is a spanning tree T of HA such that cngHA (T ) ≤ k. Roughly speaking, T is constructed as follows (see Figure 6). • Take all edges incident to u01 in HA . • Take {u1j , x1h } if and only if ah ∈ Aj . • Take a perfect matching between {u02 , . . . , u0m } and {x02 , . . . , x0m }. • Take a perfect matching between Vi and Yi for each i ∈ {0, 1}. • Take a perfect matching between Wi and Zi for each i ∈ {0, 1}. More precisely, the edge set of T is defined as follows: E(T ) = {{u01, v} | v ∈ Q0 ∪ P1 } ∪ {{u1j , x1h } | ah ∈ Aj , 1 ≤ j ≤ m} ∪ {{u0j , x0j } | 2 ≤ j ≤ m} ∪ {{vji , yji } | i ∈ {0, 1}, m + 1 ≤ j ≤ a3m } ∪ {{wji , zji } | i ∈ {0, 1}, 1 ≤ j ≤ M − a3m }. Clearly, T is a spanning tree of HA . It is easy to see that edges not incident to u01 are leaf edges. The congestions of these edges are at most ∆(HA ) = 2M +2m. Since B ≥ 8, it follows that 2M + 2m = k − B + 6 < k. There are four types of inner edges, and they divide V (HA ) as follows.

738

Okamoto et al. Spanning Tree Congestion Problem

1. {u01 , u1j } divides V (HA ) into {u1j } ∪ {x1h | ah ∈ Aj } and its complement. 2. {u01 , x0j }, 2 ≤ j ≤ m, divides V (HA ) into {u0j , x0j } and its complement. 3. {u01 , vj1 } or {u01 , yj0 } divides V (HA ) into {vji , yji } and its complement. 4. {u01 , wj1 } or {u01 , zj0 } divides V (HA ) into {wji , zji } and its complement. Hence, it suffices to show that all |θHA ({u1j } ∪ {x1h | ah ∈ Aj })|, |θHA ({u0j , x0j })|, |θHA ({vji , yji })|, and |θHA ({wji , zji })| are at most k. Note that {u1j } ∪ {x1h | ah ∈ Aj } induces a star K1,3 , and all {u0j , x0j }, {vji , yji }, and {wji , zji } induce edges in HA . Recall that M = B+3m−4 and k = 3M −m−2. Thus P 2M +2m = k−B+6. (1) Since degHA (u1j ) = 2M + 2m = k − B + 6 and ah ∈Aj degHA (x1h ) = B, we have |θHA ({u1j } ∪ {x1h | ah ∈ Aj })| = (k − B + 6) + B − 6 = k. (2) Since degHA (u0j ) = 2M + 2m = k − B + 6 and degHA (x0j ) = aj , we have |θHA ({u0j , x0j })| = (k − B + 6) + aj − 2 = k − B + aj + 4. Assumptions aj < B/2 and B ≥ 8 imply that |θHA ({u0j , x0j })| ≤ k. (3) Since degHA (vji ) = 2M − m + γj and degHA (yji ) = M − γj , we have |θHA ({vji , yji })| = 3M − m − 2 = k. (4) Since degHA (wji ) ≤ 2M − m and degHA (zji ) = M , we have |θHA ({wji , zji })| ≤ 3M − m − 2 = k.  Lemma 2.11 Let k = 3M − m − 2. If stc(HA ) ≤ k, then A is a yes instance. Proof: Let T be a spanning tree of HA such that cngHA (T ) ≤ k. We first prove the following properties of T . • Property 2.12. No edge e in T divides P0 ∪ P1 into R and S such that min{|R|, |S|} ≥ 2. • Property 2.13. There exist i ∈ {0, 1} and pi ∈ Pi such that NT (pi ) ⊇ P1−i . We may assume without loss of generality that i = 0 in Property 2.13 and T is rooted at p0 . Assuming Properties 2.12 and 2.13 with these assumptions, we have the following properties. • Property 2.14. All vertices in Q1 are leaves of T , and for any p1 ∈ P1 , ChT (p1 ) ⊆ Q1 . • Property 2.15. For any zj1 ∈ Z1 , prtT (zj1 ) ∈ W1 and ChT (prtT (zj1 )) = {zj1 }. • Property 2.16. T can be modified to a spanning tree T ∗ of HA so that cngHA (T ∗ ) = cngHA (T ), T ∗ has Properties 2.12–2.15, and additionally prtT ∗ (yj1 ) ∈ V1′ and Ch(prtT (yj1 )) = {yj1 } for any yj1 ∈ Y1′ . We postpone the proofs of the above properties, and first prove the lemma with these properties at hand. We assume T satisfies the last condition in Property 2.16; that is, T is already modified. By Properties 2.15 and 2.16, ChT (V1 ∪ W1 ) = Y1 ∪ Z1 . Thus

JGAA, 15(6) 727–751 (2011)

739

Q0 G0 P0

P1

G1

R0

S0

R

S

R1

S1

Q1

Figure 7: Illustration of R and S.

by Property 2.14, prtT (x1j ) ∈ U1 for any x1j ∈ X1 . This implies that T gives a partition of A into m (possibly empty) sets A1 , . . . , Am such that aj ∈ Ah if and only if {x1j , u1hP } ∈ E(T ). Suppose A is not a yes instance. Then there exists some h such that aj ∈Ah aj > B. Since aj < B/2, we have |Ah | ≥ 3. It is easy to see that X (degHA (x1j ) − 2). cngHA ,T ({p0 , u1h }) = degHA (u1h ) + aj ∈Ah

P If |Ah | = 3, then degHA (u1h )+ aj ∈Ah (degHA (x1j )−2) > (2M +2m)+B −6 = k. Thus |Ah | ≥ 4. Since aj ≥ B/4 + 1, we have X (degHA (x1j ) − 2) ≥ (2M + 2m) + 4(B/4 − 1) = k + 2. degHA (u1h ) + aj ∈Ah

This contradicts cngHA (T ) ≤ k, and thus the lemma holds. Now we shall prove the properties. Property 2.12 No edge e in T divides P0 ∪P1 into R and S with min{|R|, |S|} ≥ 2. Proof: Suppose that e ∈ E(T ) divides P0 ∪ P1 into R and S such that min{|R|, |S|} ≥ 2. Clearly, cngHA ,T (e) ≥ |EHA (R, S)|. By symmetry, we may assume |R| ≤ |S|. Let Ri = R ∩ Pi and Si = S ∩ Pi (see Figure 7). Observe that HA [R ∪ S] = HA [P0 ∪ P1 ] ≃ KM,M . Hence, |EHA (R, S)| = |EKM,M (R, S)| = |R| · M − 2|R0 | · |R1 |. Obviously, |R0 | · |R1 | ≤ |R|2 /4 since |R0 | + |R1 | = |R|. Thus we have |EHA (R, S)| ≥ |R| · M − |R|2 /2. Now we divide the rest of the proof into three cases: |R| = 2, |R| ∈ {3, 4, 5}, and |R| ≥ 6. [Case 1] |R| ≥ 6. Since cngHA (T ) ≤ k, we have |R| · M − |R|2 /2 ≤ k < 3M . Thus M<

|R| |R|2 = |R| · ≤ |R|. 2(|R| − 3) 2(|R| − 3)

740

Okamoto et al. Spanning Tree Congestion Problem

This contradicts the assumptions |R| ≤ |S| and |R| + |S| = 2M . [Case 2] |R| ∈ {3, 4, 5}. For this case, we can easily verify that |R| · M − |R|2 /2 > 3M − 5 ≥ 3M − m − 2 = k, since M = B + 3m − 4, B ≥ 8, and m ≥ 3. This contradicts cngHA ,T (e) ≤ k. [Case 3] |R| = 2. Let TR and TS be the components of T − e containing R and S, respectively. From the definition, cngHA ,T (e) = |E(TR , TS )|. Recall that |Z| = M − a3m and NGA (z) = P = U ∪ V ∪ W for any z ∈ Z. Here we have two subcases. [Case 3-1] R 6⊆ Pi for any i. Let R = {r0 , r1 }, where ri ∈ Ri . Clearly, |EHA (R, S)| = |S0 | + |S1 | = 2(M − 1). If zi ∈ Zi is included in TR , then the M − 1 detours from zi to P1−i \ {r1−i } pass through the edge e. If zi ∈ Zi is included in TS , then the detour from zi to r1−i passes through e. In both cases, at least one detour for zi ∈ Zi and its neighbor passes through e. Hence, cngHA ,T (e) ≥ 2(M − 1) + 2(M − a3m ) = k + 4m − 4 + B − 2a3m > k + 4m − 4 ≥ k. [Case 3-2] R ⊆ Pi for some i. Clearly, |EHA (R, S)| = |R| · |S1−i | = 2M . If zi ∈ Zi is included in TR , then the M − 2 detours from zi to Pi \ R pass through the edge e. If zi ∈ Zi is included in TS , then the two detours from zi to R pass through e. In both cases, at least two detours for zi ∈ Zi and its neighbor pass through e. Hence, cngHA ,T (e) ≥ 2M + 2(M − a3m ) > k.  Property 2.13 There exist i ∈ {0, 1} and pi ∈ Pi such that NT (pi ) ⊇ P1−i . Proof: Assume T has Property 2.12. Observe that there is an edge e ∈ E(T ) that lies between P0 and P1 , since otherwise T is disconnected. Let e = {p0 , p1 }, where pi ∈ Pi . By Property 2.12, we may assume, without loss of generality, that e divides P0 ∪ P1 into {p1 } and (P0 ∪ P1 ) \ {p1 }. We shall show that p0 is the desired vertex; that is, NT (p0 ) ⊇ P1 . Let T0 and T1 be the connected components of T − e, where Ti includes pi (see Figure 8). Let p′1 ∈ P1 \ {p1 }. Since p0 , p′1 ∈ V (T0 ), a unique p0 –p′1 path in T is contained in T0 . It suffices to show that the path is a single edge {p0 , p′1 } ∈ E(T ). Suppose this is not the case. Let the unique p0 –p′1 path be (p0 , s1 , . . . , sℓ , p′1 ) with ℓ ≥ 1. Clearly, (p1 , p0 , s1 , . . . , sℓ , p′1 ) is a unique p1 –p′1 path in T . By Property 2.12, no inner vertex sj can be included in P0 ∪P1 , since otherwise the edge {p0 , s1 } divides P0 ∪ P1 into two non-singleton sets. Hence, {s1 , . . . , sℓ } ⊆ Q0 ∪ Q1 . Observe that Q0 ∪ Q1 is an independent set of HA . Thus we have ℓ = 1 and the p0 –p′1 path is (p0 , s1 , p′1 ). However, this cannot be happen, since no vertex in Q0 ∪ Q1 has neighbors both in P0 and P1 .  In the rest of the proof, we assume T has Properties 2.12 and 2.13. We also assume without loss of generality that i = 0 in Property 2.13 and T is rooted at p0 .

JGAA, 15(6) 727–751 (2011)

p′1

s1

p0

e

741

p1

T0

T1

Figure 8: The p0 –p′1 path in T has to be a single edge.

Property 2.14 All vertices in Q1 are leaves of T , and ChT (p1 ) ⊆ Q1 for any p1 ∈ P1 . Proof: Observe that NHA (Q1 ) = P1 . Thus if q ∈ Q1 has two neighbors p and p′ in T , then p, p′ ∈ P1 . By Property 2.13, p and p′ have p0 as their common neighbor. Hence, T has a cycle induced by q, p, p′ , and p0 . This is a contradiction. Therefore, all vertices in Q1 are leaves of T . If p1 ∈ P1 has a neighbor p′0 in P0 \ {p0 }, then {p0 , p1 } ∈ E(T ) separates {p1 , p′0 } and {p0 } ∪ P1 \ {p1 }. This contradicts Property 2.12. Thus for any p1 ∈ P1 , ChT (p1 ) ⊆ Q1 .  Property 2.15 For any zj1 ∈ Z1 , prtT (zj1 ) ∈ W1 and ChT (prtT (zj1 )) = {zj1 }. Proof: Clearly, prtT (zj1 ) ∈ P1 and ChT (prtT (zj1 )) ⊆ Q1 by Property 2.14. We first prove that prtT (zj1 ) ∈ W1 for any zj1 ∈ Z1 . Since ChT (prtT (zj1 )) ⊆ Q1 and vertices in Q1 are leaves of T , cngHA ,T ({p0 , prtT (zj1 )}) = |θHA ({prtT (zj1 )} ∪ ChT (prtT (zj1 )))| X = degHA (prtT (zj1 )) + (degHA (q) − 2) q∈ChT (prtT (zj1 ))

≥ degHA (prtT (zj1 )) + degHA (zj1 ) − 2. If prtT (zj1 ) ∈ U1 ∪ V1 , then degHA (prtT (zj1 )) > 2M − m. Since degHA (zj1 ) = M , degHA (prtT (zj1 )) + degHA (zj1 ) − 2 > 3M − m − 2 = k. Thus prtT (zj1 ) ∈ W1 and ChT (prtT (zj1 )) ⊆ Y1 ∪ Z1 . Let prtT (zj1 ) = wh1 ∈ W1 . Next we prove that zj1 is a unique child of wh1 . Suppose ChT (wh1 ) \ {zj1 } = 6 ∅. Then X (degHA (q)−2) ≥ min{degHA (q) | q ∈ Y1 ∪Z1 }−2 = degHA (y11 )−2, 1 )\{z 1 } q∈ChT (wh j

and thus cngHA ,T ({p0 , wh1 }) ≥ degHA (wh1 ) + degHA (zj1 ) − 2 + degHA (y11 ) − 2 ≥ (2M − a3m ) + M + (M − 3m) − 4 = k + M − a3m − 2m − 2 = k + m + B − a3m − 6 > k + m + B/2 − 6.

742

Okamoto et al. Spanning Tree Congestion Problem

Since m ≥ 3 and B ≥ 8, we have cngHA ,T ({p0 , wh1 }) > k.



Property 2.16 T can be modified to T so that cngHA (T ) = cngHA (T ), T ∗ has Properties 2.12–2.15, and additionally prtT ∗ (yj1 ) ∈ V1′ and Ch(prtT (yj1 )) = {yj1 } for any yj1 ∈ Y1′ . ∗



Proof: By Property 2.14, ChT (prtT (yj1 )) ⊆ Q1 . By Property 2.15, prtT (yj1 ) ∈ U1 ∪ V1 . We first prove that Ch(prtT (yj1 )) = {yj1 }. Suppose Ch(prtT (yj1 )) \ {yj1 } = 6 ∅. Since ChT (prtT (yj1 )) ⊆ Q1 and vertices in Q1 are leaves of T , we have cngHA ,T ({p0 , prtT (yj1 )}) = |θHA ({prtT (yj1 )} ∪ ChT (prtT (yj1 )))| ≥

min degHA (p) + degHA (yj1 ) − 2  + min degHA (q) − 2

p∈U1 ∪V1

q∈Q1

> (2M − m) + (M − γj ) − 2 + a1 − 2 = k + a1 − γj − 2. Since a1 ≥ 3m + 2 and γj ≤ 3m, we have cngHA ,T ({p0 , prtT (yj1 )}) > k. This is a contradiction, and thus Ch(prtT (yj1 )) = {yj1 }. Hence, cngHA ,T ({p0 , prtT (yj1 )}) = degHA (prtT (yj1 )) + degHA (yj1 ) − 2. Next we prove that prtT (yj1 ) ∈ V1 \ V1′ for any yj1 ∈ Y1 \ Y1′ , where V1′ and Y1′ denote {vh1 ∈ V1 | γh = 3m} and {yh1 ∈ Y1 | γh = 3m}, respectively. It is easy to see that degHA (v) = 2M + 2m for any v ∈ U1 ∪ V1′ . Suppose that prtT (yj1 ) ∈ U1 ∪ V1′ for some yj1 ∈ Y1′ . Then cngHA ,T ({p0 , prtT (yj1 )}) = (2M + 2m) + (M − γj ) − 2 = k + 3m − γj > k. This is a contradiction, and thus prtT (yj1 ) ∈ V1 \ V1′ . We now show that T can be modified to T ∗ , without loosing other properties, so that prtT ∗ (yj1 ) ∈ V1′ for any yj1 ∈ Y1′ . Observe that NHA (vj1 ) = NHA (prtT (yj1 )) for any yj1 ∈ Y1′ . Let h be the maximum index such that prtT (yh1 ) 6= vh1 . (If there is no such h, then we are done.) It is easy to see that ChT (vh1 ) ⊆ X1 ∪ {yj | m + 1 ≤ j ≤ h − 1}. We swap the children of vh1 for the children of prtT (yh1 ) (see Figure 9). That is, we remove E − from T and then add E + to T , where E − and E + denote the following edge sets:   E − = {yh1 , prtT (yh1 )} ∪ {vh1 , q1 } | q1 ∈ ChT (vh1 ) ,   E + = {yh1 , vh1 } ∪ {prtT (yh1 ), q1 } | q1 ∈ ChT (vh1 ) .

We call the new tree T ′ . It is not difficult to see that T ′ is a spanning tree of HA , and prtT ′ (yh1 ) = vh1 ∈ V1 . Since NHA (vh1 ) = NHA (prtT (yh1 )), it follows that cngHA (T ′ ) = cngHA (T ). Observe that if we denote by h′ the maximum index such that prtT ′ (yh1 ′ ) 6= vh1 ′ , then h′ < h since ChT (vh1 ) ⊆ X1 ∪ {yj | m + 1 ≤ j ≤ h − 1}. Therefore, by repeatedly applying this swapping, we eventually obtain a desired tree T ∗ .  As we mentioned earlier, Properties 2.12–2.16 imply the lemma.



JGAA, 15(6) 727–751 (2011)

prtT (y1h)

v1h

V1′ ...

W1 ∪ V1 \ V1′

prtT (y1h)

v1h

...

V1′

743

W1 ∪ V1 \ V1′

...

...

...

...

=⇒ ...

chdT (v1h)

...

y1h

Y1′

...

Z1 ∪ Y1 \ Y1′

...

chdT (v1h)

y1h

Y1′

Z1 ∪ Y1 \ Y1′

Figure 9: Swapping ChT (vh1 ) for ChT (prtT (yh1 )).

3

Exponential-time exact algorithm

We have shown that STC is NP-complete even for very simple graphs. It is widely believed that NP-hard problems cannot be solved in polynomial time. Thus we need fast exponential-time (or sub-exponential-time) algorithms for these problems. Nowadays, designing fast exponential-time exact algorithms becomes an important topic in theoretical computer science. See a recent textbook of exponential-time exact algorithms by Fomin and Kratsch [10]. For STC, we can easily design an O∗ (2m )- or O∗ (nn )-time algorithm that examine all spanning trees of input graphs, where n and m denote the number of vertices and the number of edges, respectively. In this section, we describe an algorithm for STC that runs in O∗ (2n ) time. Although it is still an exponential-time algorithm, it is significantly faster than a naive algorithm. Let G = (V, E) be a given undirected graph. For convenience, we denote |θG (X)| by c(X). Note that c(∅) = c(V ) = 0. Consider a spanning tree T with congestion at most k. We regard T as a rooted tree with root r ∈ V . We denote this rooted tree by (T, r). Let e = {u, v} ∈ E(T ) be an edge of T , and without loss of generality, let u be the parent of v. Then, the congestion of e in T is equal to c(DT,r (v)), where DT,r (v) denotes the set of descendants of v in (T, r). Since the congestion of T is at most k, we see that c(DT,r (v)) ≤ k. See Figure 10. Conversely, if c(DT,r (v)) ≤ k for all v ∈ V \ {r}, then the congestion of T is at most k. This is because there exists a one-to-one correspondence between the edges e of T and the vertices v in V \ {r} so that v is a deeper endpoint of e. We summarize this observation in the following lemma. Lemma 3.1 The congestion of a rooted tree (T, r) is at most k if and only if c(DT,r (v)) ≤ k for every vertex v ∈ V \ {r}.  The lemma above suggests the following dynamic-programming approach. We call a pair (X, v) of a subset X ⊆ V and a vertex v 6∈ X a rooted subset of V . By definition, X 6= V for a rooted subset (X, v) of V . A rooted subset (X, v) of V is good if there exists a rooted spanning tree (T, v) of G[X ∪ {v}] such that c(DT,v (u)) ≤ k for all u ∈ X. Here, c is a cut function of G, not of G[X ∪ {v}]. By definition (X, v) is good when X = ∅. Note that there exists a rooted spanning tree (T, r) of G with congestion at most k if and only if the

744

Okamoto et al. Spanning Tree Congestion Problem r v DT,r (v)

Figure 10: The definition of DT,r (v). rooted set (V \ {r}, r) is good. The following lemma provides a recursive formula that forms a basis of our algorithm (see Figure 11). Lemma 3.2 Let (X, v) be a rooted subset of V with |X| ≥ 1. Then, (X, v) is good if and only if at least one of the following holds. 1. c(X) ≤ k and there exists a vertex u ∈ X ∩ NG (v) such that (X \ {u}, u) is good. 2. There exists a non-empty proper subset Y ⊆ X such that both of (Y, v), (X\ Y, v) are good. Proof: For the only-if-part, assume that (X, v) is good. Then, there exists a rooted spanning tree (T, v) of G[X ∪{v}] such that c(DT,v (u)) ≤ k for all u ∈ X. Now, we have two cases. In the first case, v has only one child u in T . Then, u ∈ X ∩ NG (v), and T − v is a spanning tree of G[X] rooted at u. Hence, for all u′ ∈ X we have c(DT −v,u (u′ )) = c(DT,v (u′ )) ≤ k, which means that c(X) = c(DT,v (u)) ≤ k and (X \ {u}, u) is good. Thus, Condition 1 is satisfied. In the second case, v has at least two children in T . Let u1 , . . . , uk be the children of v in T , and T1 , . . . , Tk be the subtrees of T rooted at u1 , . . . , uk , respectively. Then, we set Y to be the vertices of T1 . Then, X \ Y is composed of the vertices of T2 , . . . , Tk . Furthermore, as in the first case, we see that (Y, v) and (X \ Y, v) are good. Thus, Condition 2 is satisfied. We prove the if-part by induction on |X|. When |X| = 1, let X = {u}. First note that Condition 2 cannot be satisfied since {u} cannot have a nonempty proper subset. Therefore, we assume that c({u}) ≤ k and u ∈ NG (v). Then, there exists a unique spanning tree T of G[{u, v}] rooted at v such that DT,v (v) = {u, v} and DT,v (u) = {u}. Since c(DT,v (u)) = c({u}) ≤ k, we see that ({u}, v) is good. We now proceed to the induction step, and let |X| ≥ 2. If Condition 1 is satisfied, by the induction hypothesis, there exists a spanning tree T ′ of G[X] rooted at u such that c(DT ′ ,u (u′ )) ≤ k for all u′ ∈ X \ {u}. Now we form a spanning tree T of G[X ∪ {v}] rooted at v, by attaching v to T ′ through u. This is possible since u ∈ NG (v) (from Condition 1). Then, c(DT,v (u′ )) = c(DT ′ ,u (u′ )) ≤ k for all u′ ∈ X by the induction hypothesis, and c(DT,v (u)) = c(X) ≤ k by Condition 1. Thus, (X, v) is good. If Condition 2 is satisfied, by the induction hypothesis, there exist a spanning tree T1 of G[Y ∪ {v}] rooted at v and a spanning tree T2 of G[(X \ Y ) ∪ {v}]

JGAA, 15(6) 727–751 (2011)

745

v

v

v u ⇐⇒

X

or X \ {u}

(X, v) is good.

(X \ {u}, u) is good and c(X) ≤ k.

Y

X\Y

(Y, v), (X \ Y, v) are good.

Figure 11: An illustration of Lemma 3.2. rooted at v such that c(DT1 ,v (u1 )) ≤ k for all u1 ∈ Y and c(DT2 ,v (u2 )) ≤ k for all u2 ∈ X \ Y . Now we form a spanning tree T of G[X] from T1 and T2 by identifying their roots v. If u ∈ Y , then c(DT,v (u)) = c(DT1 ,v (u)) ≤ k; If u ∈ X \ Y , then c(DT,v (u)) = c(DT2 ,v (u)) ≤ k. Furthermore, c(DT,v (v)) = c(X) ≤ k. Therefore, (X, v) is good.  Lemmas 3.1 and 3.2 above readily give an O∗ (3n )-time dynamic programming algorithm. However, the fast subset convolution method enables us to solve the problem in O∗ (2n ) time. We give more details below. Let S be a finite set. For two functions f, g : 2S → R, their subset convolution is a function f ∗ g : 2S → R defined as X (f ∗ g)(X) = f (Y )g(X \ Y ) Y ⊆X

for every X ⊆ S. Given f (X), g(X) for all X ⊆ S, we can compute (f ∗ g)(X) for all X ⊆ S in O∗ (2n ) total time, where n = |S| [1] (see also Husfeldt’s survey paper [15]). Back to the spanning tree congestion problem, let v ∈ V be an arbitrary vertex. We define the function fv : 2V \{v} → R by the following recursion: fv (X) = 1 if X = ∅; otherwise, X X fv (Y )fv (X \ Y ), fu (X \ {u}) max{0, k − c(X) + 1} + fv (X) = u∈X∩NG (v)

∅6=Y (X

where the empty sum is defined to be 0. It is easy to verify that fv (X) is non-negative for every v ∈ V and every X ⊆ V \ {v}. The following lemma connects the functions fv , v ∈ V and good rooted sets. Lemma 3.3 Let (X, v) be a pair of a subset X ⊆ V \ {v} and a vertex v ∈ V . Then, fv (X) > 0 if and only if (X, v) is a good rooted subset of V . Proof: For the if-part, let (X, v) be a good rooted subset of V . We prove that fv (X) > 0 by the induction on |X|. The base case when |X| = 0 is straightforward from the definition of fv . If |X| ≥ 1, then one of the two conditions in Lemma 3.2 holds. If Condition 1 is satisfied, then c(X) ≤ k and, by the induction hypothesis, fu (X \ {u}) > 0

746

Okamoto et al. Spanning Tree Congestion Problem

for some u ∈ X ∩ NG (v). Therefore, fv (X) > 0 by definition. If Condition 2 is satisfied, then fv (Y ) and fv (X \ Y ) are positive for some non-empty proper subset Y ⊆ X. Thus, by definition, fv (X) > 0. For the only-if-part, assume that fv (X) > 0. We now show that (X, v) is good by the induction on |X|. The base case when |X| = 0 is immediate. If |X| ≥ 1, then one of the following two holds. • fu (X \ {u}) max{0, k − c(X) + 1} > 0 for some u ∈ X ∩ NG (v). • fv (Y )fv (X \ Y ) > 0 for some ∅ 6= Y ( X. When the former condition is satisfied, fu (X \ {u}) > 0 and c(X) ≤ k. By the induction hypothesis, (X \ {u}, u) is good. Hence, Condition 1 in Lemma 3.2 holds, and (X, v) is good. When the latter condition is satisfied, by the induction hypothesis, (Y, v) and (X \ Y, v) are good. Therefore, Condition 2 in Lemma 3.2 holds, and (X, v) is good.  To apply the subset convolution method, we use the following functions. For each i ∈ {0, 1, . . . , n − 1}, where n = |V |, and v ∈ V , let fvi : 2V \{v} → R be defined by ( fv (X) if |X| ≤ i, fvi (X) = 0 if |X| > i, for all X ⊆ V \ {v}. Then, it is not difficult to see the following. 1. For all v ∈ X and X ⊆ V \ {v}, fvn−1 (X) = fv (X). fvn−1 (X) = fv (X). 2. For all v ∈ V and X ⊆ V \ {v}, fv0 (X)

=

(

1 0

if X = ∅, otherwise.

3. For all i ∈ {1, . . . , n − 1}, v ∈ V , and X ⊆ V \ {v} X fui−1 (X \ {u}) max{0, k − c(X) + 1} fvi (X) = u∈X∩NG (v)

X

+

fvi−1 (Y )fvi−1 (X \ Y )

∅6=Y (X

=

X

fui−1 (X \ {u}) max{0, k − c(X) + 1}

u∈X∩NG (v)

+

X

fvi−1 (Y )fvi−1 (X \ Y ) − 2fvi−1 (∅)fvi−1 (X)

Y ⊆X

=

X

fui−1 (X \ {u}) max{0, k − c(X) + 1}

u∈X∩NG (v)

+ (fvi−1 ∗ fvi−1 )(X) − 2fvi−1 (∅)fvi−1 (X).

JGAA, 15(6) 727–751 (2011)

747

Our algorithm is based on these formulas. Step 1. For all v ∈ V and X ⊆ V \ {v}, compute fv0 (X) based on the formulas above. Step 2. For each i = 1, . . . , n − 1 in the ascending order, do the following. Step 2-1. For all v ∈ V , compute the subset convolution fvi−1 ∗ fvi−1 . Step 2-2. For all v ∈ V and all X ⊆ V \ {v}, compute fvi (X) based on the formula above. Step 3. If fvn−1 (V ) > 0, then output Yes. Otherwise, output No. The correctness is immediate from the discussion so far. The running time is O∗ (2n ) since the running time of each step is bounded by O∗ (2n ). This is an algorithm for solving the decision problem, but a simple binary search on k ∈ {1, . . . , |E|} can provide the spanning tree congestion. Thus, we obtain the following theorem. Theorem 3.4 The spanning tree congestion of a given undirected graph can be computed in O∗ (2n ) time. Note that the algorithm also works for the weighted case with the O(n)-factor increase of the running time, since the number of distinct cut values c(X) is bounded by 2n and so the binary search over the all possible values of c(X) takes at most O(log(2n )) = O(n) iterations. This is possible if we compute c(X) for all X ⊆ V beforehand, which only takes O∗ (2n ) time.

4

Remarks on cographs

We have shown the NP-completeness of STC for graphs of clique-width at most three. Here we study the spanning tree congestion of the graphs of clique-width at most two; that is, cographs [9]. To deal with STC on cographs, we first present two combinatorial lemmas. Let µG (u, v) be the maximum number of edge-disjoint u–v paths in G, and let µ(G) = maxu,v∈V (G) µG (u, v). Ostrovskii [23] showed that stc(G) ≥ µ(G) for any graph G. Recall that a vertex v ∈ V (G) is universal if v is adjacent to all other vertices in G. Lemma 4.1 The spanning tree congestion of a graph G with a universal vertex u is ∆(G − u) + 1. Proof: Let G be a graph and u its universal vertex. The star spanning tree centered at u has congestion ∆(G−u)+1. Let v be a vertex of G−u with degree ∆(G − u). For each w ∈ NG−u (v), there is a u–v path (u, w, v) in G. Also, the edge {u, v} itself is a u–v in G. Since these paths are pairwise edge-disjoint, we have stc(G) ≥ ∆(G − u) + 1. 

748

Okamoto et al. Spanning Tree Congestion Problem

Lemma 4.2 The spanning tree congestion of G = G1 ⊕G2 can be approximated within a factor three in polynomial time. Proof: For the sake of simplicity, let ni and ∆i denote |V (Gi )| and ∆(Gi ), respectively. We assume n1 , n2 ≥ 2 since otherwise we can determine stc(G) by Lemma 4.1. Let u, v ∈ V (G1 ). Since G = G1 ⊕ G2 , both NG (u) and NG (v) contain V (G2 ). Therefore, µ(G) ≥ µG (u, v) ≥ n2 . By symmetry, we have µ(G) ≥ n1 as well. For i ∈ {1, 2}, let ui be a maximum degree vertex of Gi . For each w ∈ NG1 (u1 ) ∪ NG2 (u2 ), we have a u1 –u2 path (u1 , w, u2 ) in G. Thus µ(G) ≥ ∆1 + ∆2 . Combining these bounds, we have stc(G) ≥ µ(G) ≥ max{n1 , n2 , ∆1 + ∆2 } ≥ (n1 + n2 + ∆1 + ∆2 )/3. Let V (Gi ) = {v1i , v2i , . . . , vni i } for i ∈ {1, 2}. Assume n1 ≤ n2 without loss of generality. We construct a spanning tree T of G as follows (in polynomial time): E(T ) = {{v11 , vj2 } | 1 ≤ j ≤ n2 } ∪ {{vj1 , vj2 } | 2 ≤ j ≤ n1 }. Every leaf edge in T has congestion at most ∆(G) = max{∆1 + n2 , ∆2 + n1 }. It is easy to see that every inner edge e of T divides V (G) into {v1 , v2 } and its complement, where vi ∈ V (Gi ). Therefore, cngG,T (e) ≤ degG (v1 ) + degG (v2 ) ≤ ∆1 + n2 + ∆2 + n1 . Thus cngG (T ) ≤ ∆1 + n2 + ∆2 + n1 ≤ 3stc(G).  Let G be a connected cograph with at least two vertices. Then G can be expressed as G1 ⊕ G2 for some nonempty cographs G1 and G2 . Furthermore, if G = G1 ⊕ G2 is a chordal cograph, then at least one of G1 and G2 is K1 [28]. Therefore, every connected chordal cograph with at least two vertices has a universal vertex. By Lemmas 4.1 and 4.2, we have the following corollary. Corollary 4.3 The spanning tree congestion of cographs can be approximated within a factor three in polynomial time. Furthermore, the spanning tree congestion of chordal cographs can be determined in linear time.

5

Conclusion

We showed that the problem of determining the spanning tree congestion is NP-hard even for very simple graphs such as split graphs and chain graphs. To cope with the hardness, we presented an exact O∗ (2n )-time algorithm for the spanning tree congestion problem, where n is the number of vertices. The complexity of STC for some important graph classes such as cographs and interval graphs remains unsettled. Note that k-STC is solvable in linear time even for chordal graphs (and thus for interval graphs). To see this, recall that a chordal graph has small treewidth if and only if it contains no large clique [3]. Since a large clique contains many edge disjoint paths, we can conclude that a chordal graph has small spanning tree congestion only if its treewidth is small. Thus we have a linear-time algorithm for k-STC on chordal graphs, since small treewidth can be checked in linear time [2] and k-STC can be solved in linear time for small treewidth graphs [4].

JGAA, 15(6) 727–751 (2011)

749

Acknowledgments Part of this research is supported by the Funding Program for World-Leading Innovative R&D on Science and Technology, Japan, and Grants-in-Aid for Scientific Research from Ministry of Education, Science and Culture, Japan, and Japan Society for the Promotion of Science.

750

Okamoto et al. Spanning Tree Congestion Problem

References [1] A. Bj¨orklund, T. Husfeldt, P. Kaski, and M. Koivisto. Fourier meets M¨ obius: Fast subset convolution. In Proceedings of the 39th Annual ACM Symposium on Theory of Computing (STOC ’07), pages 67–74, 2007. [2] H. L. Bodlaender. A linear-time algorithm for finding tree-decompositions of small treewidth. SIAM J. Comput., 25:1305–1317, 1996. [3] H. L. Bodlaender. A partial k-arboretum of graphs with bounded treewidth. Theoret. Comput. Sci., 209:1–45, 1998. [4] H. L. Bodlaender, F. V. Fomin, P. A. Golovach, Y. Otachi, and E. J. van Leeuwen. Parameterized complexity of the spanning tree congestion problem. Algorithmica, to appear. [5] H. L. Bodlaender, K. Kozawa, T. Matsushima, and Y. Otachi. Spanning tree congestion of k-outerplanar graphs. Discrete Math., 311:1040–1045, 2011. [6] A. Brandst¨ adt, V. B. Le, and J. P. Spinrad. Graph Classes: A Survey. SIAM, 1999. [7] A. Brandst¨ adt and V. V. Lozin. On the linear structure and clique-width of bipartite permutation graphs. Ars Combin., 67:273–281, 2003. [8] A. Castej´on and M. I. Ostrovskii. Minimum congestion spanning trees of grids and discrete toruses. Discuss. Math. Graph Theory, 29:511–519, 2009. [9] B. Courcelle and S. Olariu. Upper bounds to the clique width of graphs. Discrete Appl. Math., 101:77–114, 2000. [10] F. V. Fomin and D. Kratsch. Exact Exponential Algorithms. Springer, 2010. [11] M. R. Garey and D. S. Johnson. Computers and Intractability: A Guide to the Theory of NP-Completeness. Freeman, 1979. [12] M. C. Golumbic. Algorithmic Graph Theory and Perfect Graphs, volume 57 of Annals of Discrete Mathematics. North Holland, second edition, 2004. [13] P. Hlinˇen´ y, S. Oum, D. Seese, and G. Gottlob. Width parameters beyond tree-width and their applications. Comput. J., 51:326–362, 2008. [14] S. W. Hruska. On tree congestion of graphs. Discrete Math., 308:1801–1809, 2008. [15] T. Husfeldt. Invitation to algorithmic uses of inclusion–exclusion. In Proceedings of the 38th International Colloquium on Automata, Languages and Programming (ICALP 2011), Part II, volume 6756 of Lecture Notes in Comput. Sci., pages 42–59. Springer-Verlag, 2011.

JGAA, 15(6) 727–751 (2011)

751

[16] K. Kozawa and Y. Otachi. Spanning tree congestion of rook’s graphs. Discuss. Math. Graph Theory, 31:753–761, 2011. [17] K. Kozawa, Y. Otachi, and K. Yamazaki. On spanning tree congestion of graphs. Discrete Math., 309:4215–4224, 2009. [18] H.-F. Law. Spanning tree congestion of the hypercube. Discrete Math., 309:6644–6648, 2009. [19] H.-F. Law and M. I. Ostrovskii. Spanning tree congestion: duality and isoperimetry; with an application to multipartite graphs. Graph Theory Notes N. Y., 58:18–26, 2010. [20] H.-F. Law and M. I. Ostrovskii. Spanning tree congestion of some product graphs. Indian J. Math., 52:103–111, 2011. [21] C. L¨ owenstein, D. Rautenbach, and F. Regen. On spanning tree congestion. Discrete Math., 309:4653–4655, 2009. [22] Y. Okamoto, Y. Otachi, R. Uehara, and T. Uno. Hardness results and an exact exponential algorithm for the spanning tree congestion problem. In Proceedings of the 8th Annual Conference on Theory and Applications of Models of Computation (TAMC 2011), volume 6648 of Lecture Notes in Comput. Sci., pages 452–462. Springer-Verlag, 2011. [23] M. I. Ostrovskii. Minimal congestion trees. Discrete Math., 285:219–226, 2004. [24] M. I. Ostrovskii. Minimum congestion spanning trees in planar graphs. Discrete Math., 310:1204–1209, 2010. [25] M. I. Ostrovskii. Minimum congestion spanning trees in bipartite and random graphs. ActaMath. Sci., 31B:634–640, 2011. [26] Y. Otachi, H. L. Bodlaender, and E. J. van Leeuwen. Complexity results for the spanning tree congestion problem. In Proceedings of the 36th International Workshop on Graph Theoretic Concepts in Computer Science (WG 2010), volume 6410 of Lecture Notes in Comput. Sci., pages 3–14. Springer-Verlag, 2010. [27] S. Simonson. A variation on the min cut linear arrangement problem. Math. Syst. Theory, 20:235–252, 1987. [28] J.-H. Yan, J.-J. Chen, and G. J. Chang. Quasi-threshold graphs. Discrete Appl. Math., 69:247–255, 1996. [29] M. Yannakakis. Computing the minimum fill-in is NP-complete. SIAM J. Alg. Disc. Meth., 2:77–79, 1981.