mdi_u2_ea_angr
DESCRIPTION
Problema de GrafoTRANSCRIPT
Matemáticas Discretas
Unidad 2. Teoría de Gráficas Antonio García Rodríguez Evidencia de Aprendizaje: Cálculo del árbol de expansión mínimo mediante los algoritmos de Prim y de Kruskal.
Antecedentes.
Los árboles son un tipo particular de gráficas que nos van a permitir resolver muchos
problemas. Como ya sabemos, las gráficas muestran relaciones entre elementos, es decir, los
vértices se conectan mediante aristas. Sin embargo, para mantener a todos los vértices
conectados, no son necesarias todas las aristas. Puede haber varias opciones para
conectarlos y de acuerdo a un criterio específico puede haber una “mejor” opción.
Dada una gráfica conexa no dirigida, G, un árbol de expansión es un árbol compuesto por
todos los vértices y algunas o todas las aristas de G. En un árbol no existen ciclos y siempre
hay una ruta entre cada par de vértices. Una gráfica puede tener muchos árboles de
expansión. Cuando estamos hablando de gráficas ponderadas, es decir, gráficas cuyas
aristas tienen peso, un árbol de expansión mínima es un árbol compuesto por todos los
vértices y cuya suma de sus aristas es el menor peso.
Recordemos que un algoritmo es un conjunto de reglas que permiten obtener un resultado
determinado a partir de ciertas reglas definidas. Para encontrar el árbol de expansión mínimo
se pueden usar varios algoritmos, dos de los más utilizados son el de Prim y el de Kruskal.
Problemática: Una empresa mexicana de telecomunicaciones va a tender una nueva red de
fibra óptica entre las siguientes importantes ciudades del país: Hermosillo, Chihuahua,
Culiacán, Monterrey, Tampico, Aguascalientes, Guadalajara, Acapulco, Oaxaca y Veracruz.
Para hacerlo, necesitas saber cómo conectar 10 ciudades al mínimo costo, lo cual equivale a
encontrar la distancia mínima que las mantenga conectadas.
¿Cómo conectar cada ciudad con el mínimo costo?
Matemáticas Discretas
Unidad 2. Teoría de Gráficas Antonio García Rodríguez Evidencia de Aprendizaje: Cálculo del árbol de expansión mínimo mediante los algoritmos de Prim y de Kruskal.
Matemáticas Discretas
Unidad 2. Teoría de Gráficas Antonio García Rodríguez Evidencia de Aprendizaje: Cálculo del árbol de expansión mínimo mediante los algoritmos de Prim y de Kruskal.
H
CH
C
M
T
V
O A
G
AC 560
670
Instrucciones: Teniendo como referencia el mapa y la tabla con las distancias entre
ciudades, desarrolla lo que se pide en los siguientes incisos (incluye procedimiento y
cálculos):
1. Construye una gráfica en la que representes el problema, definiendo las ciudades
como vértices y las aristas como las distancias que se muestren en la tabla. Será una
gráfica conexa, no dirigida y ponderada. El peso de cada arista será la distancia entre
dichas ciudades.
Matemáticas Discretas
Unidad 2. Teoría de Gráficas Antonio García Rodríguez Evidencia de Aprendizaje: Cálculo del árbol de expansión mínimo mediante los algoritmos de Prim y de Kruskal.
Por lo tanto nuestra gráfica quedaría así:
H
CH
C
M
T
V
O A
G
AC 560
670
Matemáticas Discretas
Unidad 2. Teoría de Gráficas Antonio García Rodríguez Evidencia de Aprendizaje: Cálculo del árbol de expansión mínimo mediante los algoritmos de Prim y de Kruskal.
2. Calcula el árbol de expansión mínimo (de mínimo costo) por el algoritmo de
Prim.
Para hacer el algoritmo de Prim necesitaremos agarrar un vértice cualquiera, las
aristas con un vértice en el árbol y un vértice fuera del árbol:
Iteración 1). Iniciaremos con el vértice H.
Iteración 2).
Iteración 3).
Arista Peso
(H,CH) 740
(H,C) 680√
Arista Peso
(H,CH) 740
(C,CH) 1150
(C,M) 1050
(C,AC) 910
(C,G) 700 √
Arista Peso
(H,CH) 740
(C,CH) 1150
(C,M) 1050
(G,AC) 220√
(G,A) 870
H
C
H
C
H
C
G
AC
Matemáticas Discretas
Unidad 2. Teoría de Gráficas Antonio García Rodríguez Evidencia de Aprendizaje: Cálculo del árbol de expansión mínimo mediante los algoritmos de Prim y de Kruskal.
Iteración 4).
Iteración 5).
Arista Peso
(H,CH) 740
(C,CH) 1150
(C,M) 1050
(G,A) 870
(AC,CH) 940
(AC,M) 570
(AC,T) 560√
(AC,V) 900
(AC,O) 950
(AC,A) 880
Arista Peso
(H,CH) 740
(C,CH) 1150
(C,M) 1050
(G,A) 870
(AC,CH) 940
(AC,M) 570
(AC,V) 900
(AC,V) 900
(AC,O) 950
(AC,A) 880
(T,M) 520
(T,A) 860
(T,V) 480√
H
C
T
G
AC 560
H
C
T
V
G
AC 560
Matemáticas Discretas
Unidad 2. Teoría de Gráficas Antonio García Rodríguez Evidencia de Aprendizaje: Cálculo del árbol de expansión mínimo mediante los algoritmos de Prim y de Kruskal.
Iteración 6).
Iteración 7).
Arista Peso
(H,CH) 740
(C,CH) 1150
(C,M) 1050
(G,A) 870
(AC,O) 950
(AC,A) 880
(T,M) 520
(T,A) 860
(V,O) 370√
Arista Peso
(H,CH) 740
(C,CH) 1150
(C,M) 1050
(G,A) 870
(AC,CH) 940
(AC,M) 570
(AC,A) 880
(T,M) 520√
(T,A) 860
(O,A) 670
H CH
C
T
V
O
G
AC 560
H
C
M
T
V
O
G
AC 560
Matemáticas Discretas
Unidad 2. Teoría de Gráficas Antonio García Rodríguez Evidencia de Aprendizaje: Cálculo del árbol de expansión mínimo mediante los algoritmos de Prim y de Kruskal.
Iteración 8).
Iteración 9).
Arista Peso
(H,CH) 740
(C,CH) 1150
(G,A) 870
(AC,CH) 940
(AC,A) 880
(T,A) 860
(O,A) 670√
(M,CH) 800
Aristas Peso
(H,CH) 740
(C,CH) 1150
(AC,CH) 940
(M,CH) 800
H
CH
C
M
T
V
O A
G
AC 560
670
H
C
M
T
V
O A
G
AC 560
670
Matemáticas Discretas
Unidad 2. Teoría de Gráficas Antonio García Rodríguez Evidencia de Aprendizaje: Cálculo del árbol de expansión mínimo mediante los algoritmos de Prim y de Kruskal.
3. Calcula el árbol de expansión mínimo (de mínimo costo) por el algoritmo de Kruskal.
Primeramente usaremos el método de MakeSet de unión –find para inicializar cada componente,
obteniendo las siguientes componentes conexas iniciales:
Vértices H CH C M AC G T A O V
Raíz H CH C M AC G T A O V
H CH
C
M
T
V
O A
G
AC
Matemáticas Discretas
Unidad 2. Teoría de Gráficas Antonio García Rodríguez Evidencia de Aprendizaje: Cálculo del árbol de expansión mínimo mediante los algoritmos de Prim y de Kruskal.
Ahora el siguiente paso es ordenar las aristas del grafo en orden ascendente:
Vértices de las Aristas
Peso de la Arista
AC-G 220
O-V 370
T-V 480
T-M 520
AC-T 560
AC-M 570
O-A 670
C-H 680
C-G 700
CH-H 740
CH-M 800
T-A 860
A-G 870
AC-A 880
AC-V 900
AC-C 910
AC-CH 940
AC-O 950
C-M 1050
C-CH 1150
Lo siguiente será recorrer todas las artistas ya ordenadas y verificar si sus vértices están o no en la misma
componente.
Matemáticas Discretas
Unidad 2. Teoría de Gráficas Antonio García Rodríguez Evidencia de Aprendizaje: Cálculo del árbol de expansión mínimo mediante los algoritmos de Prim y de Kruskal.
La primera arista a verificar es la que une a los vértices AC y G, verificamos si están en la misma
componente, para ello tenemos lo siguiente:
Como podemos observar en la tabla y en
la misma imagen no están en la misma componente conexa, por tanto esta arista es válida, así que unimos
los vértices.
Vértices de las Aristas Peso de la Arista
AC-G 220
O-V 370
T-V 480
T-M 520
AC-T 560
AC-M 570
O-A 670
C-H 680
C-G 700
CH-H 740
CH-M 800
T-A 860
A-G 870
AC-A 880
AC-V 900
AC-C 910
AC-CH 940
AC-O 950
C-M 1050
C-CH 1150
Vértices H CH C M AC G T A O V
Raíz H CH C M AC G T A O V
Vértices H CH C M AC G T A O V
Raíz H CH C M AC AC T A O V
H CH
C
M
T
V
O A
G
AC
H CH
C
M
T
V
O A
G
AC
Matemáticas Discretas
Unidad 2. Teoría de Gráficas Antonio García Rodríguez Evidencia de Aprendizaje: Cálculo del árbol de expansión mínimo mediante los algoritmos de Prim y de Kruskal.
Continuamos con la siguiente arista:
Observamos en la tabla de Union-Find y vemos que V=O. Entonces es posible realizar la unión de ambas
componentes:
Vértices de las Aristas Peso de la Arista
AC-G 220
O-V 370
T-V 480
T-M 520
AC-T 560
AC-M 570
O-A 670
C-H 680
C-G 700
CH-H 740
CH-M 800
T-A 860
A-G 870
AC-A 880
AC-V 900
AC-C 910
AC-CH 940
AC-O 950
C-M 1050
C-CH 1150
Vértices H CH C M AC G T A O V
Raíz H CH C M AC AC T A O V
Vértices H CH C M AC G T A O V
Raíz H CH C M AC AC T A V V
H CH
C
M
T
V
O A
G
AC
H CH
C
M
T
V
O A
G
AC
Matemáticas Discretas
Unidad 2. Teoría de Gráficas Antonio García Rodríguez Evidencia de Aprendizaje: Cálculo del árbol de expansión mínimo mediante los algoritmos de Prim y de Kruskal.
Continuamos con la siguiente tabla:
En la imagen podemos observar que ambos vértices no están en la misma componente, por tanto
realizamos la unión (T,V):
Vértices de las Aristas Peso de la Arista
AC-G 220
O-V 370
T-V 480
T-M 520
AC-T 560
AC-M 570
O-A 670
C-H 680
C-G 700
CH-H 740
CH-M 800
T-A 860
A-G 870
AC-A 880
AC-V 900
AC-C 910
AC-CH 940
AC-O 950
C-M 1050
C-CH 1150
Vértices H CH C M AC G T A O V
Raíz H CH C M AC AC T A V V
Vértices H CH C M AC G T A O V
Raíz H CH C M AC AC V A V V
H CH
C
M
T
V
O A
G
AC
H CH
C
M
T
V
O A
G
AC
Matemáticas Discretas
Unidad 2. Teoría de Gráficas Antonio García Rodríguez Evidencia de Aprendizaje: Cálculo del árbol de expansión mínimo mediante los algoritmos de Prim y de Kruskal.
Continuamos con la siguiente arista,
Procedemos de la misma forma que los anteriores:
Vértices de las Aristas Peso de la Arista
AC-G 220
O-V 370
T-V 480
T-M 520
AC-T 560
AC-M 570
O-A 670
C-H 680
C-G 700
CH-H 740
CH-M 800
T-A 860
A-G 870
AC-A 880
AC-V 900
AC-C 910
AC-CH 940
AC-O 950
C-M 1050
C-CH 1150 Vértices H CH C M AC G T A O V
Raíz H CH C M AC AC V A V V
Vértices H CH C M AC G T A O V
Raíz H CH C T AC AC V A V V
H CH
C
M
T
V
O A
G
AC
H CH
C
M
T
V
O A
G
AC
Matemáticas Discretas
Unidad 2. Teoría de Gráficas Antonio García Rodríguez Evidencia de Aprendizaje: Cálculo del árbol de expansión mínimo mediante los algoritmos de Prim y de Kruskal.
Procedemos con la siguiente parte:
Vértices de las Aristas Peso de la Arista
AC-G 220
O-V 370
T-V 480
T-M 520
AC-T 560
AC-M 570
O-A 670
C-H 680
C-G 700
CH-H 740
CH-M 800
T-A 860
A-G 870
AC-A 880
AC-V 900
AC-C 910
AC-CH 940
AC-O 950
C-M 1050
C-CH 1150
Vértices H CH C M AC G T A O V
Raíz H CH C T AC AC V A V V
Vértices H CH C M AC G T A O V
Raíz H CH C T T AC V A V V
H CH
C
M
T
V
O A
G
AC
H CH
C
M
T
V
O A
G
AC
Matemáticas Discretas
Unidad 2. Teoría de Gráficas Antonio García Rodríguez Evidencia de Aprendizaje: Cálculo del árbol de expansión mínimo mediante los algoritmos de Prim y de Kruskal.
Continuamos con la siguiente parte de la tabla:
En este caso si observamos la imagen de los vértices M
y AC están en la misma componente conexa; asimismo en la tabla de Union-Find el elemento raíz del
vértice T es el mismo que el del vértice M, por ello afirmamos que están en la misma componente conexa,
por lo tanto no habrá que realizar la unión de ambos vértices. Con esto evitamos tener ciclos en el árbol de
expansión mínima.
Vértices de las Aristas Peso de la Arista
AC-G 220
O-V 370
T-V 480
T-M 520
AC-T 560
AC-M 570
O-A 670
C-H 680
C-G 700
CH-H 740
CH-M 800
T-A 860
A-G 870
AC-A 880
AC-V 900
AC-C 910
AC-CH 940
AC-O 950
C-M 1050
C-CH 1150 Vértices H CH C M AC G T A O V
Raíz H CH C T T AC V A V V
H CH
C M
T
V
O A
G
AC
Matemáticas Discretas
Unidad 2. Teoría de Gráficas Antonio García Rodríguez Evidencia de Aprendizaje: Cálculo del árbol de expansión mínimo mediante los algoritmos de Prim y de Kruskal.
Continuando con nuestra tabla:
Vértices de las Aristas Peso de la Arista
AC-G 220
O-V 370
T-V 480
T-M 520
AC-T 560
AC-M 570
O-A 670
C-H 680
C-G 700
CH-H 740
CH-M 800
T-A 860
A-G 870
AC-A 880
AC-V 900
AC-C 910
AC-CH 940
AC-O 950
C-M 1050
C-CH 1150
Vértices H CH C M AC G T A O V
Raíz H CH C T T AC V A V V
Vértices H CH C M AC G T A O V
Raíz H CH C T T AC V O V V
H CH
C
M
T
V
O A
G
AC
H CH
C
M
T
V
O A
G
AC
Matemáticas Discretas
Unidad 2. Teoría de Gráficas Antonio García Rodríguez Evidencia de Aprendizaje: Cálculo del árbol de expansión mínimo mediante los algoritmos de Prim y de Kruskal.
Continuando:
Vértices de las Aristas Peso de la Arista
AC-G 220
O-V 370
T-V 480
T-M 520
AC-T 560
AC-M 570
O-A 670
C-H 680
C-G 700
CH-H 740
CH-M 800
T-A 860
A-G 870
AC-A 880
AC-V 900
AC-C 910
AC-CH 940
AC-O 950
C-M 1050
C-CH 1150
Vértices H CH C M AC G T A O V
Raíz H CH C T T AC V O V V
Vértices H CH C M AC G T A O V
Raíz C CH C T T AC V O V V
H CH
C
M
T
V
O A
G
AC
H CH
C
M
T
V
O A
G
AC
Matemáticas Discretas
Unidad 2. Teoría de Gráficas Antonio García Rodríguez Evidencia de Aprendizaje: Cálculo del árbol de expansión mínimo mediante los algoritmos de Prim y de Kruskal.
Proseguimos con la siguiente sección:
Vértices de las Aristas Peso de la Arista
AC-G 220
O-V 370
T-V 480
T-M 520
AC-T 560
AC-M 570
O-A 670
C-H 680
C-G 700
CH-H 740
CH-M 800
T-A 860
A-G 870
AC-A 880
AC-V 900
AC-C 910
AC-CH 940
AC-O 950
C-M 1050
C-CH 1150 Vértices H CH C M AC G T A O V
Raíz C CH C T T AC V O V V
Vértices H CH C M AC G T A O V
Raíz C CH G T T AC V O V V
H CH
C
M
T
V
O A
G
AC
H CH
C
M
T
V
O A
G
AC
Matemáticas Discretas
Unidad 2. Teoría de Gráficas Antonio García Rodríguez Evidencia de Aprendizaje: Cálculo del árbol de expansión mínimo mediante los algoritmos de Prim y de Kruskal.
Continuando con el procedimiento:
Vértices de las Aristas Peso de la Arista
AC-G 220
O-V 370
T-V 480
T-M 520
AC-T 560
AC-M 570
O-A 670
C-H 680
C-G 700
CH-H 740
CH-M 800
T-A 860
A-G 870
AC-A 880
AC-V 900
AC-C 910
AC-CH 940
AC-O 950
C-M 1050
C-CH 1150 Vértices H CH C M AC G T A O V
Raíz C CH G T T AC V O V V
Vértices H CH C M AC G T A O V
Raíz C H G T T AC V O V V
H CH
C
M
T
V
O A
G
AC
H CH
C
M
T
V
O A
G
AC
Matemáticas Discretas
Unidad 2. Teoría de Gráficas Antonio García Rodríguez Evidencia de Aprendizaje: Cálculo del árbol de expansión mínimo mediante los algoritmos de Prim y de Kruskal.
Prosiguiendo:
Para simplificar los cálculos tomaremos el siguiente punto: Los puntos (CH-M),(T-A),(A-G),(AC-A),(AC-
V),(AC-C),(AC,C),(AC-CH),(AC-O),(A-M),(C-CH) , si alguno de ellos se uniera con algún otro vértice podríamos
hacer ciclos en el árbol de expansión mínima. Por lo tanto el árbol de expansión mínima, quedaría:
Vértices de las Aristas Peso de la Arista
AC-G 220
O-V 370
T-V 480
T-M 520
AC-T 560
AC-M 570
O-A 670
C-H 680
C-G 700
CH-H 740
CH-M 800
T-A 860
A-G 870
AC-A 880
AC-V 900
AC-C 910
AC-CH 940
AC-O 950
C-M 1050
C-CH 1150
H CH
C
M
T
V
O A
G
AC
H CH
C
M
T
V
O A
G
AC
Matemáticas Discretas
Unidad 2. Teoría de Gráficas Antonio García Rodríguez Evidencia de Aprendizaje: Cálculo del árbol de expansión mínimo mediante los algoritmos de Prim y de Kruskal.
4. ¿Cuál es el peso del árbol de expansión mínimo?
EL peso lo tendremos sumando todas las aristas de todas las aristas:
𝑃𝑒𝑠𝑜 = 740 + 680 + 700 + 220 + 560 + 520 + 480 + 370 + 670 = 4940 𝑘𝑚
5. OPCIONAL: Realiza este mismo cálculo mediante el programa GRAFOS.
- Algoritmo de Kruskal:
Matemáticas Discretas
Unidad 2. Teoría de Gráficas Antonio García Rodríguez Evidencia de Aprendizaje: Cálculo del árbol de expansión mínimo mediante los algoritmos de Prim y de Kruskal.
- Algoritmo de Prim:
Como podemos observar nos da igual.