Vous êtes sur la page 1sur 10

EL PROBLEMA DEL RECUBRIMIENTO O COBERTURA MNIMA Set cover problem Dados los conjuntos de objetos S1,S2,,Sn.

Por ejemplo: S1={O1} S2={O2,O3} S3={O3,O4} S4={O2,O4} S5={O4} Podemos formar un universo U, uniendo todos esos conjuntos. U = S1 S2 Sn En el ejemplo: U={O1,O2,O3,O4} O bien podemos partir de un universo U y de un conjunto {S1,S2,,Sn} de subconjuntos de U (cuya unin es el universo). Es claro que podemos trabajar slo con los subndices. En el ejemplo: U={1,2,3,4} S1={1} S2={2,3} S3={3,4} S4={2,4} S5={4} El problema de cobertura mnima consiste en seleccionar el menor nmero de subconjuntos tales que su unin devuelva el universo. En el ejemplo S1,S2 no es solucin pues S1 S2 U. En el ejemplo S1,S2,S3,S4 no es solucin pues aunque su unin es U, no es mnimo (tiene cuatro subconjuntos). Hay otra seleccin con menos subconjuntos (por ejemplo S1,S2,S4) EL ALGORITMO LT Para el problema de cobertura mnima Dado el universo U y un conjunto {S1,S2,,Sn} de subconjuntos de U (cuya unin es el universo), hallar el menor nmero de subconjuntos Si1,Si2,,Sik tal que Sij = U (1jk)

En esta propuesta incluiremos la idea de subconjunto imprescindible y explotaremos la idea de inclusin. Sea Si la unin de todos los subconjuntos que estamos considerando

actualmente. Llamaremos imprescindible al conjunto Sj, si [ Si - Sj] U En el ejemplo anterior S1 es imprescindible, pues sin l no cubrimos el elemento 1. Cada vez que se incluya un subconjunto en la solucin, podemos desaparecer los elementos de dicho subconjunto, tanto del universo cmo los dems subconjuntos, pues ya estn cubiertos. Llamaremos a esto redimensionar el problema. En el ejemplo anterior si incluimos S1 en la solucin, entonces la redimensin dara: U={2,3,4} S2={2,3} S3={3,4} S4={2,4} S5={4} Si algn subconjunto est incluido en otro, su eliminacin no influye en la solucin. En el ltimo problema (redimensionado) S5 S3 de manera que S5 puede eliminarse pues todos sus elementos estaran cubiertos seleccionando S3 para la solucin. Adems propondremos un mecanismo para disminuir subconjuntos, mismo que explota la idea de disyuncin. Si Si Sj = {}, entonces eliminaremos ambos subconjuntos y aadiremos uno nuevo resultante de su unin. Ejemplo: U={1,2,3,4} S1={1,2} S2={3,4} S3={1,3} S4={2,4} S1 S2 = {}, los eliminamos y aadimos su unin bajo el nombre de S5: U={1,2,3,4} S3={1,3} S5={1,2,3,4}

Llamaremos supracardinalidad de un subconjunto al nmero de subconjuntos que lo componen. Los subconjuntos originales tienen supracardinalidad igual a 1. En el ejemplo S5 tienen supracardinalidad igual a 2. Este proceso puede aadir varios subconjuntos nuevos y es posible que con estas adiciones, tanto Si Sj como Sj Si, es decir Si = Sj. En este caso, eliminamos el subconjunto con mayor supracardinalidad. Si en algn caso slo hay subconjuntos prescindibles. Debemos elegir cul dejar de tomar en cuenta o bien cul incluir en la solucin. En este caso, dicha seleccin la haremos en base al siguiente heurstico: Construimos una tabla donde supondremos la eliminacin de cada uno de los subconjuntos, uno por cada fila. Luego a partir de esa eliminacin supuesta (sin dicho subconjunto eliminado), obtendremos una lista de subconjuntos imprescindibles. Al finalizar obtendremos un acumulado de imprescindibilidad. Si eliminamos el subconjunto: S1 S2 S3 S4 S5 Ejemplo: U={1,2,3,4,5} S1={1,3,5} S2={2,3} S3={2,4,5} S4={1,2,5} S5={1,2,4} Acumulado por imprescindibilidad S2 S3 S4 S5 1 1 0 1 Resultan imprescindibles S2 (por el elemento 3) S1 (por el elemento 3) S5 (por el elemento 4) S3
(por el elemento 1)

