Partição de grafos: diferenças entre revisões

Origem: Wikipédia, a enciclopédia livre.
Conteúdo apagado Conteúdo adicionado
nova página: Em matemática, o problema de '''partição de grafos''' é definido com seus dados na forma de um grafo ''G'' = (''V'',''A''), com ''V'' vertices e ''A'' ar...
(Sem diferenças)

Revisão das 15h14min de 9 de agosto de 2014

Em matemática, o problema de partição de grafos é definido com seus dados na forma de um grafo G = (V,A), com V vertices e A arestas, de tal modo que é possível particionar G em componentes menores com propriedades específicas. Por exemplo, uma partição de k-modos divide o conjunto de vértices em k componentes menores. Uma boa partição é definida como uma em que o número de arestas entre componentes menores é pequeno. Partição Uniforme de um Grafo é um tipo de problema de particionamento de grafo que consiste em dividir um grafo em componentes, no qual os componentes são quase do mesmo tamanho e existem algumas conexões entre esses componentes. Importantes aplicações de particionamento de grafos incluem computação específica, particionando vários estágios de um circuito feito em VSLI e agendamento de tarefas em sistemas com multi-processadores.[1] Recentemente, o problema de partição de grafo ganhou importância devido à suas aplicações parathe graph partition problem has gained importance due to its application for clustering e detecção de associações em redes sociais, patológicas e biológicas. Uma pesquisa sobre as recentes tendências em métodos e aplicações computacionais podem ser encontrados em.[2]

Problema da Complexidade

Geralmente, problemas de partição de grafos estão dentro da categoria dos problemas NP-Difíceis. Soluções para esses problemas são geralmente derivadas usando algoritmos de heurísticas de aproximação.[3] Entretando, o particionamento uniforme de um grafo ou particionamento equilibrado pode ser mostrado com uma aproximação NP-Completa com qualquer fator finito.[1] Até para classes especiais de grafos como árvores e redes, não existem algoritmos de aproximação razoáveis[4] à menos que P=NP. Redes são uma particularidade interessante visto que modelam um grafo resultante de simulações do Método dos elementos finitos (MEF). Quando não apenas o número de areas entre componentes é próximo, mas também o tamanho dos componentes, é mostrado que não existe nenhum algoritmo polinomial razoável para estes tipos de grafos.[4]

Problema

Considere um grafo G = (V, A), onde V é o conjunto de n vértices e A o conjunto de arestas. Para um problema (k,v) de partição balanceada, o objetivo é particionar G em k componentes de tamanho máximo v·(n/k), enquanto minimiza a capacidade das arestas entre elementos separados.[1] Também, dado o G e um inteiro k > 1, divida V em k partes (subconjuntos) V1, V2, ..., Vk sendo que essas partes devem ser disjuntas e ter o mesmo tamanho, e o número de areastas com pontos finais em diferentes partes é minimizado. Tais problemas de partições foram discutidos na literatura como aproximação-bicriteria ou abordagem de aproximação de recursos. Uma extensão comum são os hypergrafos, onde uma areas pode conectar mais de dois vértices. Uma hyperaresta não é cortada se todos os vértices estão na mesma partição, e cortadas exatamente uma vez caso contrário, não importando quantos vértices estão em cada lado. Esse tipo de uso é comum em automação de design eletrônico.

Análise

Para um problema específico balanceado (k, 1 + ε) , nós procuramos encontrar o custo mínimo da partição de G emk elementos com cada componente contendo o máximo de (1 + ε)·(n/k) nós. Nós comparamos os custos desse algoritmo de aproximação ao custo de (k,1) cortes, em que cada um dos k componentes devem ter exatamente o mesmo tamanho de (n/k) nós cada, sendo, assim, um problema mais restrito. Todavia,

nós já sabemos que o corte (2,1) é o corte minimo do problema da bisecção e este é NP-Completo.[5] Em seguida, avaliamos um problema 3-partições no qual n = 3k, que também é limitado em tempo polinomial.[1] Agora, se assumirmos que temos um algoritmo de aproximação finita para (k, 1)-partições equilibradas, entõa, cada uma das instancias da 3-partição pode ser resolvida usando a partição balanceada (k,1) em G ou não pode ser resolvida. Se a instância de 3-partição pode ser resolvida então o problema do (k, 1)-particionamento balanceado em G pode ser resolvido sem cortar nenhuma aresta. Entretanto, se a instância 3-partição não pode ser resolvida, o (k, 1)-paticionamento balanceado ideal em G vai cortar pelo menos uma aresta. Um algoritmo de aproximação com fator de aproximação finito tem de diferenciar entre estes dois casos. Assim, pode-se resolver o problema da 3-partição no qual há uma contradição quando assume-se que P = NP. Entretanto, é evidente que um problema de (k,1)-particionamento balanceados não tem algoritmo de aproximação em tempo polinomial com fator de aproximação finito à menos que P = NP.[1]

