
En informática y teoría de grafos , el algoritmo de Karger es un algoritmo aleatorio para calcular un corte mínimo de un grafo conexo . Fue inventado por David Karger y publicado por primera vez en 1993. [ 1 ]
La idea del algoritmo se basa en el concepto de contracción de una arista.en un grafo no dirigido. De manera informal, la contracción de una arista fusiona los nodosyen uno, reduciendo el número total de nodos del grafo en uno. Todos los demás bordes que conectanose "reconectan" al nodo fusionado, produciendo efectivamente un multigrafo . El algoritmo básico de Karger contrae iterativamente aristas elegidas al azar hasta que solo quedan dos nodos; esos nodos representan un corte en el grafo original. Al iterar este algoritmo básico un número suficiente de veces, se puede encontrar un corte mínimo con alta probabilidad .
El problema del corte mínimo global
Un corteen un grafo no dirigidoes una partición de los vérticesen dos conjuntos no vacíos y disjuntosEl conjunto de corte de un corte consta de los bordesentre las dos partes. El tamaño (o peso ) de un corte en un grafo no ponderado es la cardinalidad del conjunto de corte, es decir, el número de aristas entre las dos partes,
Hayformas de elegir para cada vértice si pertenece ao para, pero dos de estas opciones hacenovacíos y no dan lugar a recortes. Entre las opciones restantes, intercambiar los roles deyno cambia el corte, por lo que cada corte se cuenta dos veces; por lo tanto, haycortes distintos. El problema del corte mínimo consiste en encontrar el corte de menor tamaño entre estos cortes.
Para grafos ponderados con pesos de arista positivosEl peso del corte es la suma de los pesos de las aristas entre vértices en cada parte.
lo cual concuerda con la definición no ponderada de.
Un corte a veces se denomina “corte global” para distinguirlo de un “-cortar” para un par de vértices dado, lo cual tiene el requisito adicional de queyCada recorte global es un-cortado para algunosPor lo tanto, el problema del corte mínimo se puede resolver en tiempo polinomial iterando sobre todas las opciones dey resolviendo el mínimo resultante-problema de corte utilizando el teorema de flujo máximo-corte mínimo y un algoritmo de tiempo polinomial para flujo máximo , como el algoritmo push-relabel , aunque este enfoque no es óptimo. Mejores algoritmos deterministas para el problema de corte mínimo global incluyen el algoritmo Stoer-Wagner , que tiene un tiempo de ejecución de. [ 2 ]
Algoritmo de contracción
La operación fundamental del algoritmo de Karger es una forma de contracción de aristas . El resultado de contraer la arista es...es un nodo nuevoCada bordeoparaLos extremos del borde contraído se reemplazan por un borde.al nuevo nodo. Finalmente, los nodos contraídos ycon todos sus bordes incidentes eliminados. En particular, el grafo resultante no contiene bucles propios. El resultado de la contracción del bordese denota.
![]()
El algoritmo de contracción contrae repetidamente aristas aleatorias en el grafo, hasta que solo quedan dos nodos, momento en el que solo hay un único corte.
La idea clave del algoritmo es que es mucho más probable que los bordes que no son de corte mínimo se seleccionen aleatoriamente y se pierdan por contracción, ya que los bordes de corte mínimo suelen ser superados en número por los que no lo son. Por consiguiente, es plausible que los bordes de corte mínimo sobrevivan a toda la contracción de bordes, y el algoritmo los identificará correctamente.

contrato de procedimiento (): mientras elegiruniformemente al azar devolver el único corte en
Cuando el grafo se representa mediante listas de adyacencia o una matriz de adyacencia , se puede implementar una única operación de contracción de aristas con un número lineal de actualizaciones de la estructura de datos, para un tiempo de ejecución total deAlternativamente, el procedimiento puede verse como una ejecución del algoritmo de Kruskal para construir el árbol de expansión mínima en un grafo donde las aristas tienen pesos.según una permutación aleatoriaAl eliminar la arista más pesada de este árbol se obtienen dos componentes que describen un corte. De esta forma, el procedimiento de contracción se puede implementar como el algoritmo de Kruskal en tiempo.

