Representacion de Grafos Hola
Representacion de Grafos Hola
Representacion de Grafos Hola
Matriz de incidencia
Def 1: Sea G un grafo cuyo conjunto de vértices es V = {v1, v2, · · · , vn} y cuyo
conjunto de lados es E = {e1, e2, · · · , em}. Se define la matriz de incidencia del
grafo G como una matriz n × m que tiene en la posición (i, j) un 1 si vi ∈ f(ej ) y 0 en
otro caso [WILSON, R. Introducción a la teoría de grafos. Alianza Universidad, pg
115]
Observaciones
1. Si tomamos otra ordenación de los vértices y/o lados, la matriz de incidencia puede ser
diferente. En este caso, dos matrices de incidencia corresponden al mismo grafo si se
puede pasar de una a otra mediante operaciones elementales por filas y/o columnas Tipo I
(intercambio de filas y/o columnas).
2. El que un grafo tenga lados paralelos se traduce en que tenga dos columnas iguales en
la matriz de incidencia, mientras que los lazos se traducen en filas con un único coeficiente
"uno".
Def 2: Dado un grafo simple G = (V, E) con n=|V| vértices {v1,. .. , vn} y m=|E|
aristas {e1, …, em}, su matriz de incidencia es la matriz B de orden nxm,
B(G)=(bij), donde bij=1 si vi es incidente con ej y bij=0 en caso contrario.
Si la matriz de incidencia sólo contiene ceros y unos (matriz binaria). Como cada
arista incide exactamente en dos vértices, cada columna tiene exactamente dos
unos. La cantidad de unos que aparece en cada fila es igual al grado del vértice
correspondiente. Una fila compuesta sólo por ceros corresponde a un vértice
aislado.[ https://medium.com/@matematicasdiscretaslibro/capítulo-11-teoria-de-
grafos-3b00228dd81c, chapter 11.10.9]
Ejemplo:
Def 3: El grafo está representado por una matriz de A (aristas) por V (vértices),
donde [vértice, arista] contiene la información de la arista (1 - conectado, 0 - no
conectado)[http://190.85.46.51/CONTENIDOS/wikipedia/content/a/teor
%25c3%25ada_de_grafos.html]
Ejemplo:
Matriz de adyacencia
Def 1: Sea G un grafo cuyo conjunto de vértices es V = {v1, v2, · · · , vn}. Se define
su matriz de adyacencia como la matriz A ∈ Mn(N) cuyo coeficiente (i, j) es igual al
número de lados e que unen vi con vj (es decir, que verifican que f(e) = {vi , vj}).
[WILSON, R. Introducción a la teoría de grafos. Alianza Universidad, pg 114]
Observaciones
1. La matriz de adyacencia de un grafo es una matriz simétrica, pues cada lado que une vi
con vj une también vj con vi .
Def 3:
Ejemplo:
Matriz de circuitos
Def 1:
Ejemplo:
Def 2:
Ejemplo:
Def 3:
Ejemplo:
Estructura de adyacencia
Def 1:
Ejemplo:
Def 2:
Ejemplo:
Def 3:
Ejemplo:
Algoritmos de Dijkstra
Def 1: El algoritmo de Dijkstra implica asignar etiquetas a los vértices. Sea L(v) la
etiquetadel vértice v. En cualquier punto, algunos vértices tienen etiquetas
temporales y el resto sonpermanentes. Sea T el conjunto de vértices que tienen
etiquetas temporales. Al ilustrar elalgoritmo, se marcarán con un círculo los
vértices que tiene etiquetas permanentes. Se demostrarádespués que si L(v) es la
etiqueta permanente del vértice v, entonces L(v) es lalongitud de una ruta más
corta de a a v. Al inicio, todos los vértices tienen etiquetas temporales.Cada
iteración del algoritmo cambia el estado de una etiqueta de temporal a
permanente;entonces el algoritmo puede terminar cuando z recibe una etiqueta
permanente.En este punto L(v) da la longitud de la ruta más corta de a a z.
[JOHNSONBAUGH, R. Matemáticas Discretas . Grupo Editorial Iberoamericano,
pg 347]
Este algoritmo encuentra la longitud de una ruta más corta del vértice a al vértice z
en una gráfica ponderada conexa. El peso de la arista (i, j) es w(i, j) > 0, y la
etiqueta del vértice x es L(x). Al terminar, L(z) es la longitud de la ruta más corta de
a a z.
Entrada: Una gráfica conexa ponderada en la que todos los pesos son positivos;
vértices a a z
Salida: L(z), la longitud de la ruta más corta de a a z
1. dijkstra(w, a, z, L) {
2. L(a) = 0
3. para todos los vértices x a
4. L(x) =∞
5. T = conjunto de todos los vértices
6. // T es el conjunto de todos los vértices cuyas distancias más cortas desde a
7. // no se han encontrado
8. while(z ∈ T) {
9. seleccionar v ∈ T con L(v) mínimo
10. T = T − {v}
11. para cada x ∈ T adyacente a v
12. L(x) = mín{L(x),L(v) + w(v, x)}
13. }
14. }
Ejemplo:
Como ejemplo de este enfoque, considerese el digrafo ponderado que
aparece a continuacion. Al hallar las distancias mas cortas desde v1 hasta
otros nodos del grafo, se actualiza el vector de distancia actual Dist cada
vez que se selecciona un nuevo elemento y se coloca en S. Durante la k-
esima iteracion, supongase que Sk denota el conjunto de nodos mas
proximos seleccionados hasta esa iteracion, y que uk denota el nodo
siguiente en proximidad.
En la primera iteración se selecciona el nodo siguiente en proximidad con
respecto al nodo v1. El nodo mas próximo a v1 es v2, y por tanto se pone
v2 en S. A continuación se calcula la distancia mas corta de todos los
nodos adyacentes a v2 y que no esten en S. El nuevo calculo de longitudes
desde v2 hasta v3, v4 y v5 produce, respectivamente, los valores 8, 4 y 6.
Esto completa la primera iteración, que se resume en la segunda fila de la
tabla que se muestra a continuación. Las distancias actualizadas van entre
paréntesis
Durante la segunda iteración se busca el nodo segundo en proximidad con
respecto al nodo v1.Hay tres nodos adyacentes a v2, v3, v4 y v5. Por tanto
se selecciona el nodo v4 como segundo nodo en proximidad a v1, y se
pone en S. Se vuelven a calcular las distancias actualizadas por los nodos
adyacentes a v4 y que no están en S. El nuevo calculo de las distancias a
v3 y v5 produce los valores de 5 y 8, respectivamente. Los resultados se
han resumido en la tercera fila de la tabla.
En la tercera iteracion, los nodos v3 y v5 son adyacentes a v4, y v3 es el
mas proximo. Por tanto, el proximo nodo que se selecciona es v3. Los
nodos v5 y v6 son adyacentes a v3 y el nuevo calculo de sus distancias
produce, respectivamente, los vlores de 7 y 11. La distancia 11 es la
distancia minima actual a v6; sin embargo, la distancia 5 no es la distancia
minima a v5, y por tanto se mantiene la distancia minima igual a 6. La
cuarta fila de la tabla se resumen estos resultados.
Las dos iteraciones siguientes seleccionan sucesivamente a v5 y v6. La
ultima iteracion produce una distancia mas corta entre v1 y v6 cuyo valor es
9.
El enfoque anterior se ha formalizado en el procedimiento que se da en la
tabla que se muestra a continuacion. Observe que algunas de las
sentencias del procedimiento no son sentencias validas sintacticamente en
Pascal. La forma exacta de estas estructuras depende de la forma en que
este representada la estructura del grafo, esto es, dependen de si se utiliza
una matriz ponderada de adyacencias o bien un directorio de tablas de
nodos con listas de adyacencia.
Algoritmos de Floyd
Def 1:
Ejemplo:
Def 2:
Ejemplo:
Def 3:
Ejemplo:
Algoritmos de Warshall
Def 1:
Ejemplo:
Def 2:
Ejemplo:
Def 3:
Ejemplo: