fbpx
Wikipedia

Problema del conjunto de cobertura

El problema del Set Covering, también conocido por sus siglas SCP es un problema clásico en combinatoria, ciencias de la computación y teoría de la complejidad computacional. Es un problema que ha llevado al desarrollo de técnicas fundamentales para el campo de los algoritmos de aproximación.[1]​ También es uno de los problemas de la Lista de 21 problemas NP-completos de Karp cuya NP-completitud fue demostrada en 1972.

Dado un conjunto de elementos (llamado universo) y conjuntos cuya unión comprende el universo, el problema del conjunto de cobertura consiste en identificar el menor número de conjuntos cuya unión aun contiene todos los elementos del universo. Por ejemplo, sea y los conjuntos . Claramente, la unión de todos los conjuntos de contiene todos los elementos de . Sin embargo, podemos cubrir todos los elementos con el siguiente conjunto de elementos, con menor número de elementos: .

Definición formal

Formalmente, se puede definir un problema de cobertura de conjuntos de la siguiente forma: Sea el universo   y la familia   de subconjuntos de  , una cobertura es una subfamilia   de conjuntos cuya unión es  .

Problema de decisión de cobertura de conjuntos

En el problema de decisión de cobertura de conjuntos, la entrada es un par   y un entero   y la pregunta es si existe un conjunto de cobertura de tamaño   o menos.

Esta versión es un problema NP-completo.

Problema de optimización de cobertura de conjuntos

En el problema de optimización de cobertura de conjuntos, la entrada es un par   y la tarea es encontrar un conjunto de cobertura que use los menos conjuntos posibles.

Esta versión es un problema NP-hard.

Formulación con programación lineal entera

El problema de cobertura de conjuntos se puede formular como la siguiente programación lineal de enteros (ILP por su nombre en inglés).[2]

minimizar   (minimizar el coste total)
cumpliendo   para todo   (cubriendo todos los elementos del universo)
  para todo  . (todo conjunto, esté o no en conjunto de cobertura)

Esta ILP pertenece a la clase más general de ILPs para problemas de cobertura. La diferencia de integralidad de esta ILP es, como máximo,  , por lo tanto su relajación ofrece un algoritmo de aproximación de factor   para el problema de cobertura mínima de conjuntos (donde   es el tamaño del universo).[3]

Algoritmo voraz

El algoritmo voraz para cobertura de conjuntos elige conjuntos de acuerdo a una regla: en cada paso, elegir el conjunto que tiene el mayor número de elementos no elegidos. Se puede demostrar que este algoritmo consigue un ratio de aproximación de  ,[4]​ donde   es el tamaño del conjunto a cubrir y   es el  -esimo número armónico:

 

 

Hay un ejemplo estándar donde el algoritmo voraz obtiene un ratio de aproximación de  . El universo consta de   elementos. El sistema de conjuntos consiste en   pares de conjuntos disjuntos   con tamaños   respectivamente, así como dos conjuntos disjuntos adicionales  , cada uno de los cuales contiene la mitad de los elementos de cada  . Con estas entradas, el algoritmo voraz coge los conjuntos  , en ese orden, mientras que la solución óptima consistiría en escoger solamente   y  .

Un ejemplo de estas entradas para   se puede observar en la figura de la derecha.

Estos resultados tan poco cercanos a la solución óptima muestran que el algoritmo voraz es esencialmente el mejor algoritmo de aproximación en tiempo polinómico para el problema de cobertura de conjuntos, entre supuestos de complejidad plausible.

Sistemas de baja frecuencia

Si cada elemento se encuentra en   conjuntos como máximo, se puede encontrar una solución en tiempo polinómico que se aproxime al óptimo con dentro de un factor f usando relajación de programación lineal.[5]

Resultados poco óptimos

Lund y Yannakakis (1994) demostraron que el problema de cobertura de conjuntos no puede aproximarse en tiempo polinómico dentro de un factor de  , a menos que NP tenga algoritmos de tiempo cuasi-polinómico. Feige (1998) mejoró este límite a   bajo las mismas condiciones, que prácticamente coincide con el ratio de aproximación del algoritmo voraz. Raz y Safra (1997) estableció la frontera inferior de  , donde   es una constante, asumiendo que P NP.[6]​ Un resultado similar, pero con mayor valor de   fue recientemente probado por Alon, Moshkovitz y Safra (2006).

