¿Cómo se conoce esta variante del problema de cobertura de conjunto?


12

La entrada es un universo y una familia de subconjuntos de , por ejemplo, . Suponemos que los subconjuntos de pueden cubrir , es decir, .U F2 U F U E F E = UUUF2UFUEFE=U

Una secuencia de cobertura incremental es una secuencia de subconjuntos en , digamos, , que satisfaceA = { E 1 , E 2 , , E | A | }FA={E1,E2,,E|A|}

1) ,EA,EF

2) cada recién llegado tiene una nueva contribución, es decir, , ;i>1j=1i1Eij=1iEi

El problema es encontrar una secuencia de cobertura incremental de longitud máxima (es decir, con máximo |A| ). Tenga en cuenta que una secuencia de longitud máxima debe llegar a cubrir U , es decir, EAE=U .

He intentado encontrar un algoritmo o un algoritmo aproximado para encontrar la secuencia de cobertura incremental más larga. Me preguntaba cómo se conoce esta variante del problema de cobertura de conjunto. ¡Gracias!


¿Requiere que su familia de subconjuntos cubra el universo ? Porque entonces, por supuesto, puede tener un problema de cobertura de conjunto más difícil ya que está buscando una cobertura de conjunto con propiedades adicionales. En otras palabras, la cobertura del conjunto se reduce a su problema. En el wiki de set cover también se encuentran los resultados de innapproximability para set cover. uAU
Harry

1
Solo una observación (demasiado pequeña para ser una respuesta): cuando sus subconjuntos son de tamaño dos, entonces lo que está buscando es esencialmente un bosque en expansión.
David Eppstein

Probablemente no sea nuevo en el OP, pero aquí hay algunas observaciones. (1) El valor óptimo es siempre como máximo | U |. Si el valor óptimo es igual a | U | o no puede decidirse de manera eficiente por el algoritmo codicioso que intenta minimizar la cantidad de elementos cubiertos. (2) El mismo algoritmo codicioso también funciona si todos los conjuntos en F son de tamaño dos, vea el comentario de David Eppstein. (3) El mismo algoritmo codicioso no funciona en general (suspiro). Un contraejemplo: F = {{1,2,3}, {1,4,5,6}, {2,4,5,6}, {3,4,5,6}}.
Tsuyoshi Ito

1
El problema realmente no se parece a un problema de cobertura de conjunto ... Más bien como un híbrido entre coincidencia e coincidencia inducida en gráficos bipartitos. Una buena reformulación equivalente es que una familia es mala si ningún elemento está cubierto exactamente por un conjunto de la familia. El problema es encontrar una subfamilia más grande de modo que no tenga una subfamilia mala. F AAFA
daniello

1
@Neal Young no es malo porque está cubierto por exactamente un conjunto (a saber, ). b { a , b }Fb{a,b}
daniello

Respuestas:


4

Aquí muestro que el problema es NP-completo.

