Representacion de Grafos Hola

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 13

Representacion de grafos

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".

3. Si el grafo es dirigido, se puede definir también la matriz de incidencia. En este caso, el


coeficiente (i, j) puede también tomar el valor −1 (si el lado ej parte del vértice vi). En tal
caso, el grafo no podría tener lazos.

Ejemplo: [JOHNSONBAUGH, R. Matemáticas Discretas . Grupo Editorial


Iberoamericano, pg 355]

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 .

2. Si tomáramos otra ordenación de los vértices, la matriz de adyacencia es diferente. Por


tanto, un grafo puede tener varias matrices de adyacencia. En general, si A y C son dos
matrices de adyacencia de un mismo grafo, entonces existe una matriz de permutación P
tal que P −1CP = A (una matriz de permutación es una matriz que tiene en cada fila y en
cada columna un coeficiente que vale "uno" y el resto toman el valor "cero". Es una matriz
que se obtiene a partir de la matriz identidad realizando intercambio de filas y/o
columnas).

3. La existencia de lados paralelos se traduce en la matriz de adyacencia en la existencia de


coeficientes mayores que 1. De la misma forma, la existencia de lazos se traduce en que
algún elemento de la diagonal principal de la matriz de adyacencia es distinto de cero.

4. Si tenemos un grafo dirigido, también podemos definir su matriz de adyacencia. En este


caso, el coeficiente aij es el número de lados que verifican que s(e) = vi y t(e) = vj . En este
caso, la matriz no tiene porqué ser simétrica.

5. La matriz de adyacencia de un grafo determina a éste. Además, toda matriz cuadrada


con coeficientes en N es la matriz de adyacencia de un grafo (dirigido o no) finito.
Podríamos entonces tomar como definición de grafo la de una matriz cuadrada con
coeficientes en N

Ejemplo: [JOHNSONBAUGH, R. Matemáticas Discretas . Grupo Editorial


Iberoamericano, pg 352]

Def 2: [GRASSMAN, W. TREMBLAY, J. Matemática Discreta y lógica. Prentice


Hall.pg 363]
Ejemplo: [GRASSMAN, W. TREMBLAY, J. Matemática Discreta y lógica.
Prentice Hall.pg 363]

Def 3:

Ejemplo:
Matriz de circuitos
Def 1:
Ejemplo:
Def 2:
Ejemplo:
Def 3:
Ejemplo:

Matriz de circuitos fundamentales


Def 1:
Ejemplo:
Def 2:
Ejemplo:
Def 3:
Ejemplo:

Matriz de conjuntos de corte


Def 1:
Ejemplo:
Def 2:
Ejemplo:
Def 3:
Ejemplo:

Matriz de conjuntos de corte fundamental


Def 1:
Ejemplo:
Def 2:
Ejemplo:
Def 3:
Ejemplo:

Matriz de relaciones entre la matrices


Def 1:
Ejemplo:
Def 2:
Ejemplo:
Def 3:
Ejemplo:

Estructura de adyacencia
Def 1:
Ejemplo:
Def 2:
Ejemplo:
Def 3:
Ejemplo:

Implementación computacional y aplicaciones para hallar si hay camino o el camino


más corto entre los vértices del grafo:
[http://www.unipamplona.edu.co/unipamplona/portalIG/home_23/recursos/general/110720
12/grafo3.pdf, pg 9]
Gracias a la teoría de grafos se pueden resolver diversos problemas como por ejemplo la
síntesis de circuitos secuenciales, contadores o sistemas de apertura. Se utiliza para
diferentes áreas por ejemplo, Dibujo computacional,en toda las áreas de Ingeniería.Los
grafos se utilizan también para modelar trayectos como el de una línea de autobús a
través de las calles de unaciudad, en el que podemos obtener caminos óptimos para el
trayecto aplicando diversos algoritmos como puede serel algoritmo de Floyd.
Para la administración de proyectos, utilizamos técnicas como PERT en las que se
modelan los mismos utilizandografos y optimizando los tiempos para concretar los
mismos.La teoría de grafos también ha servido de inspiración para las ciencias sociales,
en especial para desarrollar unconcepto no metafórico de red social que sustituye los
nodos por los actores sociales y verifica la posición,centralidad e importancia de cada
actor dentro de la red. Esta medida permite cuantificar y abstraer relacionescomplejas, de
manera que la estructura social puede representarse gráficamente. Por ejemplo, una red
social puederepresentar la estructura de poder dentro de una sociedad al identificar los
vínculos (aristas), su dirección eintensidad y da idea de la manera en que el poder se
transmite y a quiénes.Los grafos son importantes en el estudio de la biología y hábitat. El
vértice representa un hábitat y las aristas (o"edges" en inglés) representa los senderos de
los animales o las migraciónes. Con esta información, los científicospueden entender
cómo esto puede cambiar o afectar a las especies en su hábitat.

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: Se mostrará la manera en que el algoritmo 8.4.1 encuentra la ruta más