S1 1

Respecto del acumulado: Si existen subconjuntos con 0, los eliminamos a todos ellos (pero no redimensionamos). Si no, si todos tienen igual acumulado, eliminamos uno cualquiera (pero no redimensionamos).

Si no, si existen imprescindibles mximos aadimos uno de ellos a la solucin (redimensin). El algoritmo queda as:
Entrada: Un conjunto universo U. Un grupo de subconjuntos Si Salida: Una cobertura mnima para U. REPETIR Case: Existe una inclusin Si Sj: SI (Sj Si) Eliminar Si (no hay redimensin) Else Eliminar el subconjunto de mayor supracardinalidad Existen subconjuntos imprescindibles: Aadirlos a la solucin
(redimensin)

Existe una disyuncin: Eliminar los subconjuntos involucrados aadir el nuevo subconjunto (registrar su
(no hay redimensin)

supracardinalidad)

Slo hay prescindibles: Elaborar la tabla y el acumulado: Si hay subconjuntos con acumulado 0 eliminarlos (no hay redimensin) else si todos tienen igual acumulado eliminar cualquiera (no hay redimensin) else (hay algn(os) con acumulado mximo) aadir cualquier mximo a la solucin
aadido) (redimensionar, eliminando el

FinCase HASTA U = {} Deshacer las uniones de subconjuntos disjuntos de la solucin Realizar un ltimo clculo de imprescindibilidad con esos subconjuntos Para la solucin final incluir slo los subconjuntos imprescindibles

Ejemplo: U = {1, 2, 3, 4, 5, 6, 7, 8} S1 = {1, 3, 5, 6, 7, 8} S2 = {2, 3, 6} S3 = {3, 4, 6, 8} S4 = {1, 4, 6} S5 = {2, 5, 6} S6 = {4, 5, 6, 7} S7 = {4, 5, 6, 8} No hay inclusiones. Ni imprescindibles. Ni disyunciones. Es decir, slo hay prescindibles. Construimos la tabla y el acumulado.

Si eliminamos el subconjunto: S1 S2 S3 S4 S5 S6 S7

Resultan imprescindibles S4 (por 6), S6 (por 7) S5 (por 2) S1 S2 S1


(por 1) (por 2) (por 7)

S1 2

Acumulado por imprescindibilidad S2 S3 S4 S5 S6 1 0 1 1 1

S7 0

S3 y S7 tienen un acumulado 0. Los eliminamos U = {1, 2, 3, 4, 5, 6, 7, 8} S1 = {1, 3, 5, 6, 7, 8} S2 = {2, 3, 6} S4 = {1, 4, 6} S5 = {2, 5, 6} S6 = {4, 5, 6, 7}

(sin redimensin).

No existen inclusiones. S1 es imprescindible (por el elemento 8). Lo aadimos a la solucin: sol = S1 (redimensionamos): U = { 2, 4} S2 = {2} S4 = {4} S5 = {2} S6 = {4} S2 S5 (y S5 S2). Eliminamos el de mayor supracardinalidad (cualquiera): S2 (sin redimensin):

U = { 2, 4} S4 = {4} S5 = {2} S6 = {4} S4 S6 (y S5 S2). Eliminamos el de mayor supracardinalidad (cualquiera): S4 (sin redimensin): U = { 2, 4} S5 = {2} S6 = {4} No existen inclusiones. S5 es imprescindible (por el elemento 2) y S6 es imprescindible Los aadimos a la solucin: sol = S1,S5,S6 (redimensionamos): U={ }
(por el elemento 4).

Terminamos. No hay uniones que deshacer. Un ltimo clculo de imprescindibilidad nos indica que todos los elementos de la solucin son imprescindibles. SOLUCIN: S1,S5,S6 Segundo ejemplo: U = {1, 2, 3, 4, 5} S1 = {1, 3, 5} S2 = {2, 3} S3 = {2, 4, 5} S4 = {1, 2, 5} S5 = {1, 2, 4} No hay inclusiones. Ni imprescindibles. Ni disyunciones. Es decir, slo hay prescindibles. Construimos la tabla y el acumulado. Si eliminamos el subconjunto: S1 S2 S3 S4 S5 Resultan imprescindibles S2 (por 3) S1 (por 3) S5 (por 4) S3
(por 1)

S1 1

Acumulado por imprescindibilidad S2 S3 S4 S5 1 1 0 1

S4 tiene un acumulado 0. Los eliminamos U = {1, 2, 3, 4, 5} S1 = {1, 3, 5} S2 = {2, 3} S3 = {2, 4, 5} S5 = {1, 2, 4}

(sin redimensin).

No hay inclusiones. Ni imprescindibles. Ni disyunciones. Es decir, slo hay prescindibles. Construimos la tabla y el acumulado. Si eliminamos el subconjunto: S1 S2 S3 S5 Resultan imprescindibles S2 (por 3), S3 (por 5), S5
(por 1)

S1 S1 S1
(por 5)

(por 1) (por 4) (por 4)

, S4 (por 1), S3

Acumulado por imprescindibilidad S1 S2 S3 S5 3 1 2 2

S1 tiene un acumulado mximo. Lo aadimo a la solucin, eliminndolo (y redimensionando): sol = S1 U = {2, 4} S2 = {2} S3 = {2, 4} S5 = {2, 4}

S2 S3 (y (S3 S2) ). Eliminamos S2 U = {2, 4} S3 = {2, 4} S5 = {2, 4}

(sin redimensin):

S3 S5 (y S5 S3) ). . Eliminamos el de mayor supracardinalidad (cualquiera): S3 U = {2, 4} S5 = {2, 4} No existen inclusiones. S5 es imprescindible (por ambos elementos). Los aadimos a la solucin: sol = S1,S5 U={ }

