stringtranslate.com

Primer algoritmo recursivo más grande

El algoritmo recursivo más grande primero ( RLF ) es una heurística para el problema de coloración de gráficos NP-hard . Fue propuesto originalmente por Frank Leighton en 1979. [1]

El algoritmo RLF asigna colores a los vértices de un gráfico construyendo cada clase de color de una en una. Para ello, identifica un conjunto máximo independiente de vértices en el gráfico, les asigna el mismo color y luego los elimina del gráfico. Estas acciones se repiten en el subgrafo restante hasta que no queden vértices.

Para formar soluciones de alta calidad (soluciones que utilizan pocos colores), el algoritmo RLF utiliza reglas heurísticas especializadas para intentar identificar conjuntos independientes de "buena calidad". Estas heurísticas hacen que el algoritmo RLF sea exacto para gráficos bipartitos , de ciclo y de rueda . [2] Sin embargo, en general, el algoritmo es aproximado y bien puede devolver soluciones que utilizan más colores que el número cromático del gráfico .

Descripción

El algoritmo se puede describir mediante los siguientes tres pasos. Al final de este proceso, se obtiene una partición de los vértices que representan una coloración factible del gráfico .

  1. Sea una solución vacía. Además, sea el gráfico que deseamos colorear, que comprende un conjunto de vértices y un conjunto de aristas .
  2. Identificar un conjunto independiente máximo . Para hacer esto:
    1. El primer vértice agregado debe ser el vértice que tiene el mayor número de vecinos.
    2. Los vértices posteriores agregados deben elegirse como aquellos que (a) no son actualmente adyacentes a ningún vértice en y (b) tienen un número máximo de vecinos que son adyacentes a los vértices en . Los empates en la condición (b) se pueden romper seleccionando el vértice con el número mínimo de vecinos que no están en . Los vértices se van añadiendo de esta manera hasta que sea imposible añadir más vértices.
  3. Ahora establece y elimina los vértices de from . Si todavía contiene vértices, regrese al Paso 2; de lo contrario terminará.

Ejemplo

Un gráfico de rueda con siete vértices.

Considere el gráfico que se muestra a la derecha. Este es un gráfico de rueda y, por lo tanto, RLF lo coloreará de manera óptima. La ejecución del algoritmo da como resultado que los vértices se seleccionen y coloreen en el siguiente orden:

  1. Vértice (color 1)
  2. Vértice , y luego (color 2)
  3. Vértice , y luego (color 3)

Esto da la solución final de tres colores .

Actuación

Sea el número de vértices del gráfico y sea el número de aristas. Usando notación O grande , en su publicación original Leighton afirma que la complejidad de RLF es ; sin embargo, esto se puede mejorar. Gran parte del coste de este algoritmo se debe al Paso 2, donde la selección de vértices se realiza de acuerdo con las reglas heurísticas establecidas anteriormente. De hecho, cada vez que se selecciona un vértice para agregarlo al conjunto independiente , es necesario volver a calcular la información sobre los vecinos para cada vértice sin color. Estos cálculos se pueden realizar a tiempo, lo que significa que la complejidad general de RLF es . [2]

Si la heurística del Paso 2 se reemplaza con selección aleatoria, entonces la complejidad de este algoritmo se reduce a ; sin embargo, el algoritmo resultante normalmente devolverá soluciones de menor calidad en comparación con las de RLF. [2] Ahora también será inexacto para los gráficos bipartitos , de ciclo y de rueda .

En una comparación empírica realizada por Lewis en 2021, se demostró que RLF produce coloraciones de vértices significativamente mejores que heurísticas alternativas como el algoritmo codicioso y el algoritmo DSatur en gráficos aleatorios . Sin embargo, también se consideró que los tiempos de ejecución con RLF eran mayores que estas alternativas debido a su mayor complejidad general. [2]

Referencias

  1. ^ Leighton, F. (1979). "Un algoritmo de coloración de gráficos para grandes problemas de programación". Revista de Investigación de la Oficina Nacional de Normas . 84 (6): 489–503. doi :10.6028/jres.084.024. PMC  6756213 . PMID  34880531.
  2. ^ abc Lewis, R. (2021). Una guía para colorear gráficos: algoritmos y aplicaciones . Textos en Informática. Saltador. doi :10.1007/978-3-030-81054-2. ISBN 978-3-030-81053-5. S2CID  57188465.

enlaces externos