You are on page 1of 35

M.C.

Mara Antonia Ruz Daz - Facultad de Ciencias de la


jueves, 11 de febrero de 16
Computacin - BUAP

GRAFOS Y DIGRAFOS
Estructuras de Datos
DIGRAFOS
jueves, 11 de febrero de 16 M.C. Mara Antonia Ruz Daz - Facultad de Ciencias de la Computacin - BUAP

DIGRAFOS - GRAFOS DIRIGIDOS


Como estructura matemtica, un grafo dirigido o digrafo,
consiste en un conjunto finito de elementos llamados vrtices
o nodos, junto con un conjunto finito de arcos dirigidos o
aristas que conectan pares de vrtices.
jueves, 11 de febrero de 16 M.C. Mara Antonia Ruz Daz - Facultad de Ciencias de la Computacin - BUAP

APLICACIONES
Las aplicaciones de los grafos dirigidos son muchas y variadas.
Como ejemplos:
Analizar circuitos elctricos.
Desarrollar planificaciones de trabajo.

Encontrar la ruta ms corta.


Analizar relaciones sociales.
jueves, 11 de febrero de 16 M.C. Mara Antonia Ruz Daz - Facultad de Ciencias de la Computacin - BUAP

DIGRAFO FUERTEMENTE CONEXO


Un grafo dirigido es llamado fuertemente conexo si para
cada par de vrtices i, j existe un camino de i hacia j y un
camino de j hacia i.
jueves, 11 de febrero de 16 M.C. Mara Antonia Ruz Daz - Facultad de Ciencias de la Computacin - BUAP

GRAFOS DIRIGIDOS Y RBOLES


Los rboles son un caso especial de grafos dirigidos y se
caracterizan por el hecho de que uno de sus nodos(raz), no
es el destino de ninguna arista y cada uno de los dems nodos
se puede alcanzar desde la raz siguiendo un nico camino.
jueves, 11 de febrero de 16 M.C. Mara Antonia Ruz Daz - Facultad de Ciencias de la Computacin - BUAP

GRAFOS DIRIGIDOS Y RBOLES


El vrtice 1 es un nodo que no tiene aristas de entrada (podra
ser la raz), pero hay muchos caminos diferentes desde el
vrtice 1 a varios de los nodos, por ejemplo al vrtice 3.
jueves, 11 de febrero de 16 M.C. Mara Antonia Ruz Daz - Facultad de Ciencias de la Computacin - BUAP

GRAFOS DIRIGIDOS Y RBOLES


Tambin se diferencian en la operacin de insercin:
Para rboles se aade un nodo al rbol y la adicin de una
rama a ese nodo desde su padre es parte de la operacin.

En los digrafos podemos insertar un vrtice sin necesidad de


que hayan aristas desde o hacia l.
jueves, 11 de febrero de 16 M.C. Mara Antonia Ruz Daz - Facultad de Ciencias de la Computacin - BUAP

DIGRAFOS - OPERACIONES BSICAS


Construir un grafo dirigido vaco.
Comprobar si est vaco.
Insertar un nuevo vrtice.
Insertar una arista entre dos vrtices existentes o de un
vrtice a s mismo.
Borrar un vrtice y todas las aristas que salgan de l o lleguen
a l.
Borrar una arista entre dos vrtices existentes.
Buscar un valor entre un vrtice, comenzando en un vrtice
dado.
jueves, 11 de febrero de 16 M.C. Mara Antonia Ruz Daz - Facultad de Ciencias de la Computacin - BUAP

OPERACIONES ADICIONALES
Operaciones como las siguientes son importantes en algunas
aplicaciones:
Recorrido
Determinar si un vrtice se puede alcanzar desde otro vrtice.
Determinar el nmero de caminos de un vrtice a otro.
Encontrar el camino ms corto entre dos vrtices.
jueves, 11 de febrero de 16 M.C. Mara Antonia Ruz Daz - Facultad de Ciencias de la Computacin - BUAP

