
El problema de la cobertura de conjuntos es una cuestión clásica en combinatoria , informática , investigación operativa y teoría de la complejidad .
Dado un conjunto de elementos {1, 2, …, n } (en adelante denominado universo , que especifica todos los elementos posibles en consideración) y una colección, denominada S , de m subconjuntos dados cuya unión es igual al universo, el problema de cobertura de conjuntos consiste en identificar la subcolección más pequeña de S cuya unión es igual al universo.
Por ejemplo, consideremos el universo U = {1, 2, 3, 4, 5} y la colección de conjuntos S = { {1, 2, 3}, {2, 4}, {3, 4}, {4, 5} }. En este ejemplo, m es igual a 4, ya que hay cuatro subconjuntos que componen esta colección. La unión de S es igual a U. Sin embargo, podemos cubrir todos los elementos con solo dos conjuntos: { {1, 2, 3}, {4, 5} } , ver imagen, pero no con un solo conjunto. Por lo tanto, la solución al problema de cobertura de conjuntos para este U y S tiene tamaño 2.
Más formalmente, dado un universoy una familiade subconjuntos de, una cubierta de conjunto es una subfamiliade conjuntos cuya unión es.
- En el problema de decisión de cobertura de conjuntos , la entrada es un pary un número entero; la pregunta es si existe una cubierta fija de tamañoo menos.
- En el problema de optimización de cobertura de conjuntos , la entrada es un pary la tarea consiste en encontrar una cobertura de conjuntos que utilice la menor cantidad de conjuntos.
La versión de decisión del problema de cobertura de conjuntos es NP-completa . Es uno de los 21 problemas NP-completos de Karp, cuya NP-completitud se demostró en 1972. La versión de optimización/búsqueda del problema de cobertura de conjuntos es NP-difícil . [ 1 ] Es un problema "cuyo estudio ha llevado al desarrollo de técnicas fundamentales para todo el campo" de los algoritmos de aproximación . [ 2 ]
Variantes
En el problema de cobertura de conjuntos ponderados , a cada conjunto se le asigna un peso positivo (que representa su costo), y el objetivo es encontrar una cobertura de conjuntos con el menor peso posible. La cobertura de conjuntos habitual (sin ponderar) corresponde a que todos los conjuntos tengan un peso de 1.
En el problema de cobertura de conjuntos fraccionarios , se permite seleccionar fracciones de conjuntos, en lugar de conjuntos completos. Una cobertura de conjuntos fraccionarios es una asignación de una fracción (un número en [0,1]) a cada conjunto en, de tal manera que para cada elemento x en el universo, la suma de fracciones de conjuntos que contienen x es al menos 1. El objetivo es encontrar una cobertura de conjuntos fraccionaria en la que la suma de fracciones sea lo más pequeña posible. Nótese que una cobertura de conjuntos (usual) es equivalente a una cobertura de conjuntos fraccionaria en la que todas las fracciones son 0 o 1; por lo tanto, el tamaño de la cobertura fraccionaria más pequeña es como máximo el tamaño de la cobertura más pequeña, pero puede ser menor. Por ejemplo, consideremos el universo U = {1, 2, 3} y la colección de conjuntos S = { {1, 2}, {2, 3}, {3, 1} }. La cobertura de conjuntos más pequeña tiene un tamaño de 2, por ejemplo { {1, 2}, {2, 3} }. Pero hay una cobertura de conjuntos fraccionaria de tamaño 1.5, en la que se toma una fracción de 0.5 de cada conjunto.
En el problema de cobertura de conjuntos con capacidad , cada conjuntoestá asociado con una capacidadque indica el número de elementos a los que puede proporcionar cobertura. El objetivo es determinar la forma óptima de seleccionar conjuntos de manera que cada elemento reciba la cobertura que requiere.
Formulación de programa lineal
El problema de cobertura de conjuntos se puede formular como el siguiente programa lineal entero (PLI). [ 3 ]
Para una representación más compacta de la restricción de cobertura, se puede definir una matriz de incidencia., donde cada fila corresponde a un elemento y cada columna corresponde a un conjunto, ysi el elemento e está en el conjunto s, yDe lo contrario, la restricción de cobertura se puede escribir como.
La cobertura de conjuntos ponderados se describe mediante un programa idéntico al dado anteriormente, excepto que la función objetivo a minimizar es, dóndees el peso del conjunto.
La cobertura de conjuntos fraccionarios se describe mediante un programa idéntico al dado anteriormente, excepto quepuede no ser un número entero, por lo que la última restricción se reemplaza por.
Este programa lineal pertenece a la clase más general de LP para problemas de cobertura , ya que todos los coeficientes en la función objetivo y ambos lados de las restricciones son no negativos. La brecha de integralidad del ILP es como máximo(dóndees el tamaño del universo). Se ha demostrado que su relajación efectivamente da un factor-Algoritmo de aproximación para el problema de cobertura de conjuntos mínimos. [ 4 ] Consulte setcover para obtener una explicación detallada.
Formulación del conjunto de golpes
El problema de cobertura de conjuntos es equivalente al problema de conjuntos de colisión. Un subconjuntodese llama set de ataque cuandoa pesar de(es decir,interseca o “golpea” todos los subconjuntos en). El problema del conjunto de impacto consiste en encontrar un conjunto de impacto mínimopara un dadoy.
Para demostrar que los problemas son equivalentes, para un universode tamañoy colección de conjuntosde tamañoconstruiry Luego, una cubierta del setdees equivalente a un set de bateodedóndey viceversa.
Esta equivalencia también puede visualizarse representando el problema como un grafo bipartito devértices, convértices de la izquierda que representan elementos de, yvértices a la derecha que representan elementos dey aristas que representan la pertenencia a un conjunto (es decir, hay una arista entre el-ésimo vértice a la izquierda y el-ésimo vértice de la derecha si y solo si.). Entonces, una cobertura de conjunto es un subconjuntode vértices derechos de tal manera que cada vértice izquierdo sea adyacente a al menos un miembro de, mientras que un conjunto de golpes es un subconjuntode vértices izquierdos de tal manera que cada vértice derecho sea adyacente a al menos un miembro deEstas definiciones son exactamente las mismas, excepto que izquierda y derecha están intercambiadas. Pero no hay nada especial en los lados del grafo bipartito; podríamos haber puesto los elementos deen el lado derecho y los elementos de En el lado izquierdo, se crea un gráfico que es una imagen especular del descrito anteriormente. Esto demuestra que cubrir conjuntos en el gráfico original equivale a alcanzar conjuntos en el gráfico reflejado, y viceversa.
En el campo de la geometría computacional , un conjunto de impacto para una colección de objetos geométricos también se denomina conjunto de punción o conjunto de perforación . [ 5 ]
Algoritmo voraz
Existe un algoritmo voraz para la aproximación en tiempo polinomial de la cobertura de conjuntos que elige conjuntos según una regla: en cada etapa, elige el conjunto que contiene el mayor número de elementos no cubiertos. Este método se puede implementar en tiempo lineal en la suma de los tamaños de los conjuntos de entrada, utilizando una cola de cubetas para priorizar los conjuntos. [ 6 ] Logra una razón de aproximación de, dóndees el tamaño del conjunto a cubrir. [ 7 ] [ 8 ] [ 9 ] En otras palabras, encuentra una cobertura que puede serveces mayor que el mínimo, dondees el-ésimo número armónico :
Este algoritmo voraz en realidad logra una relación de aproximación dedóndees el conjunto de cardinalidad máxima de. ParaSin embargo, en casos densos existe una-algoritmo de aproximación para cada. [ 10 ]

