Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Componentes conexas y
Problema del camino mínimo
CONTENIDO
Profesores MA475 1
UPC – Departamento de Ciencias – MATEMATICA COMPUTACIONAL (MA475)
Introducción
La teoría de grafos es una mezcla extraordinaria de historia, cultura y soluciones a problemas
complejos desde el mundo de la matemática. Con esta teoría se busca representar de forma
visual conjuntos de datos abstractos en formas de nodos o vértices y la unión o relaciones que
estas pueden tener con otros nodos a través de aristas. Gracias a esta teoría se han podido
lograr grandes avances en el análisis de amplios volúmenes de datos.
Los orígenes que fundamentan la teoría de grafos nacen con un estudio realizado por el
matemático suizo Leonhard Euler en 1736. La investigación de Euler trataba de resolver el
mítico problema de los puentes de Königsberg.
Este problema consistía en obtener una ruta eficiente para cruzar todos los puentes de la
ciudad, cruzándolos una sola vez. Las conclusiones de Euler demostraron su improbabilidad,
pero fue el punto de partida a un número increíble de estudios.
Conexión
Un grafo G es llamado conexo si para cualquier par de vértices de G existe un camino entre
ellos.
Profesores MA475 2
UPC – Departamento de Ciencias – MATEMATICA COMPUTACIONAL (MA475)
Componentes Conexas
Las componentes conexas de un grafo son los subgrafos conexos disjuntos con el mayor
número de vértices, que se pueden formar a partir del grafo original.
Ejemplo
Determine las componentes conexas del grafo mostrado.
Profesores MA475 3
UPC – Departamento de Ciencias – MATEMATICA COMPUTACIONAL (MA475)
Paso 1: Construir la matriz de adyacencia asociada al grafo y agregarle (si fuese necesario)
el valor 1 en la diagonal de la matriz.
Paso 3: Ordenar las filas según el número de 1’s que contiene (de mayor a menor).
Paso 4: Ordenar las columnas de acuerdo con el orden de las filas. Las componentes
conexas serán aquellas que se formen con los bloques cuadrados diagonales
formados por 1’s.
Profesores MA475 4
UPC – Departamento de Ciencias – MATEMATICA COMPUTACIONAL (MA475)
Gráficamente:
Ejercicios
1. Determine las componentes conexas del grafo:
2. Determine las componentes conexas del grafo, si los nodos son A, B, C, D, E, y cuya matriz
de adyacencia es:
0 1 0 0 0
0 1 1 0 0
0 0 0 1 0
0 1 0 0 1
0 0 0 0 0
Profesores MA475 5
UPC – Departamento de Ciencias – MATEMATICA COMPUTACIONAL (MA475)
Una de sus aplicaciones más importantes reside en el campo de la telemática. Gracias a él, es
posible resolver grafos con muchos nodos, lo que sería muy complicado resolver sin dicho
algoritmo, encontrando así las rutas más cortas entre un origen y todos los destinos en una
red.
Ejemplo:
En la siguiente figura se representa las distancias, en kilómetros, entre ciudades. ¿Cuál es la
longitud del camino más corto para ir desde la ciudad 0 hasta la ciudad 4?
Aplicaciones
• Diseño de redes de telecomunicaciones
– Redes de fibra óptica
– Redes de computadoras
– Redes telefónicas
– Redes de Internet o TV por cable
Algoritmo de Dijkstra
Etiquetación de un vértice adyacente a B, el cual fue etiquetado en la primera iteración
Profesores MA475 6
UPC – Departamento de Ciencias – MATEMATICA COMPUTACIONAL (MA475)
Ejemplo
Utilice el algoritmo de Dijkstra para hallar el camino más corto de A a H en el siguiente grafo:
Profesores MA475 7
UPC – Departamento de Ciencias – MATEMATICA COMPUTACIONAL (MA475)
Profesores MA475 8
UPC – Departamento de Ciencias – MATEMATICA COMPUTACIONAL (MA475)
Ejercicio
Dado el siguiente grafo, determine el camino de longitud mínima de A a L usando el algoritmo
de Dijkstra.
B
103
E
100 83 H
85
105
92 D
A 100 95
100 L
72
90
92 95 G K
100 72
115
70
C J
I
88 85
72
Profesores MA475 9
UPC – Departamento de Ciencias – MATEMATICA COMPUTACIONAL (MA475)
PASO 1
• Se elige el vértice de origen (celda sombreada o marcada de alguna manera).
• Se etiquetan los vértices adyacentes al vértice A. (B y C, ver matriz).
• Se elige el vértice con el menor acumulado (C: 1, A celda sombreada)
Iteración 1 Iteración 2 Iteración 3 Iteración 4 Iteración 5 Iteración 6
A
B 3, A
C 1, A
D
E
F
G
H
PASO 2
• Se etiquetan los vértices adyacentes al vértice C. (D y F, ver matriz).
• Para etiquetar D: como C tiene etiqueta 1, A y de C a D hay 2, entonces la etiqueta para
D será 1+2 = 3, C.
• Para etiquetar F: como C tiene etiqueta 1, A y de C a F hay 5, entonces la etiqueta para
F será 1+5 = 6, C.
• Se elige el vértice con el menor acumulado; en este paso hay dos vértices posibles B y
D, se elige cualquiera. Se ha elegido D.
1
Créditos: Marcos Medina
Profesores MA475 10
UPC – Departamento de Ciencias – MATEMATICA COMPUTACIONAL (MA475)
PASO 3
• Se etiquetan los vértices adyacentes al vértice D. (E y F, ver matriz).
• Para etiquetar E: como D tiene etiqueta 3, C y de D a E hay 4, entonces la etiqueta para
E será 3+4 = 7, D.
• Para etiquetar F: como D tiene etiqueta 3, C y de D a F hay 2, entonces la etiqueta para
F será 3+2 = 5, D.
• En este paso se observa que F tiene dos etiquetas 6, C y 5, D, entonces se elimina la
etiqueta con el mayor acumulado (celda tachada).
• Se elige el vértice con el menor acumulado (B: 3, A celda sombreada).
Iteración 1 Iteración 2 Iteración 3 Iteración 4 Iteración 5 Iteración 6
A
B 3, A
C 1, A
D 3, C
E 7, D
F 6, C 5, D
G
H
PASO 4
• Se etiquetan los vértices adyacentes al vértice B. (D y G, ver matriz).
• D tiene dos etiquetas, se elimina una.
• Se elige el vértice con el menor acumulado (F: 5, D).
Iteración 1 Iteración 2 Iteración 3 Iteración 4 Iteración 5 Iteración 6
A
B 3, A
C 1, A
D 3, C 4, B
E 7, D
F 6, C 5, D
G 8, B
H
Profesores MA475 11
UPC – Departamento de Ciencias – MATEMATICA COMPUTACIONAL (MA475)
PASO 5
• Se etiquetan los vértices adyacentes al vértice F. (H, ver matriz).
• Se elige el vértice con el menor acumulado (E: 7, D).
Iteración 1 Iteración 2 Iteración 3 Iteración 4 Iteración 5 Iteración 6
A
B 3, A
C 1, A
D 3, C 4, B
E 7, D
F 6, C 5, D
G 8, B
H 8, F
PASO 6
• Se etiquetan los vértices adyacentes al vértice E. (G y H, ver matriz).
• G tiene dos etiquetas, se elimina una.
• Se observa que G aún no ha sido elegido, pero tiene igual acumulado que H y además
no tiene vértice con el cual se le pueda relacionar (ver matriz).
Iteración 1 Iteración 2 Iteración 3 Iteración 4 Iteración 5 Iteración 6
A
B 3, A
C 1, A
D 3, C 4, B
E 7, D
F 6, C 5, D
G 8, B 9, E
H 8, F 8, E
• H tiene dos etiquetas, pero en ambos casos tiene el mismo acumulado, esto quiere
decir que hay dos soluciones, hay dos rutas de longitud mínima para ir de A hacia H.
• En H: 8, F (vamos al vértice F) – 5, D (vamos al vértice D) – 3, C (vamos al vértice C) – 1,
A (A es el origen), esto quiere decir que la ruta es A, C, D, F, H
• En H: 8, E (vamos al vértice E) – 7, D (vamos al vértice D) – 3, C (vamos al vértice C) – 1,
A (A es el origen), esto quiere decir que la ruta es A, C, D, E, H.
RESPUESTA: La longitud del camino más corto para ir de A hacia H es de 8 unidades. Existen
dos rutas posibles con esta longitud mínima:
❖ A, C, D, F, H
❖ A, C, D, E, H
Observación: Todo el proceso de este algoritmo se puede desarrollar en una sola tabla.
Profesores MA475 12
UPC – Departamento de Ciencias – MATEMATICA COMPUTACIONAL (MA475)
Ejercicio
Supongamos que el servicio de transporte capitalino permite el transbordo de una línea de
ómnibus a otra sin costos adicionales, y que un trabajador desea saber cuáles son los
transbordos que debe realizar para que el camino de su casa al trabajo sea el menor posible.
Luego de un estudio detallado se establecen los siguientes tiempos de viaje, incluyendo
tiempos de espera para los nodos A (casa), B, C, D, E, F, G (transbordos), y H (trabajo).
Hacia
A B C D E F G H
Desde
A 10 6 2
B 5 1 1
C 4 3 1
D 2
E 3 2
F 6
G 9
H
Ayude al trabajador a encontrar el camino más rápido a seguir desde su casa al trabajo.
Profesores MA475 13