Teoria de Grafos y Automatas

download Teoria de Grafos y Automatas

of 63

Transcript of Teoria de Grafos y Automatas

Unidad I: Teora de GrafosLa teora de grafos tiene un inicio preciso: comenz con la publicacin de un artculo en 1736 por el matemtico suizo Leonhard Euler (1707-1783). La base en que se apoya su trabajo surgi de un problema ahora muy popular, conocido como los siete puentes de Koningsberg. Existe una variedad de problemas en la vida real que a menudo necesitan ser representadas. Por ejemplo, el costo mnimo de viajar de una ciudad a otra, bsqueda de la informacin, representacin de las estructuras qumicas, diagramas de flujo, etc. Los grafos son mdulos naturales para representar tales relaciones. En general, la teora de grafos proporciona herramientas poderosas para resolver problemas que son modelados por grafos. En general, existen grafos para ser aplicados en tareas tales como: Investigacin de Operaciones. Diseo, anlisis de circuitos en Ingeniera Elctrica. Identificacin de estructuras moleculares en la Qumica Orgnica. Segmentacin de Programas en Ciencias de la Computacin. Telecomunicaciones. Etc. 1. Definiciones En esta seccin se darn a conocer los conceptos bsicos para la comprensin de temas relacionados con grafos. Es necesario conocer estos conceptos antes de abordar cualquier otro tema. Un grafo dirigido no dirigido es un conjunto G=(V, E), donde V es un conjunto de vrtices o nodos y E un conjunto finito de lados. Cada arco lado perteneciente a E corresponde a un par ordenado de vrtices donde u y v son llamados cola y cabeza respectivamente.

Cuando no importa la direccin de las aristas, la estructura G=(V, E), donde E es ahora un conjunto de pares no ordenados sobre V, es un grafo no dirigido.

Para grafos no dirigidos el conjunto E se puede definir como una relacin que es simtrica e irrefleja sobre V. En el caso contrario cuando s importa la direccin de las arcos, la estructura G=(V, E), donde E es ahora un conjunto de pares ordenados sobre V, se conoce como grafo dirigido digrafo. Un camino en un grafo es una sucesin de arcos adyacentes (v0,v1), (v1,v2)...(vk-1,vk) denotado usualmente por (v0,v1,v2,...,vk). El nmero de arcos en un camino es llamado longitud del camino. Un camino es llamado ciclo, circuito camino cerrado si el primero y el ltimo vrtice en el camino son el mismo. En caso contrario el camino es abierto. Un grafo se dice acclico si no contiene ciclos. Si no se repite ninguna arista en el camino x-y, entonces el camino es un recorrido x-y. Un recorrido x-x cerrado es un circuito. Cuando ningn vrtice del camino x-y se presenta ms de una vez, el camino es un camino simple x-y. El trmino ciclo se usa para describir un camino simple cerrado x-x. 1.1 Arcos de un Grafo Arco

En la figura se sealan los arcos que pertenecen al grafo. El grafo que se observa tiene el siguiente conjunto de arcos: El conjunto de arcos es E = {,,,,}. 1.2 Vrtices de un Grafo

Vrtice

En la figura se observan 5 vrtices pertenecientes al grafo. El conjuntos de vrtices es V = {A, B, C, D}.

1.3 Camino de un Grafo

En la figura se puede observar que un camino es una sucesin de arcos adyacentes. El camino que se seala es el camino de el vrtice A al vrtice D. El camino que se obtiene es el siguiente: Camino de A a D = { ,, } bien {A,B,C,D}, esta ltima expresin se obtiene el funcin de los vrtices. 1.4 Ciclo de un Grafo

De la figura se puede deducir que un ciclo es un camino con la caracterstica especial de que en el camino el vrtice de inicio y final es el mismo. El camino que se seala es el camino de el vrtice 1 al vrtice 1.El camino que se obtiene es el siguiente : Camino de 1 a 1 = { ,,,, } bien {1,2,5,4,3,1}, esta ltima expresin se obtiene el funcin de los vrtices. 1.5 Componentes de un Arco

En la figura se sealan la cabeza y cola de un arco. La cola es el vrtice de donde sale el arco y la cabeza es el vrtice donde llega el arco. Cola del arco = vrtice u. Cabeza del arco = vrtice v.