Existe un ejemplo estándar en el que el algoritmo voraz logra una relación de aproximación de. El universo consta deelementos. El sistema de conjuntos consta deconjuntos disjuntos por parescon tamañosrespectivamente, así como dos conjuntos disjuntos adicionales, cada uno de los cuales contiene la mitad de los elementos de cada. Con esta entrada, el algoritmo voraz toma los conjuntos , en ese orden, mientras que la solución óptima consiste únicamente eny. Un ejemplo de dicha entrada paraSe muestra en la imagen de la derecha.
Los resultados de inaproximabilidad muestran que el algoritmo voraz es esencialmente el mejor algoritmo de aproximación en tiempo polinomial posible para la cobertura de conjuntos hasta términos de orden inferior (ver Resultados de inaproximabilidad a continuación), bajo supuestos de complejidad plausibles. Un análisis más riguroso para el algoritmo voraz muestra que la razón de aproximación es exactamente. [ 11 ]
Sistemas de baja frecuencia
Si cada elemento aparece en como máximo f conjuntos, entonces se puede encontrar una solución en tiempo polinomial que se aproxime al óptimo con un factor de f utilizando relajación LP .
Si la restricciónes reemplazado porpara todos los S enEn el programa lineal entero que se muestra arriba , se convierte en un programa lineal (no entero) L. El algoritmo se puede describir de la siguiente manera:
- Encuentra una solución óptima O para el programa L utilizando algún método de tiempo polinomial para resolver programas lineales.
- Seleccione todos los conjuntos S para los cuales la variable correspondiente x S tenga un valor de al menos 1/ f en la solución O . [ 12 ]
Resultados de inaproximabilidad
Cuandose refiere al tamaño del universo, Lund y Yannakakis (1994) demostraron que la cobertura de conjuntos no se puede aproximar en tiempo polinomial con un factor de, a menos que NP tenga algoritmos de tiempo cuasi-polinomial . Feige (1998) mejoró esta cota inferior abajo los mismos supuestos, que esencialmente coincide con la razón de aproximación lograda por el algoritmo voraz. Raz y Safra (1997) establecieron una cota inferior de, dóndees una cierta constante, bajo el supuesto más débil de que PNP . Un resultado similar con un valor más alto defue demostrado recientemente por Alon, Moshkovitz y Safra (2006) . Dinur y Steurer (2013) demostraron la inaproximabilidad óptima al probar que no se puede aproximar aa menos que PNP .
En sistemas de baja frecuencia, Dinur et al. (2003) demostraron que es NP-difícil aproximar la cobertura de conjuntos a mejor que. Si la conjetura de juegos únicos es cierta, esto se puede mejorar acomo lo demuestran Khot y Regev (2008) .
Trevisan (2001) demuestra que las instancias de cobertura de conjuntos con conjuntos de tamaño máximono se puede aproximar a un factor mejor quea menos que PNP , haciendo así la aproximación dedel algoritmo codicioso esencialmente ajustado en este caso.
Funda de juego con peso
El algoritmo voraz para el problema de cobertura de conjuntos ponderados [ 7 ] generaliza directamente la versión no ponderada. Dado un universoy una familiade subconjuntos dedonde cada conjuntoSe le asigna un peso no negativo (costo), el algoritmo mantiene el subconjunto de elementos que aún no están cubiertos. Inicialmente, todos los elementos dese descubren. En cada iteración, el algoritmo selecciona un conjuntoque minimiza la relación entre su peso y el número de elementos actualmente no cubiertos que contiene. El conjunto seleccionado se agrega a la solución y todos los elementos contenidos en él se marcan como cubiertos. Este proceso se repite hasta que todos los elementos deestán cubiertos. Se sabe que el algoritmo voraz produce una solución cuyo peso total es como máximo un factor deveces la solución óptima, dondedenota el-ésimo número armónico y.
Para sistemas de baja frecuencia, donde cada elemento está contenido en como máximoconjuntos, el algoritmo de redondeo LP determinista obtiene un-aproximación. [ 13 ] Comienza con la solución óptima a la relajación de programación lineal del problema enunciado anteriormente . Conjuntos cuyo valor fraccional excedese seleccionan para formar una solución entera.
El algoritmo primal-dual para el problema de cobertura de conjuntos es un método iterativo que construye soluciones factibles para los programas lineales primal y dual simultáneamente. Comenzando con todas las variables duales establecidas en cero, el algoritmo incrementa repetidamente las variables duales correspondientes a los elementos no cubiertos de manera uniforme, hasta que la restricción dual de algún conjunto se vuelve ajustada (es decir, la suma de las variables duales para los elementos del conjunto es igual a su costo). Este conjunto ajustado se agrega a la solución primal, cubriendo los elementos correspondientes. El proceso continúa hasta que todos los elementos estén cubiertos. El algoritmo garantiza una razón de aproximación de, dóndees el número máximo de conjuntos a los que pertenece cualquier elemento. [ 14 ]
El redondeo aleatorio es una técnica de aproximación para el problema de cobertura de conjuntos ponderados que utiliza la solución de la relajación de programación lineal. Seaser una solución fraccionaria óptima para la relajación LP. Cada conjuntose incluye independientemente en la cobertura con probabilidadPor linealidad de la esperanza, el costo esperado de los conjuntos elegidos es igual al óptimo de LP. La probabilidad de que algún elemento permanezca sin cubrir puede hacerse arbitrariamente pequeña escalando las probabilidades o redondeando repetidamente. Usando límites de concentración estándar, esto produce una cobertura de conjunto factible cuyo costo esperado está dentro de unfactor de la solución óptima, dondees el tamaño del universo.
Cobertura de conjunto fraccional
Problemas relacionados
- El juego de golpear el set es una reformulación equivalente de Set Cover.
- La cobertura de vértices es un caso especial de conjunto de colisión.
- La cobertura de bordes es un caso especial de cobertura de conjunto.
- La cobertura de conjuntos geométricos es un caso especial de cobertura de conjuntos cuando el universo es un conjunto de puntos eny los conjuntos se generan por la intersección del universo y las formas geométricas (por ejemplo, discos, rectángulos).
- El problema del empaquetamiento de conjuntos consiste en seleccionar el número máximo de conjuntos que son disjuntos dos a dos.
- El problema de cobertura máxima consiste en elegir como máximoconjuntos para abarcar la mayor cantidad de elementos posible.
- El problema del conjunto dominante consiste en seleccionar un conjunto de vértices (el conjunto dominante) en un grafo de tal manera que todos los demás vértices sean adyacentes a al menos un vértice del conjunto dominante. Se demostró que el problema del conjunto dominante es NP-completo mediante una reducción a partir del problema de la cobertura de conjuntos.
- El problema exacto de la cubierta consiste en elegir una cubierta de conjunto que no incluya ningún elemento en más de un conjunto de cubierta.
- El problema de cobertura de conjuntos rojo-azul es una generalización del problema de cobertura de conjuntos donde los elementos del universo están coloreados de rojo o azul, y el objetivo es seleccionar una subcolección de los conjuntos dados que cubra todos los elementos azules y al mismo tiempo cubra el número mínimo de elementos rojos. [ 17 ]
- La abducción de conjuntos y coberturas es un problema relacionado en el que, dado un conjunto de observaciones y un conjunto de hipótesis, el objetivo es seleccionar un subconjunto de las hipótesis cuyos efectos incluyan todas las observaciones.
- La dualización monótona es un problema computacional equivalente a enumerar todos los conjuntos mínimos de intersección o enumerar todas las coberturas mínimas de conjuntos de una familia de conjuntos dada. [ 18 ]
Notas
- ↑ Korte y Vygen 2012 , pág. 414.
- ↑ Vazirani (2001 , p. 15)
- ↑ Vazirani (2001 , p. 108)
- ^ Vazirani (2001 , págs. 110-112)
- ↑ Nielsen, Frank (2000-09-06). "Fast stabbing of boxes in high dimensions" (PDF) . Theoretical Computer Science . 246 (1): 53– 72. doi : 10.1016/S0304-3975(98)00336-3 . ISSN 0304-3975 .
- ^ Cormen, Thomas H .; Leiserson, Charles E .; Rivest, Ronald L .; Stein, Clifford (2009) [1990], "Ejercicio 35.3-3", Introducción a los algoritmos (3.ª ed.), MIT Press y McGraw-Hill, p. 1122, ISBN 0-262-03384-4
- 1 2 Chvatal, V. (agosto de 1979), "Una heurística voraz para el problema de cobertura de conjuntos", Mathematics of Operations Research , 4 (3): 233– 235, Bibcode : 1979MatOR...4..233C , doi : 10.1287/moor.4.3.233 , JSTOR 3689577
- ↑ Johnson, DS (1974), "Algoritmos de aproximación para problemas combinatorios", Journal of Computer and System Sciences , 9 (3): 256– 278, Bibcode : 1974JCoSS...9..256J , doi : 10.1016/S0022-0000(74)80044-9
- ↑ Lovász, L. (1975), "Sobre la razón de coberturas integrales y fraccionarias óptimas", Matemáticas Discretas , 13 (4): 383– 390, doi : 10.1016/0012-365X(75)90058-2 (inactivo el 19 de diciembre de 2025)
{{citation}}: CS1 maint: DOI inactivo desde diciembre de 2025 ( enlace ) - ↑ Karpinski y Zelikovsky 1998
- ↑ Slavík Petr Un análisis riguroso del algoritmo voraz para la cobertura de conjuntos . STOC'96, Páginas 435-441, doi : 10.1145/237814.237991
- ^ Vazirani (2001 , págs. 118-119)
- ↑ Hochbaum, Dorit S. (1982), "Algoritmos de aproximación para los problemas de cobertura de conjuntos y cobertura de vértices", SIAM Journal on Computing , 11 (3): 555–556 , doi : 10.1137/0211045 , ISSN 0097-5397
- ↑ Bar-Yehuda, Reuven ; Even, Shimon (1981), "Un algoritmo de aproximación en tiempo lineal para el problema de cobertura de vértices ponderada", Journal of Algorithms , 2 (2): 198–203 , doi : 10.1016/0196-6774(81)90016-7 (inactivo el 19 de diciembre de 2025), ISSN 0196-6774
{{citation}}: CS1 maint: DOI inactivo desde diciembre de 2025 ( enlace ) - ↑ Young, Neal E. (2016), "Algoritmos voraces de cobertura de conjuntos", Enciclopedia de algoritmos , Springer, págs. 886–889 , ISBN 978-1-4939-2868-7
{{citation}}: Valor de comprobación|isbn=: suma de comprobación ( ayuda ) - ↑ Williamson, David P.; Shmoys , David B. (2011), El diseño de algoritmos de aproximación , Cambridge University Press, ISBN 978-0-521-19578-7
{{citation}}: Valor de comprobación|isbn=: suma de comprobación ( ayuda ) - ↑ Información., Laboratorios Nacionales Sandia. Estados Unidos. Departamento de Energía. Estados Unidos. Departamento de Energía. Oficina Científica y Técnica (1999). Sobre el problema de la cobertura del conjunto rojo-azul . Estados Unidos. Departamento de Energía. OCLC 68396743 .
- ↑ Gainer-Dewar, Andrew; Vera-Licona, Paola (2017), "El problema de generación del conjunto mínimo de coincidencias: algoritmos y computación", SIAM Journal on Discrete Mathematics , 31 (1): 63–100 , arXiv : 1601.02939 , doi : 10.1137/15M1055024 , MR 3590650 , S2CID 9240467
Referencias
- Alon, Noga ; Moshkovitz, Dana ; Safra, Shmuel (2006), "Construcción algorítmica de conjuntos para k-restricciones", ACM Trans. Algorithms , 2 (2): 153– 177, CiteSeerX 10.1.1.138.8682 , doi : 10.1145/1150334.1150336 , ISSN 1549-6325 , S2CID 11922650 .
- Cormen, Thomas H .; Leiserson, Charles E .; Rivest, Ronald L .; Stein, Clifford (2001), Introducción a los algoritmos , Cambridge, Mass.: MIT Press y McGraw-Hill, págs. 1033-1038 , ISBN 978-0-262-03293-3
- Feige, Uriel (1998), "Un umbral de ln n para aproximar la cobertura de conjuntos", Journal of the ACM , 45 (4): 634– 652, CiteSeerX 10.1.1.70.5014 , doi : 10.1145/285055.285059 , ISSN 0004-5411 , S2CID 52827488 .
- Karpinski, Marek; Zelikovsky, Alexander (1998), "Aproximación de casos densos de problemas de cobertura", Actas del Taller DIMACS sobre Diseño de Redes: Conectividad y Localización de Instalaciones , vol. 40, American Mathematical Society, pp. 169–178 , ISBN 9780821870846
- Lund, Carsten ; Yannakakis, Mihalis (1994), "Sobre la dificultad de aproximar problemas de minimización", Journal of the ACM , 41 (5): 960–981 , doi : 10.1145/185675.306789 , ISSN 0004-5411 , S2CID 9021065 .
- Raz, Ran ; Safra, Shmuel (1997), "Una prueba de bajo grado con probabilidad de error subconstante y una caracterización PCP de NP con probabilidad de error subconstante", STOC '97: Actas del vigésimo noveno simposio anual de la ACM sobre Teoría de la Computación , ACM, págs. 475–484 , ISBN 978-0-89791-888-6.
- Dinur, Irit ; Steurer, David ( 2013), "Enfoque analítico para la repetición paralela", STOC '14: Actas del cuadragésimo sexto simposio anual de la ACM sobre Teoría de la Computación , ACM, págs. 624–633 .
- Vazirani, Vijay V. (2001), Algoritmos de aproximación (PDF) , Springer-Verlag, ISBN 978-3-540-65367-7
- Korte, Bernhard ; Vygen, Jens (2012), Optimización combinatoria: teoría y algoritmos (5 ed.), Springer, ISBN 978-3-642-24487-2
- Cardoso, Nuno; Abreu, Rui (2014), "Un algoritmo distribuido eficiente para el cálculo de conjuntos mínimos de coincidencias" (PDF) , Actas del 25.º Taller Internacional sobre Principios de Diagnóstico , Graz, Austria, doi : 10.5281/zenodo.10037
{{citation}}: CS1 mantenimiento: falta el editor de ubicación ( enlace ) - Dinur, Irit ; Guruswami, Venkatesan ; Khot, Subhash ; Regev, Oded (2003), Un nuevo PCP multicapa y la dificultad de la cobertura de vértices de hipergrafos , Association for Computing Machinery, pp. 595–601 , doi : 10.1145/780542.780629 , ISBN 1581136749
- Khot, Subhash ; Regev, Oded (2008), La cobertura de vértices podría ser difícil de aproximar dentro de 2−, Revista de Ciencias de la Computación y de Sistemas, págs. 335–349 , doi : 10.1016/j.jcss.2007.06.019
- Trevisan, Luca (2001), "Resultados de no aproximación para problemas de optimización en instancias de grado acotado" , Actas del trigésimo tercer simposio anual de la ACM sobre Teoría de la Computación , Association for Computing Machinery, pp. 453–461 , doi : 10.1145/380752.380839 , ISBN 1-58113-349-9
Enlaces externos
- Puntos de referencia con soluciones óptimas ocultas para la cobertura de sets, el empaquetamiento de sets y la determinación del ganador. Archivado el 25/07/2017 en Wayback Machine.
- Compendio de problemas de optimización NP: Cobertura mínima de conjuntos
- Familias de conjuntos
- problemas NP-completos
- Programación lineal
- Algoritmos de aproximación
- Problemas de cobertura