SlideShare une entreprise Scribd logo
1  sur  47
PUNCH
Partitioning Using Natural-Cut Heuristics

       Daniel Delling (Microsoft Research)
    Andrew V. Goldberg (Microsoft Research)
     Ilya Razenshteyn (Moscow University)
    Renato F. Werneck (Microsoft Research)



                 May 19, 2010
Motivation




      Goal: process a continental-sized road network in parallel
      (Europe: 18M nodes and 43M arcs).
      The first natural step: divide it into “small” parts with few
      arcs between them.
      Partition problems are NP-hard, but routinely solved using
      different heuristics.
An example
Applications: routing on road networks
   Idea: Precompute distances between boundary nodes of each cell.


   Overlay Graph:
       Nodes — boundary nodes
       Edges between boundary nodes,


                               Search Graph:
                         t
                                    Source and target cell,
          s
                                    Overlay graph,
                                    Use bidirectional Dijkstra
       Number of cut edges affects the performance heavily.
       More applications: arc-flags and reach.
Existing solvers




       METIS [KK’99], SCOTCH [PR’96], KAPPA [HSS’10],
       KASPAR [OS’10], KAFFPA [SS’10]. General purpose, some
       are fast, some produce very good solution.
       There are many more . . .
       Our goal: partitioner tailored to road networks,
       emphasize quality, still fast enough in practice.
Formal definition



      Input: undirected graph G = (V , E ).
      Result: partition (V = V1 ∪ V2 ∪ . . . ∪ Vk , with Vi ∩ Vj = ∅).
      Goal: minimize number of edges between Vi .
      Two common variants:
          given U, require |Vi | ≤ U for every i,
          given k and , require |Vi | ≤ (1 + ) n/k .
      We focus on the first one.
      Rebalancing is possible.
Intuition




   Road networks: dense regions (grids, cities) interleaved with
   natural cuts (mountains, parks, rivers, deserts, sparse areas,
   freeways).
Summary of the algorithm




      Filtering:
           Contracts dense regions,
           Reduces graph size,
           Preserves natural cuts structure.
      Assembly phase:
           Works with much smaller graph,
           Finds actual partition.
Outline of the talk


   Introduction


   Natural cuts


   Assembly phase


   Experiments


   Conclusion
Outline of the talk


   Introduction


   Natural cuts


   Assembly phase


   Experiments


   Conclusion
Natural cuts


      Sparse sets that
      separate dense areas.
      Minimum s–t cuts are
      trivial (average degree
      < 3).
      Sparsest cuts would be
      OK, but they are
      intractable.
      Our notion of natural
      cut is both tractable and
      useful.
Natural cuts



                   Pick centers in a
                   randomized manner.
               v   Compute minimum cut
                   between the core and the
                   ring.
                   Repeat until every node
                   is inside of at least two
                   cores.
Natural cuts



                       Pick centers in a
                       randomized manner.
               v       Compute minimum cut
                       between the core and the
          U/10 nodes   ring.
                       Repeat until every node
                       is inside of at least two
                       cores.
Natural cuts



                       Pick centers in a
                       randomized manner.
               v       Compute minimum cut
                       between the core and the
          U/10 nodes   ring.
                       Repeat until every node
                       is inside of at least two
                       cores.
           U nodes
Natural cuts



                       Pick centers in a
                       randomized manner.
               v       Compute minimum cut
                       between the core and the
          U/10 nodes   ring.
                       Repeat until every node
                       is inside of at least two
                       cores.
           U nodes
Natural cuts
   Take a union of all natural cuts found and contract everything
   between them.
   The resulting graph is much smaller than the original one.
       U = 106 — 18M nodes to 10K nodes
       U = 103 — 18M nodes to 1.3M nodes
Natural cuts
   Take a union of all natural cuts found and contract everything
   between them.
   The resulting graph is much smaller than the original one.
       U = 106 — 18M nodes to 10K nodes
       U = 103 — 18M nodes to 1.3M nodes
Natural cuts
   Take a union of all natural cuts found and contract everything
   between them.
   The resulting graph is much smaller than the original one.
       U = 106 — 18M nodes to 10K nodes
       U = 103 — 18M nodes to 1.3M nodes
Tiny cuts


   The most obvious natural cuts — 1-cuts and 2-cuts.
       We handle them explicitly before processing natural cuts.
       Greatly decreases graph size (by half) and overall running
       time,
