1. MISUn algoritmo exacto para el máximo
conjunto independiente
BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA
MCC 2015
Luis Alfredo Moctezuma Pascual
2. 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).
3. 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
5. 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.
6. 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
7. 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.
8. Nodo
No. De Ciclos
intersectados
1 0
2 0
3 2
4 2
5 2
6 0
7 0
8 0
9 0
10 2
11 2
12 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 Aristas
A 1-2-3-4-5-6-1
B 3-4-5-3
C 4-7-8-4
D 1-11-12-10-1
E 11-12-10-11
𝐸 = 𝑎, 𝑏
𝑎, 𝑏 ∈ 𝑉(𝐺)
9. 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
11. 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
13. 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 𝑯𝒊.
14. 4) Sub-grafo G1
El sub-grafo 𝐺1, 𝑉 𝐺1 = {7,8,9} es un árbol, por lo tanto ya no le
aplicaremos la descomposición y se convertirá en ℎ1.
9 8
7
ℎ1
15. 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
Nodo
No. De Ciclos
intersectados
1 2
10 2
11 2
19. 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 𝐺2 es un grafo cactus, por lo tanto ya no le
aplicaremos la descomposición y se convertirá en ℎ2.
11
1
12
53 62
ℎ2
20. 5) Formar un conjunto potencia con los nodos que
pertenecen a 𝑺, a este conjunto lo llamaremos S 2
𝑆 = {4,10}
𝑆2 = {∅, {4}, {10}, {4,10}}
21. 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 : 4
NJ: 10
J : 4
NJ: 10
J : 4
NJ: 10
J : 4,10
NJ:
J : 10
NJ: 4
J : 10
NJ: 4
J : 4
NJ:
9 8
7J :
NJ: 4
J : 4
NJ:
J :
NJ: 4
𝒉𝟐
𝒉𝟏
22. S^2 H1 H2 IS
8,9 12,2,5 8,9,12,2,5
4 9 11,6,2 4,9,11,6,2
10 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.
29. 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) = 𝑖=1
𝑘
𝐻𝑖 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)).
30. 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.