You are on page 1of 12

CORPORATIVO INTERNACIONAL UNIVERSITARIO

ASIGNATURA: ORGANIZACIN DE ARCHIVOS Y ESTRUCTURAS DE DATOS

DOCENTE: L.I. GABRIEL FLORES GONZALEZ

ALUMNO: HERNAN DARIO GONZALEZ VASQUEZ

SEGUNDO CUATRIMESTRE

ENERO DE 2012

TEMAS Y SUBTEMAS INTRODUCCIN 5.0 GRAFOS Y SUS APLICACIONES 5.1 Terminologa de teora de grafos 5.2 Caminos mnimos 5.3 Operaciones y recorridos CONCLUSIONES BIBLIOGRAFA

PGINA 3 4 4 5 6 11 12

INDICE

INTRODUCCION

Otro tipo de estructura de datos utilizada en programacin son los grafos que en este tema explicaremos detalladamente. Para explicarlo desglosaremos el tema en diversos subtemas que son: Concepto de grafo Terminologa de grafos Caminos mnimos Operaciones Recorridos

En el subtema caminos mnimos estudiaremos algunos conceptos bsicos y los tipos de caminos comunes.

5.0 GRAFOS Y SUS APLICACIONES Un grafo en el mbito de las ciencias de la computacin es una estructura de datos, en concreto un tipo abstracto de datos (TAD), que consiste en un conjunto de nodos (tambin llamados vrtices) y un conjunto de arcos (aristas) que
3

establecen relaciones entre los nodos. El concepto de grafo TAD desciende directamente del concepto matemtico de grafo. Informalmente se define como G = (V, E), siendo los elementos de V los vrtices, y los elementos de E, las aristas (edges en ingls). Formalmente, un grafo, G, se define como un par ordenado, G = (V, E), donde V es un conjunto finito y E es un conjunto que consta de dos elementos de V. Gracias a la teora de grafos se pueden resolver diversos problemas como por ejemplo la sntesis de circuitos secuenciales, contadores o sistemas de apertura. Se utiliza para diferentes reas por ejemplo, Dibujo computacional, en todas las reas de Ingeniera. Los grafos se utilizan tambin para modelar trayectos como el de una lnea de autobs a travs de las calles de una ciudad, en el que podemos obtener caminos ptimos para el trayecto aplicando diversos algoritmos como puede ser el algoritmo de Floyd. Para la administracin de proyectos, utilizamos tcnicas como PERT en las que se modelan los mismos utilizando grafos y optimizando los tiempos para concretar los mismos. La teora de grafos tambin ha servido de inspiracin para las ciencias sociales, en especial para desarrollar un concepto no metafrico de red social que sustituye los nodos por los actores sociales y verifica la posicin, centralidad e importancia de cada actor dentro de la red. Esta medida permite cuantificar y abstraer relaciones complejas, de manera que la estructura social puede representarse grficamente. Por ejemplo, una red social puede representar la estructura de poder dentro de una sociedad al identificar los vnculos (aristas), su direccin e intensidad y da idea de la manera en que el poder se transmite y a quines. Los grafos son importantes en el estudio de la biologa y hbitat. El vrtice representa un hbitat y las aristas (o "edges" en ingls) representa los senderos de los animales o las migraciones. Con esta informacin, los cientficos pueden entender cmo esto puede cambiar o afectar a las especies en su hbitat.

5.1 TERMINOLOGIA DE TEORIA DE GRAFOS Lamentablemente en teora de grafos no hay una terminologa uniforme y aceptada por todos. Casi puede decirse que cada autor tiene su propia terminologa, y por eso la mayora de las obras sobre grafos comienzan defiendo

los conceptos que se van a utilizar. En particular, los vrtices de un grafo tambin son llamados nodos o puntos y las aristas lneas, arcos o ejes. Un grafo se representa por medio de puntos o pequeos crculos, que designan vrtices, y lneas que los unen, que representan las aristas. Para simplificar la notacin frecuentemente designaremos una arista fu; vg simplemente como uv.

5.2 CAMINOS MINIMOS Un camino en un grafo es una sucesin finita en la que aparecen alternadamente vrtices y aristas de dicho grafo. Otras definiciones bsicas son: Los extremos son los vrtices iniciales y final del camino. La longitud de un camino es el nmero de aristas que contiene. Un camino es cerrado si sus extremos coinciden. Un camino es simple si en la sucesin de vrtices no hay ninguno repetido. Un ciclo es un camino cerrado donde los nicos vrtices repetidos son el primero y el ltimo. Un circuito es un camino cerrado que no repite aristas. Si en un grafo existe un camino que conecta dos vrtices distintos, entonces existe un camino simple con extremos en dichos vrtices. Un grafo es conexo si para cada par de vrtices, existe un camino con extremos en dichos vrtices.

