¿Cuál es la complejidad de este problema de cobertura?


24

Editar: Primero formulé mal mi restricción (2), ahora está corregida. También agregué más información y ejemplos.

Con algunos colegas, estudiando alguna otra pregunta algorítmica, pudimos reducir nuestro problema al siguiente problema interesante, pero no pudimos resolver la cuestión de su complejidad. El problema es el siguiente.

Instancia: un entero , un entero , y un conjunto de n pares del conjunto \ {1, \ ldots, n \} .k < n S = { { s 1 , t 1 } , ... , { s n , t n } } n { 1 , ... , n }nk<nS={{s1,t1},,{sn,tn}}n{1,,n}

Pregunta: ¿Existe un conjunto SS de tamaño k tal que para cada elemento i de {1,,n} :
(1) si i<n , el intervalo [i,i+1] es incluido en algún intervalo [si,ti] definido por un par en S , y
(2) al menos uno de i , i+1 pertenece a algún par de S ?
(2) i pertenece a un par de S .

Ejemplo
El conjunto {{i,i+1} | i  is odd}{1,n} es una solución factible (suponiendo que n sea ​​par): el par {1,n} asegura la condición (1), mientras que todos los otros pares aseguran la condición (2).

Observaciones
(I) Dado que cada par contiene exactamente dos elementos, para cumplir la condición (2), necesitamos al menos n2 pares. Por cierto, esto implica una aproximación trivial 2 al devolver la S completa S, ya que suponemos |S|n .

(II) Otra forma de ver el problema es considerar una escalera con n pasos (como el siguiente ), junto con un conjunto S de n ciclos de la escalera. Cada escalón de la escalera corresponde a algún elemento, y cada borde lateral es un intervalo [i,i+1] . Un ciclo incluyendo los pasos s,t corresponde exactamente a un par {s,t} : cubre todos los intervalos consecutivos entre s y t , y que se detenga en ambos s y t .
La pregunta es entonces si hay un conjunto SS de kciclos cuya unión cubre todos los bordes de la escalera (incluidos los bordes de los escalones y los bordes laterales).

(III) Si uno preguntara solo por la condición (1), el problema correspondería al problema del conjunto dominante en algún gráfico de intervalos definido a partir de los intervalos dados por los pares de junto con pequeños intervalos adicionales para cada en . Este problema tiene solución clásica en tiempo lineal (ver, por ejemplo, aquí ). Del mismo modo, si uno solo solicitara la condición (2), esto podría reducirse al problema de la cobertura del borde (los vértices son los elementos, los bordes son los pares), que también se puede resolver en tiempo polinómico mediante un enfoque de coincidencia máxima.S [ i + ϵ , i + 1 - ϵ ] i { 1 , , n - 1 }[si,ti]S[i+ϵ,i+1ϵ]i{1,,n1}


Entonces mi pregunta está en el título:

¿Es este problema en P? ¿Es NP-completo?

Cualquier referencia a un problema similar es bienvenida.


1
Podría estar en algún punto intermedio ... ¿quién sabe que no puede ser equivalente a, por ejemplo, el isomorfismo gráfico? :)
Tsuyoshi Ito

Claro, esa también es una opción ... Pero en realidad siento que esto "huele" a estar en P - tal vez porque espero que sea :)
Florent Foucaud

¿Por qué cualquier solución factible debe tener un tamaño ? ¿Podría, por favor, explicar por qué el conjunto de pares { } no es factible. [1,n-1],[2,n]n2[1,n1],[2,n]
hbm

@hbm: la solución que está proponiendo no cumple la condición (2) (incluso con la restricción anterior a mi actualización). He incluido más explicaciones ahora, espero que sea más claro.
Florent Foucaud

¿Qué pasa con k = n / 2? ¿Podemos resolver el problema de este caso especial?
domotorp

Respuestas:


8

Aunque esto no resuelve la pregunta que plantea, algunos de los comentarios anteriores consideran algoritmos de aproximación. FWIW, creo que un PTAS (esquema de aproximación poli-tiempo) es posible usando programación dinámica. Aquí está la idea.