O teorema separador de planos diz que qualquer n-vértice do grafo planar pode ser particionado em can be partitioned into partes aproximadamente iguais com a remoção de O(√n) vértices. Esta não é uma partição no sentido descrito anteriormente, porque a partição é nos vértices e não nas arestas. Porém, o mesmo resultado implica que cada grafo planar de of grau limitado tem um equilibrio de corte com O(√n) arestas.

Métodos de partição de Grafos

Visto que o problema de particionamento de grafos é um problema difícil, soluções práticas são baseadas em heurísticas. There are two broad categories of methods, local e global. Métodos locais bem conhecidos são os Kernighan–algoritmos de Lin, e algoritmos de Fiduccia-Mattheyses, que são os primeiros algoritmos 2-vias de corte que são eficientes usando estratégias de busca locais. A sua principal desvantagem é o particionamento inicial arbitrário do conjunto vértice, que pode afetar a qualidade final da solução. A aproximação global dependem de propriedades do grafo inteiro e não só de uma partição arbitrária inicial. O exemplo mais conhecido é o espéctro de partição, onde uma partição é derivada de um espectro de matrizes de adjacência.

Métodos de multi-nível

Um algoritmo de particionalmento de grafos multi-nível funciona aplicando um ou mais estágios. Cada estágio reduz o tamanho de um grafo por by collapsing vertices and edges, partitions the smaller graph, then maps back and refines this partition of the original graph.[6] A wide variety of partitioning and refinement methods can be applied within the overall multi-level scheme. In many cases, this approach can give both fast execution times and very high quality results. One widely used example of such an approach is METIS,[7] a graph partitioner, and hMETIS, the corresponding partitioner for hypergraphs.[8]

Spectral partitioning and spectral bisection

Given a graph with adjacency matrix A, where an entry Aij implies an edge between node i and j, and degree matrix D, which is a diagonal matrix, where each diagonal entry of a row i, dii, represents the node degree of node i. The Laplacian of the matrix L is defined as L = D − A. Now, a ratio-cut partition for graph G = (VE) is defined as a partition of V into disjoint U, and W, such that cost of cut(U,W)/(|U|·|W|) is minimized.

In such a scenario, the second smallest eigenvalue (λ) of L, yields a lower bound on the optimal cost (c) of ratio-cut partition with c ≥ λ/n. The eigenvector (V) corresponding to λ, called the Fiedler vector, bisects the graph into only two communities based on the sign of the corresponding vector entry. Division into a larger number of communities is usually achieved by repeated bisection, but this does not always give satisfactory results. The examples in Figures 1,2 illustrate the spectral bisection approach.

Figure 1: The graph G = (5,4) is analysed for spectral bisection. The linear combination of the smallest two eigenvectors leads to [1 1 1 1 1]' having an eigen value = 0.
Figure 2: The graph G = (5,5) illustrates that the Fiedler vector in red bisects the graph into two communities, one with vertices {1,2,3} with positive entries in the vector space, and the other community has vertices {4,5} with negative vector space entries.

Minimum cut partitioning however fails when the number of communities to be partitioned, or the partition sizes are unknown. For instance, optimizing the cut size for free group sizes puts all vertices in the same community. Additionally, cut size may be the wrong thing to minimize since a good division is not just one with small number of edges between communities. This motivated the use of Modularity (Q) [9] as a metric to optimize a balanced graph partition. The example in Figure 3 illustrates 2 instances of the same graph such that in (a) modularity (Q) is the partitioning metric and in (b), ratio-cut is the partitioning metric. However, it is well-known that Q suffers a resolution limit, producing unreliable results when dealing with small communities. In this context, Surprise[10] has been proposed as an alternative approach for evaluating the quality of a partition.

Figure 3: Weighted graph G may be partitioned to maximize Q in (a) or to minimize the ratio-cut in (b). We see that (a) is a better balanced partition, thus motivating the importance of modularity in graph partitioning problems.

Other graph partition methods