Tipos de caminos

Camino euleriano: es un camino o circuito que contiene todas las aristas apareciendo cada una de ellas exactamente una vez. Un grafo que admite dicho circuito se denomina grafo euleriano, y sus vrtices o tienen grado par o dos de los vrtices tienen grado impar. Camino hamiltoniano: es un camino simple que contiene todos los vrtices apareciendo cada uno de ellos exactamente una vez. Un ciclo que a su vez es un camino hamiltoniano se denomina ciclo hamiltoniano, y un grafo que contiene un ciclo hamiltoniano se denomina grafo hamiltoniano.
5

5.3 OPERACIONES Y RECORRIDOS Subdivisin elemental de una arista

se convierte en Se reemplaza la arista vrtice w. por dos aristas y un

Despus de realizar esta operacin, el grafo queda con un vrtice y una arista ms. Eliminacin dbil de un vrtice

Si y g(v) = 2 (Sea v un vrtice del grafo y de grado dos) eliminarlo dbilmente significa reemplazarlo por una arista que une los vrtices adyacentes a v. se convierte en Entonces e' y e'' desaparecen y aparece

Recorrido en profundidad de un grafo (Depth First Search)

Recorrer un grafo consiste en visitar cada uno de los nodos a travs de las aristas del mismo. Se trata de realizar recorridos de grafos de manera eciente. Para ello, se pondr una marca en un nodo en el momento en que es visitado, de tal manera que, inicialmente, no est marcado ningn nodo del grafo. Detallaremos el proceso para grafos no dirigidos, observando que para el caso dirigido el proceso es anlogo, slo cambia el significado del concepto de adyacencia. A continuacin, describimos la idea de un procedimiento recursivo para realizar un recorrido en profundidad de un grafo no dirigido G. Para ello, en primer lugar, a cada nodo, v, del grafo se le asocia un procedimiento, DF S(G, v), que se denomina recorrido en profundidad de G con origen v. La idea del procedimiento DF S(G, v) es la siguiente: Se marca el nodo v. Si todos los nodos adyacentes a v estn marcados, entonces TERMINAR; si no, se elige un nodo, w, adyacente a v que no est marcado. Se ejecuta el proceso DF S(G, w).

Si G es conexo (es decir, si dos vrtices cualesquiera de G siempre estn conectados por un camino), entonces DF S(G, v) visita todos los nodos y aristas del grafo. A la hora de describir un esquema algortmico del recorrido en profundidad, asociaremos al procedimiento dos tareas, que denominaremos pretrabajo y post trabajo, con el n de conseguir una serie de aplicaciones interesantes de los recorridos de grafos. Procedimiento DF S(G, v) marcar (v) hacer pre-trabajo (v) para cada vrtice w adyacente a v hacer si w no est marcado entonces DF S(G, w) hacer post-trabajo (v, w) En donde pretrabajo (v) es una tarea que se ejecutar inmediatamente despus de marcar el nodo v; y posttrabajo (v, w) es una tarea que se ejecutar una vez que la llamada recursiva DF S(G, w) termina y devuelve el control a v. Teorema 1: Sea G = (V, E) un grafo no dirigido y conexo. Para cada v V se verica: 1. El procedimiento DF S(G, v) para. 2. Tras la ejecucin del procedimiento DF S(G, v), todos los nodos de G estn marcados. Sea G = (V, E) un grafo no dirigido arbitrario. Para realizar un recorrido en profundidad en G se procede como sigue: 1. Se elige un nodo, v, no marcado. 2. Se ejecuta el procedimiento DF S(G, v). 3. Si no quedan nodos no marcados, el proceso TERMINA; si no, se vuelve al paso 1. En consecuencia, el procedimiento de recorrido en profundidad de un grafo no dirigido arbitrario se puede describir como sigue: procedimiento DF S(G)
7

para cada nodo no marcado, v, hacer DF S(G, v) Teorema 2: Sea G = (V, E) un grafo no dirigido. El coste del algoritmo DF S(G) es del orden (mx.{|V |, |E|}) (bajo la hiptesis de que el pretrabajo y el post trabajo sean de coste constante). Nota: La ejecucin de un recorrido en profundidad de un grafo, G = (V, E), no dirigido proporciona de manera natural un bosque de ejecucin. Las aristas del grafo, G, que no pertenecen a ningn rbol del bosque, se denomina arista de vuelta atrs. Si notamos el bosque del recorrido en profundidad por B = (V, F), entonces las aristas de vuelta atrs son las del conjunto E F (que son las aristas no visitadas en dicho recorrido). Teorema 3: Sea G = (V, E) un grafo no dirigido. Sea B un bosque de recorrido en profundidad de G. Cada arista de G, o bien es una arista de algn rbol del bosque, o bien conecta dos nodos de G tales que uno de ellos es un ascendiente del otro en B.