Outline of the talk


   Introduction


   Natural cuts


   Assembly phase


   Experiments


   Conclusion
Assembly phase




   Three ingredients:
       Greedy algorithm,
       Local search,
       Multistart and combination heuristics (optional).
Greedy algorithm

      We combine well-connected small fragments in a randomized
      fashion.
      Repeat until maximal.
      Finds initial partition.
Greedy algorithm

      We combine well-connected small fragments in a randomized
      fashion.
      Repeat until maximal.
      Finds initial partition.
Greedy algorithm

      We combine well-connected small fragments in a randomized
      fashion.
      Repeat until maximal.
      Finds initial partition.
Greedy algorithm

      We combine well-connected small fragments in a randomized
      fashion.
      Repeat until maximal.
      Finds initial partition.
Greedy algorithm

      We combine well-connected small fragments in a randomized
      fashion.
      Repeat until maximal.
      Finds initial partition.
Greedy algorithm

      We combine well-connected small fragments in a randomized
      fashion.
      Repeat until maximal.
      Finds initial partition.
The local search

      Pick two neighboring cells, disassemble them, apply greedy
      algorithm to the subproblem.
      Repeat several times for every pair of neighboring cells.
The local search

      Pick two neighboring cells, disassemble them, apply greedy
      algorithm to the subproblem.
      Repeat several times for every pair of neighboring cells.
The local search

      Pick two neighboring cells, disassemble them, apply greedy
      algorithm to the subproblem.
      Repeat several times for every pair of neighboring cells.
Multistart and combination heuristics




   Since the local search is typically much faster than the natural cuts
   detection, we can use the following two heuristics:
       Multistart: since the local search is randomized, we can
       repeat it several times.
       Combination: keep track of several solutions, and combine
       them from time to time.
Outline of the talk


   Introduction


   Natural cuts


   Assembly phase


   Experiments


   Conclusion
Experimental evaluation




      C++/OpenMP
      Tested on Western Europe map (18M nodes, 43M arcs).
      Machine: Intel Xeon X5680 (two six-core 3.33GHz CPUs)
      with DDR3-1333MHz RAM.
A typical use-case




       Europe, U = 64K .
       Tiny cuts contraction: 25 seconds (18M nodes to 9M nodes).
       Natural cuts identification: 50 seconds (12 cores, 9M nodes to
       100K nodes).
       Greedy + local search: only 5 seconds (12 cores).
Running times on Europe


                                                                Tiny cuts
              200




                                                                Natural cuts
                                                                Greedy + Local search
              180




                                                                                   q
              160
              140
              120




                                                                        q
   Time (s)

              100
              80




                                                          q
              60




                                             q
              40




                    q

                                q
                    q     q     q            q            q             q          q
              20




                          q
                          q
                    q
                                q
                                             q
                                                          q             q          q
              0




                    210   212   214          216          218          220        222

                                      maximum cell size
Influence of ϕ
   The local search tries every edge ϕ times.
              15000




                                                                                   Dependence on phi

                            q
              14000
              13000
   cut size

              12000




                                    q

                                        q
                                            q
                                                q
                                                    q
                                                        q
                                                            q
                                                                 q
              11000




                                                                     q   q
              10000




                      0.1       1                           10               100    1000        10000

                                                                 time (s)
Multistart and combination
   Combination helps!
              15000




                                                                                         Dependence on phi
                                                                                         Multistart
                            q
                                                                                         Combination
              14000
              13000
   cut size

              12000




                                    q

                                        q
                                            q
                                                q
                                                    q
                                                        q                    q       q
                                                            q                                  q
                                                                 q
              11000




                                                                     q   q
                                                                                 q
                                                                                         q
                                                                                                    q
              10000




                      0.1       1                           10               100             1000       10000

                                                                 time (s)
Balanced partitions



       Recall that there are two variants of requirements on |Vi |:
           given U, require |Vi | ≤ U for every i,
           given k and , require |Vi | ≤ (1 + ) n/k .
       PUNCH solves the first, but most existing solvers find
        -balanced partitions.
       Rebalancing:
           Run PUNCH with U = (1 + ) n/k ,
           If there are too many regions, redistribute them.
