Download - Conjunto independiente máximo
![Page 1: Conjunto independiente máximo](https://reader036.vdocuments.co/reader036/viewer/2022081520/58a3153f1a28ab1d068b574b/html5/thumbnails/1.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022081520/58a3153f1a28ab1d068b574b/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022081520/58a3153f1a28ab1d068b574b/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022081520/58a3153f1a28ab1d068b574b/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022081520/58a3153f1a28ab1d068b574b/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022081520/58a3153f1a28ab1d068b574b/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022081520/58a3153f1a28ab1d068b574b/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022081520/58a3153f1a28ab1d068b574b/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022081520/58a3153f1a28ab1d068b574b/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022081520/58a3153f1a28ab1d068b574b/html5/thumbnails/10.jpg)
Grafo descompuesto
11
1
12
10
9 8
7
53 62
![Page 11: Conjunto independiente máximo](https://reader036.vdocuments.co/reader036/viewer/2022081520/58a3153f1a28ab1d068b574b/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022081520/58a3153f1a28ab1d068b574b/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022081520/58a3153f1a28ab1d068b574b/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022081520/58a3153f1a28ab1d068b574b/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022081520/58a3153f1a28ab1d068b574b/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022081520/58a3153f1a28ab1d068b574b/html5/thumbnails/16.jpg)
4.1) Sub-grafo G2 descompuesto
11
1
12
53 62
![Page 17: Conjunto independiente máximo](https://reader036.vdocuments.co/reader036/viewer/2022081520/58a3153f1a28ab1d068b574b/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022081520/58a3153f1a28ab1d068b574b/html5/thumbnails/18.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022081520/58a3153f1a28ab1d068b574b/html5/thumbnails/19.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022081520/58a3153f1a28ab1d068b574b/html5/thumbnails/20.jpg)
5) Formar un conjunto potencia con los nodos que pertenecen a a este conjunto lo llamaremos S 2
![Page 21: Conjunto independiente máximo](https://reader036.vdocuments.co/reader036/viewer/2022081520/58a3153f1a28ab1d068b574b/html5/thumbnails/21.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022081520/58a3153f1a28ab1d068b574b/html5/thumbnails/22.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022081520/58a3153f1a28ab1d068b574b/html5/thumbnails/23.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022081520/58a3153f1a28ab1d068b574b/html5/thumbnails/24.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022081520/58a3153f1a28ab1d068b574b/html5/thumbnails/25.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022081520/58a3153f1a28ab1d068b574b/html5/thumbnails/26.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022081520/58a3153f1a28ab1d068b574b/html5/thumbnails/27.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022081520/58a3153f1a28ab1d068b574b/html5/thumbnails/28.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022081520/58a3153f1a28ab1d068b574b/html5/thumbnails/29.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022081520/58a3153f1a28ab1d068b574b/html5/thumbnails/30.jpg)
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.