Unidad 5.doc

Click here to load reader

  • date post

    04-Dec-2015
  • Category

    Documents

  • view

    222
  • download

    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