Balanced partitions: Europe, = 0.03 (quality and time)

                              Cut size
     K   PUNCH    KAFFPA    KASPAR       KAPPA    SCOTCH    METIS
     2      129       130       133          —        469       —
     4      309       412       355         543       952      846
     8      634       749       774         986      1667     1675
    16     1293      1454      1401        1760      2922     3519
    32     2289      2428      2595        3186      4336     7424
    64     3828      4240      4502        5290      6772    11313

                               Time
     K   PUNCH    KAFFPA    KASPAR       KAPPA    SCOTCH    METIS
     2      255      1013      1946          —        12       —
     4      215      1823      2168         441       25       29
     8      176      2067      2232         418        39      29
    16      151      2340      2553         498        52      31
    32      130      2445      2599         418        65      31
    64      145      2533      2534         308        77      30
Concluding remarks




      PUNCH is good for partitioning road networks.
      It doesn’t work as well on instances without natural cuts.
Seattle by METIS
Seattle by PUNCH
Portland by METIS
Portland by PUNCH
Vancouver by METIS
Vancouver by PUNCH
Thank you for your attention!

Contenu connexe

Tendances

ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
Tadayoshi Sato
 
The Semantic Knowledge Graph
The Semantic Knowledge GraphThe Semantic Knowledge Graph
The Semantic Knowledge Graph
Trey Grainger
 

Tendances (20)

Changelog Stream Processing with Apache Flink
Changelog Stream Processing with Apache FlinkChangelog Stream Processing with Apache Flink
Changelog Stream Processing with Apache Flink
 
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?
 
Postgres Vision 2018: WAL: Everything You Want to Know
Postgres Vision 2018: WAL: Everything You Want to KnowPostgres Vision 2018: WAL: Everything You Want to Know
Postgres Vision 2018: WAL: Everything You Want to Know
 
Neo4J : Introduction to Graph Database
Neo4J : Introduction to Graph DatabaseNeo4J : Introduction to Graph Database
Neo4J : Introduction to Graph Database
 
ARC-009_RDB 技術者のための NoSQL ガイド
ARC-009_RDB 技術者のための NoSQL ガイドARC-009_RDB 技術者のための NoSQL ガイド
ARC-009_RDB 技術者のための NoSQL ガイド
 
Neo4j - graph database for recommendations
Neo4j - graph database for recommendationsNeo4j - graph database for recommendations
Neo4j - graph database for recommendations
 
スキトラ Spring + mybatis
スキトラ Spring + mybatisスキトラ Spring + mybatis
スキトラ Spring + mybatis
 
Road to NODES - Blazing Fast Ingest with Apache Arrow
Road to NODES - Blazing Fast Ingest with Apache ArrowRoad to NODES - Blazing Fast Ingest with Apache Arrow
Road to NODES - Blazing Fast Ingest with Apache Arrow
 
Django
DjangoDjango
Django
 
asm.jsとWebAssemblyって実際なんなの?
asm.jsとWebAssemblyって実際なんなの?asm.jsとWebAssemblyって実際なんなの?
asm.jsとWebAssemblyって実際なんなの?
 
Apache Calcite Tutorial - BOSS 21
Apache Calcite Tutorial - BOSS 21Apache Calcite Tutorial - BOSS 21
Apache Calcite Tutorial - BOSS 21
 
グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化
グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化
グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化
 
Optimizing Your Supply Chain with the Neo4j Graph
Optimizing Your Supply Chain with the Neo4j GraphOptimizing Your Supply Chain with the Neo4j Graph
Optimizing Your Supply Chain with the Neo4j Graph
 
How to Import JSON Using Cypher and APOC
How to Import JSON Using Cypher and APOCHow to Import JSON Using Cypher and APOC
How to Import JSON Using Cypher and APOC
 
Best Practices with ODI : Flexibility
Best Practices with ODI : FlexibilityBest Practices with ODI : Flexibility
Best Practices with ODI : Flexibility
 
Implementing DDD Concepts in PHP
Implementing DDD Concepts in PHPImplementing DDD Concepts in PHP
Implementing DDD Concepts in PHP
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
 
マイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPCマイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPC
 
The Semantic Knowledge Graph
The Semantic Knowledge GraphThe Semantic Knowledge Graph
The Semantic Knowledge Graph
 