DIGRAFOS - REPRESENTACIN
Existen varias formas de implementar un grafo dirigido utilizando
estructuras de datos.
Una de las ms utilizadas es la matriz de adyacencia del digrafo.

Para construirla primero numeramos los vrtices del digrafo 1, 2,


, n; la matriz de adyacencia es la matriz n x n, en la que la
entrada en la fila i y la columna j es 1 (o cierto) si el vrtice i es
adyacente al vrtice j y es 0 (o falso) en caso contrario.
M.C. Mara Antonia Ruz Daz - Facultad de Ciencias de la
jueves, 11 de febrero de 16
Computacin - BUAP

DIGRAFOS - REPRESENTACIN
La matriz de adyacencia para el digrafo:
M.C. Mara Antonia Ruz Daz - Facultad de Ciencias de la
jueves, 11 de febrero de 16
Computacin - BUAP

DIGRAFOS - REPRESENTACIN
Para un digrafo valorado o ponderado en el que se asocia un
cierto coste o peso a cada arista, en la matriz de adyacencia se
utiliza el coste de la arista desde el vrtice i al vrtice j en lugar
de 1 o 0.
DIGRAFOS
Grado de entrada o salida de un vrtice: Es el nmero de
aristas que llegan o salen de ese vrtice, respectivamente.

La suma de las entradas en la fila i de la matriz de adyacencia es


el grado de salida del vrtice i y la suma de las entradas en la
columna i es su grado de entrada.
M.C. Mara Antonia Ruz Daz - Facultad de Ciencias de la
jueves, 11 de febrero de 16
Computacin - BUAP

REPRESENTACIN CON MATRIZ DE ADYACENCIA


Una deficiencia de la representacin con una matriz de
adyacencia es que esta matriz a menudo es dispersa, es decir,
tiene muchas entradas nulas, con lo que la cantidad no
desdeable de espacio se malgasta en almacenar ceros.
M.C. Mara Antonia Ruz Daz - Facultad de Ciencias de la
jueves, 11 de febrero de 16
Computacin - BUAP

REPRESENTACIN CON LISTAS LIGADAS


Podemos resolver el problema usando listas adyacentes.
GRAFOS
M.C. Mara Antonia Ruz Daz - Facultad de Ciencias de la
jueves, 11 de febrero de 16
Computacin - BUAP

GRAFOS
Un grafo, a veces llamado grafo no dirigido, es como un
digrafo con la salvedad de que las aristas no tienen asociado
un sentido.
Adems, tampoco se permiten aristas que unan un vrtice
consigo mismo.
M.C. Mara Antonia Ruz Daz - Facultad de Ciencias de la
jueves, 11 de febrero de 16
Computacin - BUAP

APLICACIONES
Son tiles para modelar circuitos elctricos, estructuras de
compuestos qumicos, sistemas de comunicacin y redes en
las que no existe una direccin asociada con los enlaces.

Como estas aristas no tienen un sentido determinado, la


matriz de adyacencia de un grafo no dirigido siempre es
simtrica.
M.C. Mara Antonia Ruz Daz - Facultad de Ciencias de la
jueves, 11 de febrero de 16
Computacin - BUAP

OPERACIONES BSICAS
Construir un grafo vaco
Comprobar si es el grafo vaco
Insertar un nuevo vrtice
Insertar una arista entre dos vrtices existentes
Borrar un vrtice y todas las aristas de las que forme parte.
Borrar una arista entre dos vrtices.
Buscar un valor en un vrtice, comenzando un vrtice dado.
M.C. Mara Antonia Ruz Daz - Facultad de Ciencias de la
jueves, 11 de febrero de 16
Computacin - BUAP

GRAFOS - REPRESENTACIN
Los grafos se pueden representar mediante matrices de
adyacencia:.
M.C. Mara Antonia Ruz Daz - Facultad de Ciencias de la
jueves, 11 de febrero de 16
Computacin - BUAP