Convertimos un CNF a una instancia de su problema de la siguiente manera. Suponga que las variables de la CNF son 's y las cláusulas son ' s, donde . Deje donde todos los conjuntos en la unión son completamente disjuntos. De hecho, y , mientras que es cualquier conjunto de cardinalidad . también y arregle para cada una familia creciente de longitud en su interior, denotada por parax i m C j n < m U = i ( A iB iZ i ) A i = { a i , jx iC j } { a i , 0 } B i = { b i , jx iC j } n xim Cjn<mU=i(AiBiZi)Ai={ai,jxiCj}{ai,0}Z i k = 2 n + 1 Z = i Z i Z i k Z i , l l = 1 .. k x i 2 k F A iZ i , l B iZ i , l C j F Z x iC j { aBi={bi,jxiCj}{bi,0}Zik=2n+1Z=iZiZikZi,ll=1..k . Para cada variable , agregamos conjuntos a , cada conjunto de la forma y . Para cada cláusula , agregamos un conjunto a , que contiene , y para cada elemento y para cada elemento .xi2kFAiZi,lBiZi,lCjFZxiCj ˉ x i C j { b i , j }{ai,j}x¯iCj{bi,j}

Suponga que la fórmula es satisfactoria y arregle una tarea satisfactoria. Luego, elija los conjuntos de de la forma o , dependiendo de si es verdadero o no. Estos son conjuntos incrementales. Ahora agregue los conjuntos correspondientes a las cláusulas. Estos también siguen aumentando el tamaño, ya que las cláusulas son satisfactorias. Finalmente, se puede incluso añadir conjuntos más (uno para cada variable) para hacer la cubierta de la secuencia .A iZ i , l B iZ i , l x i n k m k UkAiZi,lBiZi,lxinkmkU

Ahora suponga que los conjuntos se colocan en una secuencia incremental. Observe que, como máximo, se pueden seleccionar conjuntos correspondientes a para cada . Por lo tanto, si no hay conjuntos de cláusulas en la secuencia incremental, como máximo se puede seleccionar , que es muy poco. Tenga en cuenta que tan pronto como un conjunto cláusula se selecciona, se puede elegir un máximo de dos conjuntos correspondientes a cada , un total de a lo sumo conjuntos. Por lo tanto, tenemos que elegir al menos conjuntos de variables antes de elegir cualquier conjunto de cláusulas. Pero como podemos elegir como máximo para cada , esto significa que para cada uno hemos elegido al menosk + 1 x i x i n ( k + 1 ) x i 2 n n ( k - 1 ) k + 1 x i 1 k = 2 n + 1n(k+1)+mk+1xixin(k+1)xi2nn(k1)k+1xi1 , como . Esto determina el "valor" de la variable, por lo que solo podemos elegir cláusulas "verdaderas".k=2n+1

Actualización: Se modificó el valor de de a como lo señaló Marzio.n 2 n + 1kn2n+1


1
Una aclaración: rápidamente verifiqué la construcción para la fórmula insatisfactoria ( ) pero parece que podemos construir una secuencia de de el aumento de conjuntos de . Probablemente me equivoque: ¿tenemos ? n = k = 1 , m = 2 n ( k + 1 ) + m = 4 F F = { { a 1 , 0 , a 1 , 1 , a 1 , 2 , z 1 } , { b 1 , 0 , b 1 , 1 , bx1¬x1n=k=1,m=2n(k+1)+m=4FF={{a1,0,a1,1,a1,2,z1},{b1,0,b1,1,b1,2,z1},{a1,1,z1},{b1,2,z1}}
Marzio De Biasi

Conociéndonos a usted y a mí mismo, estoy seguro de que el error es mío ... Creo que deberíamos obtener , pero por supuesto Sigue siendo un problema. OK, veo dónde cometí el error, lo soluciono en un minuto, ¡gracias! F={{a1,0,a1,1,z1},{b1,0,b1,2,z1},{a1,1,z1},{b1,2,z1}}
domotorp

Ok, ¡lo echaré un vistazo mañana! Solo una nota, ¿puede escribir (en un comentario) qué es para y cuál es el "valor objetivo" para la longitud de la secuencia de cobertura (es k)? Porque, en la respuesta modificada , primero establece , luego habla de conjuntos se colocan en una secuencia incremental ; ¿es correcto (todavía no probé la reducción)? x i¬ x i k = 2 n + 1 n ( k + 1 ) + m = 2 n 2 + 2 n + mFxi¬xik=2n+1n(k+1)+m=2n2+2n+m
Marzio De Biasi

F={{a1,0,a1,1,z1,},{a1,0,a1,1,z1,z2},{a1,0,a1,1,z1,z2,z3},{b1,0,b1,2,z1},{b1,0,b1,2,z1,z2},{b1,0,b1,2,z1,z2,z3},{a1,1,z1,z2,z3},{b1,2,z1,z2,z3}}
domotorp

Creo que esto es correcto como , pero solo tenemos secuencias incrementales de longitud . 5n(k+1)+m=65
domotorp

0

Este es un problema de empaquetado de conjuntos bajo la restricción de que para la solución , para cualquier subconjunto , tenemos que siempre hay un elemento en , que se cubre exactamente una vez.BA X B XABAXBX

Prueba: dada una solución a su problema, inmediatamente tiene esta propiedad. De hecho, si es la solución óptima para su problema, considere un subconjunto de estos conjuntos y suponga que es el último conjunto de esta secuencia que aparece en . Por la propiedad requerida de que la solución es incremental, se deduce que cubre un elemento que ningún conjunto anterior cubre, lo que implica la propiedad anterior.B E i B E iE1,,EmBEiBEi

En cuanto a la otra dirección, también es fácil. Comience desde la solución , encuentre el elemento que está cubierto exactamente una vez, configúrelo como el último conjunto de la secuencia, elimine este conjunto y repita. QEDA


Este es un problema bastante natural ...


Recordatorio rápido: en el problema de empaquetado de conjuntos, dada una familia de conjuntos, encuentre el subconjunto máximo de conjuntos que cumpla con alguna restricción adicional (por ejemplo, ningún elemento está cubierto más de 10 veces, etc.).


¿Esta respuesta solo prueba que la pregunta es natural, o hay algo más que también reclames?
domotorp

Lo está diciendo de una manera más simple. ¿No?
Sariel Har-Peled

Sí, estoy de acuerdo con eso.
domotorp
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.