(redimensionamos):

Terminamos. No hay uniones que deshacer. Un ltimo clculo de imprescindibilidad nos indica que todos los elementos de la solucin son imprescindibles. SOLUCIN: S1,S5 Tercer ejemplo: U = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11} S1 = {1, 2, 3, 4, 5, 6} S2 = {5, 6, 8, 9} S3 = {1, 4, 7, 10} S4 = {2, 5, 7, 8, 11} S5 = {10, 11} No existen inclusiones. S1 es imprescindible (por el elemento 3) y S2 es imprescindible Los aadimos a la solucin: sol = S1,S2 (redimensionamos): U = {7, 10, 11} S3 = {7, 10} S4 = {7, 11} S5 = {10, 11}
(por el elemento 9).

No hay inclusiones. Ni imprescindibles. Ni disyunciones. Es decir, slo hay prescindibles. Construimos la tabla y el acumulado. Si eliminamos el subconjunto: S3 S4 S5 Resultan imprescindibles S4 (por 7), S5 (por 10) S3 (por 7), S5 (por 11) S3 (por 10), S4 (por 11)

Acumulado por imprescindibilidad S3 S4 S5 2 2 2

Todos los acumulados son iguales. Eliminamos cualquiera: S3 redimensin): U = {7, 10, 11} S4 = {7, 11} S5 = {10, 11}

(sin

No existen inclusiones. S4 es imprescindible (por el elemento 7) y S5 es imprescindible (por el elemento 10). Los aadimos a la solucin: sol = S1,S2,S4,S5 (redimensionamos): U = {} Terminamos. No hay uniones que deshacer. Un ltimo clculo de imprescindibilidad nos indica que todos los elementos de la solucin son imprescindibles. SOLUCIN: S1,S2,S4,S5 Ojal descubra algn ejemplo que derrote a este algoritmo. Pero como me queda la esperanza de que no es muy malo Pens en intentar estos resultados: Resultado 1: Si todos los subconjuntos que estamos considerando (para cierto U) son imprescindibles entonces todos esos subconjuntos forman parte de la solucin. Resultado 2: Si Si est subsumido en Sj entonces puede eliminarse Si sin perjuicio para la mnima cobertura. Resultado 3: Si todos los subconjuntos que estamos considerando (para cierto U) son prescindibles y existen subsunciones entre ellos

Entonces los conjuntos subsumidos en otros pueden eliminarse sin perjuicio para la mnima cobertura. Resultado 4: Si todos los subconjuntos que estamos considerando (para cierto U) son prescindibles y no existen subsunciones entre ellos Entonces la eliminacin de alguno de esos subconjuntos segn el heurstico puede hacerse sin perjuicio para la mnima cobertura. Resultado 5: Si todos los subconjuntos que estamos considerando (para cierto U) son prescindibles y no existen subsunciones entre ellos Entonces la adicin de alguno de esos subconjuntos segn el heurstico puede hacerse sin perjuicio para la mnima cobertura.

Vous aimerez peut-être aussi