Neptune, the Graph Database | AWS Floor28
Neptune, the Graph Database | AWS Floor28Neptune, the Graph Database | AWS Floor28
Neptune, the Graph Database | AWS Floor28
 

Similaire à Graph Partition with Natural Cuts

Scalable membership management
Scalable membership management Scalable membership management
Scalable membership management
Vinay Setty
 
Randomness conductors
Randomness conductorsRandomness conductors
Randomness conductors
wtyru1989
 
My pp tno sound
My pp tno soundMy pp tno sound
My pp tno sound
dicosmo178
 
Perimeter Institute Talk 2009
Perimeter Institute Talk 2009Perimeter Institute Talk 2009
Perimeter Institute Talk 2009
Dave Bacon
 
Lecture 02 internet video search
Lecture 02 internet video searchLecture 02 internet video search
Lecture 02 internet video search
zukun
 
Connected Dominating Set and Short Cycles
Connected Dominating Set and Short CyclesConnected Dominating Set and Short Cycles
Connected Dominating Set and Short Cycles
Neeldhara Misra
 
Vlsiphysicaldesignautomationonpartitioning 120219012744-phpapp01
Vlsiphysicaldesignautomationonpartitioning 120219012744-phpapp01Vlsiphysicaldesignautomationonpartitioning 120219012744-phpapp01
Vlsiphysicaldesignautomationonpartitioning 120219012744-phpapp01
Hemant Jha
 

Similaire à Graph Partition with Natural Cuts (20)

Clustering of graphs and search of assemblages
Clustering of graphs and search of assemblagesClustering of graphs and search of assemblages
Clustering of graphs and search of assemblages
 
Scalable membership management
Scalable membership management Scalable membership management
Scalable membership management
 
Randomness conductors
Randomness conductorsRandomness conductors
Randomness conductors
 
Finding Dense Subgraphs
Finding Dense SubgraphsFinding Dense Subgraphs
Finding Dense Subgraphs
 
Advances in Directed Spanners
Advances in Directed SpannersAdvances in Directed Spanners
Advances in Directed Spanners
 
Lecture16
Lecture16Lecture16
Lecture16
 
Vlsi physical design automation on partitioning
Vlsi physical design automation on partitioningVlsi physical design automation on partitioning
Vlsi physical design automation on partitioning
 
My pp tno sound
My pp tno soundMy pp tno sound
My pp tno sound
 
Mesh Generation and Topological Data Analysis
Mesh Generation and Topological Data AnalysisMesh Generation and Topological Data Analysis
Mesh Generation and Topological Data Analysis
 
Average Sensitivity of Graph Algorithms
Average Sensitivity of Graph AlgorithmsAverage Sensitivity of Graph Algorithms
Average Sensitivity of Graph Algorithms
 
ACM 2013-02-25
ACM 2013-02-25ACM 2013-02-25
ACM 2013-02-25
 
NMR Hardware3.pptx
NMR Hardware3.pptxNMR Hardware3.pptx
NMR Hardware3.pptx
 
An automated and user-friendly optical tweezers for biomolecular investigat...
An automated and user-friendly optical  tweezers for biomolecular  investigat...An automated and user-friendly optical  tweezers for biomolecular  investigat...
An automated and user-friendly optical tweezers for biomolecular investigat...
 
Separation of Macromolecules by Their Size: The Mean Span Dimension
Separation of Macromolecules by Their Size: The Mean Span DimensionSeparation of Macromolecules by Their Size: The Mean Span Dimension
Separation of Macromolecules by Their Size: The Mean Span Dimension
 
Perimeter Institute Talk 2009
Perimeter Institute Talk 2009Perimeter Institute Talk 2009
Perimeter Institute Talk 2009
 
Lecture 02 internet video search
Lecture 02 internet video searchLecture 02 internet video search
Lecture 02 internet video search
 
Connected Dominating Set and Short Cycles
Connected Dominating Set and Short CyclesConnected Dominating Set and Short Cycles
Connected Dominating Set and Short Cycles
 
Oxford 05-oct-2012
Oxford 05-oct-2012Oxford 05-oct-2012
Oxford 05-oct-2012
 
Introduction to Hadron Structure from Lattice QCD
Introduction to Hadron Structure from Lattice QCDIntroduction to Hadron Structure from Lattice QCD
Introduction to Hadron Structure from Lattice QCD
 
