¿Cuál es la explicación más simple del algoritmo Kernighan-Lin y sus aplicaciones?

Se trata de eliminar un número mínimo de aristas en el gráfico, para que se divida en dos.

Esto se llama partición de gráficos.

Según el artículo de partición Graph en Wikipedia:

Las aplicaciones importantes de partición de gráficos incluyen computación científica, partición de varias etapas de un circuito de diseño VLSI y programación de tareas en sistemas de multiprocesador. Recientemente, el problema de la partición uniforme 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.

Por ejemplo, aquí hay dos soluciones para particionar un circuito:


Obviamente, la solución de la derecha es una mejor partición, y esa es la solución que encontraría el algoritmo Kernighan-Lin.

¿Cómo funciona?

Al principio, divide aleatoriamente el gráfico en dos conjuntos, luego trata de encontrar un par de vértices, uno de cada conjunto, por lo que a medida que los intercambiamos, el número total de conexiones (bordes) entre esos conjuntos disminuye.


Fuente 1, Fuente 2