Conjunto disjunto máximo: ¿cuál es el factor de aproximación real del algoritmo codicioso?


21

Considere el problema de encontrar un conjunto máximo disjunto : un conjunto máximo de formas geométricas no superpuestas, de una colección dada de candidatos. Este es un problema de NP completo, pero en muchos casos, el siguiente algoritmo codicioso produce una aproximación de factor constante:

  • Para cada forma candidata x , calcule su número de intersección disjunta = el mayor número de formas disjuntas que se cruzan x .DIN(x)
  • Seleccione una forma candidata con un DIN más pequeño ( ). Eliminarlo y todas las formas que se cruza.argminxDIN(x)
  • Continúe hasta que no queden más candidatos.

Por ejemplo, considere la siguiente figura de la página de Wikipedia:

ingrese la descripción de la imagen aquí

El disco verde se cruza con otros 5 discos, pero su DIN es 3 (los 3 discos rojos son disjuntos). Los discos rojos superiores e inferiores se cruzan con otros 2 discos, pero ellos mismos se cruzan, por lo que su DIN es 1. Los discos amarillos tienen un DIN de 2. El algoritmo codicioso selecciona el disco rojo superior o inferior.

Si el DIN mínimo puede estar limitado por una constante, entonces el algoritmo codicioso es una aproximación polinómica de factor constante.

Por ejemplo, si todas las formas candidatas son discos unitarios, Marathe et al (1995) muestran que siempre existe un disco con un DIN de 3 como máximo: el disco más a la izquierda (el disco con la coordenada x más pequeña) se cruza como máximo con otros 3 discos disjuntos . Por lo tanto, el algoritmo codicioso produce una aproximación de 3 porque obtiene 1 disco por cada (como máximo) 3 discos en la solución óptima.

De manera similar, si todas las formas candidatas son discos de tamaño arbitrario, el algoritmo codicioso produce una aproximación de 5, porque el disco más pequeño se cruza como máximo con otros 5 discos disjuntos, es decir, el DIN mínimo es como máximo 5.

Hasta ahora todo bien, pero ¿Son apretados estos factores de 3 y 5? No estoy seguro.

Considere la figura de arriba. Al seleccionar el disco más a la izquierda (verde) encontrará un conjunto disjunto de tamaño 1, que de hecho es una aproximación de 3 al conjunto disjunto máximo de tamaño 3 (rojo), pero el algoritmo codicioso no seleccionará el disco verde: seleccionará el disco rojo superior / inferior, cuyo DIN es 1. En este caso, el algoritmo codicioso encontrará la solución óptima.

No pude encontrar un contraejemplo para general , en el que el algoritmo codicioso encuentra un conjunto disjunto con unidades de disco, mientras que el conjunto disjunto máximo tiene . En realidad, ni siquiera pude construir un contraejemplo general en el que el DIN mínimo es de hecho 3. Lo mejor que se me ocurre es lo siguiente, en el que cada unidad de disco se cruza como máximo con otros 2 discos disjuntos (es decir, el DIN mínimo es 2) Pero incluso aquí, el algoritmo codicioso encuentra la solución óptima en lugar de una aproximación de 2:nn3n

ingrese la descripción de la imagen aquí

Mis preguntas son:

  • ¿Cuál es el DIN mínimo máximo real en colecciones de unidades de discos? ¿Discos de tamaño arbitrario?
  • ¿Cuál es el factor de aproximación real del algoritmo codicioso para colecciones de unidades de disco? ¿Para discos de tamaño arbitrario? (este factor es, como máximo, tan grande como el DIN mínimo máximo, pero puede ser más pequeño).

ACTUALIZACIÓN: Para cada k-tupla de formas, , defina = el mayor número de formas disjuntas intersectadas por su unión . Defina como el DIN mínimo de todas las k-tuplas de formas disjuntas.x1,...,xkDIN(x1,...,xk)x1...xkminDINk

Por ejemplo, en la respuesta de Yury a continuación, , porque cada círculo se cruza con otros 3 círculos. , porque es posible seleccionar 2 círculos disjuntos, uno del círculo externo y otro del círculo interno, que juntos se cruzan solo con otros 4 círculos. Por cada , .minDIN1=3minDIN2=4kminDINkk+2

Creo que la relación de aproximación del algoritmo codicioso puede estar limitada por , porque, por cada forma en la solución óptima, tenemos al menos formas en la salida del algoritmo. ¿Es esto correcto?minDINkkminDINkk

EDITAR: Ahora estoy leyendo el excelente libro Investiga problemas en geometría discreta . Si bien no he encontrado este problema exacto, encontré un problema que parece relacionado. En la sección "2.5 Empaques delgados con muchos vecinos", hay ejemplos de empaques circulares en los que cada círculo toca otros 5 círculos. Me pregunto si tal empaque puede producir una configuración de círculos con DIN = 5.


Puede ser interesante observar que calcular el DIN puede ser tan difícil como calcular un conjunto independiente máximo. Por ejemplo, en el caso de los gráficos de disco (en lugar de los gráficos de unidad de disco) se podría agregar un disco grande que se cruza con todos los demás objetos en la disposición; calcular su DIN corresponde a calcular un conjunto independiente máximo en la disposición original.
Bart Jansen

2
@BartJansen Es cierto, pero el algoritmo codicioso en realidad no necesita calcular el DIN para cada forma, solo necesita una forma con el DIN mínimo. Dado que el DIN mínimo es como máximo 5 (en el caso de discos de tamaño arbitrario), solo tiene que verificar todos los subconjuntos con un máximo de 6 discos y ver si uno de ellos es independiente. Esto se puede hacer en el tiempo para cada forma. O(n6)
Erel Segal-Halevi

Para su última pregunta, sí, es correcta.
domotorp

Respuestas:


19

¿Cuál es el DIN mínimo máximo real en colecciones de unidades de discos?

Es 3.ingrese la descripción de la imagen aquí


Aquí hay 32 discos unitarios, dispuestos en 2 niveles de 16. Cada disco se cruza con 3 discos disjuntos: 2 en su propio nivel y 1 en el otro nivel. Pero, el codicioso algoritmo aún encontrará una solución óptima, con 16 discos.
Erel Segal-Halevi

Sí, eso responde solo 1/4 de la pregunta :-)
Yury
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.