2. Subgrafos, Complementos e Isomorfismos A continuacin presentaremos algunas caractersticas que puede presentar un grafo, ya sea generando otros grafos a partir de l mismo, etc. 2.1 Subgrafo Si G=(V, E) es un grafo dirigido o no, entonces G1=(V1, E1) es un subgrafo de G si V1 es distinto del conjunto vaco y E1 es subconjunto de E, donde cada arista de E1 es incidente con los vrtices de V1. Ejemplo:

La figura permite observar dos grafos no dirigidos, G es un grafo que posee 4 vrtices y 6 arcos, en este caso es el grafo original; mientras G' es el subgrafo de G. Como podemos observar G' cumple todas las condiciones de subgrafo, es decir, V' es subconjunto de V y E' es subconjunto de E. 2.2 Subgrafo Recubridor o Grafo Expandido Dado G=(V,E) es un grafo dirigido o no, sea G1=(V1,E1) un subgrafo de G. Si V1=V, entonces G1 es un subgrafo recubridor grafo expandido de G.

La figura permite observar dos grafos no dirigidos, G es un grafo que posee 4 vrtices y 6 arcos, en este caso es el grafo original; mientras G' es el subgrafo de G, pero en este caso es un subgrafo expandido. Como podemos observar G' cumple todas las condiciones de subgrafo, es decir, V' es subconjunto de V con la particularidad de que V' debe ser igual a V y E' es subconjunto de E. 2.3 Grafo Completo Sea V un conjunto de n vrtices. El grafo completo sobre V es aquel grafo no dirigido sin lazos tal que para todos u, v pertenecientes a V, con u distinto de v, existe una arista . En forma ms simple, un grafo G se dice completo si todos los vrtices u, v pertenecientes a V se tiene que pertenece a E.

El tamao de un grafo completo se determina de acuerdo al nmero de vrtices que posee el grafo.

2.4 Grafo Complementario Sea G un grafo no dirigido sin lazos con n vrtices. El grafo complementario de G, es el subgrafo formado por los n vrtices de G y las aristas que no estn en G. Si el grafo complementario tiene n vrtices y ninguna arista se le llama a este grafo: grafo nulo.

El grafo complementario G' del grafo original G, est compuesto por todos los vrtices de G y las aristas que no estn en G. De ah el nombre de grafo complementario. 2.5 Grafos Isomorfos Dos grafos, G y G, son isomorfos si existe una correspondencia uno a uno entre los vrtices de los grafos tal que todo par de vrtices que son adyacentes en un grafo si y slo si el correspondiente par de vrtices son adyacentes en el otro grafo.

Se puede decir que dos grafos son isomorfos si existe una correspondencia uno a uno entre los vrtices de los grafos tal que para todo par de vrtices que son adyacentes en un grafo si y slo si el correspondiente par de vrtices son adyacentes en el otro grafo. 3. Recorrido y Circuito Euleriano Un aspecto que debemos considerar con respecto a grafos es la forma de recorrerlos y que conclusiones podemos obtener. A continuacin se dan algunas herramientas para poder analizar los grafos desde el punto de vista de su recorrido. 3.1 Grado de un vrtice Sea G un grafo no dirigido. Para cualquier vrtice v de g, el grado de v, que se denota g(v), es el nmero de aristas en G que son incidentes con v. En este caso, un lazo en un vrtice v se considera como dos aristas incidentes en v. Ejemplo

La figura presenta un grafo no dirigido, en el cual se observa claramente el grado de cada vrtice perteneciente al grafo. Debemos recordar que el grado de un vrtice es el nmero de arcos incidentes al vrtice. En la figura el grado de cada vrtice esta representado por el nmero que se encuentra en el vrtice. Teorema : Se define el grado o valencia de v como el nmero de vrtices incidentes a v. Dado que cada arco debe ser incidente a 2 vrtices se tiene el siguiente teorema:

2 Donde E = Nmero de lados del grafo y v = vrtice del grafo.

g (v) = 2 * Ev V

V E = v

g (v)