Vlsiphysicaldesignautomationonpartitioning 120219012744-phpapp01
Vlsiphysicaldesignautomationonpartitioning 120219012744-phpapp01Vlsiphysicaldesignautomationonpartitioning 120219012744-phpapp01
Vlsiphysicaldesignautomationonpartitioning 120219012744-phpapp01
 

Dernier

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Dernier (20)

The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

Graph Partition with Natural Cuts

  • 1. PUNCH Partitioning Using Natural-Cut Heuristics Daniel Delling (Microsoft Research) Andrew V. Goldberg (Microsoft Research) Ilya Razenshteyn (Moscow University) Renato F. Werneck (Microsoft Research) May 19, 2010
  • 2. Motivation Goal: process a continental-sized road network in parallel (Europe: 18M nodes and 43M arcs). The first natural step: divide it into “small” parts with few arcs between them. Partition problems are NP-hard, but routinely solved using different heuristics.
  • 4. Applications: routing on road networks Idea: Precompute distances between boundary nodes of each cell. Overlay Graph: Nodes — boundary nodes Edges between boundary nodes, Search Graph: t Source and target cell, s Overlay graph, Use bidirectional Dijkstra Number of cut edges affects the performance heavily. More applications: arc-flags and reach.
  • 5. Existing solvers METIS [KK’99], SCOTCH [PR’96], KAPPA [HSS’10], KASPAR [OS’10], KAFFPA [SS’10]. General purpose, some are fast, some produce very good solution. There are many more . . . Our goal: partitioner tailored to road networks, emphasize quality, still fast enough in practice.
  • 6. Formal definition Input: undirected graph G = (V , E ). Result: partition (V = V1 ∪ V2 ∪ . . . ∪ Vk , with Vi ∩ Vj = ∅). Goal: minimize number of edges between Vi . Two common variants: given U, require |Vi | ≤ U for every i, given k and , require |Vi | ≤ (1 + ) n/k . We focus on the first one. Rebalancing is possible.
  • 7. Intuition Road networks: dense regions (grids, cities) interleaved with natural cuts (mountains, parks, rivers, deserts, sparse areas, freeways).
  • 8. Summary of the algorithm Filtering: Contracts dense regions, Reduces graph size, Preserves natural cuts structure. Assembly phase: Works with much smaller graph, Finds actual partition.
  • 9. Outline of the talk Introduction Natural cuts Assembly phase Experiments Conclusion
  • 10. Outline of the talk Introduction Natural cuts Assembly phase Experiments Conclusion
  • 11. Natural cuts Sparse sets that separate dense areas. Minimum s–t cuts are trivial (average degree < 3). Sparsest cuts would be OK, but they are intractable. Our notion of natural cut is both tractable and useful.
  • 12. Natural cuts Pick centers in a randomized manner. v Compute minimum cut between the core and the ring. Repeat until every node is inside of at least two cores.
  • 13. Natural cuts Pick centers in a randomized manner. v Compute minimum cut between the core and the U/10 nodes ring. Repeat until every node is inside of at least two cores.
  • 14. Natural cuts Pick centers in a randomized manner. v Compute minimum cut between the core and the U/10 nodes ring. Repeat until every node is inside of at least two cores. U nodes
  • 15. Natural cuts Pick centers in a randomized manner. v Compute minimum cut between the core and the U/10 nodes ring. Repeat until every node is inside of at least two cores. U nodes
  • 16. Natural cuts Take a union of all natural cuts found and contract everything between them. The resulting graph is much smaller than the original one. U = 106 — 18M nodes to 10K nodes U = 103 — 18M nodes to 1.3M nodes
  • 17. Natural cuts Take a union of all natural cuts found and contract everything between them. The resulting graph is much smaller than the original one. U = 106 — 18M nodes to 10K nodes U = 103 — 18M nodes to 1.3M nodes
  • 18. Natural cuts Take a union of all natural cuts found and contract everything between them. The resulting graph is much smaller than the original one. U = 106 — 18M nodes to 10K nodes U = 103 — 18M nodes to 1.3M nodes
  • 19. Tiny cuts The most obvious natural cuts — 1-cuts and 2-cuts. We handle them explicitly before processing natural cuts. Greatly decreases graph size (by half) and overall running time,
  • 20. Outline of the talk Introduction Natural cuts Assembly phase Experiments Conclusion
  • 21. Assembly phase Three ingredients: Greedy algorithm, Local search, Multistart and combination heuristics (optional).
  • 22. Greedy algorithm We combine well-connected small fragments in a randomized fashion. Repeat until maximal. Finds initial partition.
  • 23. Greedy algorithm We combine well-connected small fragments in a randomized fashion. Repeat until maximal. Finds initial partition.
  • 24. Greedy algorithm We combine well-connected small fragments in a randomized fashion. Repeat until maximal. Finds initial partition.
  • 25. Greedy algorithm We combine well-connected small fragments in a randomized fashion. Repeat until maximal. Finds initial partition.
  • 26. Greedy algorithm We combine well-connected small fragments in a randomized fashion. Repeat until maximal. Finds initial partition.
  • 27. Greedy algorithm We combine well-connected small fragments in a randomized fashion. Repeat until maximal. Finds initial partition.
  • 28. The local search Pick two neighboring cells, disassemble them, apply greedy algorithm to the subproblem. Repeat several times for every pair of neighboring cells.
  • 29. The local search Pick two neighboring cells, disassemble them, apply greedy algorithm to the subproblem. Repeat several times for every pair of neighboring cells.
  • 30. The local search Pick two neighboring cells, disassemble them, apply greedy algorithm to the subproblem. Repeat several times for every pair of neighboring cells.
  • 31. Multistart and combination heuristics Since the local search is typically much faster than the natural cuts detection, we can use the following two heuristics: Multistart: since the local search is randomized, we can repeat it several times. Combination: keep track of several solutions, and combine them from time to time.
  • 32. Outline of the talk Introduction Natural cuts Assembly phase Experiments Conclusion
  • 33. Experimental evaluation C++/OpenMP Tested on Western Europe map (18M nodes, 43M arcs). Machine: Intel Xeon X5680 (two six-core 3.33GHz CPUs) with DDR3-1333MHz RAM.
  • 34. A typical use-case Europe, U = 64K . Tiny cuts contraction: 25 seconds (18M nodes to 9M nodes). Natural cuts identification: 50 seconds (12 cores, 9M nodes to 100K nodes). Greedy + local search: only 5 seconds (12 cores).
  • 35. Running times on Europe Tiny cuts 200 Natural cuts Greedy + Local search 180 q 160 140 120 q Time (s) 100 80 q 60 q 40 q q q q q q q q q 20 q q q q q q q q 0 210 212 214 216 218 220 222 maximum cell size
  • 36. Influence of ϕ The local search tries every edge ϕ times. 15000 Dependence on phi q 14000 13000 cut size 12000 q q q q q q q q 11000 q q 10000 0.1 1 10 100 1000 10000 time (s)
  • 37. Multistart and combination Combination helps! 15000 Dependence on phi Multistart q Combination 14000 13000 cut size 12000 q q q q q q q q q q q 11000 q q q q q 10000 0.1 1 10 100 1000 10000 time (s)
  • 38. Balanced partitions Recall that there are two variants of requirements on |Vi |: given U, require |Vi | ≤ U for every i, given k and , require |Vi | ≤ (1 + ) n/k . PUNCH solves the first, but most existing solvers find -balanced partitions. Rebalancing: Run PUNCH with U = (1 + ) n/k , If there are too many regions, redistribute them.
  • 39. Balanced partitions: Europe, = 0.03 (quality and time) Cut size K PUNCH KAFFPA KASPAR KAPPA SCOTCH METIS 2 129 130 133 — 469 — 4 309 412 355 543 952 846 8 634 749 774 986 1667 1675 16 1293 1454 1401 1760 2922 3519 32 2289 2428 2595 3186 4336 7424 64 3828 4240 4502 5290 6772 11313 Time K PUNCH KAFFPA KASPAR KAPPA SCOTCH METIS 2 255 1013 1946 — 12 — 4 215 1823 2168 441 25 29 8 176 2067 2232 418 39 29 16 151 2340 2553 498 52 31 32 130 2445 2599 418 65 31 64 145 2533 2534 308 77 30
  • 40. Concluding remarks PUNCH is good for partitioning road networks. It doesn’t work as well on instances without natural cuts.
  • 47. Thank you for your attention!