grafos adyacentes

26
Estructura de datos INGENIERÍA DE SISTEMAS E INFORMÁTICA INTEGRANTES: BANCES PANTALEON ROBERTO SANDOVAL MORENO DANI

description

GRAFOS ADYACENTES.

Transcript of grafos adyacentes

Diapositiva 1

Estructura de datos

INGENIERA DE SISTEMAS E INFORMTICAINTEGRANTES:BANCES PANTALEON ROBERTOSANDOVAL MORENO DANI

MATRICES DE ADYACENTESLa matriz de adyacencia M es un array de dos dimensiones que representa las conexiones entre pares de vrtices. Sea un grafo G con un conjunto de nodos V0 y un conjunto de aristas A0.

Dos vrtices se dicen que son adyacentes si hay un arco que los une. As Vi Y Vj son adyacentes si existe un camino que los une.

MATRICES DE ADYACENTES EN GRAFOS DIRIGIDOSLas columnas y las filas de la matriz representan los vrtices del grafo. Si existe una arista desde i a j (esto es, el vrtice i es adyacente a j), el costo o peso de la arista de i a j se introduce 1; si no existe la arista se introduce un 0.

1, si existe una arista (Vi ,Vj) en AG, Vi es adyacente a VjM (i,j)=0, en caso contrario

EJEMPLO:j i123456101000020010003000011400100050000006000000

EJEMPLO 2:

i j123411111200113000140000MATRICES DE ADYACENTES EN GRAFOS NO DIRIGIDOSSi G es un grafo no dirigido, la matriz es simtrica M(i,j) = M(j,i).

1, si existe una arista (Vi ,Vj) en AG, Vi es adyacente a VjM (i,j)=0, en caso contrario

Las aristas no estn ordenadas, es decir: en lenguaje llano las aristas no tienen flecha.

EJEMPLO:

jI123456101000021010003010111400100050010006001000

i j123410111210113110141110EJEMPLO 2:MATRIZ DE CAMINOSCamino: secuencia de vrtices (o nodos), tal que dos vrtices consecutivos son adyacentes.

Camino de longitud 2: (A,B,D)Camino de longitud 3: (C,B,A,B)Camino de longitud 4: (C,B,A,B,D)

Es una matriz P, que representa si hay o no camino entre dos vrtices (Vi ,Vj )1 si entre (Vi ,Vj) hay caminoP i j=0, sino lo hay

PARA DETERMINAR UNA MATRIZ DE CAMINO A PARTIR DE UNA MATRIZ DE ADYACENCIA

Sea el grafo A y su matriz de adyacencia

Si lo elevamos al cuadrado podremos observar la cantidad de caminos de tamao dos que existen entre los vrtices, tal como se muestra:

Siguiendo con el ejemplo obtenemos la matriz elevada al cubo y a la cuarta:

Ahora bien si sumamos las matrices que obtuvimos anteriormente, generaremos una matriz en donde estarn representadas la suma de todos los posibles caminos para llegar a cierto vrtice del grafo a otro.

Y si en esta matriz sustituimos todos los nmeros diferentes de ceros por unos obtendremos la siguiente matriz:

Esta matriz P se conoce como la matriz de caminos y nos indica si es posible llegar a cierto nodo desde otro, una matriz de caminos unitaria proviene de un grafo conexo. Un grafo es conexo si entre cada dos nodos hay un camino.

Algoritmo de WarshallAlgoritmo que es mas eficiente que calcular las potencias de la matriz de adyacencia A y que permite encontrar las matriz sumatoria B.Para un grafo dirigido G con N nodos V1, V2, V3, .., Vm. Se halla la matriz de caminos P de la siguiente manera:

1 Si existe un camino simple de Vi a Vj que no usa nodos, aparte de posiblemente V1, V2, V3, .., Vm. 0 En otro caso.

Pk (i, j) =

Warshall observo que: Pk (i, j) = 1Cuando:1. Existe un camino simple de Vi a Vj Pk (i, j) = 12. Existe un camino simple de Vi a Vk y otro camino simple de Vk a ViPk-1 (i, k) = 1 y Pk-1 (k, j) = 1Por lo tanto los elementos de la matriz Pk se obtiene de la siguiente manera: Pk (i, j) = Pk (i, j) (Pk-1 (i, k) y Pk-1 (k, j)) Algoritmo de WarshallInicioRepetir con i desde 1 hasta nRepetir con j desde 1 hasta nSi A [i, j] = 0Entonces P (i, j) 0Caso Contrario P (i, j)1Fin_SiFin_RepetirFin_Repetir Repetir con k desde 1 hasta nRepetir con i desde 1 hasta nRepetir con j desde 1 hasta nSi A [i, j] = 0 entoncesA [i, j] A [i, k] y A [k, j]Fin_SiFin_RepetirFin_RepetirFin_RepetirFin

K=1

K=2K=3K=4Algoritmo de Camino MnimoEste algoritmo consiste en encontrar el camino ms corto entre todos los vrtices del dgrafo. Sea la grfica dirigida G= (V, A) donde cada arco u v tiene asociado un peso.El algoritmo de Floyd permitir encontrar el camino ms corto entre cada par ordenado u y v.La matriz de distancia sirve como punto de partida para este algoritmo. Se realizan k iteraciones sobre la matriz buscando el camino ms corto, por lo tanto, en la k sima iteracin, Q [i, j] tendr el camino de menor costo para llegar de i a j, pasando por un nmero de vrtices menor a k, el cual se calculara segn la siguiente expresin: Qk-1[i, j] Qk [i, j] min = Qk-1[i, k] + Qk-1[k, j]

InicioRepetir con i desde 1 hasta NRepetir con j desde 1 hasta NSi w (i, j) = 0Entonces Q (i, j) INFINITOCaso Contrario Q (i, j) w (i, j)Fin_SiFin_RepetirFin_Repetir Repetir con k desde 1 hasta NRepetir con i desde 1 hasta NRepetir con j desde 1 hasta NQ (i, j) MIN (Q (i, j), Q (i, k) + Q (k, j))Fin_RepetirFin_RepetirFin_Repetir Fin

Ejemplo:RUTS4753721RSTUR7500S7002T0300U4010Matriz de Distancias

GRACIAS