Está en la página 1de 10

Estructura de Datos ITSP

4.2 Grafos

Un grafo es un conjunto, no vacío, de objetos llamados vértices (o nodos) y


una selección de pares de vértices, llamados aristas que pueden ser
orientados o no. Típicamente, un grafo se representa mediante una serie de
puntos (vértices) conectados por líneas (aristas).
Un grafo G es una dupla G= (V,A), donde V es un conjunto no vacío de
vértices y A es un conjunto de aristas o arcos.

Grafo No dirigido

1 4

7 9

El conjunto de vértices 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

H
D
El conjunto de vértices 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 vértices 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 relación entre los vértices.

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.

Página 91
Estructura de Datos ITSP

Ejemplo: Red de Vuelos.

Página 92
Estructura de Datos ITSP

Ejemplo: Red de computadoras.

Ejemplo Circuito Eléctrico.

4.2.1 Terminología de grafos.

Los conceptos que se manejan en los grafos, son:


• Vértice: Un vértice w es adyacente a v sí y sólo si (v, w) (ó <v, w>)
pertenece a A.
• Camino de un vértice w1 a wq : es una secuencia w1,w2,…,wq
• Longitud de un camino: numero de nodos-1.

Pueden describirse 2 tipos básicos de grafos:


• Grafo no dirigido.
• Grado dirigido.

Un ejemplo de grafo dirigido lo constituye la red de aguas de una ciudad ya


que cada tubería sólo admite que el agua la recorra en un único sentido. Por
el contrario, la red de carreteras de un país representa en general un grafo

Página 93
Estructura de Datos ITSP

no dirigido, puesto que una misma carretera puede ser recorrida en ambos
sentidos.

Si las aristas tienen asociada una dirección (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
dirigido.

Vértices adyacentes: unidos por un arco.


Grado de un vértice
ice (deg (V)): numero de vértices adyacentes.

Camino: secuencia de vértices, tal que dos vértices consecutivos son


adyacentes.

Camino simple: aquel que no tiene vértices repetidos.

Ciclo: camino simple, excepto que el último vértice es el primero.

Un grafo es conexo si entre cada dos nodos hay un camino.


Un bosque es un grafo sin ciclos.

Otros términos son:

• CAMINO. Es una secuencia de vértices V1, V2, V3,..., Vn.


• LONGITUD DE CAMINO. Es el número de arcos en ese camino.
• CAMINO SIMPLE. Es cuando todos sus vértices, 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 vértice.
• ARISTAS PARALELAS. Es cuando hay más de una arista con un
vértice inicial y uno terminal dados.
• GRAFO CICLICO. Se dice que un grafo es cíclico cuando contiene por
lo menos un ciclo.
• GRAFO ACICLICO. Se dice que un grafo es a cíclico cuando no
contiene ciclos.

Página 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 tendrán que cumplirse ambas
condiciones), es decir que cada nodo G es adyacente a todos los
demás 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. También a este
grafo se le denomina red de actividades, y el número asociado al arco
se le denomina factor de peso.
• VERTICE ADYACENTE. Un nodo o vértice 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 número 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 número 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 básicas con grafos.

En los grafos, como en todas las estructuras de datos, las dos operaciones
básicas son insertar y borrar. En este caso, cada una de ellas se divide en
dos, para insertar/eliminar vértices e insertar/eliminar aristas.

Insertar vértice

La operación de inserción de un nuevo vértice es una operación muy sencilla,


únicamente consiste en añadir una nueva entrada en la tabla de vértices
(estructura de datos que almacena los vértices) para el nuevo nodo. A partir
de ese momento el grafo tendrá un vértice más, inicialmente aislado, ya que
ninguna arista llegará a él.

Página 95
Estructura de Datos ITSP

Insertar arista

Esta operación es también muy sencilla. Cuando se inserte una nueva arista
en el grafo, habrá que añadir un nuevo nodo a la lista de adyacencia (lista
que almacena los nodos a los que un vértice puede acceder mediante una
arista) del nodo origen, así si se añade la arista (A, C), se deberá incluir en la
lista de adyacencia de A el vértice C como nuevo destino.

Eliminar vértice

Esta operación es inversa a la inserción de vértice. En este caso el


procedimiento a realizar es la eliminación de la tabla de vértices del vértice
en sí. A continuación habrá que eliminar las aristas que tuviesen al vértice
borrado como origen o destino.

Eliminar arista

Mediante esta operación se borra un arco del grafo. Para llevar a cabo esta
acción es necesario eliminar de la lista de adyacencia del nodo origen el nodo
correspondiente al nodo destino.

Implementación 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 más común de representación y la más
directa. Consiste en una tabla de tamaño n x n, en que la que aij tendrá
como valor 1 si existe una arista del vértice i al vértice 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.

Página 96
Estructura de Datos ITSP

1. Representa un camino entre 2 vértices.

0. No hay camino entre vértices.

Como se puede apreciar, la matriz de adyacencia siempre ocupa un espacio


de n2, es decir, depende solamente del número 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 vértices del grafo y para
cada vértice de una lista de sus vértices 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 vértice i tendrá una
lista enlazada asociada en la que aparecerá un elemento con una referencia
al vértice 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 vértice i. En este caso el espacio ocupado es n⋅m, muy distinto del
necesario en la matriz de adyacencia, que era de n2. La representación por
listas de adyacencia, por tanto, será más adecuada para grafos dispersos.

Página 97
Estructura de Datos ITSP

Ejemplos
Representación de matriz de adyacencia o lista de adyacencias.

Página 98
Estructura de Datos ITSP

Página 99
Estructura de Datos ITSP

Página 100

También podría gustarte