Spin models have been used for clustering of multivariate data wherein similarities are translated into coupling strengths.[11] The properties of ground state spin configuration can be directly interpreted as communities. Thus, a graph is partitioned to minimize the Hamiltonian of the partitioned graph. The Hamiltonian (H) is derived by assigning the following partition rewards and penalties.

  • Reward internal edges between nodes of same group (same spin)
  • Penalize missing edges in same group
  • Penalize existing edges between different groups
  • Reward non-links between different groups.

Additionally, Kernel PCA based Spectral clustering takes a form of least squares Support Vector Machine framework, and hence it becomes possible to project the data entries to a kernel induced feature space that has maximal variance, thus implying a high separation between the projected communities [12]

Some methods express graph partitioning as a multi-criteria optimization problem which can be solved using local methods expressed in a game theoretic framework where each node makes a decision on the partition it chooses.[13]

Software tools

One of the first[carece de fontes?] publicly available software packages called Chaco[14] is due to Hendrickson and Leland. As most of the publicly available software packages,[carece de fontes?] Chaco implements the multilevel approach outlined above and basic local search algorithms. Moreover, they implement spectral partitioning techniques.

METIS[7] is a graph partitioning family by Karypis and Kumar. kMetis is focusedPredefinição:Weasel-inline on partitioning speed and hMetis,[8] which is a hypergraph partitioner, aims at partition quality.Predefinição:Weasel-inline ParMetis[7] is a parallel implementation of the Metis graph partitioning algorithm.

PaToH[15] is also a widely[carece de fontes?] used hypergraph partitioner that produces high quality[carece de fontes?] partitions.

Scotch[16] is graph partitioning framework by Pellegrini. It uses recursive multilevel bisection and includes sequential as well as parallel partitioning techniques.

Jostle[17] is a sequential and parallel graph partitioning solver developed by Chris Walshaw. The commercialized version of this partitioner is known as NetWorks.

If a model of the communication network is available, then Jostle and Scotch are able to take this model into account for the partitioning process.[carece de fontes?]

Party[18] implements the Bubble/shape-optimized framework and the Helpful Sets algorithm.

The software packages DibaP[19] and its MPI-parallel variant PDibaP[20] by Meyerhenke implement the Bubble framework using diffusion; DibaP also uses AMG-based techniques for coarsening and solving linear systems arising in the diffusive approach.

Sanders and Schulz released a graph partitioning package KaHIP[21] (Karlsruhe High Quality Partitioning) focusing on solution quality.Predefinição:Peacock-term It implements for example flow-based methods, more-localized local searches and several parallel and sequential meta-heuristics.

To address the load balancing problem in parallel applications, distributed versions of the sequential partitioners Metis, Jostle and Scotch have been developed. [carece de fontes?]

The tools Parkway[22] by Trifunovic and Knottenbelt as well as Zoltan[23] by Devine et al. focus on hypergraph partitioning.

List of free open-source frameworks:

Name License Brief info
Chaco GPL software package implementing spectral techniques and the multilevel approach
DiBaP * graph partitioning based on multilevel techniques, algebraic multigrid as well as graph based diffusion
Jostle * multilevel partitioning techniques and diffusive load-balancing, sequential and parallel
KaHIP GPL several parallel and sequential meta-heuristics, guarantees the balance constraint
kMetis Apache 2.0 graph partitioning package based on multilevel techniques and k-way local search
Mondriaan LGPL matrix partitioner to partition rectangular sparse matrices
PaToH BSD multilevel hypergraph partitioning
Parkway * parallel multilevel hypergraph partitioning
Scotch CeCILL-C implements multilevel recursive bisection as well as diffusion techniques, sequential and parallel
Zoltan BSD hypergraph partitioning

