Beruflich Dokumente
Kultur Dokumente
ITSP
4.2 Grafos
Un grafo es un conjunto, no vaco, de objetos llamados vrtices (o nodos) y una seleccin de pares de vrtices, llamados aristas que pueden ser orientados o no. Tpicamente, un grafo se representa mediante una serie de puntos (vrtices) conectados por lneas (aristas). Un grafo G es una dupla G= (V,A), donde V es un conjunto no vaco de vrtices y A es un conjunto de aristas o arcos. Grafo No dirigido
1 4
El conjunto de vrtices V = {1,4,5,7,9} y el conjunto de arcos A = {(1,4), (5,1), (7,9), (7,5),(4,9),(4,1),(1,5), (9,7), (5,7), (9,4)} forman el grafo no dirigido G = {V,A}.
Grafo dirigido
C E
F H
El conjunto de vrtices V = {C,D,E,F,H} y el conjunto de arcos A = {(C,D), (D,F), (E,H), (H,E),(E,C)} forman el grafo dirigido G = {V,A}. Si no se considera el orden de los vrtices en cada pareja, dichos pares se denominan aristas, y decimos que el grafo es no orientado. Si se consideran las relaciones, el par de aristas se llama arco y el grafo es orientado. Un grafo no orientado puede siempre convertirse en orientado, expresando la doble relacin entre los vrtices. Se puede asociar a las aristas una tercera componente: coste (peso). Cada arista o arco es un par (v, w), donde v, w pertenecen a V.
Pgina 91
Estructura de Datos
ITSP
Pgina 92
Estructura de Datos
ITSP
Un ejemplo de grafo dirigido lo constituye la red de aguas de una ciudad ya que cada tubera slo admite que el agua la recorra en un nico sentido. Por el contrario, la red de carreteras de un pas representa en general un grafo
Pgina 93
Estructura de Datos
ITSP
no dirigido, puesto que una misma carretera puede ser recorrida en ambos sentidos. Si las aristas tienen asociada una direccin (las aristas (x,y) y (y,x) no son equivalentes) diremos que el grafo es dirigido, en otro caso ((x,y)=(y,x)) diremos que el grafo es no dirigido.
Vrtices adyacentes: unidos por un arco. Grado de un vrtice ice (deg (V)): numero de vrtices adyacentes. Camino: secuencia de vrtices, tal que dos vrtices consecutivos son adyacentes. Camino simple: aquel que no tiene vrtices repetidos. Ciclo: camino simple, excepto que el ltimo vrtice es el primero. Un grafo es conexo si entre cada dos nodos hay un camino. Un bosque es un grafo sin ciclos.
CAMINO. Es una secuencia de vrtices V1, V2, V3,..., Vn. LONGITUD DE CAMINO. Es el nmero de arcos en ese camino. CAMINO SIMPLE. Es cuando todos sus vrtices, excepto tal vez el primero y el ltimo son distintos. CICLO SIMPLE. Es un camino simple de longitud por lo menos de uno que empieza y termina en el mismo vrtice. ARISTAS PARALELAS. Es cuando hay ms de una arista con un vrtice inicial y uno terminal dados. GRAFO CICLICO. Se dice que un grafo es cclico cuando contiene por lo menos un ciclo. GRAFO ACICLICO. Se dice que un grafo es a cclico cuando no contiene ciclos.
Pgina 94
Estructura de Datos
ITSP
GRAFO CONEXO. Un grafo G es conexo, si y solo si existe un camino simple en cualesquiera dos nodos de G. GRAFO COMPLETO FUERTEMENTE CONEXO. Un grafo dirigido G es completo si para cada par de nodos (V,W) existe un camino de V a W y de W a V (forzosamente tendrn que cumplirse ambas condiciones), es decir que cada nodo G es adyacente a todos los dems nodos de G. GRAFO UNILATERALMENTE CONEXO. Un grafo G es unilateralmente conexo si para cada par de nodos (V, W) de G hay un camino de V a W o un camino de W a V. GRAFO PESADO ETIQUETADO. Un grafo es pesado cuando sus aristas contienen datos (etiquetas). Una etiqueta puede ser un nombre, costo un valor de cualquier tipo de dato. Tambin a este grafo se le denomina red de actividades, y el nmero asociado al arco se le denomina factor de peso. VERTICE ADYACENTE. Un nodo o vrtice V es adyacente al nodo W si existe un arco de m a n. GRADO DE SALIDA. El grado de salida de un nodo V de un grafo G, es el nmero de arcos o aristas que empiezan en V. GRADO DE ENTRADA. El grado de entrada de un nodo V de un grafo G, es el nmero de aristas que terminan en V. NODO FUENTE. Se le llama as a los nodos que tienen grado de salida positivo y un grado de entrada nulo. NODO SUMIDERO. Se le llama sumidero al nodo que tiene grado de salida nulo y un grado de entrada positivo.
En los grafos, como en todas las estructuras de datos, las dos operaciones bsicas son insertar y borrar. En este caso, cada una de ellas se divide en dos, para insertar/eliminar vrtices e insertar/eliminar aristas. Insertar vrtice La operacin de insercin de un nuevo vrtice es una operacin muy sencilla, nicamente consiste en aadir una nueva entrada en la tabla de vrtices (estructura de datos que almacena los vrtices) para el nuevo nodo. A partir de ese momento el grafo tendr un vrtice ms, inicialmente aislado, ya que ninguna arista llegar a l.
Pgina 95
ITSP
Esta operacin es tambin muy sencilla. Cuando se inserte una nueva arista en el grafo, habr que aadir un nuevo nodo a la lista de adyacencia (lista que almacena los nodos a los que un vrtice puede acceder mediante una arista) del nodo origen, as si se aade la arista (A, C), se deber incluir en la lista de adyacencia de A el vrtice C como nuevo destino. Eliminar vrtice Esta operacin es inversa a la insercin de vrtice. En este caso el procedimiento a realizar es la eliminacin de la tabla de vrtices del vrtice en s. A continuacin habr que eliminar las aristas que tuviesen al vrtice borrado como origen o destino. Eliminar arista Mediante esta operacin se borra un arco del grafo. Para llevar a cabo esta accin es necesario eliminar de la lista de adyacencia del nodo origen el nodo correspondiente al nodo destino.
Pgina 96
Estructura de Datos
ITSP
Como se puede apreciar, la matriz de adyacencia siempre ocupa un espacio de n2, es decir, depende solamente del nmero de nodos y no del de aristas, por lo que ser til para representar grafos densos.
Lo que se hace es definir una lista enlazada para cada nodo, que contendr los nodos a los cuales es posible acceder. Es decir, un vrtice i tendr una lista enlazada asociada en la que aparecer un elemento con una referencia al vrtice j si i y j tienen una arista que los une. Obviamente, si el grafo es no dirigido, en la lista enlazada de j aparecer la correspondiente referencia al vrtice i. En este caso el espacio ocupado es nm, muy distinto del necesario en la matriz de adyacencia, que era de n2. La representacin por listas de adyacencia, por tanto, ser ms adecuada para grafos dispersos.
Pgina 97
Estructura de Datos
ITSP
Ejemplos
Representacin de matriz de adyacencia o lista de adyacencias.
Pgina 98
Estructura de Datos
ITSP
Pgina 99
Estructura de Datos
ITSP
Pgina 100