5. Motivation
Applications:
Load balancing for parallel computing,
Preprocessing step for some road network algorithms,
Divide-and-conquer (e.g. VLSI design).
Possible approaches:
NP-hard, O(log n) best approximation [R¨cke ’08].
a
In practice: approximate solutions or high(er) running time.
Heuristics:
numerous very fast, good solvers.
often tailored to certain graph classes (e.g. road networks),
no guarantees on the quality of solution (let alone optimality).
We want exact algorithms!
6. Branch and Bound
Standard technique for solving NP-hard problems exactly.
We keep track of A, B ⊆ V . Want to find the best bisection
that is consistent with (A, B) (i.e. A ⊆ V1 , B ⊆ V2 ).
7. Branch and Bound
Standard technique for solving NP-hard problems exactly.
We keep track of A, B ⊆ V . Want to find the best bisection
that is consistent with (A, B) (i.e. A ⊆ V1 , B ⊆ V2 ).
Branch: pick v ∈ V (A ∪ B), split (A, B) into (A ∪ {v }, B)
and (A, B ∪ {v }).
8. Branch and Bound
Standard technique for solving NP-hard problems exactly.
We keep track of A, B ⊆ V . Want to find the best bisection
that is consistent with (A, B) (i.e. A ⊆ V1 , B ⊆ V2 ).
Branch: pick v ∈ V (A ∪ B), split (A, B) into (A ∪ {v }, B)
and (A, B ∪ {v }).
Bound: if L ≥ U, then we can throw (A, B) away, where
U: best known bisection (updated on-line),
L: lower bound on all bisections consistent with (A, B).
9. Branch and Bound
Standard technique for solving NP-hard problems exactly.
We keep track of A, B ⊆ V . Want to find the best bisection
that is consistent with (A, B) (i.e. A ⊆ V1 , B ⊆ V2 ).
Branch: pick v ∈ V (A ∪ B), split (A, B) into (A ∪ {v }, B)
and (A, B ∪ {v }).
Bound: if L ≥ U, then we can throw (A, B) away, where
U: best known bisection (updated on-line),
L: lower bound on all bisections consistent with (A, B).
Crucial ingredient: computing the lower bound L.
10. Known lower bounds
Linear programming [FMdSWW ’98] [S ’01]
hundreds of nodes, several hours,
Semidefinite programming [AFHM ’08]
up to 6000 nodes, several hours,
Combinatorial multicommodity flow solver [SST ’03]
hundreds of nodes, several hours,
Degree-based simple combinatorial bound [F ’05]
random graphs up to 50 nodes, several minutes.
11. Summary
Our result:
Exact combinatorial algorithm for graph bisection
works well for graphs with a small minimum bisection
road networks, VLSI instances, meshes...
solves much larger instances than previous approaches.
Main contributions:
new lower bound techniques
branching rules
novel decomposition technique
12. Flow-based lower bound
We have A, B ⊆ V and want to lower-bound all bisections
that are consistent with (A, B),
13. Flow-based lower bound
We have A, B ⊆ V and want to lower-bound all bisections
that are consistent with (A, B),
Obvious bound: min-cut (max-flow) between A and B,
14. Flow-based lower bound
We have A, B ⊆ V and want to lower-bound all bisections
that are consistent with (A, B),
Obvious bound: min-cut (max-flow) between A and B,
Pros:
easy to compute,
if cut is balanced, then we can update the upper bound,
15. Flow-based lower bound
We have A, B ⊆ V and want to lower-bound all bisections
that are consistent with (A, B),
Obvious bound: min-cut (max-flow) between A and B,
Pros:
easy to compute,
if cut is balanced, then we can update the upper bound,
Cons:
if |A| |B|, then max-flow is too small,
in sparse graphs minimum cuts are typically very unbalanced.
17. Packing lower bound
Let A, B ⊆ V be a current partial assignment,
˜
Let A be an extension of A of size |V |/2,
18. Packing lower bound
Let A, B ⊆ V be a current partial assignment,
˜
Let A be an extension of A of size |V |/2,
˜
Λ = minA cut(A, B) is a valid lower bound
˜
˜ ˜
cut(A, B): min-cut between A and B.
19. Packing lower bound
Let A, B ⊆ V be a current partial assignment,
˜
Let A be an extension of A of size |V |/2,
˜
Λ = minA cut(A, B) is a valid lower bound
˜
˜ ˜
cut(A, B): min-cut between A and B.
We want a lower bound for Λ.
21. Packing lower bound
We lower bound Λ as follows.
We partition free nodes into cells connected to B.
22. Packing lower bound
We lower bound Λ as follows.
We partition free nodes into cells connected to B.
If a subset of V of size n/2 hits k cells...
23. Packing lower bound
We lower bound Λ as follows.
We partition free nodes into cells connected to B.
If a subset of V of size n/2 hits k cells...
...we have a flow between the set and B of value k.
24. Packing lower bound
We lower bound Λ as follows.
We partition free nodes into cells connected to B.
If a subset of V of size n/2 hits k cells...
...we have a flow between the set and B of value k.
The worst case (lower bound) is when fewest cells are hit:
pick entire cells, from biggest to smallest.
⇒ balanced cells are better
25. Flow + Packing
We can combine flow and packing lower bounds by removing flow
edges before computing cells.
26. Flow + Packing
We can combine flow and packing lower bounds by removing flow
edges before computing cells.
28. Local search
For lower bound we pick cells from biggest to smallest,
Balanced cells are better,
Before local search
140
120
100
80
size
60
40
20
0
0 5 10 15 20 25 30 35
cell
29. Local search
For lower bound we pick cells from biggest to smallest,
Balanced cells are better,
We do very fast local search that swaps nodes between cells.
Before local search
140
After local search
120
100
80
size
60
40
20
0
0 5 10 15 20 25 30 35
cell
32. Branching rule and forced assignments
Branch on vertex likely to increase L the most:
1. far from A and B (to produce better cells)
2. well connected to other vertices (to increase flow)
Forced assignments:
use logical implications to fix some vertices to A or B
works if upper and lower bounds are close
eliminate many potential branching nodes
35. Branching on regions
Algorithm is very sensitive to the degrees of assigned nodes.
Idea: branch on larger (precomputed) regions.
Problem: a region can cross the minimum bisection.
36. Decomposition
Suppose we want to prove lower bound L.
Divide edges into L + 1 disjoint sets E1 , E2 , . . . , EL+1 .
37. Decomposition
Suppose we want to prove lower bound L.
Divide edges into L + 1 disjoint sets E1 , E2 , . . . , EL+1 .
38. Decomposition
Suppose we want to prove lower bound L.
Divide edges into L + 1 disjoint sets E1 , E2 , . . . , EL+1 .
39. Decomposition
Suppose we want to prove lower bound L.
Divide edges into L + 1 disjoint sets E1 , E2 , . . . , EL+1 .
40. Decomposition
Suppose we want to prove lower bound L.
Divide edges into L + 1 disjoint sets E1 , E2 , . . . , EL+1 .
41. Decomposition
Suppose we want to prove lower bound L.
Divide edges into L + 1 disjoint sets E1 , E2 , . . . , EL+1 .
42. Decomposition
Suppose we want to prove lower bound L.
Divide edges into L + 1 disjoint sets E1 , E2 , . . . , EL+1 .
For every i, contract Ei and solve a smaller problem.
43. Decomposition
Suppose we want to prove lower bound L.
Divide edges into L + 1 disjoint sets E1 , E2 , . . . , EL+1 .
For every i, contract Ei and solve a smaller problem.
The minimum bisection (of size ≤ L) can not intersect all Ei .
44. Decomposition
Suppose we want to prove lower bound L.
Divide edges into L + 1 disjoint sets E1 , E2 , . . . , EL+1 .
For every i, contract Ei and solve a smaller problem.
The minimum bisection (of size ≤ L) can not intersect all Ei .
Ei should be a set of clumps (high degree, well spread).
54. Walshaw instances
Standard benchmark for graph partitioning.
instance n m opt BB nodes time (s)
add32 4 960 9 462 11 225 3
uk 4 824 6 837 19 1 624 3
3elt 4 720 13 722 90 12 707 82
whitaker3 9 800 28 989 127 7 044 133
fe 4elt2 11 143 32 818 130 10 391 224
4elt 15 606 45 878 139 25 912 769
data 2 851 15 093 189 495 569 759 5 750 388
Optimum bisections were known before, but without proofs.
55. Instances from “exact” literature
State-of-the-art approaches:
[Arm07]: semidefinite programming
[HPZ11]: quadratic programming
instance n m opt time [Arm07] [HPZ11]
KKT putt01 m2 115 433 28 0.81 1.67 1.51
mesh.274.469 274 469 37 0.03 8.52 24.62
gap2669.24859 2669 29037 55 0.15 348.95 —
taq170.424 170 4317 55 3.00 28.68 —
gap2669.6182 2669 12280 74 34.90 651.03 —
taq1021.2253 1021 4510 118 134.61 169.65 —
Our algorithm is much worse when the answer is large.
56. Conclusions
Combinatorial branch-and-bound for graph bisections.
Answer size matters much more than problem size.
Challenge: solve Europe (18M vertices, 22.5M edges).