Ejemplo

 
Figura 1: Ejemplo de set covering para la cobertura de comunas.

Una estación de bomberos tiene la capacidad de cubrir las emergencias tanto de su comuna como de las comunas adyacentes a ella, por ejemplo una estación construida en la comuna 1 (Figura 1) podrá cubrir las emergencias de todo su vecindario, es decir, de la comuna 1, comuna 2, comuna 3 y comuna 5. Se necesitan construir tantas estaciones de bomberos como sea necesario para cubrir todas las comunas ante posibles emergencias, cuidando que todas las comunas estén cubiertas por al menos una estación (una o más), minimizando el número de estaciones construidas.

Modelo matemático

Sea:

 

podemos formular el problema de la siguiente forma:

 

cumpliendo las siguientes restricciones:

 

 

 

 

 

 

 

 

 

 

 

 

 
Solución óptima: En verde, las comunas cubiertas por la estación en 5; en amarillo, las cubiertas por la estación en 8; y en azul, las cubiertas 2 veces.

Solución

Una solución para este problema sería construir estaciones en las comunas 5 y 8. Con un total de 2 estaciones construidas se lograría cubrir las necesidades de todas las comunas del problema.

Véase también

Referencias

  1. Vazirani (2001, p. 15)
  2. Vazirani (2001, p. 108)
  3. Vazirani (2001, pp. 110–112)
  4. Chvatal, V. A Greedy Heuristic for the Set-Covering Problem. Mathematics of Operations Research Vol. 4, No. 3 (Aug., 1979), pp. 233-235
  5. Vazirani (2001, pp. 118-119)
  6. Relación entre N y NP
  •   Datos: Q1192100
  •   Multimedia: Set cover problem

