El documento trata sobre la teoría de grafos y su representación. Explica que un grafo es una estructura matemática que representa objetos y las relaciones entre ellos mediante nodos y aristas. Describe los diferentes tipos de grafos, como grafos dirigidos y no dirigidos, y conceptos como vértices, aristas, grado y caminos. También presenta algoritmos para trabajar con grafos como el de Warshall para encontrar caminos mínimos y el de Kruskal para hallar el árbol mínimo de un grafo.
1. Edición No. 1 Volumen I Año 2018
:
Grafos y su
representación
Entretenimiento Publicidad
2. 2 Edición No. 1 Volumen I Año 2018
Grafos y su
representación
3. 3 Edición No. 1 Volumen I Año 2018
Grafos y su
representación
La teoría de grafos es una parte de la matemática discreta y de las ciencias
de la computación, que tuvo sus inicios en el año 1736, cuando el
matemático suizo Leonardo Euler publicó el primer trabajo relacionado
con esta área del conocimiento. Hoy en día la teoría de grafos ha tomado
cuerpo propio teniendo un inmenso desarrollo teórico e innumerables
aplicaciones. Los grafos presentan grandes ventajas por cuanto, son en
muchos casos, un modelo fácil de construir y a través de ellos es a veces
cómodo vislumbrar el proceso que conduce a la solución del problema
originalmente planteado. Una ventaja adicional es que ellos se convierten
en un nuevo tópico matemático a ser aprendido y aplicado en otras
disciplinas como física, química y biología. Un grafo, es una estructura
matemática que permite modelar problemas de la vida cotidiana,
mediante una representación gráfica formada por nodos o vértices que
muestra a los elementos y aristas que sirven para representar los lazos o
relaciones entre los elementos. Así mismo, un grafo puede representar un
único tipo de relación entre los elementos (simple), o más de un tipo de
relación (múltiple), además cada vínculo o relación puede ser orientado.
En este Volumen estudiaremos conceptos básicos sobre grafos e
ilustraremos con ejemplos estas definiciones.
Manuel Eduardo Torres Rivas
4. 4 Edición No. 1 Volumen I Año 2018
Grafos y su
representación
Un grafo es una representación gráfica de objetos y
relaciones binarias entre éstos. Un grafo se representa
gráficamente por medio de puntos o pequeños círculos,
que designan vértices, y líneas que los unen, que
representan las aristas.
Los grafos son estructuras discretas compuestas por
vértices y aristas que conectan pares de esos puntos,
son una abstracción útil para modelar situaciones tales
como:
@ Redes de computadoras
@ Estructuras de datos
@ Redes eléctricas y telefónicas
@ Circuitos eléctricos
@ Sistemas viales
@ Sistemas de toma de decisiones
@ Redes Sociales
Definiciones sobre sus elementos
Si e={u, v} es una arista entonces se dice que los vértices
u y v son los extremos de e .
Un vértice y una arista son
incidentes si el vértice es uno de los extremos de la
arista.
Dos vértices u y v son adyacentes si {u, v} es una arista.
Dos aristas asociadas al mismo par de vértices son
aristas paralelas.
Una arista incidente en un sólo vértice es un ciclo.
Un vértice que no es incidente en ninguna arista es un
vértice aislado.
El grado de un vértice v de un grafo es el número g(v) de
aristas incidentes con él. Si g(v) = 0 se dice que v es un
vértice aislado. En grafos dirigidos existen grado de
entrada y grado de salida
La sucesión de grados de un grafo se obtiene ordenando
en forma creciente los grados de todos los vértices.
Tipos de grafos
Un grafo no dirigido sin auto lazos (un ciclo sobre un
mismo vértice) se denomina grafo simple
Un grafo con aristas paralelas (dos aristas pueden
conectar un mismo par de vértices) es llamado
multigrafo.
Un grafo completo es un grafo con arcos entre cada par
de vértices
Un grafo pesado es aquel que tiene pesos asociados a
nodos y/o arcos.
.
5. 5 Edición No. 1 Volumen I Año 2018
Grafos y su
representación
Con el grafo no dirigido G de la figura 1, encontraremos:
Figura 1
a) Todos los caminos simples del nodo A al nodo
H.
En este caso buscamos los caminos entre A y H
sin repetir nodo, tendríamos los siguientes (7)
caminos simples:
(A, B, G, C, H)
(A, B, G, C, D, H)
(A, E, B, F, G, C, H)
(A, E, B, G, C, H)
(A, E, B, G, C, D, H)
(A, B, F, G, C, H)
(A, B, F, G, C, D, H)
b) El diámetro de G. El diametro de G es la mayor
distancia entre vertices mas lejanos, en este
caso es 7 el diametro.
c) El grado de cada nodo.
NODO A B C D E F G H
GRADO 2 4 3 2 2 2 3 2
La siguiente figura 2, muestra tres multigrafos, donde
se puede identificar lo siguiente:
Figura 2
CONEXOS:
(i) No es Conexo dado que para los nodos
marcados en rojo no existe una camino
hacia los marcados en azul.
(ii) No es Conexo dado que para los nodos
marcados en rojo no existe una camino
hacia los marcados en azul.
(iii) Es Conexo dado que existe un camino para
cada par de vértices.
LIBRE DE BUCLES:
Solo son libres de bucles los grafos (i) y (iii) ya que en (ii)
existe un bucle.
GRAFOS:
En la figura 2 todos son grafos.
6. 6 Edición No. 1 Volumen I Año 2018
Grafos y su
representación
El grafo de la Figura 3 es un grafo dirigido, con el cual
ilustraremos conceptos relacionados con este tipo de
grafo.
Figura 3.
a) Grado de Entrada y de Salida de cada nodo.
Vértice V1 V2 V3 V4 V5
Grado Entrada 1 1 4 3 1
Grado Salida 1 3 1 2 2
b) Numero de Caminos Simples de V1 a V4.
Caminos simples, donde no se repiten vértices
se encuentras 3:
{V1,V2},{V2,V4}
{V1,V3},{V3,V5},V5,V4}
{V1,V2},{V2,V3},{V3,V5},{V5,V4}
c) Existencia de Fuentes o Sumideros? .
Fuentes: vértices del que solo salen enlaces, en
este caso No hay fuentes, ningún vértice tiene
grado de entrada cero (0).
Sumideros: vértices al que solo entran enlaces,
en el grafo de la figura 3, no se observan
sumideros, ningún vértice tiene grado de salida
cero (0).
La Figura 4 muestra un grafo G dirigido de 5 nodos,
estos nodos se encuentran almacenados en un arreglo
llamado DATOS {X, Y, Z, S,T}, con el cual encontraremos:
Figura 4.
a) Matriz de Adyacencia A de G
1 2 3 4 5
X Y Z S T
X 0 0 1 0 0 1
Y 1 0 0 0 0 2
Z 0 1 0 0 0 3
S 1 0 0 0 1 4
T 1 0 1 1 0 5
b) Matriz de Caminos P de G
Para encontrar la matriz de caminos P, debemos
encontrar las Potencias de la Matriz de
Adyacencia A, en este caso G tiene 5 nodos,
buscaremos A2
, A3
, A4
, A5
para finalmente
obtener B5 = A+A2
+ A3
+ A4
+ A5
de obtendremos
la Matriz de Caminos P, remplazando por “1”
los elementos i,j con entrada positiva en la
Matriz B5.
A continuación pasa a paso este procedimiento:
Obtenemos la Matriz de Adyacencia A:
7. 7 Edición No. 1 Volumen I Año 2018
Grafos y su
representación
Continuación…
B5 = A+A2
+ A3
+ A4
+ A5
Remplazando por “1” los elementos
i,j con entrada positiva en la Matriz
B5, obtenemos finalmente la Matriz de Caminos P:
c) Es fuertemente Conexo G?: No es fuertemente
conexo ya que no hay camino de X hacia S ni T,
no hay camino de Y hacia S ni T, no hay camino
de Z hacia T ni S.
8. 8 Edición No. 1 Volumen I Año 2018
Grafos y su
representación
La Figura 5 muestra un grafo dirigido G con pesos, el
cual se encuentra guardado en un arreglo llamado
DATOS {X, Y,S,T}.
Figura 5
Encontraremos las Matriz de Pesos W de G
Matriz de Pesos W de G es:
X Y S T
X 0 7 0 0
W = Y 3 0 2 0
S 0 0 0 5
T 6 1 4 0
Algoritmo de Warshall
Es un algoritmo de análisis de grafos para que, de forma
eficiente y simultánea, encuentre los caminos más
cortos dentro de un grafo en el cual las aristas tengan
un peso (distancia entre nodo y nodo, duración del viaje
entre nodos, etc.). Al ejecutar el algoritmo encontrara el
camino menor o más corto de entre todos los pares de
vértices, pero no devuelve los detalles de los caminos
en sí.
El algoritmo de Floyd-
Warshall puede ser usado para resolver los siguientes
problemas, entre otros:
@ Caminos corto en un grafo dirigido
@ Inversión de matrices de números reales
@ Probar si un grafo indirecto es bipartito
@ Calculo rápido de redes de organización de
datos.
Para la ejecución de este algoritmo no se requiere
de la selección de ningún nodo origen o destino. Como
su nombre indica, el algoritmo proporcionará todos los
posibles caminos mínimos entre cada par de nodos
origen y destino.. Es importante comprender el
significado de la matriz de distancias mínimas y de la
matriz de caminos.
Robert Warshall Floyd (8 de junio de 1936 - 25 de
septiembre de 2001) fue un prominente científico
estadounidense en informática. Nacido en Nueva
York, Floyd culminó el bachillerato a los14 años.
Se graduó en la Universidad de Chicago en 1953 a
los 17 años y como Físico en 1958. Entre sus
contribuciones se encuentran el diseño y análisis
de algoritmos eficientes para encontrar el camino
más corto en un grafo y para el problema de
reconocimiento de frases.
Con el grafo dirigido G con pesos de la Figura 5, que se
encuentran guardados en un arreglo llamado DATOS
{X,Y,S,T}. Explicaremos el funcionamiento del algoritmo
de Warshall, para hallar la matriz de caminos mínimos y
su respectiva matriz de recorridos.
1. Obtenemos la primera matriz de caminos W0, a
partir de la matriz de pesos, colocando el
simbolo infinito entre aquellos nodos entre los
que no existe enlace:
X Y S T
X - 7 ∞ ∞
W0 = Y 3 - 2 ∞
S ∞ ∞ - 5
T 6 1 4 -
9. 9 Edición No. 1 Volumen I Año 2018
Grafos y su
representación
2. Obtenemos la primera matris de recorridos M0,
colocando el nodo correspondiente en cada
columna:
X Y S T
X - Y S T
M0 = Y X - S T
S X Y - T
T X Y S -
3. Se construirán N=4 matrices W0 hasta W4 y M0
hasta M4, con el siguiente criterio, se toman
como pivote cada para (i,j) y se suma i+j si este
valor es menor que es elemento del pivote, se
remplaza con esta suma en la matriz Mi y en la
matriz de recorrido se reemplaza con el nodo i.
X Y S T X Y S T
X - 7 ∞ ∞ X - Y S T
W0 = Y 3 - 2 ∞ M0 = Y X - S T
S ∞ ∞ - 5 S X Y - T
T 6 1 4 - T X Y S -
Tomando como pivote (resaltado en rojo) X
construimos W1 y M1: queda igual
X Y S T X Y S T
X - 7 ∞ ∞ X - Y S T
W1 = Y 3 - 2 ∞ M1 = Y X - S T
S ∞ ∞ - 5 S X Y - T
T 6 1 4 - T X Y S -
Tomando como pivote (resaltado en rojo) Y
construimos W2 y M2: queda igual
X Y S T X Y S T
X - 7 9 ∞ X - Y Y T
W2 = Y 3 - 2 ∞ M2 = Y X - S T
S 10 9 - 5 S Y Y - T
T 4 1 4 - T Y Y S -
Tomando como pivote (resaltado en rojo) S
construimos W3 y M3: queda igual
X Y S T X Y S T
X - 7 9 14 X - Y Y Y
W3 = Y 3 - 2 7 M3 = Y X - S Y
S 10 9 - 5 S Y Y - T
T 4 1 4 - T Y Y S -
Tomando como pivote (resaltado en rojo) ST
construimos W4 y M4: queda igual
X Y S T X Y S T
X - 7 9 14 X - Y Y Y
W4 = Y 3 - 2 7 M4 = Y X - S Y
S 10 9 - 5 S Y Y - T
T 4 1 4 - T Y Y S -
4. Al finalizar W4 es la matriz de recorridos
mínimos de G, y M4 es la matriz de esos
recorridos mínimos.
Matriz de Caminos Mínimos:
X Y S T
X - 7 9 14
W4 = Y 3 - 2 7
S 10 9 - 5
T 4 1 4 -
Matriz de Recorridos:
X Y S T
X - Y Y Y
M4 = Y X - S Y
S Y Y - T
T Y Y S -
Por ejemplo: para ir de X a S el camino mínimo
es de peso 9 y el recorrido es X-Y-S
10. 10 Edición No. 1 Volumen I Año 2018
Grafos y su
representación
Algoritmo de kruskal
Este algoritmo se usa para hallar el árbol mínimo de un
grafo ponderado (con peso). El árbol mínimo es la forma
más eficiente de conectar todos los vértices del grafo,
mediante las aristas con menor peso posible.
Metodología:
1. Hallar y marcar la arista de menor peso del
grafo, si hay más de una se marca cualquiera de
ellas.
2. Hallar y marcar la arista de menor peso sin
contar la anterior, controlando que no
generemos ciclos en el grafo, y controlando
también que vértices nos falta recorrer. Esto
quiere decir que en el árbol resultante
tendremos n-1 aristas, siendo n el número de
vértices del grafo.
3. Repetir el paso 2.
Cuando ya recorrimos todos los vértices, el árbol
resultante es el árbol mínimo.
El algoritmo es un proceso recursivo. Ya que, excepto en
el primer paso que solamente se halla y marca la arista
de menor peso, se debe realizar la misma acción de
hallar y marcar, pero con el adicional de controlar que
no formen siclos, y que queden vértices que recorrer,
que sería el caso base de la recursividad.
Utilizando el grafo G de la figura 6, encontraremos el
Árbol Extendido mínimo.
Figura 6
Primer paso, le colocamos identificadores a los nodos
del grafo:
Iniciamos con los pesos 1 que son los menores:
11. 11 Edición No. 1 Volumen I Año 2018
Grafos y su
representación
Continuación…
Comenzamos con los siguientes menores pesos 2
Comenzamos con los siguientes menores pesos 3
En este último recorrido se forma un ciclo, por los que
descartamos el enlace h-f
Continuamos con el
próximo 3 que no genera ciclos
Obtenemos así el árbol mínimo de un grafo que recorre
todos los nodos en la siguiente secuencia:
f-e-c-b-a-d-g-h-i
Joseph B. Kruskal investigador del Math Center (Bell-
Labs), que en 1956 descubrió su algoritmo para la
resolución del problema del Árbol de coste total mínimo
también llamado árbol recubridor euclídeo mínimo. El
objetivo del algoritmo de Kruskal es construir un árbol
(subgrafo sin ciclos) formado por arcos sucesivamente
seleccionados de mínimo peso a partir de un grafo con
pesos en los arcos.
12. 12 Edición No. 1 Volumen I Año 2018
Grafos y su
representación
La Figura 7, representa la Matriz de Incidencia M de un
grafo No Dirigido G. El cual según esta matriz de
incidencia posee 4 nodos y 8 aristas. Dibujaremos el
Grafo G y encontraremos su Matriz de Adyacencia A.
Figura 7
En la relación binaria descrita mediante una matriz de
incidencia de un grafo:
1. Las columnas de la matriz representan
las aristas del grafo.
2. Las filas representan a los distintos nodos.
3. Por cada nodo unido por una arista, ponemos
un uno (1) en el lugar correspondiente, y
llenamos el resto de las ubicaciones con ceros
(0).
Si sumamos las cantidades de 1's que hay en cada
columna, veremos los nodos a los que incide.
Si sumamos las cantidades de unos 1's que hay por cada
fila, existirá un valor que indica la cantidad de aristas
que inciden sobre el nodo.
Llamaremos a los nodos 1, 2, 3, 4 (4 nodos) y las aristas
a,b,c,d,e,f,g,h ( 8 aristas). El grafo resultante es:
La Figura 8 representa la Matriz de Adyacencia A de un
grafo no dirigido G de 5 nodos. Dibujaremos el Grafo G
y encontraremos su Matriz de Incidencia M.
Figura 8
Como podemos notar falta una fila en la matriz de
adyacencia, ya que la matriz de adyacencia debe ser de
Orden NxN, sin embargo podemos comenzar a construir
el Grafo con los datos de la matriz A dada:
Sabiendo que se trata de un grafo no dirigido, podemos
completar la Matriz A, a partir del grafo dibujado:
1 2 3 4 5
1 1 0 0 1 1
A = 2 0 0 0 1 1
3 1 1 1 0 1
4 1 1 1 0 1
5 1 1 1 1 0
13. 13 Edición No. 1 Volumen I Año 2018
Grafos y su
representación
Continuación…
Se guarda en memoria un Grafo G como lo muestra la
Figura 9. Dibujaremos el Grafo G.
Figura 9
Podemos ver que se ha utilizado la representación
mediante arreglos, que contienen la información de la
matriz de adyacencia, pero, en la lista de adyacencia,
sólo están representados los enlaces que existen en el
grafo. En este caso podemos saber por el arreglo de
enlaces, los pesos de algunos enlaces y se trata de un
grafo dirigido, el campo SIG indica salida de arista al
nodo y el campo ADY asocia con el otro arreglo que
indica la arista que llega al nodo con el peso guardado
en el campo ENL, quedando el diagrama de grafo de la
forma:
Encontraremos los cambios que ocurren en la
representación enlazada del grafo G de la figura 9, si se
elimina la arista (C,E) y se inserta la arista (D,E). Los
arreglos quedaría de la siguiente manera:
NODO A C E D B
SIG 4 0 8 0 7 3 2 1
ADY 6 1 9 2 9
1 2 3 4 5 6 7 8
PRINCIPIO=6, NDISP=5
DEST 8 8 1 4 3 3 6
ENL 5 7 8 0 0 0 0 0 4 0
El Grafo G con estos cambios queda:
14. 14 Edición No. 1 Volumen I Año 2018
Grafos y su
representación
15. 15 Edición No. 1 Volumen I Año 2018
Grafos y su
representación