Corolario : Para cualquier grafo no dirigido, el nmero de vrtices de grado impar debe ser par. 3.2 Circuito Euleriano Sea G un grafo no dirigido sin vrtices aislados. Entonces G tiene un circuito euleriano si existe un circuito en G que recorre cada arista del grafo exactamente una vez. Si existe un recorrido abierto de u a v en G que recorre cada arista de G exactamente una vez, este recorrido se llamar recorrido euleriano.

El circuito euleriano es aquel donde se realiza un recorrido sobre el grafo pasando solamente una vez por cada arco del grafo. La lnea punteada de color amarillo muestra el circuito euleriano para este grafo. 3.3 Grado de entrada y salida de un vrtice Sea G=(V, E) un grafo dirigido, para todo v perteneciente a V: El grado de entrada de v es el nmero de aristas de G que llegan a v y se denota ge(v). El grado de salida de v es el nmero de aristas de G que parten de v y se denota gs(v).

Observar que el arco o representa un arco perteneciente a un grafo no dirigido, los dems arcos son del tipo perteneciente a grafo dirigidos (digrafos). Teorema : Sea G = (V, E) un grafo dirigido. G tiene un circuito euleriano si y slo si G es conexo y ge(v)=gs(v) para todo v perteneciente a V. 4.Caminos y Ciclos Hamiltoneanos En 1859, el matemtico irlands Sir William Rowan Hamilton(1805-1865) desarroll un juego que vendi a un particular de juguetes en Dubln. El juego era un dodecaedro regular de madera con 20 esquinas(vrtices) en las que aparecan nombres de ciudades importantes. El objetivo era encontrar un ciclo alrededor de las aristas del slido, de modo que cada ciudad estuviera en el ciclo exactamente una vez.

4.1 Ciclo Hamiltoneano Si G=(V, E) un grafo con |V|>=3, se dice que G tiene un ciclo hamiltoneano si existe un ciclo en G que contenga cada vrtice de V.

Ejemplo Ciclo Hamiltoneano = { ,,, } Orden vrtices visitados = = { 1, 4, 3, 2 ,1 } El ciclo hamiltoneano es un camino que recorre todos los vrtices del grafo, con la caracterstica de que el vrtice inicial y final es el mismo. 4.2 Camino Hamiltoneano Un camino hamiltoneano es un camino simple (y no un ciclo) de G que contiene todos los vrtices

. Ejemplo Ciclo Hamiltoneano = { ,, } Orden vrtices visitados = = { 1, 4, 2 ,3 }

Un camino hamiltoneano es un camino con la caracterstica de que recorre todos los vrtices del grafo. No es necesario que el camino sea un ciclo. Teorema : Sea G un digrafo completo, es decir tiene n vrtices y para cualquier par de vrtices x e y, x distinto de y; exactamente una de las aristas esta en G. Este grafo (llamado torneo) tiene siempre un camino hamiltoneano (dirigido). Teorema : Sea G=(V, E) un grafo sin lazos, |V|=n, con n>=2. Si grad(x)+grad(y)>=n-1 para todo x, y pertenecientes a V(x distinto de y) entonces G tiene un camino hamiltoneano. Corolario : Sea G=(V, E) un grafo sin lazos con n(>=2) vrtices. Si grad(v)>=(n-1)/2 para todo v perteneciente a V entonces G tiene un camino hamiltoneano. Teorema : Sea G=(V, E) un grafo no dirigido sin lazos, con |V|=n, con n>=3. Si grad(x) +grad(y)>=n para todo x, y pertenecientes a V no adyacentes entonces G tiene un ciclo hamiltoneano. Corolario : Si G=(V, E) un grafo no dirigido sin lazos, con |V|=n, con n>=3 y si grad(v)>=n/2 para todo v perteneciente a V entonces G tiene un ciclo hamiltoneano. Corolario : Si G=(V, E) un grafo no dirigido sin lazos, con |V|=n, con n>=3 y |E|>=(n-1/2)+2 entonces G tiene un ciclo hamiltoneano. 5. Formas de Representacin de un Grafo Un tema que es muy importante para el uso y la comprensin de grafos, es conocer y dominar por completo las diversas formas de representar un grafo. En esta seccin se podr conocer las formas de representar un grafo. Existen dos representaciones grficas para grafos: Matrices. Listas. 5.1 Matrices de adyacencia : La matriz de adyacencia de un grafo G=(V, E) es una matriz lgica A=(aij) de orden VxV donde aij=1 s el arco (vi, vj) pertenece a E, sino aij=0. Si G es un grafo no dirigido entonces la matriz A es simtrica. La matriz de adyacencia contiene |E| 1 para un grafo dirigido y 2|E| para un grafo no dirigido.