problema, conjunto, cobertura, problema, covering, también, conocido, siglas, problema, clásico, combinatoria, ciencias, computación, teoría, complejidad, computacional, problema, llevado, desarrollo, técnicas, fundamentales, para, campo, algoritmos, aproximac. El problema del Set Covering tambien conocido por sus siglas SCP es un problema clasico en combinatoria ciencias de la computacion y teoria de la complejidad computacional Es un problema que ha llevado al desarrollo de tecnicas fundamentales para el campo de los algoritmos de aproximacion 1 Tambien es uno de los problemas de la Lista de 21 problemas NP completos de Karp cuya NP completitud fue demostrada en 1972 Dado un conjunto de elementos 1 2 m displaystyle 1 2 m llamado universo y n displaystyle n conjuntos cuya union comprende el universo el problema del conjunto de cobertura consiste en identificar el menor numero de conjuntos cuya union aun contiene todos los elementos del universo Por ejemplo sea U 1 2 3 4 5 displaystyle U 1 2 3 4 5 y los conjuntos S 1 2 3 2 4 3 4 4 5 displaystyle S 1 2 3 2 4 3 4 4 5 Claramente la union de todos los conjuntos de S displaystyle S contiene todos los elementos de U displaystyle U Sin embargo podemos cubrir todos los elementos con el siguiente conjunto de elementos con menor numero de elementos 1 2 3 4 5 displaystyle 1 2 3 4 5 Indice 1 Definicion formal 1 1 Problema de decision de cobertura de conjuntos 1 2 Problema de optimizacion de cobertura de conjuntos 2 Formulacion con programacion lineal entera 3 Algoritmo voraz 4 Sistemas de baja frecuencia 5 Resultados poco optimos 6 Ejemplo 6 1 Modelo matematico 6 2 Solucion 7 Vease tambien 8 ReferenciasDefinicion formal EditarFormalmente se puede definir un problema de cobertura de conjuntos de la siguiente forma Sea el universo U displaystyle mathcal U y la familia S displaystyle mathcal S de subconjuntos de U displaystyle mathcal U una cobertura es una subfamilia C S displaystyle mathcal C subseteq mathcal S de conjuntos cuya union es U displaystyle mathcal U Problema de decision de cobertura de conjuntos Editar En el problema de decision de cobertura de conjuntos la entrada es un par U S displaystyle mathcal U mathcal S y un entero k displaystyle k y la pregunta es si existe un conjunto de cobertura de tamano k displaystyle k o menos Esta version es un problema NP completo Problema de optimizacion de cobertura de conjuntos Editar En el problema de optimizacion de cobertura de conjuntos la entrada es un par U S displaystyle mathcal U mathcal S y la tarea es encontrar un conjunto de cobertura que use los menos conjuntos posibles Esta version es un problema NP hard Formulacion con programacion lineal entera EditarEl problema de cobertura de conjuntos se puede formular como la siguiente programacion lineal de enteros ILP por su nombre en ingles 2 minimizar S S c S x S displaystyle sum S in mathcal S c S cdot x S minimizar el coste total cumpliendo S e S x S 1 displaystyle sum S colon e in S x S geqslant 1 para todo e U displaystyle e in mathcal U cubriendo todos los elementos del universo x S 0 1 displaystyle x S in 0 1 para todo S S displaystyle S in mathcal S todo conjunto este o no en conjunto de cobertura Esta ILP pertenece a la clase mas general de ILPs para problemas de cobertura La diferencia de integralidad de esta ILP es como maximo log n displaystyle scriptstyle log n por lo tanto su relajacion ofrece un algoritmo de aproximacion de factor log n displaystyle scriptstyle log n para el problema de cobertura minima de conjuntos donde n displaystyle scriptstyle n es el tamano del universo 3 Algoritmo voraz EditarEl algoritmo voraz para cobertura de conjuntos elige conjuntos de acuerdo a una regla en cada paso elegir el conjunto que tiene el mayor numero de elementos no elegidos Se puede demostrar que este algoritmo consigue un ratio de aproximacion de H s displaystyle H s 4 donde s displaystyle s es el tamano del conjunto a cubrir y H n displaystyle H n es el n displaystyle n esimo numero armonico H n k 1 n 1 k ln n 1 displaystyle H n sum k 1 n frac 1 k leq ln n 1 Hay un ejemplo estandar donde el algoritmo voraz obtiene un ratio de aproximacion de log 2 n 2 displaystyle log 2 n 2 El universo consta de n 2 k 1 2 displaystyle n 2 k 1 2 elementos El sistema de conjuntos consiste en k displaystyle k pares de conjuntos disjuntos S 1 S k displaystyle S 1 ldots S k con tamanos 2 4 8 2 k displaystyle 2 4 8 ldots 2 k respectivamente asi como dos conjuntos disjuntos adicionales T 0 T 2 displaystyle T 0 T 2 cada uno de los cuales contiene la mitad de los elementos de cada S i displaystyle S i Con estas entradas el algoritmo voraz coge los conjuntos S k S 1 displaystyle S k ldots S 1 en ese orden mientras que la solucion optima consistiria en escoger solamente T 0 displaystyle T 0 y T 1 displaystyle T 1 Un ejemplo de estas entradas para k 3 displaystyle k 3 se puede observar en la figura de la derecha Estos resultados tan poco cercanos a la solucion optima muestran que el algoritmo voraz es esencialmente el mejor algoritmo de aproximacion en tiempo polinomico para el problema de cobertura de conjuntos entre supuestos de complejidad plausible Sistemas de baja frecuencia EditarSi cada elemento se encuentra en f displaystyle f conjuntos como maximo se puede encontrar una solucion en tiempo polinomico que se aproxime al optimo con dentro de un factor f usando relajacion de programacion lineal 5 Resultados poco optimos EditarLund y Yannakakis 1994 demostraron que el problema de cobertura de conjuntos no puede aproximarse en tiempo polinomico dentro de un factor de 1 2 log 2 n 0 72 ln n displaystyle tfrac 1 2 log 2 n approx 0 72 ln n a menos que NP tenga algoritmos de tiempo cuasi polinomico Feige 1998 mejoro este limite a 1 o 1 ln n displaystyle bigl 1 o 1 bigr cdot ln n bajo las mismas condiciones que practicamente coincide con el ratio de aproximacion del algoritmo voraz Raz y Safra 1997 establecio la frontera inferior de c ln n displaystyle c cdot ln n donde c displaystyle c es una constante asumiendo que P displaystyle not NP 6 Un resultado similar pero con mayor valor de c displaystyle c fue recientemente probado por Alon Moshkovitz y Safra 2006 Ejemplo Editar Figura 1 Ejemplo de set covering para la cobertura de comunas Una estacion de bomberos tiene la capacidad de cubrir las emergencias tanto de su comuna como de las comunas adyacentes a ella por ejemplo una estacion construida en la comuna 1 Figura 1 podra cubrir las emergencias de todo su vecindario es decir de la comuna 1 comuna 2 comuna 3 y comuna 5 Se necesitan construir tantas estaciones de bomberos como sea necesario para cubrir todas las comunas ante posibles emergencias cuidando que todas las comunas esten cubiertas por al menos una estacion una o mas minimizando el numero de estaciones construidas Modelo matematico Editar Sea x i 1 se construye estacion en la comuna i 0 en otro caso displaystyle x i begin cases 1 amp mbox se construye estacion en la comuna i 0 amp mbox en otro caso end cases podemos formular el problema de la siguiente forma M i n i 1 12 x i displaystyle Min sum i 1 12 x i cumpliendo las siguientes restricciones x 1 x 2 x 3 x 5 1 displaystyle x 1 x 2 x 3 x 5 geq 1 x 2 x 1 x 5 1 displaystyle x 2 x 1 x 5 geq 1 x 3 x 1 x 4 x 5 x 6 x 7 x 8 1 displaystyle x 3 x 1 x 4 x 5 x 6 x 7 x 8 geq 1 x 4 x 3 x 5 x 6 x 11 1 displaystyle x 4 x 3 x 5 x 6 x 11 geq 1 x 5 x 1 x 2 x 3 x 4 x 10 x 11 1 displaystyle x 5 x 1 x 2 x 3 x 4 x 10 x 11 geq 1 x 6 x 3 x 4 x 8 x 11 1 displaystyle x 6 x 3 x 4 x 8 x 11 geq 1 x 7 x 3 x 8 x 12 1 displaystyle x 7 x 3 x 8 x 12 geq 1 x 8 x 3 x 6 x 7 x 9 x 11 x 12 1 displaystyle x 8 x 3 x 6 x 7 x 9 x 11 x 12 geq 1 x 9 x 8 x 10 x 11 x 12 1 displaystyle x 9 x 8 x 10 x 11 x 12 geq 1 x 10 x 5 x 9 x 11 1 displaystyle x 10 x 5 x 9 x 11 geq 1 x 11 x 4 x 5 x 6 x 8 x 9 x 10 1 displaystyle x 11 x 4 x 5 x 6 x 8 x 9 x 10 geq 1 x 12 x 7 x 8 x 9 1 displaystyle x 12 x 7 x 8 x 9 geq 1 Solucion optima En verde las comunas cubiertas por la estacion en 5 en amarillo las cubiertas por la estacion en 8 y en azul las cubiertas 2 veces Solucion Editar Una solucion para este problema seria construir estaciones en las comunas 5 y 8 Con un total de 2 estaciones construidas se lograria cubrir las necesidades de todas las comunas del problema Vease tambien EditarProblema de la cobertura de vertices Cobertura de aristasReferencias Editar Vazirani 2001 p 15 Vazirani 2001 p 108 Vazirani 2001 pp 110 112 Chvatal V A Greedy Heuristic for the Set Covering Problem Mathematics of Operations Research Vol 4 No 3 Aug 1979 pp 233 235 Vazirani 2001 pp 118 119 Relacion entre N y NP Alon Noga Moshkovitz Dana Safra Shmuel 2006 Algorithmic construction of sets for k restrictions ACM Trans Algorithms ACM 2 2 153 177 ISSN 1549 6325 doi 10 1145 1150334 1150336 Cormen Thomas H Leiserson Charles E Rivest Ronald L Stein Clifford 2001 Introduction to Algorithms Cambridge Mass MIT Press and McGraw Hill pp 1033 1038 ISBN 0 262 03293 7 Feige Uriel 1998 A threshold of ln n for approximating set cover Journal of the ACM ACM 45 4 634 652 ISSN 0004 5411 doi 10 1145 285055 285059 Lund Carsten Yannakakis Mihalis 1994 On the hardness of approximating minimization problems Journal of the ACM ACM 41 5 960 981 ISSN 0004 5411 doi 10 1145 185675 306789 Raz Ran Safra Shmuel 1997 A sub constant error probability low degree test and a sub constant error probability PCP characterization of NP STOC 97 Proceedings of the twenty ninth annual ACM symposium on Theory of computing ACM pp 475 484 ISBN 978 0 89791 888 6 Vazirani Vijay V 2001 Approximation Algorithms Springer Verlag ISBN 3 540 65367 8 Datos Q1192100 Multimedia Set cover problemObtenido de https es wikipedia org w index php title Problema del conjunto de cobertura amp oldid 137194180, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos