Information Processing Letters 112 (2012) 329–334
Contents lists available at SciVerse ScienceDirect
Information Processing Letters www.elsevier.com/locate/ipl
Bicolored independent sets and bicliques ✩ Jean-François Couturier, Dieter Kratsch ∗ Laboratoire d’Informatique Théorique et Appliquée, Université Paul Verlaine–Metz, 57045 Metz Cedex 01, France
a r t i c l e
i n f o
a b s t r a c t
Article history: Received 28 October 2011 Received in revised form 17 January 2012 Accepted 23 January 2012 Available online 25 January 2012 Communicated by Ł. Kowalik Keywords: Graph algorithms Exact exponential algorithms Independent set Biclique
We introduce the decision problem Bicolored Independent Set which generalizes the wellknown NP-complete graph problem Independent Set. We present an O (1.2691n ) time algorithm solving its counting analogue #Bicolored Independent Set. We show how to use this algorithm to establish algorithms solving biclique counting problems and provide an O (1.2691n ) time algorithm solving #Bipartite Biclique and an O (1.6107n ) time algorithm solving #Non-induced Biclique. © 2012 Elsevier B.V. All rights reserved.
1. Introduction 1.1. Bicolored independent sets A bicolored graph is a graph G = ( V , E ) in which each vertex is colored with one of two possible colors, let us call them red and blue. We denote such a bicolored graph by G = ( R , B , E ) where R is the set of red vertices and B is the set of blue vertices. Let us emphasize that the coloring of G by red and blue colors is not required to be a proper coloring. We introduce the following natural generalization of the well-known Independent Set problem. Bicolored Independent Set (BIS): The input of the problem is a bicolored graph G = ( R , B , E ) and nonnegative integers k1 and k2 . BIS asks to decide whether G has a k1 , k2 bicolored independent set, i.e., an independent set I ⊆ V satisfying | I ∩ R | = k1 and | I ∩ B | = k2 .
✩ This work has been supported by ANR under project AGAPE (ANR-09BLAN-0159-03). Corresponding author. E-mail addresses:
[email protected] (J.-F. Couturier),
[email protected] (D. Kratsch).
*
0020-0190/$ – see front matter doi:10.1016/j.ipl.2012.01.010
© 2012
Elsevier B.V. All rights reserved.
A simple reduction from the NP-complete Independent Set problem shows that BIS is NP-complete. (For any graph G simply take R = V and B = ∅.) Our original motivation to introduce and study the BIS problem was its strong relation to well-studied biclique problems. 1.2. Bicliques If X and Y are independent sets of a graph G = ( V , E ) satisfying xy ∈ E for all x ∈ X and y ∈ Y then ( X , Y ) is called a biclique of G. If X and Y are vertex subsets (not necessarily independent) of a graph G = ( V , E ) satisfying xy ∈ E for all x ∈ X and y ∈ Y then ( X , Y ) is called a non-induced biclique of G. Applications of bicliques in data mining, artificial intelligence, biology, automata and language theory are discussed in [2]. The complexity of algorithmic problems on bicliques has been studied extensively. The maximum (vertex) biclique problem is polynomial for bipartite graphs [4], and NP-complete for general graphs [19]. The maximum edge biclique problem was shown to be NP-complete by Peeters [16]. Enumerating all maximal bicliques of (bipartite) graphs as well as all noninduced bicliques of a graph has attracted a lot of attention in the last decade, see e.g., [1,5,6,15]. We are interested in finding bicliques in bipartite graphs and non-induced bicliques in graphs.
330
J.-F. Couturier, D. Kratsch / Information Processing Letters 112 (2012) 329–334
Bipartite Biclique: The input of the problem is a bipartite graph G = ( X , Y , E ) and non-negative integers k1 and k2 . The problem asks to decide whether G has a k1 , k2 biclique, i.e., a biclique ( X , Y ) of G such that | X | = k1 , |Y | = k2 , X ⊆ X and Y ⊆ Y . Non-induced Biclique: The input of the problem is a graph G = ( V , E ) and non-negative integers k1 and k2 . The problem asks to decide whether G has a k1 , k2 non-induced biclique, i.e., a non-induced biclique ( X , Y ) of G such that | X | = k1 and |Y | = k2 . The problem to decide, for given bipartite graph G and non-negative integer k, whether G has a k, k biclique is known to be NP-complete [13]. It is easy to see that this implies the NP-completeness of Bipartite Biclique and Non-induced Biclique. 1.3. Counting problems All three abovementioned decision problems have natural counting analogues. #Bicolored Independent Set (#BIS): The input consists of a bicolored graph G = ( R , B , E ) and non-negative integers k1 and k2 . The task is to determine the number of k1 , k2 bicolored independent sets of G. #Bipartite Biclique: The input consists of a bipartite graph G = ( X , Y , E ) and non-negative integers k1 and k2 . The task is to determine the number of k1 , k2 bicliques of G. #Non-induced Biclique: The input consists of a graph G = ( V , E ) and non-negative integers k1 and k2 . The task is to determine the number of k1 , k2 non-induced bicliques of G. Clearly any algorithm solving one of those counting problems also solves the corresponding decision problem. 1.4. Previous work Exact algorithms for various hard problems on bicliques have been studied in [14]. Fernau et al. propose an O (1.8899n ) time polynomial-space algorithm and an O (1.8458n ) time exponential-space algorithm for Noninduced Biclique [8]. The best known exact algorithms for the biclique decision problems prior to our work run in time O (1.6914n ) for the Non-induced Biclique problem and in time O (1.3006n ) for the Bipartite Biclique problem; both algorithms use only polynomial space [3]. 1.5. Our results Our main result is an algorithm solving the counting problem #Bicolored Independent Set in time O (1.2691n ) using exponential space. It is established by combining a branching algorithm with a dynamic programming algorithm. The time analysis of the overall algorithm is based on the by now well-known Measure & Conquer technique (see, e.g., [9]). Our approach to construct and analyze an exact exponential algorithm has recently been used for the dominating set problem in [12,17].
Our algorithm solving the #Bicolored Independent Set problem can be used to establish an O (1.2691n ) time algorithm solving the #Bipartite Biclique problem and an O (1.6107n ) time algorithm solving the #Non-induced Biclique problem. 2. Preliminaries We consider finite undirected graphs without loops or multiple edges. The vertex set of a graph G is denoted by V and its edge set by E. We also write G = ( V , E ) to indicate this. For a vertex v, the set of vertices which are adjacent to v is called the (open) neighborhood of v and denoted by N G ( v ). The closed neighborhood of v is the set N G [ v ] = N G ( v ) ∪ { v }. The degree of a vertex v is denoted by d G ( v ). We omit indices if there is no ambiguity. Let U ⊆ V . Then the subgraph of G induced by U is denoted by G [U ]. The graph obtained from G by the removal of all vertices of U is denoted by G − U . The maximum degree of a graph G is denoted by (G ). Let r be a positive integer. A graph G is called r-regular if all vertices of G have degree r. A vertex set I ⊆ V of a graph G is an independent set if x and y are not adjacent for all x ∈ I and y ∈ I . A graph G is bipartite if its vertex set V can be partitioned into two independent sets X and Y ; this is sometimes denoted by G = ( X , Y , E ). For other graph-theoretic notions we refer to any standard graph theory textbook, e.g., [7]. Our algorithms solve NP-complete problems exactly. For more information on exact exponential algorithms including the construction and analysis of branching and dynamic programming algorithms we refer to [9,18]. For the definition of notions and related techniques like dynamic programming over path decomposition and the analysis of branching algorithms by the use of search trees, linear recurrences, and branching vectors, as well as Measure & Conquer we refer to [9]. It has become standard to write f (n) = O ∗ ( g (n)) if f (n) p (n) · g (n) for some polynomial p (n). However if running times are of the form O ∗ (αn ) where α is obtained by rounding up a (not specified) real then we may and will write O (αn ). 3. Bicolored independent sets In this section we present our exact exponential algorithm bis solving the counting problem #Bicolored Independent Set.
Algorithm bis(G , k1 , k2 ) Input: Bicolored graph G = ( R , B , E ), non-negative integers k1 and k2 Output: number of k1 , k2 bicolored independent sets of G 1 2 3 4 5 6 7 8 9
Choose a vertex v of maximum degree; if d( v ) 4 then return bounded-pathwidth(G , k1 , k2 ) else found ← bis(k1 , k2 , G \{ v }) if v ∈ R then return bis(k1 − 1, k2 , G \ N [ v ]) + found else return bis(k1 , k2 − 1, G \ N [ v ]) + found
J.-F. Couturier, D. Kratsch / Information Processing Letters 112 (2012) 329–334
Our algorithm combines branching and dynamic programming. As long as the maximum degree of the instance of the current subproblem is at least 5 the algorithm branches on a vertex v of maximum degree into two subproblems. In the first one (line 5) it discards v, i.e. v is definitely excluded from all bicolored independent sets to be considered in this branch and v is removed from the graph. In the second one (line 7 or 9) it takes v into the bicolored independent set and only those containing v are to be considered in this branch; furthermore it removes v and all its neighbors from the graph, and depending on the color of v the value of k1 and k2 respectively is updated. The branching stops when the maximum degree of the current graph G is at most 4. Then a standard algorithm solving Maximum Independent Set on graphs given with a path-decomposition of width in time O (2 ) (see e.g. [9]) is used. It is easy to modify it such that it stores for any partial solution the number of red and the number of blue vertices in the corresponding independent set. It can be further modified to establish a counting version of the original dynamic programming algorithm. This algorithm is called bounded-pathwidth(G , k1 , k2 ) and it computes for an input graph G (of maximum degree at most 4) and all non-negative integers r k1 and b k2 , the number of pairs (r , b) such that G has an independent set with r red and b blue vertices. This can still be done in time O (2 ). Finally this algorithm outputs the number of pairs (k1 , k2 ). Note that while the branching part needs only polynomial space the dynamic programming algorithm requires exponential space. The correctness of the algorithm follows from the fact that the branching verifies all possible cases and that the dynamic programming algorithm on any instance G of a leaf of the search tree correctly computes the number of pairs. 3.1. Simple analysis The branching on a vertex v with a degree at least 5 gives the following recurrence. If we take v in the independent set, we eliminate v and all its neighbors from the graph, and search an independent set with k1 − 1 red vertices and k2 blue vertices if v ∈ R, or an independent set with k1 red vertices and k2 − 1 blue vertices if v ∈ B. Hence the number of vertices in the instance obtained by selecting v is decreased by at least 6 compared to the original instance; we say select 6. If we do not take v in the independent set, we remove v from the graph and continue to search an independent set in G − { v } with k1 red and k2 blue vertices. Hence discard = 1. This implies the recurrence T (n) = T (n − select ) + T (n − discard ) for the number of leaves of the search tree and thus the worst-case running time. Consequently the branching vector is at least (1, 6) with a branching number of 1.2852 (rounded up). Thus the running time of the branching part is O (1.2852n ). Similarly, one obtains that the number of those leaves of the search tree corresponding to a graph G having pre cisely n vertices is O (1.2852n−n ). To take into account the dynamic programming part, let G be a leaf of the search tree of the branching algorithm, hence (G ) 4. Our algorithm applies a dynamic pro-
331
gramming algorithm on a pathwidth decomposition of G . To analyze the running time we need an upper bound on the width of a path-decomposition of G . We rely on the following lemma of Fomin et al. [12]. Lemma 1. For every > 0 there exists an n such that for all graphs G of maximum degree at most 4 with n > n holds:
pw(G )
n3 6
+
n4 3
+ n,
where ni is the number of vertices of degree i. Furthermore a n path-decomposition of width at most 63 + n34 + n can be computed in polynomial time. Since G has maximum degree 4 we obtain pw(G ) + n where n = | V (G )|. Hence the running time of the dynamic programming algorithm is O (1.26| V (G )| ) for any n 3
leaf G of the search tree. To analyze the overall algorithm let us consider all leaves G of the search tree having h vertices. The number of such leaves of the search tree is O ∗ (αn−h ) (here α = 1.2852) and the dynamic programming algorithm on such a leaf runs in time O ∗ (β h ) (here β = 1.26). Then out in [12] the overall running time is n as∗ pointed n−h · β h ) = O ∗ (max(α , β)n ). Consequently our h=0 O (α algorithm bis has running time O (1.2852n ). 3.2. Measure & Conquer analysis A better upper bound on the worst-case running time of algorithm bis can be achieved by using a more sophisticated measure for instances of subproblems in the branching algorithm. Analyzing an algorithm combining a branching algorithm with a dynamic programming algorithm over a path decomposition was initiated by Fomin et al. [10,12]; another application can be found in [17]. The following time analysis is based on their work. Recall that in the above simple analysis the measure of an instance, i.e. a graph, is the number of its vertices. Now we use the measure
μ = μ(G ) =
ni · w i ,
0i n
where ni denotes the number of vertices of degree i and w i is the weight of a vertex of degree i, 0 w i 1 for all i. The goal of the following time analysis is to determine the best choice of the weights. (The final choice of the weights is given at the end of this section.) We further restrict the weights by the condition w i w i +1 for all i 0. It turns out that this restriction simplifies the analysis without changing the best possible running time to be achieved. For all vertices with a degree at least 6, we fix the weight to 1. Furthermore, for all i, we denote by λi the total weight of all vertices of degree i implying λi = ni · w i . Consequently
μ(G ) =
λi .
0i n
To simplify the notation in the following analysis, we denote the number of vertices of degree at least 6 by n6 ,
332
J.-F. Couturier, D. Kratsch / Information Processing Letters 112 (2012) 329–334
the weight of all vertices of degree at least 6 by w 6 and the total weight of all vertices of degree at least 6 by λ6 . Hence w 6 = 1, λ6 = n6 , implying
μ(G ) =
(ni · w i ) + n6 =
0i 5
λi + n6 .
0i 5
First let us analyze the branching part of the algorithm. Suppose the algorithm branches on the graph G and chooses vertex v to branch on. Like in the simple analysis, we may assume d( v ) 5. In the branching algorithm all recurrences are of the form:
T
μ(G ) = T (μ − select ) + T (μ − discard ),
where select and discard respectively are lower bounds on the decrease of the measure when selecting v and when discarding v respectively. If we select v, the vertex v and all its neighbors are deleted from the current graph. Consequently, the measure of the graph decreases by the weight of v and the weight of all its neighbors of v. This implies
select = w d( v ) +
w d (u ) .
u∈N (v )
If we discard v, we remove v from the graph, which implies that every neighbor of v decreases its degree by 1. As a consequence, the measure of the graph decreases by the weight of v; additionally for every neighbor u of v, the measure decreases by the difference between w d(u ) , the weight of u, and w d(u )−1 , the weight of u after the removal of its neighbor v. This implies
discard = w d( v ) +
( w d(u ) − w (d(u )−1) ).
u∈N (v )
Let G be a graph of measure μ = μ(G ). Let v be the vertex of G we branch on and let t = d( v ) 5. Let u 1 , u 2 , . . . , ut be the neighbors of v and for all i ∈ {1, 2, . . . , t } let di = d(u i ) such that d1 d2 · · · dt . Now we can state the established system of recurrences for the branching algorithm as follows. For all t , d1 , d2 , . . . , dt with t 5 and d1 d2 · · · dt t:
T (μ) = T
μ − wt −
t
w di
i =1
t + T μ − wt − ( w d i − w d i −1 ) .
i =1
This collection of linear recurrences is too large to work with. Fortunately, the choice of the measure allows to significantly restrict the number of recurrences to be taken into account. To see this consider any recurrence R with t 7 and d1 d2 · · · dt t and the recurrence R with t = 6 and d1 d2 · · · d6 t = 6 where di = min(di , 6). Then due to our setting w i = 1 for all i 6, we obtain select ( R ) select ( R ) and discard ( R ) discard ( R ); thus the branching number of R is not larger than the one of R . Thus when computing the maximum branching number among all recurrences for some fixed
and appropriate choice of the w i ’s, we may safely neglect R. This implies that only recurrences with t 6 need to be taken into account. Now we analyze the dynamic programming part. When the maximum degree of the current graph, say G , is at most 4, the dynamic programming algorithm boundedpathwidth(G , k1 , k2 ) is called; note that it needs a path decomposition of G as part of the input. More precisely this dynamic programming algorithm is called for every leaf G of the search tree of the branching part. The analysis requires more care than the one in the simple case; we need to upper bound the width of the path decomposition of G used while only knowing the measure μ(G ), but not the number of vertices of G . Like in the simple analysis, we rely on Lemma 1. Since the maximum degree of every leaf G is at most 4, for every > 0 and graphs G with at least n vertices holds
pw G
n3 6
+
n4 3
+ n.
Furthermore, a path decomposition of G of width at n most 63 + n34 + n can be computed in polynomial time. Thus when running the dynamic programming algorithm on a leaf G the algorithm computes a path decomposin tion of width at most 63 + n34 + n in polynomial time. Thus the overall dynamic programming part runs in time O ∗ (2n3 /6+n4 /3+ n ) for any leaf G . We need to upper bound the width of the path decomposition of such a graph G assuming μ(G ) μ. To do this n we upper bound 63 + n34 + n without explicitly knowing the values of n3 and n4 of G . By construction of the measure we have:
μ=
λi =
(ni · w i ),
where μ is the measure of the leaf G , and for all i 0, λi = ni · w i is the total weight of all vertices of degree i for λ all i 0. This implies ni = wi which we substitute in the i pathwidth upper bound to establish
pw G
λ3 6w 3
+
λ4 3w 4
+ n.
It remains to determine, for any fixed choice of the weights w 3 and w 4 , the maximum value of the above upper bound over all possible values of λ3 and λ4 . To do this we use that λ3 + λ4 μ(G ) = μ. Finally we determine the best possible upper bound of the running time of algorithm bis. For any fixed choice of the weights w 0 w 1 · · · w 5 , the overall running time of the algorithm is
O∗
αn−μ · β μ = O ∗ max(α , β)n ,
where O ∗ (αn−μ ) upper bounds the maximum number of leaves of measure μ in the search tree of the branching part and O ∗ (β μ ) is the running time of the branching algorithm on a leaf G of measure μ. This amounts to determining values of the weights such as to balance α and β . Using the weights w 0 = 0, w 1 = 0.5386, w 2 = 0.8059, w 3 = 0.9233, w 4 = 0.9701, w 5 = 0.9999 and w i = 1 for all i 6 we obtain the following. In the branching part,
J.-F. Couturier, D. Kratsch / Information Processing Letters 112 (2012) 329–334
for any μ the number of leaves G of measure μ(G ) = μ is O (1.2691n−μ ). In the dynamic programming part, the running time on a leaf G of measure μ is O (1.2691μ ); for the particular choice of the weights this upper bound is achieved for n4 = n, i.e., 4-regular graphs. While finding an optimal choice of the weights is computationally demanding, verification of a choice of weights (and the claimed maximum branching number) is easier and amounts to solving the system of recurrences for given weights. We refer the interested reader to [11] where the authors provide code for the verification of their choice of weights. Combination of the two bounds obtained above implies that algorithm bis runs in time O (1.2691n ).
333
Theorem 4. The Bipartite Biclique problem can be solved in time O (1.2691n ). The proof of Theorem 3 has the following immediate consequence. Corollary 5. Let G = ( X , Y , E ) be a bipartite graph and k1 , k2 non-negative integers. Then the number of different k1 , k2 bicliques of G is equal to the number of k1 , k2 bicolored independent sets of the bicolored graph G = ( X , Y , E ) where G is the bipartite complement of G. Based on Corollary 5 and by using algorithm bis to solve #Bicolored Independent Set we obtain an algorithm for the counting version.
Theorem 2. Algorithm bis solves #Bicolored Independent Set, and thus also Bicolored Independent Set, and has running time O (1.2691n ).
Theorem 6. The #Bipartite Biclique problem can be solved in time O (1.2691n ).
4. Bipartite and non-induced bicliques
4.2. Non-induced Biclique
In this section we present two polynomial-time reductions, the first being many-one (and simple) and the second being a Turing reduction. Using those reductions and our O (1.2691n ) algorithm it is easy to establish algorithms for the biclique problems. The achieved running times for the counting versions improve upon the formerly best known ones for the decision versions of the problems, see [3].
The following polynomial-time Turing reduction is interesting in its own and different from the one used in [3].
4.1. Bipartite Biclique Bicolored Independent Set can be seen as a generalization of Bipartite Biclique via the following reduction. Theorem 3. There is a polynomial-time many-one reduction from Bipartite Biclique to Bicolored Independent Set. Proof. Let (G , k1 , k2 ) be any instance of Bipartite Biclique: G = ( X , Y , E ) a bipartite graph, k1 and k2 non-negative integers. We construct an instance (G , k1 , k2 ) of Bicolored Independent Set as follows: G is the bipartite complement of G, i.e. G = ( X , Y , E ) where E = {xy | x ∈ X , y ∈ Y , (x, y ) ∈ / E }. Note that G is bipartite. All vertices of X are colored red and all vertices of Y are colored blue. It is easy to see that (G , k1 , k2 ) is a yes-instance of Bipartite Biclique if and only if (G , k1 , k2 ) is a yes-instance of Bicolored Independent Set. 2 The polynomial-time reduction of Theorem 3 can be combined with the exact algorithm for the Bicolored Independent Set problem of the previous section. To decide whether an instance (G , k1 , k2 ) is a yes-instance of the Bipartite Biclique problem, simply compute the bipartite complement G of G = ( X , Y , E ) and then run the O (1.2691n ) algorithm solving Bicolored Independent Set on the instance (G , k1 , k2 ), where G = ( X , Y , E ) is a bipartite n-vertex graph with X set of red vertices and Y set of blue vertices of G . This implies
Theorem 7. There is a polynomial-time Turing reduction from the problem Non-induced Biclique to Bipartite Biclique. Proof. Let G = ( V , E ) be a graph and let e = ab ∈ E. We define a bipartite graph G ab = ( A , B , E ab ) as follows. The two color classes of G ab are defined to be A = N G (b) and B = { v : v ∈ N G (a)}. I.e. A consists of all neighbors of b in G including a, and B consists of an annotated copy v for all neighbors v of a in G including b. Hence the common neighbors of a and b appear in A and also by an annotated copy in B. For all x ∈ A and y ∈ B, there is an edge xy ∈ E ab iff xy ∈ E. Note that this implies zz ∈ / E ab for all z ∈ N G (a) ∩ N G (b). Furthermore, G ab has at most twice as many vertices as G. We claim that (G , k1 , k2 ) is a yes-instance of Noninduced Biclique iff there is an edge ab of G such that (G ab , k1 , k2 ) is a yes-instance of Bipartite Biclique. Clearly the | E | instances of Bipartite Biclique can be computed in polynomial time. To prove the claim, first assume that (G , k1 , k2 ) is a yes-instance of Non-induced Biclique and that ( X , Y ) is a non-induced biclique with | X | = k1 , |Y | = k2 . Let x ∈ X and y ∈ Y . Note that X ∩ Y = ∅ and that xy is an edge of G. Let us consider the graph G xy . Then by the construction of the bipartite graph G xy and since X ∩ Y = ∅, we have that ( X , { v : v ∈ Y }) is a biclique of G xy . Hence (G xy , k1 , k2 ) is a yes-instance of Bipartite Biclique. To complete the proof of the claim assume that (G ab , k1 , k2 ) is a yes-instance of Bipartite Biclique for some edge ab of G, where G ab = ( A , B , E ) is the bipartite graph defined above. Hence G ab has a biclique ( X , Y ) with | X | = k1 , |Y | = k2 with X ⊆ A and Y ⊆ B. Furthermore we may assume without loss of generality that a ∈ X and b ∈ Y since in G ab the vertex a is adjacent to all vertices of B, and b is adjacent to all vertices of A. By the construction of G ab , for all z with z ∈ A and z ∈ B holds zz ∈ / E ab . This implies that X and { v: v ∈ Y } are disjoint.
334
J.-F. Couturier, D. Kratsch / Information Processing Letters 112 (2012) 329–334
Consequently ( X , { v: v ∈ Y }) is a non-induced biclique of G, and thus (G , k1 , k2 ) is a yes-instance of Non-induced Biclique. This completes the proof of the claim and the proof of the theorem. 2 The proof of Theorem 7 has the following consequence. Corollary 8. Let G = ( X , Y , E ) be a graph and k1 , k2 nonnegative integers. Then the number of different k1 , k2 noninduced bicliques of G is equal to 1/(k1 · k2 ) times the sum of the number of k1 , k2 bicliques of the graph G xy where the sum is taken over all edges xy of G.
Proof. This follows from the fact that each k1 , k2 noninduced biclique ( X , Y ) is in bijective correspondence to the k1 , k2 biclique ( X , { v : v ∈ Y }) of the graph G xy for all those edges xy of G satisfying x ∈ X and y ∈ Y . 2 Based on Corollary 8, the polynomial-time reduction of Theorem 7 can be combined with the exact algorithm for Bipartite Biclique and #Bipartite Biclique of the previous subsection. Let us first consider the decision version. To decide whether an instance (G , k1 , k2 ) of Bipartite Biclique is a yes-instance of Non-induced Biclique, for every edge xy of G = V , E compute the graph G xy and check whether (G xy , k1 , k2 ) is a yes-instance of Bipartite Biclique. Now consider the counting version. For an instance (G , k1 , k2 ) run the algorithm of Theorem 6 on (G xy , k1 , k2 ) for all edges xy ∈ E, sum up the number of k1 , k2 bicliques over all edges xy of G, divide this sum by (k1 · k2 ) and return the obtained value. To analyze the overall running time of the algorithm on an input graph G of n vertices, note that each graph G xy consists of at most 2n vertices and that there are | E | n2 such vertices. Thus we are calling at most n2 times an algorithm of running time O (1.26912n ). Consequently the overall running time of the algorithm solving #Noninduced Biclique is O (1.6107n ).
Theorem 9. The #Non-induced Biclique and the Noninduced Biclique problem can be solved in time O (1.6107n ).
References [1] G. Alexe, S. Alexe, Y. Crama, S. Foldes, P.L. Hammer, B. Simeone, Consensus algorithms for the generation of all maximal bicliques, Discrete Applied Mathematics 145 (2004) 11–21. [2] J. Amilhastre, M.C. Vilarem, P. Janssen, Complexity of minimum biclique cover and minimum biclique decomposition for bipartite dominofree graphs, Discrete Applied Mathematics 86 (1998) 125– 144. [3] D. Binkele-Raible, H. Fernau, S. Gaspers, M. Liedloff, Exact exponential-time algorithms for finding bicliques, Information Processing Letters 110 (2010) 64–67. [4] M. Dawande, J. Swaminathan, P. Keskinocak, S. Tayur, On bipartite and multipartite clique problems, Journal of Algorithms 41 (2001) 388–403. [5] V.M.F. Dias, C.M. Herrera de Figueiredo, J.L. Szwarcfiter, Generating bicliques of a graph in lexicographic order, Theoretical Computer Science 337 (2005) 240–248. [6] V.M.F. Dias, C.M. Herrera de Figueiredo, J.L. Szwarcfiter, On the generation of bicliques of a graph, Discrete Applied Mathematics 155 (2007) 1826–1832. [7] R. Diestel, Graph Theory, Graduate Texts in Mathematics, Springer, 2010. [8] H. Fernau, S. Gaspers, D. Kratsch, M. Liedloff, D. Raible, Exact exponential-time algorithms for finding bicliques in a graph, in: Proceedings of CTW 2009, pp. 205–209. [9] F.V. Fomin, D. Kratsch, Exact Exponential Algorithms, Texts in Theoretical Computer Science, Springer, 2010. [10] F.V. Fomin, A.A. Stepanov, Counting minimum weighted dominating sets, in: Proceedings of COCOON 2007, in: LNCS, vol. 4598, Springer, Berlin, 2007, pp. 165–175. [11] F.V. Fomin, F. Grandoni, D. Kratsch, A Measure & Conquer approach for the analysis of exact algorithms, Journal of the ACM 56 (5) (2009), article 25. [12] F.V. Fomin, S. Gaspers, S. Saurabh, A.A. Stepanov, On two techniques of combining branching and treewidth, Algorithmica 54 (2009) 181– 207. [13] M.R. Garey, D.S. Johnson, Computers and Intractability. A Guide to the Theory of NP-Completeness, Freeman, San Francisco, 1979. [14] S. Gaspers, D. Kratsch, M. Liedloff, On independent sets and bicliques, in: Proceedings of WG 2008, in: LNCS, vol. 5344, Springer, Berlin, 2008, pp. 171–182. [15] K. Makino, T. Uno, New algorithms for enumerating all maximal cliques, in: Proceedings of SWAT 2004, in: LNCS, vol. 3111, Springer, 2004, pp. 260–272. [16] R. Peeters, The maximum edge biclique problem is NP-complete, Discrete Applied Mathematics 131 (2003) 651–654. [17] J.M.M. van Rooij, J. Nederlof, T.C. van Dijk, Inclusion/exclusion meets Measure and Conquer, in: Proceedings of ESA 2009, in: LNCS, vol. 5757, Springer, Berlin, 2009, pp. 554–565. [18] G.J. Woeginger, Exact algorithms for NP-hard problems: a survey, in: Combinatorial Optimization – Eureka, You Shrink! LNCS, vol. 2570, Springer, Berlin, 2003, pp. 185–207. [19] M. Yannakakis, Node and edge deletion NP-complete problems, in: Proceedings of STOC 1978, ACM, pp. 253–264.