Exact Combinatorial Algorithms for Graph               BisectionDaniel Delling   Andrew V. Goldberg   Ilya Razenshteyn    ...
Problem definition      Given an undirected graph G = (V , E ) find a partition      V = V1 ∪ V2 such that:       1. V1 ∩ V2...
VLSI instance alue5067   3524 nodes, 5560 edges
VLSI instance alue5067   3524 nodes, 5560 edges, bisection of size 30
Motivation  Applications:      Load balancing for parallel computing,      Preprocessing step for some road network algori...
Branch and Bound     Standard technique for solving NP-hard problems exactly.     We keep track of A, B ⊆ V . Want to find ...
Branch and Bound     Standard technique for solving NP-hard problems exactly.     We keep track of A, B ⊆ V . Want to find ...
Branch and Bound     Standard technique for solving NP-hard problems exactly.     We keep track of A, B ⊆ V . Want to find ...
Branch and Bound     Standard technique for solving NP-hard problems exactly.     We keep track of A, B ⊆ V . Want to find ...
Known lower bounds      Linear programming [FMdSWW ’98] [S ’01]          hundreds of nodes, several hours,      Semidefinit...
Summary  Our result:      Exact combinatorial algorithm for graph bisection      works well for graphs with a small minimu...
Flow-based lower bound      We have A, B ⊆ V and want to lower-bound all bisections      that are consistent with (A, B),
Flow-based lower bound      We have A, B ⊆ V and want to lower-bound all bisections      that are consistent with (A, B), ...
Flow-based lower bound      We have A, B ⊆ V and want to lower-bound all bisections      that are consistent with (A, B), ...
Flow-based lower bound      We have A, B ⊆ V and want to lower-bound all bisections      that are consistent with (A, B), ...
Packing lower bound      Let A, B ⊆ V be a current partial assignment,
Packing lower bound      Let A, B ⊆ V be a current partial assignment,          ˜      Let A be an extension of A of size ...
Packing lower bound      Let A, B ⊆ V be a current partial assignment,          ˜      Let A be an extension of A of size ...
Packing lower bound      Let A, B ⊆ V be a current partial assignment,          ˜      Let A be an extension of A of size ...
Packing lower bound  We lower bound Λ as follows.
Packing lower bound  We lower bound Λ as follows.      We partition free nodes into cells connected to B.
Packing lower bound  We lower bound Λ as follows.      We partition free nodes into cells connected to B.      If a subset...
Packing lower bound  We lower bound Λ as follows.      We partition free nodes into cells connected to B.      If a subset...
Packing lower bound  We lower bound Λ as follows.      We partition free nodes into cells connected to B.      If a subset...
Flow + Packing  We can combine flow and packing lower bounds by removing flow  edges before computing cells.
Flow + Packing  We can combine flow and packing lower bounds by removing flow  edges before computing cells.
Performance      alue5067: 3524 nodes, 5560 edges, answer 30      proving lower bound 30:          search tree: 6M nodes  ...
Local search      For lower bound we pick cells from biggest to smallest,      Balanced cells are better,                 ...
Local search      For lower bound we pick cells from biggest to smallest,      Balanced cells are better,      We do very ...
Performance      alue5067: 3524 nodes, 5560 edges, answer 30      proving lower bound 30:          search tree: 6M nodes  ...
Performance      alue5067: 3524 nodes, 5560 edges, answer 30      proving lower bound 30:          search tree: 6M nodes →...
Branching rule and forced assignments      Branch on vertex likely to increase L the most:        1. far from A and B (to ...
Performance      alue5067: 3524 nodes, 5560 edges, answer 30      proving lower bound 30:          search tree: 1.3M nodes...
Performance      alue5067: 3524 nodes, 5560 edges, answer 30      proving lower bound 30:          search tree: 1.3M nodes...
Branching on regions      Algorithm is very sensitive to the degrees of assigned nodes.      Idea: branch on larger (preco...
Decomposition      Suppose we want to prove lower bound L.      Divide edges into L + 1 disjoint sets E1 , E2 , . . . , EL...
Decomposition      Suppose we want to prove lower bound L.      Divide edges into L + 1 disjoint sets E1 , E2 , . . . , EL...
Decomposition      Suppose we want to prove lower bound L.      Divide edges into L + 1 disjoint sets E1 , E2 , . . . , EL...
Decomposition      Suppose we want to prove lower bound L.      Divide edges into L + 1 disjoint sets E1 , E2 , . . . , EL...
Decomposition      Suppose we want to prove lower bound L.      Divide edges into L + 1 disjoint sets E1 , E2 , . . . , EL...
Decomposition      Suppose we want to prove lower bound L.      Divide edges into L + 1 disjoint sets E1 , E2 , . . . , EL...
Decomposition      Suppose we want to prove lower bound L.      Divide edges into L + 1 disjoint sets E1 , E2 , . . . , EL...
Decomposition      Suppose we want to prove lower bound L.      Divide edges into L + 1 disjoint sets E1 , E2 , . . . , EL...
Decomposition      Suppose we want to prove lower bound L.      Divide edges into L + 1 disjoint sets E1 , E2 , . . . , EL...
Performance      alue5067: 3524 nodes, 5560 edges, answer 30      proving lower bound 30:          search tree: 90K nodes ...
Performance      alue5067: 3524 nodes, 5560 edges, answer 30      proving lower bound 30:          search tree: 90K nodes ...
Performance      alue5067: 3524 nodes, 5560 edges, answer 30      finding the answer:          search tree: 1369 nodes     ...
Performance      alue5067: 3524 nodes, 5560 edges, answer 30      finding the answer:          search tree: 1369 nodes → 15...
Experiments
Large VLSI      alue7065: 34046 nodes, 54841 edges, answer 80          search tree: 20K nodes          time: 9 minutes
Meshes     Feline: 20629 nodes, 61893 edges, answer 148         search tree: 150K nodes         time: 1 hour 15 minutes
Meshes     Gargoyle: 10002 nodes, 30000 edges, answer 175         search tree: 2.6M nodes         time: 13 hours
Road networks      US NW: 1.2M nodes, 1.4M edges, answer 18          search tree: 264 nodes          time: 25 minutes
Walshaw instances  Standard benchmark for graph partitioning.   instance         n       m    opt     BB nodes     time (s...
Instances from “exact” literature       State-of-the-art approaches:           [Arm07]: semidefinite programming           ...
Conclusions      Combinatorial branch-and-bound for graph bisections.      Answer size matters much more than problem size...
Thank you!
Upcoming SlideShare
Loading in...5
×

Combinatorial Algorithms for Graph Bisection

1,114

Published on

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

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

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

No notes for slide

Combinatorial Algorithms for Graph Bisection

  1. 1. Exact Combinatorial Algorithms for Graph BisectionDaniel Delling Andrew V. Goldberg Ilya Razenshteyn Renato F. Werneck ALENEX 2012
  2. 2. Problem definition Given an undirected graph G = (V , E ) find 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. 3. VLSI instance alue5067 3524 nodes, 5560 edges
  4. 4. VLSI instance alue5067 3524 nodes, 5560 edges, bisection of size 30
  5. 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. 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. 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. 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. 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. 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. 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. 12. Flow-based lower bound We have A, B ⊆ V and want to lower-bound all bisections that are consistent with (A, B),
  13. 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. 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. 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.
  16. 16. Packing lower bound Let A, B ⊆ V be a current partial assignment,
  17. 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. 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. 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. 20. Packing lower bound We lower bound Λ as follows.
  21. 21. Packing lower bound We lower bound Λ as follows. We partition free nodes into cells connected to B.
  22. 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. 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. 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. 25. Flow + Packing We can combine flow and packing lower bounds by removing flow edges before computing cells.
  26. 26. Flow + Packing We can combine flow and packing lower bounds by removing flow edges before computing cells.
  27. 27. Performance alue5067: 3524 nodes, 5560 edges, answer 30 proving lower bound 30: search tree: 6M nodes time: 2.5 hours
  28. 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. 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. 30. Performance alue5067: 3524 nodes, 5560 edges, answer 30 proving lower bound 30: search tree: 6M nodes time: 2.5 hours
  31. 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. 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
  33. 33. Performance alue5067: 3524 nodes, 5560 edges, answer 30 proving lower bound 30: search tree: 1.3M nodes time: 50 minutes
  34. 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. 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. 36. Decomposition Suppose we want to prove lower bound L. Divide edges into L + 1 disjoint sets E1 , E2 , . . . , EL+1 .
  37. 37. Decomposition Suppose we want to prove lower bound L. Divide edges into L + 1 disjoint sets E1 , E2 , . . . , EL+1 .
  38. 38. Decomposition Suppose we want to prove lower bound L. Divide edges into L + 1 disjoint sets E1 , E2 , . . . , EL+1 .
  39. 39. Decomposition Suppose we want to prove lower bound L. Divide edges into L + 1 disjoint sets E1 , E2 , . . . , EL+1 .
  40. 40. Decomposition Suppose we want to prove lower bound L. Divide edges into L + 1 disjoint sets E1 , E2 , . . . , EL+1 .
  41. 41. Decomposition Suppose we want to prove lower bound L. Divide edges into L + 1 disjoint sets E1 , E2 , . . . , EL+1 .
  42. 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. 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. 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. 45. Performance alue5067: 3524 nodes, 5560 edges, answer 30 proving lower bound 30: search tree: 90K nodes time: 3.5 minutes
  46. 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. 47. Performance alue5067: 3524 nodes, 5560 edges, answer 30 finding the answer: search tree: 1369 nodes time: 2 seconds
  48. 48. Performance alue5067: 3524 nodes, 5560 edges, answer 30 finding the answer: search tree: 1369 nodes → 1503 nodes time: 2 seconds → 2 seconds
  49. 49. Experiments
  50. 50. Large VLSI alue7065: 34046 nodes, 54841 edges, answer 80 search tree: 20K nodes time: 9 minutes
  51. 51. Meshes Feline: 20629 nodes, 61893 edges, answer 148 search tree: 150K nodes time: 1 hour 15 minutes
  52. 52. Meshes Gargoyle: 10002 nodes, 30000 edges, answer 175 search tree: 2.6M nodes time: 13 hours
  53. 53. Road networks US NW: 1.2M nodes, 1.4M edges, answer 18 search tree: 264 nodes time: 25 minutes
  54. 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. 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. 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. 57. Thank you!

×