Conjunto independiente máximo

30
MIS Un algoritmo exacto para el máximo conjunto independiente BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA MCC 2015 Luis Alfredo Moctezuma Pascual

Transcript of Conjunto independiente máximo

Page 1: Conjunto independiente máximo

MISUn algoritmo exacto para el máximo conjunto independiente

BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLAMCC 2015Luis Alfredo Moctezuma Pascual

Page 2: Conjunto independiente máximo

INTRODUCCIÓN

El problema del conjunto independiente máximo de un grafo (MIS) posee una historia relevante en el desarrollo de algoritmos para problemas NP-completos.

Algunas de las últimas mejoras sobre los límites superiores de tiempo para algoritmos exactos corresponden a J. M. Robson con un algoritmo exacto para el cálculo del MIS de un grafo con n nodos y un tiempo de ejecución de O(1.1888n), después, Jianer Chen ha obtenido un algoritmo de tiempo de ejecución de O(1.1254n).

Page 3: Conjunto independiente máximo

CONJUNTO INDEPENDIENTE

Es un conjunto de vértices(nodo) en un grafo tal que ninguno de sus vértices es adyacente a otro.

Cada arista en el grafo contiene a lo mas un vértice

Page 4: Conjunto independiente máximo

CONJUNTO INDEPENDIENTE MÁXIMO

Es un conjunto independiente tal que al agregar un vértice mas, deja de ser independiente

CI MAXCI

Page 5: Conjunto independiente máximo

ALGORITMO

1) Descomponer al grafo quitando el nodo que pertenezca al mayor número de ciclos intersectados. A este nodo lo llamaremos p.

2) Guardar el nodo en una pila que llamaremos ; 3) .4) Repetir esta operación hasta que en el grafo solo quede

algunos de los siguientes tipos:cáctus, bipartito, árbol. A estas descomposiciones finales las llamaremos .

5) Formar un conjunto potencia con los nodos que pertenecen a a este conjunto lo llamaremos S 2

6) Para cada elemento que pertenezca a S 2 , formar un IS con cada uno los (las descomposiciones).

7) El IS con la mayor longitud será el MIS.

Page 6: Conjunto independiente máximo

EJEMPLO

Sea el grafo G, aplicar el algoritmo propuesto para encontrar el conjunto independiente máximo:

11

1

12

10

9 8

7

53 62 4

Page 7: Conjunto independiente máximo

1) Descomponer al grafo quitando el nodo que pertenezca al mayor número de ciclos intersectados. A este nodo lo llamaremos p.

Para lograr esto se realiza un recorrido a lo profundo para ubicar cuales son las aristas de retroceso dentro del grafo, para posteriormente hallar los ciclos. Dentro de los ciclos debemos de encontrar a los nodos que pertenezcan al mayor numero de ciclos intersectados.

Ciclo intersectado es aquel que comparte una o más aristas con otro ciclo.

Page 8: Conjunto independiente máximo

Nodo No. De Ciclos intersectados

1 02 03 24 25 26 07 08 09 0

10 211 212 2

Nodo 4: 2 ciclos, es uno de los nodos con el mayor numero de ciclos intersectados dentro de la tabla, a este nodo lo pasaremos a la pila.

Nota: si existen dos o más nodos que cumplan las dos normas principales, se elige a cualquiera de estos.

Ciclo AristasA 1-2-3-4-5-6-1B 3-4-5-3

C 4-7-8-4

D 1-11-12-10-1

E 11-12-10-11

Page 9: Conjunto independiente máximo

Nodo 4: 2 ciclos, es uno de los nodos con el mayor numero de ciclos intersectados, a este nodo lo pasaremos a la pila.Si existen dos o más nodos que cumplan las dos normas principales, se elige a cualquiera de estos.

11

1

12

10

9 8

7

53 62 4

Page 10: Conjunto independiente máximo

Grafo descompuesto

11

1

12

10

9 8

7

53 62

Page 11: Conjunto independiente máximo

2) Guardar el nodo en una pila que llamaremos ;

S.add(4)S={4}

Esta pila nos servirá para construir el MIS posteriormente y para llevar un control de los nodos que han movido del grafo original

Page 12: Conjunto independiente máximo

3) .

11

1

12

10

9 8

7

53 62

J : 4NJ:

J : 4NJ:

J : 4NJ:

J : 4NJ:

J : 4NJ:

J :NJ: 4

J :NJ: 4

J : 4NJ:

J : NJ: 4

J : NJ: 4

J : 4NJ:

Page 13: Conjunto independiente máximo

4) Repetir pasos 1,2 y 3 hasta que en el grafo solo quede algunos de los siguientes tipos:

