Está en la página 1de 10

Estructura de Datos

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

Ejemplo: Red de Vuelos.

Pgina 92

Estructura de Datos

ITSP

Ejemplo: Red de computadoras.

Ejemplo Circuito Elctrico.

4.2.1 Terminologa de grafos.


Los conceptos que se manejan en los grafos, son: Vrtice: Un vrtice w es adyacente a v s y slo si (v, w) ( <v, w>) pertenece a A. Camino de un vrtice w1 a wq : es una secuencia w1,w2,,wq Longitud de un camino: numero de nodos-1. Pueden describirse 2 tipos bsicos de grafos: Grafo no dirigido. Grado dirigido.

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.

Otros trminos son:


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.

4.2.2 Operaciones bsicas con grafos.

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

Estructura de Datos Insertar arista

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.

Implementacin de un grafo Un grafo se puede implementar de dos formas:


a) Matriz de Adyacencia b) Lista de Adyacencia

Matriz de adyacencia (Grafo no dirigido).


La matriz de adyacencia es la forma ms comn de representacin y la ms directa. Consiste en una tabla de tamao n x n, en que la que aij tendr como valor 1 si existe una arista del vrtice i al vrtice j. En caso contrario, el valor ser 0. Si el grafo es no dirigido hay que asegurarse de que se marca con un 1 tanto la entrada aij como la entrada aji, puesto que se puede recorrer en ambos sentidos.

Pgina 96

Estructura de Datos

ITSP

1. Representa un camino entre 2 vrtices. 0. No hay camino entre vrtices.

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.

Lista de adyacencia (Grafo no dirigido).


Una lista de adyacencia consiste de una lista de los vrtices del grafo y para cada vrtice de una lista de sus vrtices vecinos.

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