Dada cualquier instancia y , cree una solución de la siguiente manera. Marque cada vértice . Para cada vértice marcado , de todos los bordes que "abarcan" (es decir, que satisfacen la restricción (1) para ), elija un borde que minimice y uno que minimice maximice . Agregue estos bordes a la solución.( 1 / ϵ ) i ( j , k ) i i j k 2 ϵ nϵ>0(1/ϵ)i(j,k)iijk2ϵn

Estos bordes satisfacen las restricciones de tipo (1) para muchos de los vértices. Mientras tanto, contribuyen con edge a la solución, que es solo . Para finalizar, encontraremos una solución óptima al problema restante de encontrar un conjunto de aristas que cumpla con todas las restricciones restantes de tipo (1) y tipo (2).O ( ϵ OPT )2nϵO(ϵOPT)

Defina un "bloque" de vértices como un conjunto de vértices consecutivos cuyas restricciones de tipo (1) se cumplan con los bordes agregados hasta el momento. Entre dos bloques consecutivos, hay una secuencia de vértices cuyas restricciones de tipo (1) no se cumplen. (Cualquier secuencia de este tipo tiene una longitud como máximo de , porque los vértices marcados tienen sus restricciones de tipo (1) cumplidas por los bordes ya agregados). un barrio a su izquierda y un barrio a su derecha).1/ϵ

Dentro de cada vecindario, para cada vértice en el vecindario, cada borde que sale del vértice se extiende a lo más (porque el borde no abarca ningún vértice marcado). Por lo tanto, el vértice tiene grado como máximo . Por lo tanto, cada vecindario tiene como máximo vértices y toca como máximo bordes. Llame a cualquier subconjunto de esos bordes una "configuración" del vecindario. Si una configuración cumple con todas las restricciones de tipo (1) y tipo (2) para los vértices en el vecindario, llame a la configuración "válida".1 / ϵ 1 / ϵ 1 / ϵ 21/ϵ1/ϵ1/ϵ1/ϵ2

Para cada bloque , para cada par de configuraciones válidas de los dos vecindarios del bloque, calcule (en tiempo polinómico, utilizando la coincidencia máxima, etc.), el tamaño mínimo de cualquier conjunto de aristas (si existe) de tal manera que las aristas en cumplan las restricciones de tipo (2) para los vértices en el bloque. Como hay a lo sumo configuraciones, esto se puede hacer en tiempo polinómico (para eps fijos). ( C i , C i + 1 ) F i ( C i , C i + 1 ) S C iS C i + 1 2 1 / ϵ 2 = O ( 1 )i(Ci,Ci+1)Fi(Ci,Ci+1)SCiSCi+121/ϵ2=O(1)

Ahora puede resolver la instancia original encontrando una secuencia de configuraciones válidas, una para cada vecindario, que minimiza , donde es como se define en el párrafo anterior. Esto se puede hacer encontrando una ruta más corta en el gráfico formado por todas las configuraciones válidas, con un borde de costo desde cada configuración para el vecindario a cada configuración para el vecindario . (Este gráfico tiene un tamaño , que es para fijo ).i | D i | + F i ( D i , D i + 1 ) F i | D i | + F i ( D i , D i + 1 ) D i i D i + 1 i + 1 O ( 2 1D1,D2,..,Dki|Di|+Fi(Di,Di+1)Fi|Di|+Fi(Di,Di+1)DiiDi+1i+1O(n)ϵO(21/ϵ2n)O(n)ϵ


1
Agradable. y bienvenido a cstheory!
Suresh Venkat

¡Gracias por tu respuesta, Neal (y lo siento, no tuve tiempo de verificar esto antes)! Aunque esto no responde completamente a mi pregunta, sigue siendo un paso adelante. Solo dos comentarios: creo que debería ser "maximiza k" en lugar de "minimiza k" (segundo párrafo). Además, para ser precisos, si uno quiere una aproximación ( ), debe marcar cada 'th vértice (desde y luego tomamos bordes en el primer paso). k = 4 / ϵ O P T n / 2 2 n / k ϵ O P T1+ϵk=4/ϵOPTn/22n/kϵOPT
Florent Foucaud
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.