En matemáticas, una partición de gráfico es la reducción de un gráfico a un gráfico más pequeño dividiendo su conjunto de nodos en grupos mutuamente excluyentes. Los bordes del gráfico original que se cruzan entre los grupos producirán bordes en el gráfico dividido. Si el número de aristas resultantes es pequeño en comparación con el gráfico original, entonces el gráfico dividido 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 gráficos es un problema difícil, pero tiene aplicaciones en informática científica, diseño de circuitos VLSI y programación de tareas en computadoras multiprocesador, entre otros. [1] Recientemente, el problema de la partición de gráficos 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 un estudio sobre las tendencias recientes en métodos y aplicaciones computacionales, consulte Buluc et al. (2013). [2] Dos ejemplos comunes de partición de gráficos son los problemas de corte mínimo y corte máximo .
Normalmente, los problemas de partición de gráficos se incluyen en la categoría de problemas NP-difíciles . Las soluciones a estos problemas generalmente se obtienen mediante heurísticas y algoritmos de aproximación. [3] Sin embargo, se puede demostrar que la partición de gráficos uniforme o un problema de partición de gráficos equilibrado es NP-completo para aproximarse dentro de cualquier factor finito. [1] Incluso para clases de gráficos 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 gráficos resultantes de simulaciones del 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 totalmente polinomiales razonables para estos gráficos. [4]
Considere un gráfico G = ( V , E ), donde V denota el conjunto de n vértices y E el conjunto de aristas. Para un problema de partición equilibrada ( k , v ), el objetivo es dividir G en k componentes de como máximo tamaño v · ( n / k ), minimizando al mismo tiempo la capacidad de los bordes entre componentes separados. [1] Además, dado G y un número entero k > 1, divida V en k partes (subconjuntos) V 1 , V 2 , ..., V k de modo que las partes sean disjuntas y tengan el mismo tamaño, y el número de aristas con puntos finales en diferentes partes se minimiza. Estos problemas de partición se han discutido en la literatura como enfoques de aproximación bicriterio o de aumento de recursos. Una extensión común son los hipergrafos , donde una arista puede conectar más de dos vértices. Un hiperborde no se corta si todos los vértices están en una partición y, en caso contrario, se corta exactamente una vez, 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 de partición equilibrada ( k , 1 + ε ) específico , buscamos encontrar una partición de costo mínimo de G en k componentes, donde cada componente contenga 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. De este modo,
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 en el que n = 3 k , que también está acotado en tiempo polinomial. [1] Ahora, si asumimos que tenemos un algoritmo de aproximación finita para la partición balanceada ( k , 1), entonces, la instancia de 3 particiones se puede resolver usando la partición balanceada ( k , 1) en G o no estar solucionado. Si se puede resolver la instancia de 3 particiones, entonces el problema de partición equilibrada ( k , 1) en G se puede resolver sin cortar ningún borde. De lo contrario, si la instancia de 3 particiones no se puede resolver, la partición equilibrada óptima ( k , 1) en G cortará al menos un borde. Un algoritmo de aproximación con un factor de aproximación finito debe 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 balanceada ( k , 1) no tiene un algoritmo de aproximación en tiempo polinomial con un factor de aproximación finito a menos que P = NP . [1]
El teorema del separador plano establece que cualquier gráfico plano de n -vértices se puede dividir en partes aproximadamente iguales mediante la eliminación de O ( √ n ) vértices. Esta 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 gráfico plano de grado acotado tiene un corte equilibrado con O( √ n ) aristas.
Dado que la partición de gráficos es un problema difícil, las soluciones prácticas se basan en heurísticas. Hay dos categorías amplias de métodos, locales y globales. Los métodos locales más conocidos son el algoritmo de Kernighan-Lin y los algoritmos de Fiduccia-Mattheyses , que fueron los primeros cortes bidireccionales 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 las propiedades de todo el gráfico y no se basan en 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 gráfico utilizando la descomposición propia de la matriz laplaciana del gráfico .
Un algoritmo de partición de gráficos de varios niveles funciona aplicando una o más etapas. Cada etapa reduce el tamaño del gráfico colapsando vértices y aristas, divide el gráfico más pequeño, luego mapea 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 general multinivel. En muchos casos, este enfoque puede ofrecer tiempos de ejecución rápidos y resultados de muy alta calidad. Un ejemplo ampliamente utilizado de este enfoque es METIS , [7] un particionador de gráficos, y hMETIS, el particionador correspondiente para hipergráficos. [8] Un enfoque alternativo originado en [9] e implementado, por ejemplo, en scikit-learn, es la agrupación 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 precondicionamiento de redes múltiples .
Dado un gráfico con matriz de adyacencia , donde una entrada implica un borde entre el nodo y , y una matriz de grados , que es una matriz diagonal, donde cada entrada diagonal de una fila , representa el grado del nodo . La matriz laplaciana se define como . Ahora, una partición de corte de proporción para un gráfico se define como una partición de en disjuntos y , minimizando la proporció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 del gráfico espectral puede motivarse [10] por analogía con la partición de una cuerda vibrante o un sistema 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 proporción con . El vector propio( ) correspondiente a , llamado vector de Fiedler , biseca el gráfico en sólo 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 bisección repetida o utilizando múltiples vectores propios correspondientes a los valores propios más pequeños. [12] Los ejemplos de las Figuras 1 y 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 que se van 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, puede ser incorrecto minimizar el tamaño del corte, ya que una buena división no es sólo aquella con un pequeño número de bordes entre comunidades. Esto motivó el uso de Modularidad (Q) [13] como métrica para optimizar una partición gráfica balanceada. El ejemplo de la Figura 3 ilustra 2 instancias del mismo gráfico de modo que en (a) la modularidad (Q) es la métrica de partición y en (b) , el corte de relación es la métrica de partición.
Otra función objetivo utilizada para la partición de gráficos es la conductancia , que es la relación entre el número de bordes cortados y el volumen de la parte más pequeña. La conductancia está relacionada con los flujos eléctricos y los paseos aleatorios. El límite de Cheeger garantiza que la bisección espectral proporciona a las particiones 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 resultar útil para identificar el conjunto mínimo de nodos o enlaces que deben inmunizarse para detener las epidemias. [14]
Se han utilizado modelos de espín para agrupar datos multivariados en los que las similitudes se traducen en fuerzas de acoplamiento. [15] Las propiedades de la configuración de espín del estado fundamental pueden interpretarse directamente como comunidades. Por tanto, un gráfico se divide para minimizar el hamiltoniano del gráfico dividido. El hamiltoniano (H) se obtiene asignando las siguientes recompensas y penalizaciones de partición.
Además, la agrupación espectral basada en Kernel-PCA toma una forma de marco de máquina de vectores de soporte de mínimos cuadrados y, por lo tanto, es posible proyectar las entradas de datos en un espacio de características inducido por el kernel que tiene una variación máxima, lo que implica una alta separación entre las comunidades proyectadas. . [dieciséis]
Algunos métodos expresan la partición de gráficos como un problema de optimización de criterios múltiples que se puede resolver 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 a muy gran escala, es posible que los métodos de partición clásicos no se apliquen (por ejemplo, partición espectral, Metis [7] ), ya que requieren acceso completo a los datos del gráfico para poder realizar operaciones globales. Para escenarios de gran escala, la partición de gráficos distribuidos se utiliza para realizar la partición únicamente a través de operaciones locales asincrónicas.
scikit-learn implementa la agrupación 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 precondicionamiento multigrid . [9]
METIS [7] es una familia de partición de gráficos de Karypis y Kumar. Entre esta familia, kMetis apunta a una mayor velocidad de partición, hMetis, [8] se aplica a hipergráficos y apunta a la calidad de la partición, y ParMetis [7] es una implementación paralela del algoritmo de partición de gráficos de Metis.
KaHyPar [18] [19] [20] es un marco de partición de hipergráficos multinivel que proporciona algoritmos de partición basados en bisección recursiva y directa k-way. 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 nivel n muy detallado combinado con una sólida heurística de búsqueda local, calcula soluciones de muy alta calidad.
Scotch [21] es un marco de partición de gráficos de Pellegrini. Utiliza bisección recursiva multinivel e incluye técnicas de partición secuencial y paralela.
Jostle [22] es un solucionador de partición de gráficos 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/formas y el algoritmo Conjuntos útiles.
Los paquetes de software DibaP [24] y su variante MPI paralela PDibaP [25] de Meyerhenke implementan el marco Bubble mediante 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 partición 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. centrarse en la partición de hipergrafos.
{{cite book}}
: CS1 maint: location missing publisher (link){{cite journal}}
: CS1 maint: multiple names: authors list (link)