El problema de la cobertura del conjunto es una pregunta clásica en combinatoria , informática , investigación de operaciones y teoría de la complejidad . Es uno de los 21 problemas de NP completo de Karp que se demostró que era NP completo en 1972.
Es un problema "cuyo estudio ha llevado al desarrollo de técnicas fundamentales para todo el campo" de los algoritmos de aproximación . [1]
Dado un conjunto de elementos (llamado el universo ) y una colección de conjuntos cuya unión es igual al universo, el problema de la cubierta del conjunto es identificar la subcolección más pequeña decuya unión es igual al universo. Por ejemplo, considere el universo y la colección de conjuntos . Claramente la unión de es . Sin embargo, podemos cubrir todos los elementos con el siguiente número menor de conjuntos:.
Más formalmente, dado un universo y una familia de subconjuntos de , una portada es una subfamilia de conjuntos cuya unión es . En el problema de decisión de cobertura del conjunto , la entrada es un par y un entero ; la pregunta es si hay una cobertura de tamaño establecidao menos. En el conjunto que cubre el problema de optimización , la entrada es un par, y la tarea es encontrar una cobertura de conjunto que use la menor cantidad de conjuntos.
La versión de decisión de la cobertura del conjunto es NP-completa , y la versión de optimización / búsqueda de la cobertura del conjunto es NP-hard . [2]
Si a cada conjunto se le asigna un costo, se convierte en un problema de cobertura de conjunto ponderado .
Formulación de programa lineal entero [ editar ]
El problema de cobertura de conjunto mínimo se puede formular como el siguiente programa lineal entero (ILP). [3]
minimizar | (minimizar el número de juegos) | ||
sujeto a | para todos | (cubre todos los elementos del universo) | |
para todos . | (cada conjunto está en la cubierta del conjunto o no) |
Este ILP pertenece a la clase más general de ILP para cubrir problemas . La brecha de integralidad de este ILP es como máximo, por lo que su relajación da un factor algoritmo de aproximación para el problema de cobertura de conjunto mínimo (dondees el tamaño del universo). [4]
En la cubierta del conjunto ponderado, los conjuntos tienen pesos asignados. Denota el peso del conjunto por . Entonces, el programa lineal entero que describe la cobertura del conjunto ponderado es idéntico al dado anteriormente, excepto que la función objetivo para minimizar es.
Formulación de conjunto de golpes [ editar ]
La cobertura del conjunto es equivalente al problema del conjunto de golpes . Esto se observa al observar que una instancia de cobertura de conjuntos se puede ver como un gráfico bipartito arbitrario , con conjuntos representados por vértices a la izquierda, el universo representado por vértices a la derecha y bordes que representan la inclusión de elementos en conjuntos. La tarea es encontrar un subconjunto de cardinalidad mínima de vértices izquierdos que cubra todos los vértices derechos. En el problema del conjunto de golpes, el objetivo es cubrir los vértices izquierdos utilizando un subconjunto mínimo de los vértices derechos. Por lo tanto, la conversión de un problema a otro se logra intercambiando los dos conjuntos de vértices.
Algoritmo codicioso [ editar ]
Existe un algoritmo codicioso para la aproximación del tiempo polinómico de la cobertura de conjuntos que elige conjuntos de acuerdo con una regla: en cada etapa, elija el conjunto que contenga la mayor cantidad de elementos descubiertos. Se puede demostrar [5] que este algoritmo logra una relación de aproximación de, dónde es el tamaño del conjunto a cubrir. En otras palabras, encuentra una cobertura que puede ser veces más grande que el mínimo, donde es el -th número armónico :
Este algoritmo codicioso en realidad logra una relación de aproximación de dónde es el conjunto de cardinalidad máxima de . porinstancias densas, sin embargo, existe un algoritmo de aproximación para cada . [6]
Hay un ejemplo estándar en el que el algoritmo codicioso logra una relación de aproximación de . El universo consiste enelementos. El sistema establecido consta de conjuntos disjuntos por pares con tamaños respectivamente, así como dos conjuntos disjuntos adicionales , cada uno de los cuales contiene la mitad de los elementos de cada . En esta entrada, el algoritmo codicioso toma los conjuntos , en ese orden, mientras que la solución óptima consiste solo en y . Un ejemplo de tal entrada para se muestra a la derecha.
Los resultados de inaproximabilidad muestran que el algoritmo codicioso es esencialmente el mejor algoritmo de aproximación de tiempo polinomial posible para la cobertura del conjunto hasta los términos de orden inferior (ver los resultados de inaproximabilidad a continuación), bajo supuestos de complejidad plausible. Un análisis más estricto para el algoritmo codicioso muestra que la relación de aproximación es exactamente. [7]
Sistemas de baja frecuencia [ editar ]
Si cada elemento aparece en la mayoría de los conjuntos f , entonces se puede encontrar una solución en el tiempo polinomial que se aproxima al óptimo dentro de un factor de f usando relajación LP .
Si la restricción es reemplazado por para todos los S enen el programa lineal entero que se muestra arriba , se convierte en un programa lineal L (no entero) . El algoritmo se puede describir de la siguiente manera:
- Encuentre una solución óptima O para el programa L utilizando algún método de tiempo polinómico para resolver programas lineales.
- Recoger todos los conjuntos S para el que la variable correspondiente x S tiene un valor de al menos 1 / f en la solución de O . [8]
Resultados de inaproximabilidad [ editar ]
Cuando se refiere al tamaño del universo, Lund y Yannakakis (1994) demostraron que la cobertura del conjunto no puede aproximarse en tiempo polinómico a un factor de, a menos que NP tenga algoritmos de tiempo cuasi polinomiales . Feige (1998) mejoró este límite inferior abajo los mismos supuestos, que esencialmente coinciden con la relación de aproximación lograda por el algoritmo codicioso. Raz y Safra (1997) establecieron un límite inferior de, dónde es una cierta constante, bajo el supuesto más débil de que PNP . Un resultado similar con un mayor valor defue probado recientemente por Alon, Moshkovitz y Safra (2006) . Dinur y Steurer (2013) mostraron una aproximación óptima al demostrar que no puede aproximarse aa menos que PNP .
Cubierta del conjunto ponderado [ editar ]
Relajando el programa lineal entero para la cobertura del conjunto ponderado indicado anteriormente , se puede usar el redondeo aleatorio para obtener un-aproximación de factores. El análisis correspondiente para la cobertura del conjunto no ponderado se describe en Redondeo aleatorio # Algoritmo de redondeo aleatorio para la cobertura del conjunto y se puede adaptar al caso ponderado.
En la teoría de la complejidad computacional , el problema de la división de conjuntos es el siguiente problema de decisión : dada una familia F de subconjuntos de un conjunto finito S , decida si existe una partición de S en dos subconjuntos S 1 , S 2 de modo que todos los elementos de F sean dividido por esta partición, es decir, ninguno de los elementos de F está completamente en S 1 o S 2 . Set Splitting es uno de los problemas clásicos de NP completos de Garey & Johnson . [1]
Variantes [ editar ]
La versión optimización de este problema se llama Max Set Splitting y requiere encontrar la partición que maximiza el número de elementos de división de F . Es un problema APX-complete [2] y, por lo tanto, en NPO .
El problema Set k -Splitting se establece como sigue: dado S , F y un entero k , ¿existe una partición de S que divide al menos k subconjuntos de F ? La formulación original es el caso restringido con k igual a la cardinalidad de F . El Set k -Splitting es manejable con parámetros fijos , es decir, si k se considera un parámetro fijo, en lugar de una parte de la entrada, entonces existe un algoritmo polinómico para cualquier k fijo. Dehne, Fellows y Rosamond presentaron un algoritmo que lo resuelve a tiempo para alguna función f y constante c . [3]
Cuando cada elemento de F está restringido para ser de cardinalidad exactamente k , la variante de decisión se llama E k -Set Splitting y la versión de optimización Max E k -Set Splitting . Para k > 2, el primero permanece NP completo, y para k ≥ 2, el último permanece APX completo. [4] Para k ≥ 4, E k -Set Splitting es resistente a la aproximación. Es decir, a menos que P = NP, no existe un algoritmo de aproximación de tiempo polinomial (factor) que funcione esencialmente mejor que una partición aleatoria. [5] [6]
La división de conjunto ponderado es una variante en la que los subconjuntos en F tienen pesos y el objetivo es maximizar el peso total de los subconjuntos divididos.
Conexión a otros problemas [ editar ]
La división de conjuntos es un caso especial del problema de satisfacción no todo igual sin variables negadas. Además, E k -Set Splitting es igual a la coloración gráfica no monocromática de las hipergrafías k- uniformes . Para k = 2, la variante de optimización se reduce al conocido corte máximo .
En informática , el costo mínimo de enrutamiento que abarca el árbol de un gráfico ponderado es un árbol de expansión que minimiza la suma de las distancias por pares entre los vértices del árbol. También se conoce como la distancia óptima árbol de expansión , más corta longitud de la trayectoria total del árbol que abarca , la distancia mínima total del árbol de expansión , o árbol de expansión mínima distancia media . En un gráfico no ponderado, este es el árbol de expansión del índice Wiener mínimo . [1] Hu (1974) escribe que el problema de construir estos árboles fue propuesto por Francesco Maffioli. [2]
Es NP-difícil de construir, incluso para gráficos no ponderados. [3] [4] Sin embargo, tiene un esquema de aproximación de tiempo polinomial . La aproximación funciona eligiendo un número eso depende de la relación de aproximación pero no del número de vértices del gráfico de entrada, y buscando entre todos los árboles con nodos internos [5]
El costo mínimo de enrutamiento que abarca el árbol de un gráfico de intervalo no ponderado se puede construir en tiempo lineal. [6] También se conoce un algoritmo de tiempo polinomial para gráficos hereditarios de distancia , ponderados para que las distancias ponderadas sean hereditarias.
No hay comentarios:
Publicar un comentario