Las implementaciones más conocidas utilizantiempo y espacio, otiempo yespacio, respectivamente. [ 1 ]
Probabilidad de éxito del algoritmo de contracción
En un gráficoconvértices, el algoritmo de contracción devuelve un corte mínimo con probabilidad polinómicamente pequeña.. Recuerda que cada grafo tienerecortes (según la discusión en la sección anterior), entre los cuales como máximopueden ser cortes mínimos. Por lo tanto, la probabilidad de éxito de este algoritmo es mucho mejor que la probabilidad de elegir un corte al azar, que es como máximo.
Por ejemplo, el gráfico de ciclos envértices tiene exactamentecortes mínimos, dados por cada elección de 2 aristas. El procedimiento de contracción encuentra cada uno de ellos con igual probabilidad.
Para establecer aún más el límite inferior de la probabilidad de éxito, seadenotan los bordes de un corte mínimo específico de tamañoEl algoritmo de contracción devuelvesi ninguno de los bordes aleatorios eliminados por el algoritmo pertenece al conjunto de corte. En particular, la primera contracción de borde evita, lo cual ocurre con probabilidad. El grado mínimo dees al menos(de lo contrario, un vértice de grado mínimo induciría un corte más pequeño donde una de las dos particiones contiene solo el vértice de grado mínimo), por lo quePor lo tanto, la probabilidad de que el algoritmo de contracción seleccione una arista dees
La probabilidadque el algoritmo de contracción en un-el gráfico de vértices evitasatisface la recurrencia, con, que puede ampliarse como
Repetir el algoritmo de contracción

Al repetir el algoritmo de contracciónveces con elecciones aleatorias independientes y devolviendo el corte más pequeño, la probabilidad de no encontrar un corte mínimo es
El tiempo total de ejecución pararepeticiones para un gráfico convértices ybordes es.
Algoritmo de Karger-Stein
Una extensión del algoritmo de Karger, realizada por David Karger y Clifford Stein, logra una mejora de un orden de magnitud. [ 3 ]
La idea básica es realizar el procedimiento de contracción hasta que la gráfica alcancevértices.
contrato de procedimiento (,): mientras elegiruniformemente al azar devolver
La probabilidadque este procedimiento de contracción evita un corte específicoen un-grafo de vértices es
Esta expresión es aproximadamentey se vuelve menos quealrededor. En particular, la probabilidad de que una arista deLa contracción aumenta hacia el final. Esto justifica la idea de cambiar a un algoritmo más lento después de un cierto número de pasos de contracción.
procedimiento fastmincut(): si: devolver contrato(,) demás : contrato(,) contrato(,) devolver min{fastmincut(), corte mínimo rápido()}
Análisis
El parámetro de contracciónse elige de manera que cada llamada a contraer tenga una probabilidad de éxito de al menos 1/2 (es decir, de evitar la contracción de una arista de un conjunto de corte específico).). Esto permite modelar la parte exitosa del árbol de recursión como un árbol binario aleatorio generado por un proceso crítico de Galton-Watson y analizarlo en consecuencia. [ 3 ]
La probabilidadque este árbol aleatorio de llamadas exitosas contiene un camino lo suficientemente largo como para llegar a la base de la recursión y encontrarviene dada por la relación de recurrencia
con soluciónEl tiempo de ejecución de fastmincut satisface
con soluciónPara lograr una probabilidad de errorEl algoritmo puede repetirsetiempos, para un tiempo total de ejecución deEsto supone una mejora de un orden de magnitud con respecto al algoritmo original de Karger. [ 3 ]
Límite de mejora
Para determinar un corte mínimo, hay que tocar cada arista del grafo al menos una vez, lo cual estiempo en un grafo denso . El algoritmo de corte mínimo de Karger-Stein toma el tiempo de ejecución de, que es muy parecido a eso.
Referencias
- 1 2 Karger, David (1993). "Cortes mínimos globales en RNC y otras ramificaciones de un algoritmo simple de corte mínimo" . Actas del 4.º Simposio Anual ACM-SIAM sobre Algoritmos Discretos .
- ↑ Stoer, M.; Wagner, F. (1997). "Un algoritmo simple de corte mínimo" . Journal of the ACM . 44 (4): 585. doi : 10.1145/263867.263872 . S2CID 15220291 .
- 1 2 3 Karger, David R. ; Stein, Clifford (1996). "Un nuevo enfoque al problema del corte mínimo" (PDF) . Journal of the ACM . 43 (4): 601. doi : 10.1145/234533.234534 . S2CID 5385337 .
- Algoritmos de grafos
- Conectividad de gráficos