Efficient Approximation for Triangulation of Minimum Treewidth Eyal Amir Department of Computer Science, Gates Building, 2A wing Stanford University, Stanford, CA 94305-9020, USA
[email protected] October 31, 2000 Abstract Finding triangulations of minimum treewidth for graphs is central to many problems in computer science. Real-world problems in artificial intelligence, VLSI design and databases are efficiently solvable if we have an efficient approximation algorithm for this problem. In this paper we present a simple approximation algorithm for finding triangulations of minimum treewidth. The algorithm produces factor-3 approximations in time O(22k k3.5 n2 ), where n, k are the number of nodes and the treewidth of the given graph, G, respectively. This time bound is significantly better than previously achieved for any constant-factor approximation for this problem. We report on experimental results confirming the effectiveness of our algorithm.
1 Introduction Given an undirected graph, G, and an integer k, TREEWIDTH is the problem of deciding whether the treewidth of G is at most k [30]. A related constructive problem is finding a triangulation of G with a clique number that is at most k + 1 (the clique number of a graph is the size of the largest clique in this graph). This is also equivalent to finding a tree decomposition of G with width at most k. The efficient solution to this problem is key in many applications in artificial intelligence, databases and logical-circuit design. For instance, much of the work in probabilistic reasoning depends on finding close to optimal tree decompositions (e.g., [6]). Recent developments relate efficient reasoning in first-order logic (FOL) with efficiently finding close-to-optimal tree decompositions [3]. Computing proximity of web pages on the WWW is done efficiently using a tree decomposition of low treewidth [20]. The solution time of many graph-related NP-hard problems is possible in polynomial time if the graph has low treewidth and a triangulation of minimum treewidth is given (e.g., [5]). Also, there is evidence that many real-life instances of the problems we wish to solve have low treewidth [15, 25]. 1
Optimally solving TREEWIDTH is known to be NP-hard [4]. It is an open question whether a constant-factor approximation can be found in polynomial time. Nevertheless, several algorithms with guaranteed optimal solutions (e.g., [8, 32, 12]) or constant-factor approximations to the optimal (e.g., [30, 4, 26, 1, 11, 29, 24, 8, 7]) were found. These algorithms take time that depends polynomially on n and exponentially on k, the treewidth of the graph. Most of the work on this problem so far considered k to be a constant. This is an assumption that cannot be made in practical applications. For example, the linear-time algorithm (for a fixed k) by [8] cannot solve TREEWIDTH for graphs of treewidth greater than 4 in any reasonable amount of time (see [31]). This is due to a time bound 3 of O(28k · n) for that algorithm. Algorithms with the best time bounds found so far that do not assume a bounded treewidth are due to [7] (factor-3.67 approximation, with time O(24.66k ·n·poly(n)), where poly(n) is the running time of linear programming), and [29] (factor-5 approximation, with time O(34k · k 2 · nlogn)). Experiments with the fastest algorithms available show that TREEWIDTH of graphs with treewidth of 10 or more cannot be solved in any reasonable amount of time (reasonable here is less than 24 hours), for graphs of 100 nodes or more (see [7, 32]). Graphs of sizes larger than these are exactly those that are of interest in the applications we mentioned above. In this paper we focus on decreasing the running time as a function of both n and k. For a graph G(V, E), we use minimum a, b-vertex-separators to find 21 -vertex |V | 1 2 2 separators of a set of vertices W ⊂ V in time O(2|W | ( |W | ) (|E|+|W | )) (taking only W ’s of size 2k + 2). We use this algorithm to give a factor-3 approximation to optimal 5 7 3 triangulation. Two variants of our algorithm take time O(22k k 2 n 2 ), and O(22k k 2 n2 ), respectively, for n = |V | and k − 1 the treewidth of G. This is the best combined n, k time bound known for any constant-factor approximation algorithm. In particular, if k ≥ O(logn), then our algorithm is more efficient than previous algorithms. We have implemented this algorithm and used it to find tree decompositions of graphs used in the HPKB project [14] and in the CYC knowledge base [28]. One of those graphs had 570 vertices and treewidth greater than 23 (the width achieved by our decomposition was 70; we do not know the actual treewidth). There was no way to treat this size of graphs and treewidth before. A good survey paper on TREEWIDTH is [9]. A good book on the subject is [24].
2 Preliminaries and Definitions 2.1 Minimum Vertex Separators We briefly describe the notion of a vertex separator. Let G = (V, E) be an undirected graph. A set S of vertices is called an (a, b)-vertex-separator if {a, b} ⊂ V \ S and every path connecting a and b in G passes through at least one vertex contained in S. An (a, b)-vertex-separator of minimum cardinality is said to be a minimum (a, b)vertex-separator. The weaker property of a vertex separator being minimal requires that no subset of the (a, b)-vertex-separator is an (a, b)-vertex-separator. In the rest of the paper we will say separator and minimum separator for an (a, b)-vertex-separator and a minimum (a, b)-vertex-separator, respectively. 2
We briefly review an algorithm by Even and Tarjan [17, 18] for finding minimum vertex separators. The algorithm is given two vertices, a, b, and an undirected graph, G. ¯ that has two vertices (corresponding to input It transforms G into a directed graph, G, and output) for each original vertex of G, directed edges connecting the corresponding input and output vertices, and edges corresponding to those of G, but only from output ¯ To extract a minimum to input vertices. It then runs a max-flow algorithm on G. ¯ and the flow found, f . separator, it produces a layered network (see [17] p.97) from G ¯ The layered network includes a subset of the vertices of G. The set of edges between ¯ corresponds to the separator. this set of vertices and the rest of G Algorithms for finding maximal flow are abundant in the graph algorithms literature. Prominent algorithms for max-flow include the Simplex method, Ford and Fulkerson’s [21], the push-relabel method of Goldberg and Tarjan [19] (time bound |2 of O(|V | · |E| · log |V |E| ) and several implementations [13]), and Dinitz’s algorithm [16]. When Dinitz’s algorithm is used to solve the network problem, Even and Tarjan’s 1 algorithm has time complexity O(|V | 2 |E|) [17]. The unit-capacity network-flow algorithm of [2] can also be used here, giving Even and Tarjan’s algorithm time complexity 1 of O(|V | 2 |E|) as well. More recently, a parallel algorithms that tests if a, b are k vertex-connected in time O(k 3 log|V |) using O(CC(|V |, |E|)) processors was suggested by [22, 23] (CC(n, m) is the minimal number of processors needed to find connected components in time O(logn)). A sequential algorithm that finds a minimum (a, b)-vertex-separator and takes time O(k 2 (|V | + |E|)) can be created from this algorithm (see [27]).
2.2 Treewidth In this section we briefly recall some of the main definitions pertaining to treewidth. A cycle in a graph is chordless if no proper subset of the vertices of the cycle form a cycle. Definition 2.1 A graph is triangulated (or chordal) if it contains no chordless cycle of length greater than three. A triangulation of a graph G is a graph H with the same set of vertices such that G is a subgraph of G and such that H is triangulated. Definition 2.2 ([30]) A tree-decomposition of a graph G(V, E) is a pair D = (S, T ) with S = {Xi | i ∈ I} a collection of subsets of vertices of G and T = (I, F ) a tree, with one node for each subset of S, such that the following three conditions are satisfied: S 1. i∈I Xi = V . 2. For all edges (v, w) ∈ E there is a subset Xi ∈ S such that both v, w are contained in Xi . 3. For each vertex x, the set of nodes {i | x ∈ Xi } forms a subtree of T .
3
The width of a tree-decomposition ({Xi | i ∈ I}, T = (I, F )) is maxi∈I (|Xi |−1). The treewidth of a graph G equals the minimum width over all tree-decompositions of G. Equivalently, the treewidth of G is the minimum k ≥ 0 such that G is a subgraph of a triangulated graph with all cliques of size at most k + 1. Any triangulation of a graph defines a tree-decomposition of a graph of the same treewidth. Similarly, every tree-decomposition of a graph defines a triangulation of it of the same treewidth. Definition 2.3 Let G(V, E) be a graph, W ⊆ V a subset of the vertices and α ∈ (0, 1) a real number. An α-vertex-separator of W in G is a set of vertices S ⊆ V such that every connected component of G[V \ S] has at most α|W | vertices of W . Lemma 2.4 ([30]) If G(V, E) is a graph with treewidth < k and W ⊆ V , then there is a 12 -vertex-separator of W in G with size at most k. In fact, [30] proved a slightly stronger property, but this formulation is sufficient for our purposes. Corollary 2.5 ([24]) Let G(V, E) be a triangulated graph with n vertices. There is a clique C such that every component of G[V \ C] has at most ⌈ 21 (n − |C|)⌉ vertices. Corollary 2.6 ([24]) Let G(V, E) be a graph with n vertices and treewidth k. There exists a set S with k + 1 vertices such that every connected component of G[V \ S] has at most 12 (n − k) vertices.
3 A Factor-3 Approximation Triangulation Algorithm In this section we present the procedure triangulate. It is displayed in Figure 1. We show that running triangulate(G, ∅, k), for a graph G and a parameter k, either returns a valid answer that the the treewidth of G is of size > k − 1 or it returns a triangulation of G of clique number at most 3 · k + 1. PROCEDURE triangulate(G, W , k) G = (V, E) with |V | = n, W ⊆ V , k integer. 1. If n ≤ 2k + 2, then make a clique of G. Return. 2. Let W ′ ← W . Add to W ′ vertices from V such that |W ′ | = 2k + 2. 3. Find X, a minimum 12 -vertex-separator of W ′ in G, with S1 , S2 two nonempty parts separated by X (S1 ∪ S2 ∪ X = V ) and |X| ≤ k. If there is no such separator, then output “the treewidth exceeds k − 1” and exit. 4. For i ← 1 to 2 do (a) Wi ← Si ∩ W . (b) call triangulate(G[Si ∪ X], Wi ∪ X, k). 5. Add edges between vertices of W ∪ X, making a clique of G[W ∪ X].
Figure 1: Triangulate G such that W is a clique.
4
The algorithm uses the simple principle of divide-and-conquer. The main improvement in this algorithm over similar previous algorithms (e.g., the O(k · log n)-factor approximation algorithm of [24, 10]) is in using an exact 12 -vertex-separator for W in G. The computational efficiency of the algorithm relies on an efficient way to find a 1 2 -vertex-separator for W in G, which we provide below. It is also important to notice that there is no benefit in finding a 21 -vertex-separator for V instead. The approximation ratio will still be 3, and the time saved by dividing into proportional subsets is negligible compared to the time spent in dividing V . We now turn to detailing the properties of the algorithm. First, we observe that if we have a procedure that performs step 3 for W ′ , then the clique number of the triangulation is bounded by 3k + 1. Lemma 3.1 If G(V, E) is a graph with n vertices, k an integer and W ⊆ V such that |W | ≤ 2k + 1, then triangulate(G,W ,k) either outputs correctly that the treewidth of G is more than k − 1 or it triangulates G such that the vertices of W form a clique and the clique number of the resulting graph is at most 3k + 1. P ROOF If the algorithm outputs that the treewidth is more than k − 1, then it did not find a decomposition of W as needed. By Lemma 2.4, this means that treewidth is indeed > k − 1. Assume that the algorithm does not output that the treewidth exceeds k. Then, the algorithm eventually terminates because every recursive call to triang receives a graph that is strictly smaller than G (S1 , S2 6= ∅). Now we show that the algorithm returns a triangulated graph. We prove this by induction using the recursive structure of the algorithm. Clearly the claim is true if n ≤ 2k + 2. Assume n > 2k + 2. By induction, the recursive calls triangulate(G[Si ∪ X], Wi ∪X, k) return triangulations of G[Si ∪X], such that Wi ∪X is a clique. Finally, the algorithm makes a clique of W ∪ X. Thus, the graphs G[Si ∪ W ∪ X] are triangulated. Since the intersection of these triangulated graphs is a clique, the union is triangulated. Finally, we show that the clique number of this triangulation is at most 3k + 1. First, notice that always |W | ≤ 2k + 1. Initially, |W | ≤ 2k + 1 by our assumption in the statement of the lemma. As the algorithm is called recursively, |X| ≤ k and |Wi | ≤ 12 |W ′ | = k + 1, by induction. Thus, |Wi ∪ X| ≤ 2k + 1, which concludes the induction step (W in the recursive call to the algorithm is Wi ∪ X). Now, let M be a maximal clique. If M contains no vertex of Si \ Wi , for i = 1, 2, then M contains only vertices of W ∪ X. Thus, |M | ≤ 2k + 1 + k = 3k + 1. On the other hand, if M contains a vertex of Si \ Wi , then it does not contain any vertex of Sj , for j 6= i. This is because X vertex-separates S1 , S2 (any two separated vertices cannot have an edge connecting them). Hence, M is a clique in the triangulation of G[Si ∪ X]. By induction we know that |M | ≤ 3k + 1. This proves the lemma. Figure 2 presents the algorithm we will use for finding a 12 -vertex-separator of W in G (step 3 in procedure triangulate). It checks choices of sets of vertices to be separated until a solution is found or the choices are exhausted. This algorithm takes 2k+2 1 time O( 2 √k |V | 2 (|E| + k 2 )) if we use Even and Tarjan’s algorithm for finding (a, b)vertex-separators. It is correct and complete for this task. ′
5
PROCEDURE 12 -vtx-sep(W , G, k) G = (V, E) with |V | = n, W ⊆ V , k integer. 1. Nondeterministically choose a set W 1 of
|W | 2 1
vertices from W . Let W 2 be W \ W 1 .
2. Let G′ ← G. Add edges to G′ so that W is a clique and W 2 is a clique. Create new vertices vW 1 , vW 2 in G′ and connect them to all the vertices of W 1 , W 2 , respectively. 3. Find a minimum (vW 1 , vW 2 )-vertex-separator, X. If |X| ≤ k, return |X| and two separated subsets S1 , S2 , discarding vW 1 , vW 2 . Otherwise, return “failure”.
Figure 2: Find a 21 -vertex-separator of W in G of size at most k. Lemma 3.2 Let G(V, E) be a graph, k ≥ 0 an integer, and W ⊆ V of size 2k + 2. Algorithm 21 -vtx-sep(W , G, k) finds a 21 -separator of W in G of size ≤ k, if it exists, 2k+2 returning failure otherwise. It does so in time O( 2 √k f (|V |, |E| + k 2 , k)), given a min-(a, b)-vertex-separator algorithm taking time f (n, m, k). P ROOF We prove the correctness of the algorithm. First, assume that the algorithm finds a separator X of S1 , S2 in G′ . X is also a separator of S1 , S2 in G, by the way we constructed G′ from G. Also, X separates W 1 \ X and W 2 \ X in G′ because W 1 ∪ {vW 1 } and W 2 ∪ {vW 2 } are cliques in G′ and X separates vW 1 , vW 2 (if X does not separate W 1 \ X and W 2 \ X in G′ , then there is a path between vW 1 , vW 2 that does not go through X). Finally, X is a 21 -vertex-separator of W be| 1 2 cause |W 1 |, |W 2 | = |W 2 , W \ X ⊂ S1 and W \ X ⊆ S2 . 1 Now, assume that there is a 2 -vertex-separator X of W in G. Let S1 , S2 be two | separated sets of vertices in G such that S1 ∪ S2 ∪ X = V and |Si ∩ W | ≤ |W 2 , i i for i = 1, 2. Let Wn sep = W ∩ Si , for i = 1, 2. Let Wsep ⊆ W ∩ X such that
| i i i 1 2 i Wsep ∪ Wsep = W ∩ X and |Wsep ∪ Wni sep | = |W 2 . Let W = Wsep ∪ Wn sep , for 1 2 i i i = 1, 2. Then, X separates W \ X, W \ X, as W \ X = Wn sep , for i = 1, 2. Thus, running steps 2,3 in our algorithm using this selection of W 1 , W 2 will find a separator of size ≤ |X| ≤ k. By the previous paragraph, this separator is a 12 -vertex-separator of W in G. Finally, each choice of W 1 takes O(f (|V |, |E|+k 2 , k)) time to check, for f (n, m, k) the time taken by a min-(a, b)-vertex-separatoralgorithm over a graph with n vertices, 1 m edges and treewidth k − 1. There are 2k+2 k+1 ways to choose k + 1 elements (W ) 2n 2 √ (1 + O( n1 )), we get the time from a set of 2k + 2 elements (W ). Since 2n n = πn 2k+2
bound of O( √2
π(k+1)
2k+2
f (|V |, |E| + k 2 , k)) or O( 2 √k f (|V |, |E| + k 2 , k)).
Notice that the separated subsets, S1 , S2 , returned by the 12 -vtx-sep procedure are never empty (given that |W | = 2k + 2) because |X| ≤ k and |S1 | ≥ |W | − |X| − |W 2 | ≥ |W | − k − (k + 1) = 1 (similarly for |S2 |). Proposition 3.3 If the treewidth of G(V, E) is k − 1, then |E| ≤ |V |k(k − 1)/2. The proof of this proposition is omitted in this extended abstract for lack of space. It is supplied in the full paper. 6
Theorem 3.4 Procedure triangulate(G, ∅, k) finds a triangulation of G of clique num3 5 ber ≤ 3k + 1, if the treewidth of G is at most k − 1, in time O(22k+2 k 2 |V | 2 ) (using 7 the min-(a, b)-vertex-separator algorithm of [18]) or O(22k+2 k 2 |V |2 ) (using the min(a, b)-vertex-separator algorithm given by [22, 23]). P ROOF Lemmas 3.1 and 3.2 guarantee the correctness of the procedure. We are left to show the time bound. We will bound the number of times that procedure 1 2 -vtx-sep is called by O(|V |). Together with Lemma 3.2, this will provide the time bounds promised in the theorem. We distinguish three cases for a call to 21 -vtx-sep: (1) For both i = 1, 2, |Si ∪ X| > 2k + 2; (2) Exactly one of i = 1, 2 has |Si ∪ X| > 2k + 2; and (3) For both i = 1, 2, |Si ∪ X| ≤ 2k + 2. Let Φ(i) be the number of vertices that may participate in a future invocation of 12 -vtx-sep after the i’s call to 12 -vtx-sep. Each invocation of case (1) on a set of vertices, S, increases Φ by at most k. To see that, notice that the two sets generated from case (1) are S1 ∪ X and S2 ∪ X. Their joint size is |S1 ∪ X| + |S2 ∪ X| = |S1 | + |S2 | + |X| + |X| = |S1 ∪ X ∪ S2 | + |X| = |S| + |X| ≤ |S| + k. This is larger from |S| by at most k. Each invocation of case (2) on a set of vertices, S, decreases Φ by at least 1. This is seen as follows. First, notice that |Si | ≥ 1 for i = 1, 2. Now, assume |S1 ∪X| ≤ 2k +2 (otherwise, |S2 ∪ X| ≤ 2k + 2, and the treatment is identical). The vertices of S1 will not participate in any future invocation of 21 -vtx-sep because |S1 ∪ X| ≤ 2k + 2 is our stopping condition (step 1 of Algorithm triangulate). Thus, there are only the vertices of S2 ∪ X left from those of S, and |S2 ∪ X| = |S| − |S1 | ≤ |S| − 1. Each invocation of case (3) on a set of vertices, S, decreases Φ by at least 2k + 2. This is because |S| > 2k + 2 or we would not have executed 12 -vtx-sep for S. After executing 12 -vtx-sep with this case, none of the vertices of S will participate in any future invocation of 21 -vtx-sep (both partitions are of size ≤ 2k + 2). |V | Now we show that there are are no more than max(0, k/2 − 3) invocations of 21 vtx-sep in triangulate that are of case (1), for G(V, E) and k > 0. We show this by induction on |V |. For every graph G, let invoke1 (G) denote the number of invocations of the 12 -vtx-sep procedure for subsets of G that are of case (1). Assume that the claim was proved for V ’s of sizes smaller than n, and that |V | = n. If |V | ≤ 2k + 2, we are done (no invocations at all) If |V | > 2k + 2, then we will apply the 21 -vtx-sep procedure once, generating two subgraphs, G[S1 ∪ X], G[S2 ∪ X]. If the invocation was of type (1), then each of the subgraphs has more than 2k + 2 vertices, ∪X|| i ∪X| − 3) = |Sik/2 − 3. Using the induction hypothesis, and max(0, |Sk/2 invoke1 (G) ≤ 1 + invoke1 (G[S1 ∪ X]) + invoke1 (G[S2 ∪ X]) ≤ |+|X| |+|X| |+k 2| 1 + |V |−|S − 3 + |S2k/2 − 3 ≤ |V k/2 − 5 ≤ |Vk/2 −5= k/2
|V | k/2
−3
which concludes the induction step. Otherwise, the invocation was not of type (1), and using the induction hypothesis (assuming without loss of generality that |S1 ∪ X| ≤ 2k + 2), invoke1 (G) ≤ invoke1 (G[S1 ∪ X]) + invoke1 (G[S2 ∪ X]) ≤ |V | 2 ∪X| − 3) ≤ max(0, k/2 − 3) 0 + max(0, |Sk/2 7
which concludes the induction step as well. |V | invocations of 12 -vtx-sep that are of case (1) (and Thus, there are no more than k/2 if |V | ≥ 2k, then there are no more than
|V | +
|V | k/2
· k invocations of
1 2 -vtx-sep
|V | k/2
− 3). This means that there are at most
that are of cases (2) or (3), since our potential
|V | function is never negative. Thus, there are no more than |V | + k/2 · (k + 1) invocations of 12 -vtx-sep altogether. This is in Θ(|V |). Since each recursive step runs 12 -vtx-sep once and makes a clique of size ≤ 3k, we get that the time bound for the procedure using Even’s algorithm for min-(a, b)-vertex2k+2 2k+2 3 1 separator is O( 2 √k |V | 2 (|E|+k 2 )|V |). This is equal to O( 2 √k |V | 2 (|E|+k 2 )). Us2k+2
3
3
5
ing Proposition 3.3 we get the bound O( 2 √k |V | 2 (|V |k 2 + k 2 )) = O(22k+2 k 2 |V | 2 ). Using the algorithm given by [22, 23] for finding a minimum (a, b)-vertex-separator 2k+2 2k+2 in time O(k 2 (n+m)) we get time O( 2 √k k 2 (|V |+|E|+k 2 )|V |). We get O( 2 √k k 2 (|V |+ 3
3
|E|+k 2 )|V | = 22k+2 k 2 (|E|+k 2 )|V |. Using Proposition 3.3 we get O(22k+2 k 2 (|V |k 2 + 7 3 k 2 )|V |) = O(22k+2 k 2 |V |k 2 |V |) = O(22k+2 k 2 |V |2 ). Finally, it is interesting to notice that using an r-separation algorithm in step 3 of procedure triangulate, for 1 > r ≥ 12 yields an approximation that is proportional to 1 1−r . Lemma 3.5 Using an r-separation algorithm ( 21 ≤ r < 1) in step 3 of the procedure 2−r approximation for the optimal decomposition. triangulate gives a factor- 1−r The proof of this lemma is similar to that of Lemma 3.1. It is omitted in this extended abstract for lack of space. It is supplied in the full paper.
4 Implementation and Experimental Results We have implemented a constructive variant of algorithm triangulate. Given a graph, G, it returns a tree decomposition of G. The main difference between the description given above and our implementation is that we do not increase the size of W ′ to be 2k + 2 in step (2) of Figure 1 (we do not know what k is, a priori). Instead, we gradually increase W ′ ’s size during the execution of 21 -vtx-sep, until we find a minimum separator for which both sets are non-empty. This is particularly useful when only some of the partitions of the resulting tree decomposition of G are of size close to 3k. For our implementation we use the Dinitz’s max-flow algorithm, as implemented by Chekassky and Goldberg [13]. We have experimented with several graphs of various sizes and treewidths. The results of three of them are depicted in Figure 3. They were achieved on a Sun SuperSparc 60. The results of these decompositions are now being used in reasoning with the HPKB and CYC knowledge bases [14, 28] (using algorithms of [3]).
8
Graph CYC1 HPKB1 HPKB2
Nodes 142 570 446
Edges 469 3840 2637
Time 2min 40sec 13hours 2hours 34min
Resulting Width 21 70 58
Figure 3: Graphs, their processing time and the resulting width of the decomposition.
5 Conclusions This paper presented a simple approximation algorithm for the TREEWIDTH prob5 3 lem, providing a triangulation of clique number ≤ 3k + 1 in time O(22k k 2 n 2 ) or 7 O(22k k 2 n2 ), for graphs of treewidth at most k − 1. These are the best combined n, k time bound known for any constant-factor approximation algorithm, if k ≥ O(logn). We also showed that the naive recursive decomposition approach utilized by our algorithm cannot yield a better approximation ratio, even if we are given a procedure that finds balanced separators of graphs. This is a direct result of Lemma 3.5. Finally, we showed that our algorithm is efficient enough to solve large problems of practical importance.
References [1] Karl A. Abrahamson and Michael R. Fellows. Finite automata, bounded treewidth and well-quasiordering. In Graph structure theory, number 147 in Contemporary Mathematics, pages 539–564. American Mathematical Society, 1993. Proc. Conf. on Graph Minors (Seattle, 1991). [2] Ravindra K. Ahuja and James B. Orlin. Distance directed augmenting path algorithms for maximum flow and parametric maximum flow problems. Naval Res. Log. Quart., 38:413–430, 1991. [3] Eyal Amir and Sheila McIlraith. Paritition-based logical reasoning. In Principles of Knowledge Representation and Reasoning: Proc. Seventh Int’l Conference (KR ’2000), pages 389–400, 2000. [4] S. Arnborg, D. G. Corneil, and A. Proskurowski. Complexity of finding embebdings in a K-tree. SIAM J. Alg. and Discr. Meth., 8:277–284, 1987. [5] S. Arnborg, J. Lagergren, and D. Seese. Problems easy for tree-decomposable graphs. J. Algorithms, 12:308–340, 1991. [6] Ann Becker and Dan Geiger. A sufficiently fast algorithm for finding close to optimal junction trees. In Proc. Twelfth Conference on Uncertainty in Artificial Intelligence (UAI ’96), pages 81–89. Morgan Kaufmann, 1996. [7] Ann Becker and Dan Geiger. A sufficiently fast algorithm for finding close to optimal clique trees. Artificial Intelligence, 2000. Accepted for publication. 9
[8] Hans L. Bodlaender. A linear-time algorithm for finding tree-decompositions of small treewidth. SIAM Journal on Computing, 25(6):1305–1317, December 1996. [9] Hans L. Bodlaender. Treewidth: Algorithmic techniques and results. In Igor Pr´ıvara and Peter Ruzicka, editors, Mathematical Foundations of Computer Science 1997, volume 1295 of lncs, pages 19–36. Springer, 1997. [10] Hans L. Bodlaender, John R. Gilbert, Hj´almt´yr Hafsteinsson, and Ton Kloks. Approximating treewidth, pathwidth, frontsize, and shortest elimination tree. Journal of Algorithms, 18(2):238–255, March 1995. [11] Hans L. Bodlaender and Ton Kloks. Better algorithms for the pathwidth and treewidth of graphs. In Automata, Languages and Programming, 18th International Colloquium, volume 510 of LNCS, pages 544–555. Springer-Verlag, 1991. [12] Hajo Broersma, Ton Kloks, Dieter Kratsch, and Haiko M¨uller. A generalization of AT-free graphs and a generic algorithm for solving treewidth, minimum fillin and vertex ranking. In WG: Graph-Theoretic Concepts in Computer Science, International Workshop WG, pages 88–99, 1998. LNCS 1517. [13] B. V. Chekassky and Andrew V. Goldberg. On implementing the push-relabel method for the maximum flow problem. Algorithmica, 19(4):390–410, 1997. [14] Paul Cohen, Vinay Chaudhri, Adam Pease, and Robert Schrag. Does prior knowledge facilitate the development of knowledge-based systems. In Proc. National Conference on Artificial Intelligence (AAAI ’99), pages 221–226. AAAI Press/MIT Press, 1999. [15] Rina Dechter and Judea Pearl. Tree clustering for constraint networks. Artificial Intelligence, 38:353–366, 1989. [16] E. A. Dinitz. Algorithm for solution of a problem of maximum flow in networks with power estimation. Soviet Mathematics Doklady, 11:1277–1280, 1970. [17] Shimon Even. Graph Algorithms. Computer Science Press, 1979. [18] Shimon Even and R. Endre Tarjan. Network flow and testing graph connectivity. SIAM Journal on Computing, 4(4):507–518, December 1975. [19] Andrew V. Goldberg and Robert E. Tarjan. A new approach to the maximum-flow problem. Journal of the ACM, 35(4):921–940, October 1988. [20] Roy Goldman, Narayanan Shivakumar, Suresh Venkatasubramanian, and Hector Garcia-Molina. Proximity search in databases. In Proceedings of the 24th Intl’ Conf. on Very Large Databases (VLDB 1998), 1998. [21] L. R. Ford Jr. and D. R. Fulkerson. Flows in networks. Princeton University Press, 1962.
10
[22] Samir Khuller and Baruch Schieber. Efficient parallel algorithms for testing connectivity and finding disjoint s-t paths in graphs (extended summary). In 30th Annual Symposium on Foundations of Computer Science, pages 288–293. IEEE, 1989. [23] Samir Khuller and Baruch Schieber. Efficient parallel algorithms for testing kconnectivity and finding disjoint s-t paths in graphs. SIAM Journal on Computing, 20(2):352–375, April 1991. [24] Ton Kloks. Treewidth: computations and approximations, volume 842 of LNCS. Springer-Verlag, 1994. [25] Daphne Koller and Avi Pfeffer. Object-oriented Bayesian networks. In Proc. of the 13th Conf. on Uncertainty in Artificial Intelligence (UAI-97), pages 302–313. Morgan Kaufmann, 1997. [26] Jens Lagergren. Efficient parallel algorithms for tree-decomposition and related problems. In Proceedings of the 31st Annual Symposium on Foundations of Computer Science, pages 173–182. IEEE Press, October 1990. [27] Jens Lagergren. Efficient parallel algorithms for graphs of bounded tree-width. J. Algorithms, 20(1):20–44, 1996. [28] Douglas B. Lenat. Cyc: A large-scale investment in knowledge infrastructure. Communications of the ACM, 38(11):33–38, 1995. [29] Bruce A. Reed. Finding approximate separators and computing tree width quickly. In Proc. 24th ACM Symp. on Theory of Computing, pages 221–228. ACM Press, 1992. [30] Neil Robertson and Paul D. Seymour. Graph minors. II: algorithmic aspects of treewidth. J. Algorithms, 7:309–322, 1986. [31] Hein R¨ohrig. Tree decomposition: A feasibility study. Master’s thesis, University of Saarbr¨ucken, Germany, 1998. Available at http://www.cwi.nl/ roehrig/dipl/. [32] Kirill Shoikhet and Dan Geiger. A practical algorithm for finding optimal triangulations. In Proc. National Conference on Artificial Intelligence (AAAI ’97), pages 185–190. Morgan Kaufmann, 1997.
11