Unidad 5.doc
date post
04-Dec-2015Category
Documents
view
222download
2
Embed Size (px)
Transcript of Unidad 5.doc
EL TAD COLA
Universidad Tecnolgica Nacional Ingeniera en Sistemas de Informacin
Facultad Regional Resistencia GESTIN DE DATOS
universidad tecnolgica nacional
facultad REGIONAL resistencia
ingeniera en sistemas
de INFORMACIN
gestin de datos
APuntes tericos
Unidad 5: TAD Grafo
Profesor Teora: Ing. Carolina Orcolandice
3Unidad 4: El TAD Grafo
3Conceptos y Definiciones
4Definiciones relacionadas con grafos
4Representacin de los Grafos
4Matriz de adyacencia
6Lista de Adyacencia
7Recorridos de un Grafo
7Recorrido en Anchura o Amplitud
8Recorrido en Profundidad
9Algoritmos fundamentales con Grafos
9Algoritmo de Dijkstra
10Algoritmo de Floyd
12Ejemplo de algoritmo Floyd
13Ejemplo de algoritmo Dijkstra
14Algoritmo de Prim
Unidad 4: El TAD Grafo
Con los rboles binarios se han representado relaciones entre objetos en las que existe una jerarqua. Con frecuencia es necesario representar relaciones arbitrarias entre objetos de datos. Los grafos se clasifican en dirigidos y no dirigidos y son modelos naturales de tales relaciones. As, los grafos se usan para representar redes de alcantarillado, redes de comunicaciones, circuitos elctricos, etc.. Una vez modelado el problema mediante un grafo se pueden hacer estudios sobre diversas propiedades. Para ello se utilizan algoritmos concretos que resuelvan ciertos problemas.
La teora de grafos ha sido aplicada en el estudio de problemas que surgen en reas diversas de las ciencias, como la qumica, la ingeniera elctrica y la investigacin operativa. El primer paso siempre ser representar el problema como un grafo. En esta representacin cada elemento, cada objeto del problema, forma un nodo. La relacin, comunicacin o conexin entre los nodos da lugar a una arista, que puede ser dirigida o bidireccional (no dirigida). En la figura aparece una red de comunicaciones.
Conceptos y Definiciones
Un Grafo consiste en un conjunto de vrtices o nodos V y un conjunto de arcos A. Se representa con el par G = {V, A}.
En la figura de la izquierda tenemos un ejemplo de un grafo no dirigido G = {V, A} cuyo conjunto de vrtices es V = {1, 2, 3, 4, 5} y el conjunto de arcos es A = {(1, 2), (2, 1), (2, 5), (5, 2), (5, 4), (4, 5), (4, 3), (3, 4), (3, 1), (1, 3)}.
En la figura de la derecha, tenemos un grafo dirigido G = {V, A}, cuyo conjunto de vrtices est dado por V = {A, B, C, D, E} y cuyo conjunto de arcos dirigidos es A = {(A, B), (A, C), (B, D), (D, E), (E, C), (C, E)}.
Un arco o arista est formado por un par de nodos y se escribe (u, v), siendo u y v el par de nodos. Un grafo es dirigido (dgrafo) si los pares de nodos que forman los arcos son ordenados, y se representan u v.
Un grafo no dirigido es aquel en que los arcos estn formados por pares de nodos no ordenados, no apuntados, y se representa u v.
Dado el arco (u, v) en un grafo, se dice que los vrtices u y v son adyacentes. Si el grafo es dirigido, el vrtice u es adyacente al vrtice v; si no es dirigido u es adyacente a v y v es adyacente a u.
Un arco tiene a veces asociado un factor de peso, en cuyo caso se dice que es un grafo valorado.
Pensemos por ejemplo en un grafo formado por diversos pueblos que forman una regin, cada par de pueblos puede estar unido o no por un camino vecinal, y un factor de peso puede ser la distancia que los une en km. Este es un grafo valorado no dirigido.
Definiciones relacionadas con grafos
El grado es una cualidad que se refiere a los nodos de un grafo. En un grafo no dirigido el grado de un nodo v, grado (v), es el nmero de aristas que contiene a v. En un grafo dirigido se distingue entre grado de entrada y grado de salida; grado de entrada de un nodo v, gradent (v), es el nmero de arcos que llegan a v, mientras que grado de salida, gradsal (v), es el nmero de arcos que salen de v. La diferencia entre arco y arista es que arista son arcos hacia ambos sentidos.
En los ejemplos sera: Grado(Resistencia)= 4; Grado(1)= 2; Gradent(E)= 2; Gradsal(E)= 1.
Un camino P en un grafo G de longitud n desde un vrtice v0 a vn es la secuencia de n+1 vrtices:
P = (v0, v1, v2, ..., vn)
tal que (vi, vi+1) SYMBOL 206 \f "Symbol" \s 10 \h A (arcos) para 0 F entonces ACTUALIZAR (D, F, P);
Sino ACTUALIZAR (D, C, P);
Fin_para;
SUPRIMIR (R, LOCALIZA (R, w));
Fin_para;
Fin_Dijkstra
Funcin ELEGIR_VRTICE (G: grafo, R: Lista de vrtices, D: Lista de Costos): vrtice;
Var n, i: entero;
M, A: Tipo_vrtice;
H, K: Tipo_costo;
n:= LONGITUD (R);
M:= RECUPERA (R, 1);
H:= RECUPERA (D, LOCALIZA (D, M));
Para i:= 2 a n hacer
A:= RECUPERA (R, i);
K:= RECUPERA (D, LOCALIZA (D, A));
Si K < H entonces H:=K;
M:=A;
Fin_Si;
Fin_Para;
Retorna (M);
Fin_ELEGIR_VERTICE
Algoritmo de Prim
rboles abarcados de coste mnimo
Supongamos que G = (V, A) es un grafo conexo en donde cada arista (u, v) de A tiene un costo asociado, Costo (u, v). Un rbol abarcado para G es un rbol libre que conecta todos los vrtices de V, y su costo es la suma de los costos de las aristas del rbol.
Una aplicacin tpica de los rboles abarcados de coste mnimo tiene lugar en el diseo de redes de comunicacin.
Existen dos tcnicas para construir rboles abarcados de coste mnimo, la de Prim y la de Kruskal.
Suponemos V = {1, 2, ..., n}. El algoritmo de Prim comienza cuando se asigna a un conjunto U un valor inicial {1}, en el cual crece un rbol abarcado, arista por arista. En cada paso localiza la arista ms corta (u, v) que conecta U y V U, y despus agrega v, el vrtice en V U, a U. Este paso se repite hasta que U = V.
Una forma sencilla de encontrar la arista de menor costo entre U y V U en cada paso es por medio de dos arreglos: uno, MAS_CERCANO [i], da el vrtice en U que est ms cercano a i en V U. El otro, MENOR_COSTO[i], da el costo de la arista (i, MAS_CERCANO[i]).
Posicin que ocupa w o B en la lista D.
Funcin que elige un vrtice de la lista R, tal que su longitud del camino especial en D es mnima.
Asigna valor inicial a D
Cada iteracin deja como resultado un camino mnimo (ESPECIAL).
Asigna valor inicial a D.
EMBED PBrush
EMBED PBrush
EMBED PBrush
EMBED PBrush
EMBED PBrush
EMBED PBrush
EMBED PBrush
EMBED PBrush
EMBED PBrush
Ao 2008 Pgina 14