Upcoming SlideShare
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Standard text messaging rates apply

# Combinatorial Algorithms for Graph Bisection

1,089

Published on

ALENEX 2012 talk on combinatorial branch-and-bound for graph bisection

ALENEX 2012 talk on combinatorial branch-and-bound for graph bisection

Published in: Technology
0 Likes
Statistics
Notes
• Full Name
Comment goes here.

Are you sure you want to Yes No
• Be the first to comment

• Be the first to like this

Views
Total Views
1,089
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
0
0
Likes
0
Embeds 0
No embeds

No notes for slide

### Transcript

• 1. Exact Combinatorial Algorithms for Graph BisectionDaniel Delling Andrew V. Goldberg Ilya Razenshteyn Renato F. Werneck ALENEX 2012
• 2. Problem deﬁnition Given an undirected graph G = (V , E ) ﬁnd a partition V = V1 ∪ V2 such that: 1. V1 ∩ V2 = ∅, 2. |V1 |, |V2 | ≤ |V |/2 , 3. |E (V1 , V2 )| → min. Variations: 1. -unbalanced partititions — |V1 |, |V2 | ≤ (1 + ) · |V |/2 , 2. node and edge weights, 3. more than two parts.
• 3. VLSI instance alue5067 3524 nodes, 5560 edges
• 4. VLSI instance alue5067 3524 nodes, 5560 edges, bisection of size 30
• 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 ﬁnd 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 ﬁnd 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 ﬁnd 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 ﬁnd 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, Semideﬁnite programming [AFHM ’08] up to 6000 nodes, several hours, Combinatorial multicommodity ﬂow 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-ﬂow) 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-ﬂow) 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-ﬂow) 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-ﬂow is too small, in sparse graphs minimum cuts are typically very unbalanced.
• 16. Packing lower bound Let A, B ⊆ V be a current partial assignment,
• 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 Λ.
• 20. Packing lower bound We lower bound Λ as follows.
• 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 ﬂow 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 ﬂow 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 ﬂow and packing lower bounds by removing ﬂow edges before computing cells.
• 26. Flow + Packing We can combine ﬂow and packing lower bounds by removing ﬂow edges before computing cells.
• 27. Performance alue5067: 3524 nodes, 5560 edges, answer 30 proving lower bound 30: search tree: 6M nodes time: 2.5 hours
• 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
• 30. Performance alue5067: 3524 nodes, 5560 edges, answer 30 proving lower bound 30: search tree: 6M nodes time: 2.5 hours
• 31. Performance alue5067: 3524 nodes, 5560 edges, answer 30 proving lower bound 30: search tree: 6M nodes → 1.3M nodes time: 2.5 hours → 50 minutes
• 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 ﬂow) Forced assignments: use logical implications to ﬁx some vertices to A or B works if upper and lower bounds are close eliminate many potential branching nodes
• 33. Performance alue5067: 3524 nodes, 5560 edges, answer 30 proving lower bound 30: search tree: 1.3M nodes time: 50 minutes
• 34. Performance alue5067: 3524 nodes, 5560 edges, answer 30 proving lower bound 30: search tree: 1.3M nodes → 90K nodes time: 50 minutes → 3.5 minutes
• 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).
• 45. Performance alue5067: 3524 nodes, 5560 edges, answer 30 proving lower bound 30: search tree: 90K nodes time: 3.5 minutes
• 46. Performance alue5067: 3524 nodes, 5560 edges, answer 30 proving lower bound 30: search tree: 90K nodes → 1369 nodes time: 3.5 minutes → 2 seconds
• 47. Performance alue5067: 3524 nodes, 5560 edges, answer 30 ﬁnding the answer: search tree: 1369 nodes time: 2 seconds
• 48. Performance alue5067: 3524 nodes, 5560 edges, answer 30 ﬁnding the answer: search tree: 1369 nodes → 1503 nodes time: 2 seconds → 2 seconds
• 49. Experiments
• 50. Large VLSI alue7065: 34046 nodes, 54841 edges, answer 80 search tree: 20K nodes time: 9 minutes
• 51. Meshes Feline: 20629 nodes, 61893 edges, answer 148 search tree: 150K nodes time: 1 hour 15 minutes
• 52. Meshes Gargoyle: 10002 nodes, 30000 edges, answer 175 search tree: 2.6M nodes time: 13 hours
• 53. Road networks US NW: 1.2M nodes, 1.4M edges, answer 18 search tree: 264 nodes time: 25 minutes
• 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]: semideﬁnite 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).
• 57. Thank you!