Representación de Grafos

12
REPRESENTACIÓN DE GRAFOS CRISTIAN ÁVILA PALACIO ANGIE ORTIZ GIRALDO JOHAN QUINTERO MORALES UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD DE INGENIERÍA INGENIERÍA DE SISTEMAS BOGOTÁ D.C.

description

Concepto básicos sobre la representación y las operaciones más usuales en la teoría de grafos.

Transcript of Representación de Grafos

REPRESENTACIN DE GRAFOS

CRISTIAN VILA PALACIOANGIE ORTIZ GIRALDOJOHAN QUINTERO MORALES

UNIVERSIDAD DISTRITAL FRANCISCO JOS DE CALDASFACULTAD DE INGENIERAINGENIERA DE SISTEMASBOGOT D.C.

REPRESENTACIN DE GRAFOS

CRISTIAN VILA PALACIOANGIE ORTIZ GIRALDOJOHAN QUINTERO MORALES

CONSULTA

Profesor: Julio Csar Flrez BezAsignatura:Ciencias de la Computacin IIGrupo:82

UNIVERSIDAD DISTRITAL FRANCISCO JOS DE CALDASFACULTAD DE INGENIERAINGENIERA DE SISTEMASBOGOT D.C.2015

CONTENIDO

INTRODUCCIN

1.MATRICES.2.ESTRUCTURAS DE ADYACENCIA.3.APLICACIONES.4.BIBLIOGRAFA.

INTRODUCCINUna caracterstica especial en los grafos es que podemos representarlos utilizando dos estructuras de datos distintas. En los algoritmos que se aplican sobre ellos veremos que adoptarn tiempos distintos dependiendo de la forma de representacin elegida. En particular, los tiempos de ejecucin variarn en funcin del nmero de vrtices y el de aristas, por lo que la utilizacin de una representacin u otra depender en gran medida de si el grafo es denso o disperso.

1. MATRICESLa iformacin de una grafo tambin puede representarse de varias maneras en forma de matriz. Hay dos matrices que son especialmente tiles. La primera es la matriz de adyacencia y la seunda es la matriz de incidencia. Se puede describir esta matrices para la relacin no direccional simple y adems, para la relacin dreccionall, los grafos ponderados y los hipergrafos.

1.1. MATRIZ DE ADYACENCIADEFINICIN 1Dado un grafo G = (V, E) con n vrtices {v1,. ., vn} su matriz de adyacencia es la matriz de orden nn, A(G)=(aij) donde aij es el nmero de aristas que unen los vrtices vi y vj.DEFINICIN 2La matriz de adyacencia es una matriz cuadrada que se utiliza como una forma de representar relaciones binarias.1.1.1. CONSTRUCCIN DE LA MATRIZ A PARTIR DE UNA GRAFO1. Se crea una matriz cero, cuyas columnas y filas representan los nodos del grafo.

2. Por cada arista que une a dos nodos, se suma 1 al valor que hay actualmente en la ubicacin correspondiente de la matriz.

3. Si tal arista es un bucle y el grafo es no dirigido, entonces se suma 2 en vez de 1. Finalmente, se obtiene una matriz que representa el nmero de aristas (relaciones) entre cada par de nodos (elementos).Existe una matriz de adyacencia nica para cada grafo (sin considerar las permutaciones de filas o columnas), y viceversa.1.1.2. PROPIEDADES DE LA MATRIZ DE ADYACENCIA1. Para un grafo no dirigido la matriz de adyacencia es simtrica.2. El nmero de caminos Ci,j(k), atravesando k aristas desde el nodo i al nodo j, viene dado por un elemento de la potencia k-sima de la matriz de adyacencia:

1.1.3. EJEMPLO

