• No results found

Parameterized Algorithm for Edge Clique Partition

The idea for the algorithm is similar to that of k−BicPart. We first reduce k-Edge CliqPart to a matrix problem and then solve the matrix problem. The algorithm used for solving the matrix problem is very similar to the one for k-BinRank(F). The core idea remains the same and there are only small technical differences.

For k−EdgeCliqPart, there is a kernel of size k2 given by Mujuni and Rosa- mond [125], which we described in Section 3.2.3. Given an instance G of k-EdgeCliq Part, we apply the Reduction rule 3.23 exhaustively on G. Let G0 be the resulting instance. Lemma 3.24 implies that G is an YES instance of k-EdgeCliqPart if and only if G0 is an YES instance of k0− EdgeCliqPart for some k0 ≤ k. Moreover, given a clique partition of size at most k0 of G0, in polynomial time one can construct a clique partition of size at most k of G. Lemma 3.26 implies that G0 has at most k2 vertices (otherwise we can straightaway output that G has edge clique partition number greater than k). Hence from now on we will assume that our input graph G is a reduced instance using the above kernelization, and hence that the number of vertices in G is at most k2.

We remark that the twin reduction rule similar to biclique partition does not work here. To see this consider vertices a, b such that N [a] = N [b]. Suppose we delete b, and later put b into all the cliques in which a is contained. If there is an edge between a and

b, then the edge ab will be possibly covered in many cliques, which is not what we want.

If there is no edge between a and b then b cannot be in the same clique as a.

Now, we will translate the problem into a matrix problem. For this we need the following definitions.

Definition 3.31 (Equal Except in Diagonal, =ED). Two n × n matrices A and B are

said to be equal except in diagonal, denoted by A =ED B if and only if aij = bij for all

i, j ∈ [n] such that i 6= j.

Definition 3.32 (Binary Symmetric Decomposition (BSD)). For a matrix A ∈Zn×n, a binary matrix B ∈ {0, 1}n×k is said to be a rank-k binary symmetric decomposition of

A if BBT =ED A.

The following lemma translates the edge clique partition problem into a matrix decomposition problem.

Lemma 3.33. A graph G has an edge clique partition of size k if and only if its adjacency matrix A has a rank-k BSD. Moreover, given the rank-k BSD of A one can find an ECP of G in time polynomial in |V (G)|.

Proof. Let V (G) = {v1, v2, . . . , vn}. Suppose G has an edge clique partition of size k. Let

C1, C2, . . . , Ckbe the edge clique partition. Let b1, b2, . . . bk be vectors in {0, 1}ndefined

as follows: for all i ∈ [k] and j ∈ [n], (bi)j = 1 if and only if clique Ci contains vertex vj. Let B be the matrix whose rows are bT1, bT2, . . . , bTn. For i 6= j, we have bTi bj = 1, if and

only if vi and vj are in the same clique C` for some ` ∈ [k], which happens if and only if there is an edge between vi and vj in G. Hence, BBT =

ED A.

Now, let us prove the other direction. Suppose B is a rank-k BSD of A. Note that

B is an n × k binary matrix. Define C1, C2, . . . , Ck ⊆ V (G) as Cj := {vi: Bi,j = 1}.

vi, v` ∈ Cj. We have Ai,` = Bi,:(BT):,` = Bi,:(B`,:)T ≥ 1 where the last inequality is