En general, una matriz de adyacencia requiere al menos VxV bits de almacenamiento.

5.2 Matrices de incidencia de un grafo no dirigido : Es una matriz A=(aij) VxE donde aij=1, si el arco ej es incidente a un vrtice vi sino aij=0. Para grafos dirigidos aij=-1 si ej es incidente desde vi. Por otro lado, aij=1 si vij es incidente a vi sino aij=0. Todo arco tiene dos vrtices de incidencia. Luego la matriz contiene exactamente dos entradas no ceros en cada columna. En general, una matriz de incidencia requiere al menos VxE bits de almacenamiento para grafos dirigidos y al menos 2|V||E| para grafos no dirigidos.

5.3 Listas : Es una forma de mostrar los arcos, representados como par de vrtices. Las listas de adyacencia, las cuales corresponden a vrtices V y una lista de vrtices U tal que U y V son adyacentes.

6. Grafos Ponderados 6.1 Optimizacin y emparejamiento Con gran frecuencia se desea modelar problemas prcticos utilizando grafos en los que se asocia a las aristas un entero no negativo llamado peso o costo, dichos nmeros se asocian con informacin como la cantidad de material que puede embarcarse de un vrtice a otro a lo largo de una arista la cual puede representar una carretera o ruta area, o hallar la forma de conectar todos los vrtices al menor costo, en el caso de un circuito elctrico por ejemplo. Estas tcnicas surgen en el rea de las matemticas llamadas Investigacin de Operaciones. Comenzaremos con un grafo dirigido conexo sin arcos G = (V,E), donde: V conjunto finito no vaco, es el conjunto de vrtices y sea E VxV el conjunto de pesos . A cada arista e = (a, b) de este grafo le asignamos un nmero real positivo llamado el peso de e, y se denotara por p(a, b). Si x, y V pero (x, y) E, es decir no hay un peso asociado al vrtice e(x, y), se define p(a, b) = . Para Cualquier e = (a, b) E, p(e) podra representar:

La longitud de una carretera de a hasta b. El tiempo que toma recorrer esta carretera. El costo del viaje de a hasta b por esta carretera. Al denotar el grafo con las asignaciones de peso descritas, se habla de grafo ponderado. Entre los problemas analizados estn : Hallar el camino ms corto entre un vrtice dado V0 y cada uno de los dems vrtices de un grafo dirigido conexo sin lazos. Hallar el rbol de expansin mnimo asociado a un grafo dado, donde la sumas de los pesos de las aristas del rbol sea minimal. 6.2 El rbol de expansin mnima Se aborda este concepto a partir del siguiente problema: "Hay que construir una red de cmputo con un acoplamiento vago para un sistema de siete computadores. El grafo G de la figura es un modelo de la situacin. Los computadores se representan mediante los vrtices del grafo, las aristas representan Lneas de transmisin que se tienen en cuanta para enlazar ciertos pares de computadores. Asociamos a cada arista e de G un nmero real positivo p(e), el peso de e. En este ejemplo, el peso de una arista indica el costo previsto para la construccin de esa lnea de transmisin particular. El objetivo es enlazar todos los computadores minimizando el costo total de la construccin."

Para hacer esto, se necesita un rbol de expansin T, tal que la suma de los pesos de las aristas en T sea mnima. La construccin de dicho rbol de expansin ptimo se puede realizar por medio de los algoritmos de: Joseph Kruskal.y Robert Prim. 6.2.1 Algoritmo de Kruskal

