Overlapping Biclustering
Matthias Bentert, Pål Grønås Drange, Erlend Haugen
TL;DR
The paper studies Bicluster Editing with Vertex Splitting on bipartite graphs, offering two main variants and showing APX-hardness for both. It advances the field by proving quadratic-size kernels (O(k^2) vertices) for both variants and correcting a flawed prior algorithm, delivering an O(k^{11k}+n+m)-time solution that combines kernelization with exhaustive search. These results resolve open questions on kernel size and algorithm correctness, and have practical implications for overlapping clustering tasks in recommender systems and biology. The work lays a foundation for further improvements in kernel bounds and exploration of non-bipartite inputs.
Abstract
We study the problem of transforming bipartite graphs into bicluster graphs. Abu-Khzam, Isenmann, and Merchad [IWOCA '25] introduced two variants of this problem. In both problems, the goal is to transform a bipartite graph into a bicluster graph with at most $k$ operations, where the allowed operations are inserting an edge, deleting an edge, and splitting a vertex. Splitting a vertex $v$ refers to replacing $v$ by two new vertices whose combined neighborhood equals the neighborhood of $v$. The latter models overlapping clusters, that is, vertices belonging to multiple clusters, and is motivated by several real-world applications. The versions differ in that one variant allows splitting any vertex, while the second variant only allows vertex splits on one side of the bipartition. Regarding computational complexity, they showed APX-hardness for both variants and a polynomial kernel (with $O(k^5)$ vertices) for the one-sided variant. They asked as open problems whether the polynomial kernel can be improved and whether it can also be extended for the other variant. We answer both questions in the affirmative and give kernels with $O(k^2)$ vertices for both variants. We also show that both problems can be solved in $O(k^{11k} + n + m)$ time, where $n$ and $m$ denote the number of vertices and edges in the input graph, respectively.