because Bi,j = B`,j = 1. But since A is binary, we have Ai,` = 1. Thus any distinct pair of vertices vi, v` in Cj have an edge between them. Thus each Cj induces a clique. It

only remains to prove that every edge appears in some clique Cj. Consider any edge

viv` ∈ E(G). Since Ai,` = 1, we have Bi,:(BT):,` = Bi,:(B`,:)T = 1. So there exist a

j ∈ [k] such that Bi,j = B`,j = 1. But then for such a j, we have vi, v`∈ Cj. Thus any

edge viv` ∈ E(G) is in one of the cliques Cj for j ∈ [k].

Note that a trivial BSD for an adjacency matrix A is the corresponding node-edge incidence matrix. This corresponds to an edge clique cover of the graph obtained by taking each edge as a clique. The rank of this BSD is as large as the number of edges in the graph or the number of 1’s in A. Nevertheless, this is an easy way to see that any symmetric binary matrix has a BSD of finite rank.

Now, we give an algorithm (Algorithm 2) that solves k-BSD in O(nk2k2+k) time. We prove the correctness and running time in Lemma 3.34. The proof for Theorem 3.10 follows as : For solving the k-EdgeCliqPart problem, we first run the kernelization (which takes polynomial time), convert the kernalized instance to a k-BSD instance by Lemma 3.33, and then run Algorithm 2 on the k-BSD instance. Since for the kernalized instance |V (G)| ≤ k2, we have n ≤ k2in the k-BSD instance and hence the total running time is in O∗(22k log k+k2+k).

Algorithm 2: Algorithm for finding rank-k BSD Input : A matrix A ∈ {0, 1}n×n,

Output : If A has a rank-k BSD then output a B such that BBT =ED A,

otherwise report that A has no rank-k BSD

1 foreach I = {i1, i2, · · · , ik} ⊆ [n]k, bi1 ∈ {0, 1}k, bi2 ∈ {0, 1}k, . . . , bik do

// loop 1

2 let ˜B be the matrix whose rows are bTi

1, b T i2, . . . , b T ik. 4 4 if ˜B ˜BT 6=

ED AI,I then go to the next iteration of Loop 1

5 for i ∈ [n] \ I in ascending order do // loop 2

6 By iterating over all k-length binary vectors,

7 find bi∈ {0, 1}k such that for all j ∈ I ∪ [i − 1], bTi bj = Ai,j ;

8 if there is no such bi, then go to the next iteration of Loop 1;

9 end

10 let B be the matrix with bT1, bT2, · · · , bTn as the rows; 11 output B and terminate.

12 end

13 report that A has no rank-k BSD and terminate.

Lemma 3.34. Given a matrix A ∈ {0, 1}n×n, Algorithm 2 finds the rank-k BSD of an input matrix A ∈ n × n if it exists in O(nk2k2+k)-time. If A does not have a rank-k

BSD, then the algorithm reports so.

Proof. The core idea is same as that of Algorithm 1. It is clear that Loop 1 has at most nk2k2 iterations and Loop 2 has at most n iterations each of which takes O(2k) time. Hence the running time is clear.

Next we prove the correctness. Suppose A indeed has a rank-k BSD. We show that then the algorithm will successfully output a rank-k BSD. Since A has a rank-k BSD, there exist a B∈ {0, 1}n×k such that BB∗T = A0 =ED A for some A0 ∈ {0, 1}n×n.

Note that there can be more than one such Bbut we fix one. B∗clearly has a rank (over standard real arithmetic) of at most k as it only has k columns. Therefore there exist k rows of B∗ which can span all the other rows. Consider the iteration of Loop 1 for which the algorithm picks these k row indices as {i1, i2, . . . , ik} = I and also picks (Bj,:∗ )T as bj

for all j ∈ I. The latter means that ˜B = BI,:∗ . Clearly then ˜B ˜BT = BI,:(BI,:)T =ED AI,I.

Hence the then part of Line 4 is not executed and we enter Loop 2. We now prove that, in Line 7, the algorithm will successfully find a vector bi for all i ∈ [n] \ I, with the specified condition (i.e., the condition that for all j ∈ I ∪ [i − 1], bTi bj = Ai,j). We do

this by induction on i. Assume we were able to find such bt for all t ∈ [i − 1] \ I. Using

this induction assumption, we show we can also find a bi. We will exhibit (Bi,:∗ )T as the required bi. We know that

Bi,:B∗T = A0i,: and (3.8)

Bi,:∗ =X

`∈I

λ`B`,:∗ (3.9)

where each λ`∈ R. Substituting (3.9) in (3.8),

A0i,: = Bi,:B∗T = Σ`∈Iλ`B`,:B

∗T

= Σ`∈Iλ`A0`,: (3.10)

Taking bi= (Bi,:∗ )T, we have that for all j ∈ I,

bTi bj = Bi,:(Bj,:)T (We are in the iteration where bj = (Bj,:∗ )T for all j ∈ I) (3.11)

= A0i,j = Ai,j (A0 and A are different only in the diagonal) (3.12)

So it only remains to prove bTi bj = Ai,j for j ∈ [i − 1] \ I. Consider any j ∈ [i − 1] \ I.

bTi bj = Bi,:bj

= Σ`∈Iλ`B`,:bj (using (3.9))

= Σ`∈Iλ`bT`bj (We are in the iteration where b` = (B`,:∗ )T for all ` ∈ I)

= Σ`∈Iλ`A`,j (due to induction assumption)

= Σ`∈Iλ`A0`,j (Since j /∈ I)

= A0i,j (Using 3.10)

= Ai,j (A0 and A are different only in the diagonal)

Thus we have exhibited Bi,:as the required bi. Note that the actual bithat the algorithm

picks might be different than Bi,:; we only used this to prove the existence of at least one such bi. Thus by induction, for all i ∈ [n] \ I, the algorithm finds a bi with the required conditions. In Line 11, the algorithm outputs matrix B with these bT1, bT2, . . . bTn as the rows. Since we satisfied the condition in Line 7, we have that bTi bj = Aij for all i, j ∈ [n]

and i 6= j. Hence, BBT =ED A.

Note that whenever we terminate via Line 11, we successfully produce a rank-k BSD of A. Hence if A does not have rank-k BSD we will terminate via Line 13 and hence correctly report that A does not have a rank-k BSD.