1.2. MATRIZ DE INCIDENCIA1.2.1. DEFINICIN 1La matriz de incidencia es una matriz binaria (sus elementos slo pueden ser unos o ceros), que se utiliza como una forma de representar relaciones binarias.1.2.2. DEFINICIN 2Dado un grafo simple G = (V, E) con n=|V| vrtices {v1, ..., vn} y m=|E| aristas {e1, ..., em}, su matriz de incidencia es la matriz de orden nxm, B(G)=(bij), donde bij=1 si vi es incidente con ej y bij=0 en caso contrario.1.2.3. CONSTRUCCIN DE LA MATRIZ A PARTIR DE UNA GRAFO1. Las columnas de la matriz representan lasaristasdel 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).En el ejemplo de la figura, si sumamos las cantidades de 1's que hay en cada columna, veremos que hay solo dos. Pero si sumamos las cantidades de unos 1's que hay por cada fila, comprobaremos que los nodos 2, 4 y 5 poseen un valor de 3. Ese valor indica la cantidad de aristas que inciden sobre el nodo.

1.2.4. EJEMPLO

MATRICES PARA GRAFOS DIRIGIDOSLa matriz de adyacencia de un grafos dirigido tiene Xij elementos a 1 si hay un arco desde el nodos n, al lado de la fila ni, al lado de la columna nj, y es iguall a 0 si no lo hay.MATRICES PARA GRAFOS PONDERADOSUn grafo ponderado tambin se puede representar en forma de matriz de adyacencia. La entrada en la celda Xij es el valor asigado a la lnea entre el nodo ni, y el nodo nj, en un grafo ponderado, o el valor asignado al arco desde ni hasta nj, en un grafo dirigido ponderado.MATRICES PARA REDES BIMODALESPara las redes bimodales el tamao de la matriz es g*h donde las filas incluyen los nodos de N={n1,n2,,ng} las columas incluyen los nodos de M={m1, m2,,..,mn}.MATRICES PARA HIPERGRAFOSLa matriz para un hipergrafo es una matriz g por h que registra cules puntos se incluyen dentro de cules aristas.

2. ESTRUCTURAS DE ADYACENCIA

2.1. LISTA DE ADYACENCIAEn esta estructura de datos la idea es asociar a cada vrticeidel grafo una lista que contenga todos aquellos vrticesjque sean adyacentes a l. De esta forma slo reservar memoria para los arcos adyacentes aiy no para todos los posibles arcos que pudieran tener como origeni. El grafo, por tanto, se representa por medio de un vector de n componentes (si |V|=n) donde cada componente va a ser una lista de adyacencia correspondiente a cada uno de los vrtices del grafo. Cada elemento de la lista consta de un campo indicando el vrtice adyacente. En caso de que el grafo sea etiquetado, habr que aadir un segundo campo para mostrar el valor de la etiqueta.

Esta representacin requiere un espacio proporcional a la suma del nmero de vrtices, ms el nmero de arcos, y se suele usar cuando el nmero de arcos es mucho menor que el nmero de arcos de un grafo completo. Una desventaja es que puede llevar un tiempo O(n) determinar si existe un arco del vrticeial vrticej, ya que puede haber n vrtices en la lista de adyacencia asociada al vrticei.Mediante el uso del vector de listas de adyacencias slo se reserva memoria para los arcos existentes en el grafo con el consiguiente ahorro de la misma. Sin embargo, no permite que haya vrtices que puedan ser aadidos o suprimidos del grafo, debido a que la dimensin del grafo debe ser predeterminada y fija. Para solucionar esto se puede usar una lista de listas de adyacencia. Slo los vrtices del grafo que sean origen de algn arco aparecern en la lista. De esta forma se pueden aadir y suprimir arcos sin desperdicio de memoria ya que simplemente habr que modificar la lista de listas para reflejar los cambios.

Como puede verse en el ejemplo de las figuras anteriores tanto el vector de listas de adyacencias como en la lista de listas se ha razonado en funcin de los vrtices que actan como origenes de los arcos.3. APLICACIONES

3.1. APLICACIONES EN UNA RED