GRAFOS - REPRESENTACIN
Tambin se pueden representar
mediante listas de adyacencia:
M.C. Mara Antonia Ruz Daz - Facultad de Ciencias de la
jueves, 11 de febrero de 16
Computacin - BUAP

GRAFO - CONECTIVIDAD
Una propiedad importante de un grafo es si es conexo, es
decir si desde cualquier vrtice existe un camino a cualquier
otro vrtice.
M.C. Mara Antonia Ruz Daz - Facultad de Ciencias de la
jueves, 11 de febrero de 16
Computacin - BUAP

GRAFO - COMPLETITUD
Un grafo completo es un grafo simple donde cada par de
nodos est conectado por una arista.

Un grafo completo de n nodos tiene n(n-1)/2 aristas, y se


denota Kn
GRAFOS - DIGRAFOS PONDERADOS
Un grafo con nmeros en las aristas se le conoce como grafo/
digrafo ponderado, donde este nmero se dice que es el peso
de los vrtices que conecta la arista.
LONGITUD DE LA RUTA
En un grafo ponderado, la longitud de la ruta es la suma de
los pesos de las aristas en la ruta.
CALCULANDO LA RUTA
MAS CORTA
M.C. Mara Antonia Ruz Daz - Facultad de Ciencias de la
jueves, 11 de febrero de 16
Computacin - BUAP

UN ALGORITMO DE LA RUTA MS CORTA


En los grafos ponderados con frecuencia se desea encontrar la
ruta ms corta entre dos vrtices dados.

El algoritmo ideado por E.W. Dijkstra resuelve con eficiencia


este problema.
M.C. Mara Antonia Ruz Daz - Facultad de Ciencias de la
jueves, 11 de febrero de 16
Computacin - BUAP

ALGORITMO DE DIJKSTRA
Este algoritmo encuentra la longitud de una ruta ms corta
del vrtice a al vrtice z en un grafo ponderado conexo.

El peso de la arista (i,j) es w(i,j)>0 y la etiqueta del vrtice x


es L(x).

Al terminar L(z) es la longitud de la ruta ms corta de a a z.


M.C. Mara Antonia Ruz Daz - Facultad de Ciencias de la
jueves, 11 de febrero de 16
Computacin - BUAP

ALGORITMO DE DIJKSTRA
Entrada: Un grafo conexo ponderado, en la que todos los
pesos son positivos, vrtices inicio (a) y final (z).

Salida: L(z), la longitud de la ruta ms corta de a a z.


M.C. Mara Antonia Ruz Daz - Facultad de Ciencias de la
jueves, 11 de febrero de 16
Computacin - BUAP

ALGORITMO DE DIJKSTRA
M.C. Mara Antonia Ruz Daz - Facultad de Ciencias de la
jueves, 11 de febrero de 16
Computacin - BUAP

CUESTIONARIO
1. Qu caractersticas diferencan un grafo dirigido de un rbol?
2. En un digrafo, puede no ser posible ir de un vrtice a otro. (V/F)
3. Para representar un grafo podemos usar una matriz de
_____________ o una ________________ ____________?
4. Dibuja la matriz de adyacencia de los siguientes grafos dirigidos:
M.C. Mara Antonia Ruz Daz - Facultad de Ciencias de la
jueves, 11 de febrero de 16
Computacin - BUAP

CUESTIONARIO
5. Dibuja el grafo dirigido representado por la siguiente lista adyacente.
M.C. Mara Antonia Ruz Daz - Facultad de Ciencias de la
jueves, 11 de febrero de 16
Computacin - BUAP

CUESTIONARIO
Calcular el camino ms corto:

1) Del vrtice a al vrtice e


2) Del vrtice d al vrtice g
M.C. Mara Antonia Ruz Daz - Facultad de Ciencias de la
jueves, 11 de febrero de 16
Computacin - BUAP

REFERENCIAS
TADs, Estructuras de datos y resolucin de problemas con C
++, Larry R. Nyho, 2 Ed., Prentice Hall.
Matemticas discretas, Richard Johnsonbaugh, 6 Ed.,
Prentice Hall.

You might also like