A continuacin se analiza el Algoritmo Kruskal para la construccin del rbol de expansin minimal Como el algoritmo de Dijkstra, este es un algoritmo ptimo; al usarlo en cada paso se hace una eleccin ptima (en este caso minimal) de los datos disponibles restantes. Lo que parece la eleccin ptima localmente es tambin la mejor opcin globalmente, de ac que el algoritmo finaliza en una solucin ptima. Anlisis Sea G=(V,E) un grafo no dirigido conexo sin ciclos tal que |V| = n y cada arista e tiene asignado un nmero real positivo p(e). Para encontrar un rbol de expansin ptimo (minimal) aplicamos el siguiente algoritmo Paso1 : Hacemos el contador y=1 y seleccionamos una arista e1 en G tal que p(e1) sea lo mas pequeo posible. Paso2 : Para 1=A(2,3) A(3,1)+A(1,3)>=A(3,3) A(4,1)+A(1,3)>=A(4,3) A(1,1)+A(1,4)>=A(1,4) A(2,1)+A(1,4)=A(1,1) A(2,2)+A(2,1)>=A(2,1) A(3,2)+A(2,1)=A(4,1) A(1,2)+A(2,2)>=A(1,2) A(2,2)+A(2,2)>=A(2,2) A(3,2)+A(2,2)>=A(3,2) A(4,2)+A(2,2)>=A(4,2) A(1,2)+A(2,3)=A(2,3) A(3,2)+A(2,3)>=A(3,3) A(4,2)+A(2,3)=A(1,4) A(2,2)+A(2,4)>=A(2,4) A(3,2)+A(2,4)=A(4,4) k=3 A3[i,j] = A(1,3)+A(3,1)>=A(1,1) A(2,3)+A(3,1)>=A(2,1) A(3,3)+A(3,1)>=A(3,1) A(4,3)+A(3,1)>=A(4,1) A(1,3)+A(3,2)>=A(1,2) A(2,3)+A(3,2)>=A(2,2) A(3,3)+A(3,2)>=A(3,2) A(4,3)+A(3,2)>=A(4,2) A(1,3)+A(3,3)>=A(1,3) A(2,3)+A(3,3)>=A(2,3) A(3,3)+A(3,3)>=A(3,3) A(4,3)+A(3,3)>=A(4,3) A(1,3)+A(3,4)>=A(1,4) A(2,3)+A(3,4)>=A(2,4) A(3,3)+A(3,4)>=A(3,4) A(4,3)+A(3,4)>=A(4,4)

k=4 A4[i,j] = A(1,4)+A(4,1)>=A(1,1) A(2,4)+A(4,1)>=A(2,1) A(3,4)+A(4,1)>=A(3,1) A(4,4)+A(4,1)>=A(4,1) A(1,4)+A(4,2)>=A(1,2) A(2,4)+A(4,2)>=A(2,2) A(3,4)+A(4,2)>=A(3,2) A(4,4)+A(4,2)>=A(4,2) A(1,4)+A(4,3)>=A(1,3) A(2,4)+A(4,3)>=A(2,3) A(3,4)+A(4,3)>=A(3,3) A(4,4)+A(4,3)>=A(4,3) A(1,4)+A(4,4)>=A(1,4) A(2,4)+A(4,4)>=A(2,4) A(3,4)+A(4,4)>=A(3,4) A(4,4)+A(4,4)>=A(4,4)

7 PERT 7.1 Aplicacin de la teora de grafos al PERT La tcnica de anlisis de grafos, puede convertirse en un til instrumento al servicio de muy variados mbitos. Ahora se propone su aplicacin a la confeccin de los PERT (Project Evaluation and Review Technique), que constituyen el eje vertebrado de la planificacin y serie de tomas de decisiones en implementacin y evaluacin de programas de intervencin. Un proyecto puede esquematizarse grficamente usando un grafo, donde los arcos del grafo indican las actividades, y los vrtices, los sucesos. Las flechas irn de izquierda a derecha indicando que se avanza en el tiempo. La longitud de las flechas no precisa ser dibujada a escala. El grafo que representa un proyecto ser siempre un grafo sin circuitos. As, el vrtice 1 es el suceso inicial de la actividad A, y el vrtice 2 es su suceso final; adems, ste sirve de suceso inicial para la actividad B, y as sucesivamente.

Una vez construido el grafo completo del programa se numeran cada uno de los sucesos. Para ello, si el grafo est bien dibujado por niveles, se irn numerando sus nodos desde 1 en adelante, de izquierda a derecha, y en un mismo nivel de arriba a abajo, de modo que si para una actividad el suceso inicial es el i y el final es el j, se cumple siempre que i