References

  1. a b c d e Andreev, Konstantin and Räcke, Harald, (2004). «Balanced Graph Partitioning». Barcelona, Spain. Proceedings of the sixteenth annual ACM symposium on Parallelism in algorithms and architectures: 120–124. ISBN 1-58113-840-7. doi:10.1145/1007912.1007931 
  2. Aydin Buluc and Henning Meyerhenke and Ilya Safro and Peter Sanders and Christian Schulz (2013). «Recent Advances in Graph Partitioning». http://arxiv.org/abs/1311.3144. 36 páginas 
  3. Feldmann, Andreas Emil and Foschini, Luca (2012). «Balanced Partitions of Trees and Applications». Paris, France. Proceedings of the 29th International Symposium on Theoretical Aspects of Computer Science: 100–111 
  4. a b Feldmann, Andreas Emil (2012). «Fast Balanced Partitioning is Hard, Even on Grids and Trees». Bratislava, Slovakia. Proceedings of the 37th International Symposium on Mathematical Foundations of Computer Science 
  5. Garey, Michael R. and Johnson, David S. (1979). Computers and intractability: A guide to the theory of NP-completeness. [S.l.]: W. H. Freeman & Co. ISBN 0-7167-1044-7 
  6. Hendrickson, B. and Leland, R. (1995). A multilevel algorithm for partitioning graphs. Proceedings of the 1995 ACM/IEEE conference on Supercomputing. ACM. 28 páginas 
  7. a b c Karypis, G. and Kumar, V. (1999). «A fast and high quality multilevel scheme for partitioning irregular graphs». SIAM Journal on Scientific Computing. 20 (1). 359 páginas. doi:10.1137/S1064827595287997 
  8. a b Karypis, G. and Aggarwal, R. and Kumar, V. and Shekhar, S. (1997). «Multilevel hypergraph partitioning: application in VLSI domain». Proceedings of the 34th annual Design Automation Conference. pp. 526–529 
  9. Newman, M. E. J. (2006). «Modularity and community structure in networks». PNAS. 103 (23): 8577–8696. PMC 1482622Acessível livremente. PMID 16723398. doi:10.1073/pnas.0601602103 
  10. Rodrigo Aldecoa and Ignacio Marín (2011). «Deciphering network community structure by Surprise». PLoS ONE. 6 (9): e24195. PMC 3164713Acessível livremente. PMID 21909420. doi:10.1371/journal.pone.0024195 
  11. Reichardt, Jörg and Bornholdt, Stefan (Jul 2006). «Statistical mechanics of community detection». Phys. Rev. E. 74 (1). 016110 páginas. doi:10.1103/PhysRevE.74.016110 
  12. Carlos Alzate and Johan A.K. Suykens (2010). «Multiway Spectral Clustering with Out-of-Sample Extensions through Weighted Kernel PCA». IEEE Computer Society. IEEE Transactions on Pattern Analysis and Machine Intelligence. 32 (2): 335–347. ISSN 0162-8828. PMID 20075462. doi:10.1109/TPAMI.2008.292 
  13. Kurve, Griffin, Kesidis (2011) "A graph partitioning game for distributed simulation of networks" Proceedings of the 2011 International Workshop on Modeling, Analysis, and Control of Complex Networks: 9 -16
  14. Bruce Hendrickson. «Chaco: Software for Partitioning Graphs» 
  15. Ü. Catalyürek and C. Aykanat (2011). PaToH: Partitioning Tool for Hypergraphs 
  16. C. Chevalier and F. Pellegrini (2008). «PT-Scotch: A Tool for Efficient Parallel Graph Ordering». Parallel Computing. 34 (6): 318–331. doi:10.1016/j.parco.2007.12.001 
  17. C. Walshaw and M. Cross (2000). «Mesh Partitioning: A Multilevel Balancing and Refinement Algorithm». Journal on Scientific Computing. 22 (1): 63–80. doi:10.1137/s1064827598337373 
  18. R. Diekmann, R. Preis, F. Schlimbach and C. Walshaw (2000). «Shape-optimized Mesh Partitioning and Load Balancing for Parallel Adaptive FEM». Parallel Computing. 26 (12): 1555–1581. doi:10.1016/s0167-8191(00)00043-0 
  19. H. Meyerhenke and B. Monien and T. Sauerwald (2008). «A New Diffusion-Based Multilevel Algorithm for Computing Graph Partitions». Journal of Parallel Computing and Distributed Computing. 69 (9): 750–761. doi:10.1016/j.jpdc.2009.04.005 
  20. H. Meyerhenke (2013). «Shape Optimizing Load Balancing for MPI-Parallel Adaptive Numerical Simulations.». 10th DIMACS Implementation Challenge on Graph Partitioning and Graph Clustering. pp. 67–82 
  21. P. Sanders and C. Schulz (2011). «Engineering Multilevel Graph Partitioning Algorithms». Proceeings of the 19th European Symposium on Algorithms (ESA). 6942. pp. 469–480 
  22. A. Trifunovic and W. J. Knottenbelt (2008). «Parallel Multilevel Algorithms for Hypergraph Partitioning». Journal of Parallel and Distributed Computing. 68 (5): 563–581. doi:10.1016/j.jpdc.2007.11.002 
  23. K. Devine and E. Boman and R. Heaphy and R. Bisseling and Ü. Catalyurek (2006). «Parallel Hypergraph Partitioning for Scientific Computing». Proceedings of the 20th International Conference on Parallel and Distributed Processing. pp. 124–124 

External links

Bibliography