name: Problem
about: Propose a new problem type
title: "[Model] BalancedCompleteBipartiteSubgraph"
labels: model
assignees: ''
Motivation
BALANCED COMPLETE BIPARTITE SUBGRAPH from Garey & Johnson, A1.2 GT24. A classical NP-complete problem useful for reductions. Also known as the Maximum Balanced Biclique Problem (MBBP), it has applications in data mining, bioinformatics (protein-protein interaction networks), VLSI design, and document clustering.
Associated reduction rules:
- As target: R26 (CLIQUE -> BALANCED COMPLETE BIPARTITE SUBGRAPH) -- the NP-completeness proof by Garey and Johnson.
- As source: None found in the current rule set.
Definition
Name: BalancedCompleteBipartiteSubgraph
Canonical name: BALANCED COMPLETE BIPARTITE SUBGRAPH (also: Maximum Balanced Biclique, Balanced Biclique)
Reference: Garey & Johnson, Computers and Intractability, A1.2 GT24
Mathematical definition:
INSTANCE: Bipartite graph G = (V,E), positive integer K <= |V|.
QUESTION: Are there two disjoint subsets V1, V2 <= V such that |V1| = |V2| = K and such that u in V1, v in V2 implies that {u,v} in E?
Variables
- Count: n = |V| binary variables (one per vertex), encoding membership in V1 or V2. For a bipartite graph with bipartition V = A union B where |A| = n_A and |B| = n_B, we have n = n_A + n_B binary variables.
- Per-variable domain: {0, 1} where 0 = not selected, 1 = selected.
dims(): returns vec![2; n] where n = n_A + n_B (total number of vertices). The first n_A variables correspond to vertices in partition A, the remaining n_B variables correspond to vertices in partition B.
- Meaning: For i < n_A, config[i] = 1 means vertex i from partition A is included in V1. For j >= n_A, config[j] = 1 means vertex j - n_A from partition B is included in V2. A satisfying assignment has sum(config[0..n_A]) = sum(config[n_A..n]) = K and for every pair (i,j) with config[i] = 1 and config[n_A + j] = 1, the edge {i,j} exists in E.
Schema (data type)
Type name: BalancedCompleteBipartiteSubgraph
Variants: graph type parameter G (bipartite graphs only)
| Field |
Type |
Description |
graph |
BipartiteGraph |
The bipartite graph in which a balanced complete bipartite subgraph is sought |
k |
usize |
The required size K of each side of the biclique |
Size fields (getter methods for overhead expressions):
num_vertices() -> usize — total number of vertices |V|
num_edges() -> usize — number of edges |E|
k() -> usize — required biclique side size K
Notes:
- This is a satisfaction (decision) problem:
Metric = bool, implementing SatisfactionProblem.
- The graph must be bipartite. The
BipartiteGraph type encodes the bipartition.
- Uses lowercase
k consistently for the field name; corresponds to the parameter K in the mathematical definition.
Complexity
Best known algorithm and declare_variants!:
crate::declare_variants! {
BalancedCompleteBipartiteSubgraph => "1.3803^num_vertices",
}
-
The O*(1.3803^n) bound is from Chen et al. (2020), specifically for dense bipartite graphs. For sparse graphs, performance may differ.
-
Brute force: O(2^n) by trying all subsets of each partition.
-
NP-completeness: NP-complete (Garey and Johnson, 1979, GT24). Transformation from CLIQUE.
-
Parameterized complexity: W[1]-hard parameterized by solution size K (Lin, 2018, "The Parameterized Complexity of the k-Biclique Problem").
-
Approximation hardness: NP-hard to approximate within a factor of n^(1-epsilon) for any epsilon > 0, assuming the Small Set Expansion Hypothesis and NP != BPP (Manurangsi, 2017).
-
References:
- Garey, M.R. and Johnson, D.S. (1979). Computers and Intractability: A Guide to the Theory of NP-Completeness. W.H. Freeman.
- Chen, Y. et al. (2020). "Efficient Exact Algorithms for Maximum Balanced Biclique Search in Bipartite Graphs". arXiv:2007.08836.
- Lin, B. (2018). "The Parameterized Complexity of the k-Biclique Problem". Journal of the ACM 65(5).
Extra Remark
Full book text:
INSTANCE: Bipartite graph G = (V,E), positive integer K <= |V|.
QUESTION: Are there two disjoint subsets V1, V2 <= V such that |V1| = |V2| = K and such that u in V1, v in V2 implies that {u,v} in E?
Reference: [Garey and Johnson, ----]. Transformation from CLIQUE.
Comment: The related problem in which the requirement "|V1| = |V2| = K" is replaced by "|V1|+|V2| = K" is solvable in polynomial time for bipartite graphs (because of the connection between matchings and independent sets in such graphs, e.g., see [Harary, 1969]), but is NP-complete for general graphs [Yannakakis, 1978b].
How to solve
Example Instance
Instance 1 (maximum balanced biclique is K=2):
Bipartite graph G with bipartition A = {a0, a1, a2, a3} and B = {b0, b1, b2, b3}, 10 edges:
- Edges: {a0,b0}, {a0,b1}, {a0,b2}, {a1,b0}, {a1,b1}, {a1,b3}, {a2,b0}, {a2,b2}, {a2,b3}, {a3,b1}
- K = 2: YES. Solution: V1 = {a0, a1}, V2 = {b0, b1} — all 4 cross-edges exist: a0-b0, a0-b1, a1-b0, a1-b1.
- K = 3: NO. No three vertices from A share three common neighbors in B.
Instance 2 (has balanced biclique of size 3):
Bipartite graph G with bipartition A = {a0, a1, a2, a3} and B = {b0, b1, b2, b3}, 12 edges:
- Edges: {a0,b0}, {a0,b1}, {a0,b2}, {a1,b0}, {a1,b1}, {a1,b2}, {a2,b0}, {a2,b1}, {a2,b2}, {a3,b0}, {a3,b1}, {a3,b3}
- K = 3: YES. Solution: V1 = {a0, a1, a2}, V2 = {b0, b1, b2}.
- Check all 9 pairs: a0-b0, a0-b1, a0-b2, a1-b0, a1-b1, a1-b2, a2-b0, a2-b1, a2-b2 — all present.
- Note: a3 is NOT in V1 because a3-b2 is missing.
- Greedy trap: Including a3 (which has 3 edges) leads to failure since a3's neighbors {b0, b1, b3} don't fully overlap with any 3 vertices in B that also connect to a0, a1, a2.
name: Problem
about: Propose a new problem type
title: "[Model] BalancedCompleteBipartiteSubgraph"
labels: model
assignees: ''
Motivation
BALANCED COMPLETE BIPARTITE SUBGRAPH from Garey & Johnson, A1.2 GT24. A classical NP-complete problem useful for reductions. Also known as the Maximum Balanced Biclique Problem (MBBP), it has applications in data mining, bioinformatics (protein-protein interaction networks), VLSI design, and document clustering.
Associated reduction rules:
Definition
Name:
BalancedCompleteBipartiteSubgraphCanonical name: BALANCED COMPLETE BIPARTITE SUBGRAPH (also: Maximum Balanced Biclique, Balanced Biclique)
Reference: Garey & Johnson, Computers and Intractability, A1.2 GT24
Mathematical definition:
INSTANCE: Bipartite graph G = (V,E), positive integer K <= |V|.
QUESTION: Are there two disjoint subsets V1, V2 <= V such that |V1| = |V2| = K and such that u in V1, v in V2 implies that {u,v} in E?
Variables
dims(): returnsvec![2; n]where n = n_A + n_B (total number of vertices). The first n_A variables correspond to vertices in partition A, the remaining n_B variables correspond to vertices in partition B.Schema (data type)
Type name:
BalancedCompleteBipartiteSubgraphVariants: graph type parameter G (bipartite graphs only)
graphBipartiteGraphkusizeSize fields (getter methods for overhead expressions):
num_vertices() -> usize— total number of vertices |V|num_edges() -> usize— number of edges |E|k() -> usize— required biclique side size KNotes:
Metric = bool, implementingSatisfactionProblem.BipartiteGraphtype encodes the bipartition.kconsistently for the field name; corresponds to the parameter K in the mathematical definition.Complexity
Best known algorithm and
declare_variants!:The O*(1.3803^n) bound is from Chen et al. (2020), specifically for dense bipartite graphs. For sparse graphs, performance may differ.
Brute force: O(2^n) by trying all subsets of each partition.
NP-completeness: NP-complete (Garey and Johnson, 1979, GT24). Transformation from CLIQUE.
Parameterized complexity: W[1]-hard parameterized by solution size K (Lin, 2018, "The Parameterized Complexity of the k-Biclique Problem").
Approximation hardness: NP-hard to approximate within a factor of n^(1-epsilon) for any epsilon > 0, assuming the Small Set Expansion Hypothesis and NP != BPP (Manurangsi, 2017).
References:
Extra Remark
Full book text:
INSTANCE: Bipartite graph G = (V,E), positive integer K <= |V|.
QUESTION: Are there two disjoint subsets V1, V2 <= V such that |V1| = |V2| = K and such that u in V1, v in V2 implies that {u,v} in E?
Reference: [Garey and Johnson, ----]. Transformation from CLIQUE.
Comment: The related problem in which the requirement "|V1| = |V2| = K" is replaced by "|V1|+|V2| = K" is solvable in polynomial time for bipartite graphs (because of the connection between matchings and independent sets in such graphs, e.g., see [Harary, 1969]), but is NP-complete for general graphs [Yannakakis, 1978b].
How to solve
Example Instance
Instance 1 (maximum balanced biclique is K=2):
Bipartite graph G with bipartition A = {a0, a1, a2, a3} and B = {b0, b1, b2, b3}, 10 edges:
Instance 2 (has balanced biclique of size 3):
Bipartite graph G with bipartition A = {a0, a1, a2, a3} and B = {b0, b1, b2, b3}, 12 edges: