En matemáticas, una partición de grafos es la reducción de un grafo a un grafo más pequeño al particionar su conjunto de nodos en grupos mutuamente excluyentes. Los bordes del grafo original que se cruzan entre los grupos producirán bordes en el grafo particionado. Si el número de bordes resultantes es pequeño en comparación con el grafo original, entonces el grafo particionado puede ser más adecuado para el análisis y la resolución de problemas que el original. Encontrar una partición que simplifique el análisis de grafos es un problema difícil, pero que tiene aplicaciones en la computación científica, el diseño de circuitos VLSI y la programación de tareas en computadoras multiprocesador, entre otros. [1] Recientemente, el problema de la partición de grafos ha ganado importancia debido a su aplicación para la agrupación y detección de camarillas en redes sociales, patológicas y biológicas. Para una encuesta sobre las tendencias recientes en métodos computacionales y aplicaciones, consulte Buluc et al. [2] Dos ejemplos comunes de partición de grafos son los problemas de corte mínimo y corte máximo .
Por lo general, los problemas de partición de grafos caen dentro de la categoría de problemas NP-hard . Las soluciones a estos problemas generalmente se derivan usando heurísticas y algoritmos de aproximación. [3] Sin embargo, se puede demostrar que la partición uniforme de grafos o un problema de partición de grafos balanceado es NP-completo para aproximarse dentro de cualquier factor finito. [1] Incluso para clases de grafos especiales como árboles y cuadrículas, no existen algoritmos de aproximación razonables, [4] a menos que P=NP . Las cuadrículas son un caso particularmente interesante ya que modelan los grafos resultantes de simulaciones de Modelo de Elementos Finitos (FEM) . Cuando no solo se aproxima el número de aristas entre los componentes, sino también los tamaños de los componentes, se puede demostrar que no existen algoritmos completamente polinomiales razonables para estos grafos. [4]
Considere un grafo G = ( V , E ), donde V denota el conjunto de n vértices y E el conjunto de aristas. Para un problema de partición balanceada ( k , v ), el objetivo es particionar G en k componentes de tamaño v · ( n / k ), como máximo , mientras se minimiza la capacidad de las aristas entre componentes separados. [1] Además, dado G y un entero k > 1, particione V en k partes (subconjuntos) V 1 , V 2 , ..., V k tales que las partes sean disjuntas y tengan el mismo tamaño, y se minimice el número de aristas con puntos finales en diferentes partes. Tales problemas de partición se han discutido en la literatura como aproximaciones de bicriterio o de aumento de recursos. Una extensión común es la de los hipergrafos , donde una arista puede conectar más de dos vértices. Una hiperarista no se corta si todos los vértices están en una partición, y se corta exactamente una vez en caso contrario, sin importar cuántos vértices haya en cada lado. Este uso es común en la automatización del diseño electrónico .
Para un problema específico de partición balanceada ( k , 1 + ε ), buscamos encontrar una partición de costo mínimo de G en k componentes con cada componente conteniendo un máximo de (1 + ε )·( n / k ) nodos. Comparamos el costo de este algoritmo de aproximación con el costo de un corte ( k ,1), donde cada uno de los k componentes debe tener el mismo tamaño de ( n / k ) nodos cada uno, siendo así un problema más restringido. Por lo tanto,
Ya sabemos que el corte (2,1) es el problema de bisección mínima y es NP-completo. [5] A continuación, evaluamos un problema de 3 particiones donde n = 3 k , que también está acotado en tiempo polinomial. [1] Ahora, si suponemos que tenemos un algoritmo de aproximación finito para la partición ( k , 1)-balanceada, entonces, o bien la instancia de 3 particiones se puede resolver usando la partición ( k ,1)-balanceada en G o no se puede resolver. Si la instancia de 3 particiones se puede resolver, entonces el problema de partición ( k , 1)-balanceada en G se puede resolver sin cortar ninguna arista. De lo contrario, si la instancia de 3 particiones no se puede resolver, la partición ( k , 1)-balanceada óptima en G cortará al menos una arista. Un algoritmo de aproximación con un factor de aproximación finito tiene que diferenciar entre estos dos casos. Por lo tanto, puede resolver el problema de 3 particiones, lo cual es una contradicción bajo el supuesto de que P = NP . Por lo tanto, es evidente que el problema de partición balanceado ( k ,1) no tiene un algoritmo de aproximación de tiempo polinomial con un factor de aproximación finito a menos que P = NP . [1]
El teorema del separador planar establece que cualquier grafo planar de n vértices se puede dividir en partes aproximadamente iguales mediante la eliminación de O( √ n ) vértices. Esto no es una partición en el sentido descrito anteriormente, porque el conjunto de particiones consta de vértices en lugar de aristas. Sin embargo, el mismo resultado también implica que todo grafo planar de grado acotado tiene un corte equilibrado con O( √ n ) aristas.
Dado que la partición de grafos es un problema difícil, las soluciones prácticas se basan en heurísticas. Hay dos amplias categorías de métodos, locales y globales. Los métodos locales bien conocidos son el algoritmo de Kernighan-Lin y los algoritmos de Fiduccia-Mattheyses , que fueron los primeros cortes de dos vías efectivos mediante estrategias de búsqueda local. Su principal inconveniente es la partición inicial arbitraria del conjunto de vértices, que puede afectar la calidad de la solución final. Los enfoques globales se basan en propiedades de todo el grafo y no dependen de una partición inicial arbitraria. El ejemplo más común es la partición espectral, donde una partición se deriva de vectores propios aproximados de la matriz de adyacencia, o la agrupación espectral que agrupa los vértices del grafo utilizando la descomposición propia de la matriz laplaciana del grafo .
Un algoritmo de partición de gráficos multinivel funciona aplicando una o más etapas. Cada etapa reduce el tamaño del gráfico colapsando vértices y aristas, particiona el gráfico más pequeño, luego vuelve a mapear y refina esta partición del gráfico original. [6] Se puede aplicar una amplia variedad de métodos de partición y refinamiento dentro del esquema multinivel general. En muchos casos, este enfoque puede brindar tiempos de ejecución rápidos y resultados de muy alta calidad. Un ejemplo ampliamente utilizado de dicho enfoque es METIS , [7] un particionador de gráficos, y hMETIS, el particionador correspondiente para hipergrafos. [8] Un enfoque alternativo originado en [9] e implementado, por ejemplo, en scikit-learn es el agrupamiento espectral con la partición determinada a partir de vectores propios de la matriz laplaciana del gráfico para el gráfico original calculado por el solucionador LOBPCG con preacondicionamiento multigrid .
Dado un gráfico con matriz de adyacencia , donde una entrada implica una arista entre el nodo y , y matriz de grado , que es una matriz diagonal, donde cada entrada diagonal de una fila , , representa el grado del nodo del nodo . La matriz laplaciana se define como . Ahora, una partición de corte de razón para un gráfico se define como una partición de en disjuntos , y , minimizando la razón
del número de aristas que realmente cruzan este corte al número de pares de vértices que podrían soportar dichas aristas. La partición de gráficos espectrales puede motivarse [10] por analogía con la partición de una cuerda vibrante o un sistema de masa-resorte y extenderse de manera similar al caso de pesos negativos del gráfico. [11]
En tal escenario, el segundo valor propio más pequeño ( ) de , produce un límite inferior en el costo óptimo ( ) de la partición de corte de razón con . El vector propio ( ) correspondiente a , llamado vector de Fiedler , biseca el gráfico en solo dos comunidades según el signo de la entrada del vector correspondiente . La división en un mayor número de comunidades se puede lograr mediante bisecciones repetidas o utilizando múltiples vectores propios correspondientes a los valores propios más pequeños. [12] Los ejemplos en las Figuras 1,2 ilustran el enfoque de bisección espectral.
Sin embargo, la partición de corte mínimo falla cuando se desconoce el número de comunidades a dividir o los tamaños de partición. Por ejemplo, optimizar el tamaño de corte para tamaños de grupos libres coloca todos los vértices en la misma comunidad. Además, el tamaño de corte puede ser lo incorrecto para minimizar, ya que una buena división no es solo una con un pequeño número de aristas entre comunidades. Esto motivó el uso de Modularidad (Q) [13] como una métrica para optimizar una partición de grafos balanceada. El ejemplo en la Figura 3 ilustra 2 instancias del mismo grafo de manera que en (a) la modularidad (Q) es la métrica de partición y en (b) , el corte de proporción es la métrica de partición.
Otra función objetivo utilizada para la partición de grafos es la conductancia , que es la relación entre el número de aristas cortadas y el volumen de la parte más pequeña. La conductancia está relacionada con los flujos eléctricos y los recorridos aleatorios. El límite de Cheeger garantiza que la bisección espectral proporcione particiones con una conductancia casi óptima. La calidad de esta aproximación depende del segundo valor propio más pequeño del laplaciano λ 2 .
La partición de gráficos puede ser útil para identificar el conjunto mínimo de nodos o enlaces que deben inmunizarse para detener epidemias. [14]
Los modelos de espín se han utilizado para la agrupación de datos multivariados en los que las similitudes se traducen en fortalezas de acoplamiento. [15] Las propiedades de la configuración de espín del estado fundamental se pueden interpretar directamente como comunidades. Por lo tanto, un gráfico se particiona para minimizar el hamiltoniano del gráfico particionado. El hamiltoniano (H) se deriva asignando las siguientes recompensas y penalizaciones de partición.
Además, la agrupación espectral basada en Kernel-PCA adopta una forma de marco de máquina de vectores de soporte de mínimos cuadrados y, por lo tanto, se hace posible proyectar las entradas de datos a un espacio de características inducido por kernel que tiene una varianza máxima, lo que implica una alta separación entre las comunidades proyectadas. [16]
Algunos métodos expresan la partición de gráficos como un problema de optimización de múltiples criterios que puede resolverse utilizando métodos locales expresados en un marco de teoría de juegos donde cada nodo toma una decisión sobre la partición que elige. [17]
Para gráficos distribuidos de escala muy grande, los métodos de partición clásicos podrían no ser aplicables (por ejemplo, partición espectral, Metis [7] ) ya que requieren acceso total a los datos del gráfico para realizar operaciones globales. Para estos escenarios de gran escala, la partición de gráficos distribuidos se utiliza para realizar la partición solo a través de operaciones locales asincrónicas.
scikit-learn implementa agrupamiento espectral con la partición determinada a partir de vectores propios de la matriz laplaciana del gráfico para el gráfico original calculado por ARPACK o por el solucionador LOBPCG con preacondicionamiento de múltiples cuadrículas . [9]
METIS [7] es una familia de particionamiento de grafos de Karypis y Kumar. Entre esta familia, kMetis apunta a una mayor velocidad de particionamiento, hMetis [8] se aplica a hipergrafos y apunta a la calidad de la partición, y ParMetis [7] es una implementación paralela del algoritmo de particionamiento de grafos Metis.
KaHyPar [18] [19] [20] es un marco de trabajo de partición de hipergrafos multinivel que proporciona algoritmos de partición basados en k-way directos y bisección recursiva. Instancia el enfoque multinivel en su versión más extrema, eliminando solo un vértice en cada nivel de la jerarquía. Al utilizar este enfoque de n niveles de grano muy fino combinado con heurísticas de búsqueda local sólidas, calcula soluciones de muy alta calidad.
Scotch [21] es un marco de trabajo de particionamiento de grafos de Pellegrini. Utiliza bisección recursiva de múltiples niveles e incluye técnicas de particionamiento secuencial y paralelo.
Jostle [22] es un solucionador de particionamiento de grafos secuenciales y paralelos desarrollado por Chris Walshaw. La versión comercializada de este particionador se conoce como NetWorks.
Party [23] implementa el marco optimizado para burbujas y formas y el algoritmo Helpful Sets.
Los paquetes de software DibaP [24] y su variante paralela MPI PDibaP [25] de Meyerhenke implementan el marco Bubble usando difusión; DibaP también utiliza técnicas basadas en AMG para engrosar y resolver sistemas lineales que surgen en el enfoque difusivo.
Sanders y Schulz lanzaron un paquete de particionamiento de gráficos KaHIP [26] (Karlsruhe High Quality Partitioning) que implementa, por ejemplo, métodos basados en flujo, búsquedas locales más localizadas y varias metaheurísticas paralelas y secuenciales.
Las herramientas Parkway [27] de Trifunovic y Knottenbelt, así como Zoltan [28] de Devine et al., se centran en la partición de hipergrafos.
{{cite book}}
: Mantenimiento de CS1: falta la ubicación del editor ( enlace ){{cite journal}}
: CS1 maint: varios nombres: lista de autores ( enlace )