Linear Programming: Zero-One Equations (ZOE)
Introduction
The Zero-One Equations (ZOE) Problem is a fundamental problem in linear algebra and optimization that asks whether a system of linear equations has a solution where all variables are either 0 or 1. Despite its simple formulation, ZOE is NP-complete, making it an important problem for understanding the complexity of integer constraint satisfaction. ZOE is closely related to Integer Linear Programming and serves as a useful intermediate problem for reductions.
What is Zero-One Equations?
The Zero-One Equations Problem asks: Given a system of linear equations over integers, does there exist a 0-1 solution (where each variable is either 0 or 1)?
Problem Definition
Zero-One Equations (ZOE) Decision Problem:
Input:
- A matrix A ∈ ℤ^{m × n} (coefficient matrix)
- A vector b ∈ ℤ^m (right-hand side)
Output: YES if there exists a vector x ∈ {0,1}^n such that Ax = b, NO otherwise
Note: This is different from general linear equations (which can be solved in polynomial time) because we require x_i ∈ {0,1} for all i.
Example
Consider the system:
x₁ + x₂ + x₃ = 2
x₁ + x₂ = 1
x₂ + x₃ = 1
where x₁, x₂, x₃ ∈ {0,1}.
Trying solutions:
- (x₁, x₂, x₃) = (1, 0, 1):
- Equation 1: 1 + 0 + 1 = 2 ✓
- Equation 2: 1 + 0 = 1 ✓
- Equation 3: 0 + 1 = 1 ✓
- Solution found! ✓
- (x₁, x₂, x₃) = (1, 1, 0):
- Equation 1: 1 + 1 + 0 = 2 ✓
- Equation 2: 1 + 1 = 2 ✗ (should be 1)
- (x₁, x₂, x₃) = (0, 1, 1):
- Equation 1: 0 + 1 + 1 = 2 ✓
- Equation 2: 0 + 1 = 1 ✓
- Equation 3: 1 + 1 = 2 ✗ (should be 1)
- (x₁, x₂, x₃) = (0, 0, 0):
- Equation 1: 0 + 0 + 0 = 0 ✗ (should be 2)
So (1, 0, 1) is a solution.
Visual Example
For the system:
2x₁ + x₂ &= 2
x₁ + x₂ + x₁ &= 2
Possible 0-1 solutions:
- (1, 0, 1): 2(1)+0=2 ✓, 1+0+1=2 ✓
- (0, 2, ?): Not valid (2 is not 0 or 1)
- (1, 1, 0): 2(1)+1=3 ✗
So (1, 0, 1) is a solution.
Why ZOE is in NP
To show that ZOE is NP-complete, we first need to show it’s in NP.
ZOE ∈ NP:
Given a candidate solution (a 0-1 vector x), we can verify in polynomial time:
- Check that x ∈ {0,1}^n: O(n) time
- Check that Ax = b: O(mn) time (matrix-vector multiplication and comparison)
Total verification time: O(mn), which is polynomial in the input size. Therefore, ZOE is in NP.
NP-Completeness: Reduction from 3-SAT
The standard proof that ZOE is NP-complete reduces from 3-SAT.
Construction
For a 3-SAT formula φ = C_1 ∧ C_2 ∧ … ∧ C_m with variables x₁, x₂, …, x_n:
Key Idea: Encode Boolean variables as 0-1 variables and clauses as equations.
- Variables:
- For each Boolean variable x_i, create a 0-1 variable y_i
- y_i = 1 means x_i = TRUE, y_i = 0 means x_i = FALSE
- Clauses:
- For each clause C_j = (l_1 ∨ l_2 ∨ l_3), create an equation:
- If literal is x_i, use y_i
- If literal is ! x_i, use (1 - y_i)
- Equation: y_{l_1} + y_{l_2} + y_{l_3} = 1 (exactly one literal is true)
Wait - this doesn’t work! A clause requires at least one true literal, not exactly one.
Correct approach: Use inequality constraints or modify the encoding.
- For each clause C_j = (l_1 ∨ l_2 ∨ l_3), create an equation:
- Better Construction:
- For each clause C_j = (l_1 ∨ l_2 ∨ l_3), create a slack variable s_j ∈ {0,1}
- Create equation: y_{l_1} + y_{l_2} + y_{l_3} + s_j = 1
- This ensures at least one literal is true (if all literals are false, s_j must be 1, but then we need additional constraints)
Even Better: Use the standard reduction to ILP, then convert ILP to ZOE.
Standard Reduction via ILP
Since we know 3-SAT ≤ₚ ILP and ILP can be reduced to ZOE, we get:
3-SAT ≤ₚ ILP ≤ₚ ZOE
ILP to ZOE Reduction:
- ILP constraints are inequalities: Ax ≤ b
- Convert to equations using slack variables: Ax + s = b where s ≥ 0
- But we need binary variables…
- Use binary expansion for integer variables
- This shows ZOE is NP-complete
Direct Construction (Simplified)
For a 3-SAT instance, we can directly construct a ZOE instance:
-
For each variable x_i: Create variable y_i ∈ {0,1}
-
For each clause C_j = (l_1 ∨ l_2 ∨ l_3):
- Create equation ensuring at least one literal is satisfied
- Use: y_{l_1} + y_{l_2} + y_{l_3} ≥ 1 (but ZOE uses equations, not inequalities)
- Convert to equation: y_{l_1} + y_{l_2} + y_{l_3} - s_j = 1 where s_j ∈ {0,1,2} (slack)
- But s_j must be binary…
- Use binary representation: s_j = s_{j,1} + 2s_{j,2} where s_{j,1}, s_{j,2} ∈ {0,1}
This construction works but is complex. The key insight is that ZOE captures the essence of 0-1 constraint satisfaction.
Relationship to Other Problems
The ZOE Problem is closely related to several important problems:
Integer Linear Programming (ILP)
Relationship:
- ZOE is a special case of ILP (0-1 ILP with equations instead of inequalities)
- ILP can be reduced to ZOE using:
- Binary expansion of integer variables
- Conversion of inequalities to equations using slack variables
- They are polynomially equivalent for 0-1 variables
3-SAT
As we saw:
- 3-SAT ≤ₚ ZOE: Encode clauses as equations
- ZOE can also be reduced to 3-SAT (showing equivalence)
- They are closely related constraint satisfaction problems
Exact Cover
Exact Cover Problem:
- Given a set and a collection of subsets, find a subcollection covering each element exactly once
- Can be formulated as ZOE: for each element, sum of covering sets equals 1
Set Partitioning
Set Partitioning:
- Partition a set into disjoint subsets with specific properties
- Naturally formulates as ZOE
Practical Implications
Why ZOE is Hard
The Zero-One Equations Problem is NP-complete, which means:
- No Known Polynomial-Time Algorithm: Best known algorithms have exponential worst-case time
- Brute Force: Try all 2ⁿ possible 0-1 assignments - exponential
- Gaussian Elimination: Doesn’t work directly (we need integer solutions)
- Integer Methods: Similar to ILP solving techniques
Solving Methods
1. Brute Force:
- Enumerate all 2ⁿ assignments
- Check each one: O(2^n · mn) time
- Only feasible for small n
2. Backtracking:
- Systematically search solution space
- Prune branches that violate constraints early
- More efficient than brute force in practice
3. Reduction to ILP:
- Convert ZOE to 0-1 ILP
- Use ILP solvers (CPLEX, Gurobi, etc.)
- Very effective in practice
4. Special Cases:
- Totally unimodular matrices: If A is totally unimodular, can solve via LP
- Sparse systems: Specialized algorithms for sparse matrices
- Small systems: Brute force or enumeration
Real-World Applications
ZOE has numerous applications:
- Scheduling: Assigning tasks with constraints
- Resource Allocation: Allocating resources with exact requirements
- Circuit Design: Designing circuits with binary signals
- Coding Theory: Error-correcting codes, parity checks
- Combinatorial Optimization: Various optimization problems
- Game Theory: Finding equilibria in some games
- Database Queries: Query optimization with constraints
Runtime Analysis
Brute Force Approach
Algorithm: Try all 2ⁿ possible 0-1 assignments
- Time Complexity: O(2^n · mn)
- Space Complexity: O(n) for storing current assignment
- Analysis: For each assignment, compute Ax and compare to b (O(mn) time)
Backtracking
Algorithm: Systematic search with early pruning
- Time Complexity: Exponential worst-case, but better than brute force with pruning
- Space Complexity: O(n) for recursion stack
- Pruning: Stop early if constraints can’t be satisfied
Reduction to ILP Solvers
Algorithm: Convert ZOE to 0-1 ILP, use commercial solvers
- Time Complexity: Depends on ILP solver (exponential worst-case, but very efficient in practice)
- Space Complexity: O(mn) for storing constraints
- Practical Performance: Modern solvers (CPLEX, Gurobi) handle large instances efficiently
Gaussian Elimination (Doesn’t Work)
Why it fails: Gaussian elimination finds real solutions, but we need integer (0-1) solutions
- Time Complexity: O(mn^2) for real solutions
- Problem: Real solution might not be 0-1, rounding doesn’t guarantee feasibility
Special Cases
Totally Unimodular Matrices:
- Time Complexity: O(mn^2) - solve as LP, solution automatically integer
- Space Complexity: O(mn)
Sparse Systems:
- Specialized algorithms for sparse matrices can be more efficient
Verification Complexity
Given a candidate 0-1 solution:
- Time Complexity: O(mn) - compute Ax and compare to b
- Space Complexity: O(1) additional space
- This polynomial-time verifiability shows ZOE is in NP
Key Takeaways
- ZOE is NP-Complete: Proven by reduction from 3-SAT (via ILP or directly)
- Simple Formulation: Despite simple appearance, requiring 0-1 solutions makes it hard
- ILP Connection: Closely related to 0-1 Integer Linear Programming
- Constraint Satisfaction: Captures essence of binary constraint satisfaction
- Practical Solving: Can use ILP solvers or specialized algorithms
Reduction Summary
3-SAT ≤ₚ ILP ≤ₚ ZOE:
- 3-SAT reduces to ILP (as we saw earlier)
- ILP reduces to ZOE using binary expansion and slack variables
- This establishes ZOE as NP-complete
Direct: 3-SAT ≤ₚ ZOE:
- Encode variables as 0-1 variables
- Encode clauses as equations (with appropriate slack variables)
- Satisfying assignment ↔ 0-1 solution to equations
All reductions are polynomial-time, establishing ZOE as NP-complete.
Further Reading
- Garey & Johnson: “Computers and Intractability” - Standard reference for NP-completeness proofs
- Integer Linear Programming: Understanding the relationship to ILP
- Linear Algebra: Understanding when systems have integer solutions
- Constraint Satisfaction: Research on CSPs and their complexity
Practice Problems
- Solve by hand: For the ZOE system:
x₁ + x₂ = 1 x₁ + x₂ = 1 x₁ + x₂ = 1Find all 0-1 solutions.
-
Reduce 3-SAT to ZOE: For the 3-SAT instance (x₁ ∨ ! x₁ ∨ x₁) ∧ (! x₁ ∨ x₁ ∨ x₁), construct the corresponding ZOE instance.
- Formulate as ZOE: Convert the following to ZOE:
- You have items, each can be selected (1) or not (0)
- Exactly 3 items must be selected
- Items 1 and 2 cannot both be selected
- If item 3 is selected, then item 4 must be selected
-
ILP to ZOE: Show how to convert a 0-1 ILP instance to a ZOE instance. What about general ILP?
-
Special cases: Research when a system of linear equations is guaranteed to have a 0-1 solution. What properties must the matrix have?
-
Algorithm design: Design a backtracking algorithm for ZOE. How can you prune the search space?
-
Complexity: What is the time complexity of brute force for ZOE? Can you do better than O(2^n · mn)?
- Applications: Research one real-world application of ZOE. How is it formulated? What solving methods are used?
Understanding the Zero-One Equations Problem provides crucial insight into the complexity of integer constraint satisfaction and its relationship to other NP-complete problems. The simple formulation belies its computational difficulty, making it an important problem in complexity theory.