corta de a a z en la gráficade la figura 8.4.1. (Los vértices en T no están marcados
con círculos y tienen etiquetas temporales).La figura 8.4.2 muestra el resultado de
ejecutar las líneas 2 a la 5. En la línea 8, z notiene círculo. Se procede a la línea 9,
donde se elige el vértice a, el vértice sin círculo con la etiquetamenor, y se marca
con un círculo (figura 8.4.3). En las líneas 11 y 12 se actualiza cada unode los
vértices que no tienen círculo, b y f, adyacentes a a. [JOHNSONBAUGH, R.
Matemáticas Discretas . Grupo Editorial Iberoamericano, pg 348]
Debe verificarse que la siguiente iteración del algoritmo produce las
etiquetas dadas en la figura 8.4.5 y que al terminar el algoritmo, z tiene la
etiqueta 5, lo que indica que la longitud de la ruta más corta de a a z es 5.
Una ruta más corta está dada por (a, b, c, z).
Def 2: [GRASSMAN, W. TREMBLAY, J. Matemática Discreta y lógica. Prentice Hall. Pg386 ]

El algoritmo de Dijkstra es utilizado frecuentemente, para hallar la longitud del camino de


coste minimo entre dos vertices. Se supone que un grafo dado contiene n nodos v1,v2,
…,vn, y que es necesario hallar la longitud del camino de coste minimo desde v1 hasta vn.
Aun cuando se desea el camino mas corto desde un nodo hasta otro, resulta util (y
eficiente) generar las longitudes de los caminos minimos desde v1 hasta todos los demas
nodos del grafo. Se asocia un campo de distancia Dist a cada uno de los nodos del grafo. Al
comenzar, se selecciona el nodo inicial v1 y se da el valor cero a la distancia mas corta
dese ese nodo hasta si mismo. El enfoque consiste en hallar el nodo que se encuentra mas
proximo a v1. A continuacion se busca el nodo que este inmediatamente mas proximo a
v1, y asi sucesivamente. Eventualmente, el nodo vn sera el siguienteen distancia a v1, y en
este momento se habra hallado la longitud del camino minimo. A medida que se van
hallando nodos sucesivamente mas alejados de v1, se van colocando en un conjunto S y se
ignoran en el sentido de que se ha hallado su distancia minima a v1. En cualquier fase
dada, Dist[vj] es la distancia minima de un camino que va desde v1 hasta vj para aquellos
nodos que esten en S.

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.

Def 3: El algoritmo de Dijkstra resuelve el problema de encontrar el camino


mínimo desde un origen a un destino. Resulta que uno puede encontrar el
camino mínimo desde un origen dado a todos los vértices de un grafo al
mismo tiempo; de ahí, este problema a veces se llama el problema del
camino mínimo con un origen único. De hecho, este algoritmo se puede
utilizar para entregar el conjunto de aristas que conectan todos los vértices
tal que la suma de las longitudes de las aristas desde el origen hasta cada
nodo sea mínimo.
Para cada vértice v ∈ V, el algoritmo de Dijkstra mantiene un atributo δ [v],
el cual es un límite superior del peso del camino mínimo desde el origen a
v. Se llama δ [v] al camino mínimo estimado. Inicialmente, el camino mínimo
estimado de todos los vértices restantes al vértice origen se fija a ∞. El
algoritmo de Dijkstra también mantiene el conjunto S de vértices cuyos
pesos del camino mínimo definitivo desde el origen todavía no se ha
determinado. El algoritmo selecciona repetidamente el vértice u ∈ S con el
mínimo camino mínimo estimado y reevalúa el camino mínimo estimado de
los vértices adyacentes a u. La reevaluación es a menudo referida a un
paso de generación. Una vez que el vértice se elimina de S, se determina el
peso del camino mínimo desde el origen y el algoritmo termina. []
Ejemplo:

Algoritmos de Floyd
Def 1:
Ejemplo:
Def 2:
Ejemplo:
Def 3:
Ejemplo:

Algoritmos de Warshall
Def 1:
Ejemplo:
Def 2:
Ejemplo:
Def 3:
Ejemplo:

También podría gustarte