Recorrido en anchura de un grafo (Breadth First Search)

Recorrer un grafo consiste en visitar cada uno de los nodos a travs de las aristas del mismo. Se trata de realizar recorridos de grafos de manera eciente. Para ello, se pondr una marca en un nodo en el momento en que es visitado, de tal manera que, inicialmente, no est marcado ningn nodo del grafo. Detallaremos el proceso para grafos no dirigidos, observando que para el caso dirigido el proceso es anlogo, slo cambia el signicado del concepto de adyacencia. A continuacin, describimos la idea de un procedimiento recursivo para realizar un recorrido en anchura de un grafo no dirigido G. Para ello, en primer lugar, a cada nodo, v, del grafo se le asocia un procedimiento, BF S(G, v), que se denomina recorrido en anchura de G con origen v. La idea del procedimiento BF S(G, v) es la siguiente:

Se marca el nodo v. Si todos los nodos adyacentes a v estn marcados, entonces TERMINAR; si no, marcar todos los nodos v1, v2,..., vk adyacentes a v que no estn marcados. Repetir el proceso con los nodos adyacentes a los nodos que se han marcado en el paso anterior.

Si G es conexo (es decir, si dos vrtices cualesquiera de G siempre estn conectados por un camino), entonces BF S(G, v) visita todos los nodos y aristas del grafo. A diferencia de lo que ocurra con el recorrido en profundidad, DF S, el recorrido en anchura, BF S, no tiene naturaleza recursiva. Por ello, es posible describir un esquema algortmico iterativo del recorrido en anchura usando una cola que permita controlar las visitas a los nodos. procedimiento BF S(G, v) marcar (v) poner (v) en una COLA mientras la COLA no sea vaca hacer quitar el primer elemento w de la COLA para cada vrtice x adyacente a w hacer si x no est marcado entonces marcar x poner x en la COLA Teorema 1: Sea G = (V, E) un grafo no dirigido y conexo. Para cada v V se verica: 1. El procedimiento BF S(G, v) para. 2. Tras la ejecucin del procedimiento BF S(G, v), todos los nodos de G estn marcados. Sea G = (V, E) un grafo no dirigido arbitrario. Para realizar un recorrido en anchura en G se procede como sigue: 1. Se elige un nodo, v, no marcado. 2. Se ejecuta el procedimiento BF S(G, v). 3. Si no quedan nodos no marcados, el proceso TERMINA; si no, se vuelve al paso 1. En consecuencia, el procedimiento de recorrido en anchura de un grafo no dirigido arbitrario se puede describir como sigue: procedimiento BF S(G)

para cada nodo no marcado, v, hacer BF S(G, v) Teorema 2: Sea G = (V, E) un grafo no dirigido. El coste del algoritmo BF S(G) es del orden (mx.{|V |, |E|}). Nota: La ejecucin de un recorrido en anchura de un grafo, G = (V, E), no dirigido proporciona de manera natural un bosque de ejecucin. Las aristas del grafo, G, que no pertenecen a ningn rbol del bosque, se denomina arista de vuelta atrs. Si notamos el bosque del recorrido en anchura por B = (V, F), entonces las aristas de vuelta atrs son las del conjunto E F (que son las aristas no visitadas en dicho recorrido). Teorema 3: Sea G = (V, E) un grafo no dirigido y conexo. Sea B = (V, F) un rbol de recorrido en anchura de G.

Para cada u V , el camino desde la raz, v, de B a u es el camino ms corto desde v a u en G. Si {u, v} E F, entonces u y v tienen niveles en el rbol B que dieren, a lo sumo, en 1.

CONCLUSIONES

10

El grafo es la estructura de datos que est conformada por nodos que en algunas ocasiones son llamadas vrtices y por aristas que permiten la unin con los nodos.

Existen dos tipos de operaciones que se pueden hacer con los grafos los cuales son: Subdivisin elemental de una arista Eliminacin dbil de un vrtice

Al igual que existen operaciones, tambin existen recorridos sobre grafos y son:

Recorrido en anchura de un grafo (Breadth First Search) Recorrido en profundidad de un grafo (Depth First Search)

BIBLIOGRAFIA
11

1. http://es.wikipedia.org/wiki/Grafo_(estructura_de_datos)

2. http://es.wikipedia.org/wiki/Teor%C3%ADa_de_grafos#Operaciones_en_Grafos 3. http://www.cs.us.es/cursos/cc-2009/material/dfs.pdf 4. http://www.cs.us.es/cursos/cc-2009/material/bfs.pdf 5. http://ebadillo_computacion.tripod.com/teoria_de_graficas.pdf

12

You might also like