- cáctus, - bipartito - árbol.

A estas descomposiciones finales las llamaremos .

Page 14: Conjunto independiente máximo

4) Sub-grafo G1

El sub-grafo es un árbol, por lo tanto ya no le aplicaremos la descomposición y se convertirá en

9 8

7

h1

Page 15: Conjunto independiente máximo

4.1) Sub-grafo G2, descomponer al grafo quitando el nodo que pertenezca al mayor número de ciclos intersectados. A este nodo lo llamaremos p

11

1

12

10

53 62

NodoNo. De Ciclos intersectados

1 210 211 2

Page 16: Conjunto independiente máximo

4.1) Sub-grafo G2 descompuesto

11

1

12

53 62

Page 17: Conjunto independiente máximo

4.2) Sub-grafo G2. Guardar el nodo en una pila ;

S.add(10)S={4,10}

11

1

12

53 62

Page 18: Conjunto independiente máximo

4.3) Sub-grafo G2. .

11

1

12

53 62

J : 4NJ: 10

J : 4NJ: 10

J : 4NJ: 10

J : 4,10NJ:

J : 10NJ: 4

J : 10 NJ: 4

J : 4,10NJ:

J : 4NJ:

Page 19: Conjunto independiente máximo

4.4) Sub-grafo G2. Repetir pasos 1,2 y 3 hasta que en el grafo solo quede algunos de los siguientes tipos:cáctus, bipartito, árbol

El sub-grafo es un grafo cactus, por lo tanto ya no le aplicaremos la descomposición y se convertirá en

11

1

12

53 62

h2

Page 20: Conjunto independiente máximo

5) Formar un conjunto potencia con los nodos que pertenecen a a este conjunto lo llamaremos S 2

Page 21: Conjunto independiente máximo

6) Para cada elemento que pertenezca a S 2 , formar un IS(conjunto independiente) con cada uno los (las descomposiciones).

11

1

12

53 62

J : 4NJ: 10

J : 4NJ: 10

J : 4NJ: 10

J : 4,10NJ:

J : 10NJ: 4

J : 10 NJ: 4

J : 4NJ:

9 8

7J :NJ: 4

J : 4NJ:

J : NJ: 4

𝒉𝟐

𝒉𝟏

Page 22: Conjunto independiente máximo

S^2 H1 H2 IS8,9 12,2,5 8,9,12,2,5

4 9 11,6,2 4,9,11,6,210 9,8 2,5 10,9,8,2,5

4,10 9 2,6 4,10,9,2,6

6) Para cada elemento que pertenezca a S 2 , formar un IS(conjunto independiente) con cada uno los (las descomposiciones)

7. El IS con la mayor longitud será el MIS

En este caso todos los IS tienen cardinalidad de 5, por lo que todos son un MIS valido.

Page 23: Conjunto independiente máximo

RESULTADO 1: caso

MIS={8,9,12,2,5}

11

1

12

10

9 8

7

53 62 4

Page 24: Conjunto independiente máximo

RESULTADO 2: caso 4

MIS={4,9,11,6,2}

11

1

12

10

9 8

7

53 62 4

Page 25: Conjunto independiente máximo

RESULTADO 3: caso 10

MIS={10,9,8,2,5}

11

1

12

10

9 8

7

53 62 4

Page 26: Conjunto independiente máximo

RESULTADO 4: caso 4,10

MIS={4,10,9,2,6}

11

1

12

10

9 8

7

53 62 4

Page 27: Conjunto independiente máximo

Coloreo de grafo

MIS={4,10,9,2,6}

11

1

12

10

9 8

7

53 62 4

Page 28: Conjunto independiente máximo

Coloreo de grafo

MIS={4,10,9,2,6}

11

1

12

10

9 8

7

53 62 4

Page 29: Conjunto independiente máximo

ANALISIS DE COMPLEJIDAD

En la dimensión de M: esto tiene a lo más 2|S| renglones.

El número de columnas en M es k+1 el número de diferentes componentes biconexas de G en la descomposición de Dc(G) = mas 1.

Todos los cálculos para determinar los valores para ser almacenados en la matriz M pueden ser hechos en tiempo polinomial de n. Entonces el tiempo total de la complejidad es de orden O(2|S| · poly(n, m)).

Page 30: Conjunto independiente máximo

CONCLUSIONES

El algoritmo no construye el árbol-de expansión del grafo de entrada, en lugar de eso calculamos el parámetro k = | S | en una forma eficiente.

Esto nos propone la existencia de un algoritmo eficiente de parámetro fijo para resolver el problema del MIS.