Anda di halaman 1dari 20

INSTITUTO TECNOLGICO DE ZACATEPEC

ALUMNOS:

OMAR CARMONA UNZUETA VCTOR HUGO DOMNGUEZ CONTRERAS ISAI GARCA MOSO

PROFESOR:

ADRIANA DE LA ROCA CHIAPAS

MATERIA:

MATEMTICAS DISCRETAS

TEMA:

TRABAJO FINAL: UNIDAD VI TEORA DE GRAFOS

CARRERA:

ING. EN SISTEMAS COMPUTACIONALES

SEMESTRE:

UNO

GRUPO: XA

PERIODO: FEBRERO - AGOSTO

FECHA DE ENTREGA: JUEVES 03 DE JUNIO DEL 2010

ndice

Portada ndice
o o o o o o ........................................................................... ............................................................................................... ...................................................................................
2

3 6 8

........................................................................................................... 15 ...................................................................................................................................... 16 ........................................................................................................................................ 18


19

Bibliografa

Teora de Grafos
Elementos y Caractersticas de los grafos.
Los grafos son estructuras discretas compuestas por puntos (llamados vrtices) y lneas (llamadas aristas) que conectan algunos pares de esos puntos. Son una abstraccin til para modelar diversas situaciones reales como por ejemplo: redes de computadoras, redes telefnicas o elctricas, circuitos elctricos, sistemas de carreteras, sistemas de transporte y distribucin de mercancas y sistemas organizacionales.

Definicin 1.1.1. Un grafo simple es un par G = (V, E) donde V es un conjunto nito no vaco de elementos llamados vrtices y E es un conjunto de pares no ordenados de elementos distintos de V llamados aristas. Por razones tcnicas se supondr que V E = . Si e = {u, v } es una arista entonces se dice que los vrtices u y v son los extremos de e. Un vrtice y una arista son incidentes si el vrtice es uno de los extremos de la arista. Dos vrtices u y v son adyacentes si {u, v } es una arista. El orden de un grafo G = (V, E) es el nmero de vrtices |V |. 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 def i niendo 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 {u, v } simplemente como uv. Ejemplo 1.1.2. Sea V = {a, b, c, d, e} y E = {ab, bd, be, de . Entonces (V, } es un grafo con cinco E) vrtices (a, b, c, d y e) y cuatro aristas (ab, bd, be y de). La gura 1.1 es su representacin gr ca:
a b

d c e

Figura 1.1: Grafo simple.

Definicin 1.1.3. El grado de un vrtice v de un grafo es el nmero g(v) de aristas incidentes con l. Si g(v) = 0 se dice que v es un vrtice aislado. En el grafo del ejemplo anterior se tiene g(a) = 1, g(b) = 3, g(d) = g(e) =2 y g(c) = 0 (c es un vrtice aislado). La sucesin de grados de un grafo se obtiene ordenando en forma no decreciente los grados de todos los vrtices. En el ejemplo anterior la sucesin de grados es 0, 1, 2, 2, 3. Teorema 1.1.4 (Euler). En todo grafo G = (V, E) se cumple X g(v) = 2|E |.
v V

Demostracin. Las aristas se pueden contar viendo cuntas son incidentes con cada vrtice y sumando todos los nmeros obtenidos. Pero as cada arista resulta contada dos veces, una por cada uno de sus extremos. Corolario 1.1.5. En todo grafo G = (V, E) el nmero de vrtices de grado impar es par. Definicin 1.1.6. Dos grafos G = (V, E) y G0 = (V 0 , E 0 ) son isomorfos si existe una biyeccin f : V V 0 que preserva la relacin de adyacencia, es decir tal que

{u, v } E

si y slo si {f (u), f (v)} E 0 .

Para indicar que G y G0 son isomorfos se escribe G G0 . Ejemplo 1.1.7. Los dos grafos representados en la gura 1.2 son isomorfos, ya que la funcin f que lleva a en a0 , b en b0 , c en c0 y d en d0 es una biyeccin y preserva la adyacencia. a b b

Figura 1.2: Grafos isomorfos. Dos grafos isomorfos deben tener el mismo nmero de vrtices. Ms an todas las propiedades que se deriven de la relacin de adyacencia deben ser idnticas en ambos, en particular deben tener el mismo nmero de aristas, el mismo nmero de vrtices aislados y la misma sucesin de grados. Para los f i nes de la teora de grafos, dos grafos isomorfos se consideran idnticos.

Dos grafos con idnticas sucesiones de grados tienen el mismo nmero de vrtices y de aristas, pero esto no es suf i ciente para que los grafos sean isomorfos, como muestran los dos grafos representados en la f i gura 1.3. Ambos tienen sucesin de grados 1, 1, 1, 2, 3, 3, pero no son isomorfos ya que en el de la izquierda el nico vrtice de grado 2 es adyacente a un vrtice de grado 1 y a otro de grado 3, mientras que en el grafo de la derecha el nico vrtice de grado 2 es adyacente a dos vrtices de grado 3.

Figura 1.3: Grafos no isomorfos.

Algunos tipos particulares de grafos


Definicin 1.1.8. Se llama grafo completo de n vrtices a un grafo con n vrtices v1 , v2 ,. . . , vn cuyas aristas son todos los pares {v1 , vj } con 1 i < j n. Todos los grafos completos de n vrtices son isomorfos, y se les denota como Kn . El nmero de aristas de Kn es n(n 1)/2. En la gura 1.4 se representan los grafos completos de orden 1 a 5.

K 1 K2

Figura 1.4: Grafos completos.

K3

K4

K5

Definicin 1.1.9. Un grafo G = (V, E) se dice que es bipartito si el conjunto de vrtices V puede particionarse en dos subconjuntos V1 y V2 tales que todas las aristas tengan un extremo en V1 y el otro en V2 . En la f i gura 1.5 se representa un grafo bipartito con V1 = {s, t, u, v } y . Si |V1 | = m, |V2V2 = n{x, y, z } V1 V2 (es decir, si uv es una arista para todo par de vrtices u 1 = yE = V1 , v V2 ) entonces se dice que el grafo es bipartito completo y se denota Km,n . En la f i gura 1.6 se representa K3,2 . Definicin 1.1.10. Un camino de longitud n es un grafo G = (V, E) con V = {v0 , v1 , v2 , . . . , vn } y E = {v0 v1 , v1 v2 , . . . , vn1 vn } Los vrtices v0 y vn son los extremos del camino. Observe que un grafo con un solo vrtice es un camino de longitud 0.

Representacin de grafos.
Representacin mediante matrices de adyacencia. El conjunto de aristas es representado mediante una matriz M[nodo, nodo] de booleanos, donde M[v, w]= 1 s y slo si (v, w) e A. Si el grafo est etiquetado, la matriz ser de elementos de ese tipo, por ejemplo, caracteres o enteros. Tomar un valor nulo si no existe ese arco.

Si el grafo es no dirigido, M[v, w] = M[w, v]. La matriz es simtrica. Problemas. Si el nmero de nodos es muy grande y hay poca conectividad (pocos arcos, en relacin al mximo posible) se desperdicia memoria. Debemos conocer los tamaos aproximados que van a tener los grafos. Cmo se calculara el grado de entrada o de salida de un nodo? Representacin mediante listas de adyacencia. - Para cada nodo de V tendremos una lista de aristas que parten de ese nodo. Estas listas estn guardadas en un array de nodos cabecera.

Grafo etiquetado: aadir un nuevo campo a los elementos de la lista. Si el grafo es no dirigido entonces cada arista (v, w) ser representada dos veces, en la lista de v y en la de w.

En grafos dirigidos. Calcular el grado de salida: recorrer la lista correspondiente. Grado de entrada: recorrertodas las listas. Otra posibilidad: tener otra lista con las aristas que llegan a un nodo dado.

La mejor representacin depender de las caractersticas del problema. Suponer que tenemos n nodos y a aristas. Qu implementacin ser mejor para las operaciones: calcular el grado de entrada o de salida, contar el nmero de aristas, insertar una arista? Si cada puntero ocupa k, bytes y cada etiqueta de arista k- bytes, qu representacin ocupar menos memoria? Operaciones tpicas sobre gratos: Crear un grafo vaco. Aadir, modificar o borrar un nodo o una arista de un grafo. Combinar dos grafos en uno nuevo. Construir un grafo a partir de otra estructura, p. ej. a partir de una expresin regular, o de una lista de carreteras entre ciudades. Consultar si entre dos nodos existe un arco, y la etiqueta asociada. Obtener el conjunto de nodos a los cuales se llega desde un nodo dado (o bien los nodos que llegan al nodo dado). Recorrer los nodos del grafo siguiendo las aristas en determinado orden. Comprobar si existen ciclos en el grafo, si existen caminos entre determinados nodos. Si el grafo tiene pesos calcular cuales son los caminos de menor costo total. Comprobar si dos grafos son iguales (isomorfos), o uno es subgrafo del otro.

Algoritmos de Recorridos y bsqueda


Las funciones de recorrido de grafos son extensiones de las que se vieron para rboles. El objetivo es visitar todos los nodos del grafo exactamente una vez. Cuando se visita, es con la intencin de realizar algn clculo sobre l, ya sea simplemente imprimirlo u obtener algn resultado a partir de los valores de los nodos visitados. Si el objetivo de un recorrido es simplemente pasar por todos los nodos del grafo, bastara con hacer una pasada por el conjunto de nodos. En cualquiera de las implementaciones propuestas en el apartado anterior es una trivial. Pero queremos recorrer el grafo teniendo en cuanta su topologa, es decir, lo recorreremos siguiendo los caminos definidos en l por los arcos. Vamos a describir dos estrategias de recorrido diferentes: el recorrido primero en profundidad y el recorrido primero en amplitud. La diferencia fundamental respecto al recorrido de un rbol es que hemos de tener en cuenta la posible existencias de ciclos en un grafo. Si en un recorrido llegamos otra vez alnodo origen, entramos en un bucle infinito. Para evitarlo se han de marcar los nodos por los que ya se ha pasado. Los algoritmos que vamos a tratar visitan todos los nodos que son alcanzables desde un nodo origen dado. Para imprimir todos los nodos de un grafo inconexo, habra que ejecutar los algoritmos desde un nodo de cada subgrafo disjunto.

Recorrido primero en profundidad.


En el recorrido primero en profundidad se procesa un nodo inicial n. Despus se procesa uno de los nodos adyacentes que no haya sido previamente visitado iniciando un recorrido en profundidad desde l. Cuando se alcanza un nodo cuyos nodos adyacentes han sido todos visitados el algoritmo vuelve atrs al ltimo nodo visitado al que le quede an algn sucesor por procesar. Finalmente, llegaremos a un punto donde todos los nodos alcanzables habrn sido visitados. El cdigo en pseudolenguaje sera el siguiente: Algoritmo PrimeroEnProfundidad(G: Grafo; n: Elemento); Variables p: Pila l, m: Elemento Inicio P:=Crear(); Marcar(n); Apilar(p, n); MIENTRAS NOT Vaca(p) HACER m := Cima(p) Desapilar(c) Marcar(m) Procesar(m) PARA TODO nodo l sin marcar adyacente a m HACER Marcar(l) Apilar(c, l)

FIN PARA FIN MIENTRAS Fin PrimeroEnProfundidad

Supongamos que el elemento inicial es el nodo a. Se guarda en la pila. Como la pila no est vaca, precisamente contiene el nodo a, se saca el primer elemento. Al no estar marcado, se marca y se procesa. Se puede suponer que en este caso el procesamiento consiste en escribir su valor por pantalla. Los dos elementos adyacentes a a son b y d. Ambos estn sin marcar y se incluyen en la pila en, por ejemplo, ese orden. La pila no est vaca por lo se que saca el elemento de la cima, d, que no est marcado. Se marca y se escribe por pantalla. Los nodos adyacentes a d son c, f y g, ninguno de los cuales est marcado. Por tanto, se apilan los tres. Se saca el elemento de la cima de la pila, g y se escribe por pantalla. El nico nodo adyacente a g sin marcar es e, porque d ya est marcado, por lo que slo se apila e, que pasa a ser la nueva cima. Se saca e de la pila y se procesa. No hay ningn sucesor de e que no haya sido marcado, por tanto no se apila ningn elemento. En este momento, la cima de la pila es f. Se saca y se procesa. Los tres nodos adyacentes a f son d, e, y g que todos estn marcados, por lo que no se apilan. Se saca la cima de la pila, el nodo b, que se procesa. Sus nodos adyacentes, a y e, no se apilan al estar ya marcados. Se vuelve a sacar la cima, que esta vez es c, que est an sin marcar. Pon tanto, se marca y se procesa. Como todos sus nodos adyacentes estn marcados, no se apila ninguno. Y finalmente se saca el nico elemento que queda en la pila. Se procesa b y se acaba el bucle, por estar vaca la pila. El resultado por pantalla sera entonces: a, d, g, e, f, c, b.

En este algoritmo hemos hecho uso explcito de una pila. Podemos sustituir esta versin iterativa por una recursiva ms elegante que use implcitamente la pila del sistema.

Recorrido primero en amplitud.


El recorrido en amplitud es similar al recorrido por niveles de un rbol, si consideramos como un nivel el conjunto de los nodos adyacentes. En este recorrido, tras visitar un nodo, se visitan todos sus nodos adyacentes. Una vez visitados todos los nodos de este primer nivel, se repite el proceso visitando todos los nodos adyacentes del primer vecino de nivel recin recorrido y repitindolo para todos los nodos hasta que no quede ninguno por visitar. En el recorrido en profundidad usbamos una pila como estructura auxiliar para recorrer el grafo. Aunque en el recorrido en amplitud no hacemos vuelta atrs tambin necesitamos almacenar temporalmente los nodos. Para guardarlos en el orden adecuado, usaremos una cola en vez de una pila. El cdigo en pseudolenguaje sera el siguiente: Algoritmo PrimeroEnAmplitud(G: Grafo; n: Elemento); Variables c: Cola l, m: NODO Inicio C := Crear() Marcar(n) Insertar(c, n) MIENTRAS NOT Vaca(c) HACER m := Frente(c) Extraer(c) PARA TODO nodo l sin marcar adyacente a m HACER Marcar(l) Insertar(c, l) FIN PARA FIN MIENTRAS Fin PrimeroEnAmplitud Si hacemos PrimeroEnAmplitud(G, a), siendo G el nodo del ejemplo anterior tendremos la siguiente secuencia. Se inserta a en la cola. Como la cola no est vaca, se extrae el primer elemento, que es a, por ser el nico. Se inserta los nodos adyacentes a a sin marcar: b y d. Como la cola no est vaca, se saca el primer elemento de la cola, b, y se inserta los nodos adyacentes no visitados. Slo se inserta e. Ahora el frente de la cola es d. Se saca y se guarda sus sucesores: c, f y g. El siguiente elemento que sale de la cola es e, al que no le queda ningn vecino sin marcar. Igual pasa con c, f y finalmente g. Llegados a este punto, la cola se ha quedado vaca y se acaba el algoritmo. El recorrido ha sido: a, b, c, d, e, f, g.

10

Especificacin de los algoritmos de recorrido.


Tras la definicin de los dos recorridos y su implementacin en pseudocdigo, vamos a ver cmo es su especificacin: PrimeroEnProfundidad: Grafo Lista PEP : Grafo Lista Elemento Pila Lista Quitar: Grafo Lista Grafo Hermanos: Elemento Grafo Conjunto Meter: Pila Conjunto Pila ConsFinal: Lista Elemento Lista PrimeroEnProfundidad(G) == SI Es_Vaco(G) ENTONCES Crear
L 2

SI NO SEA L = PEP (G, Crear , Nodo(G), Crear ) G = Quitar(G, L) EN SI NOT Es_Vaco(G) ENTONCES Concat(L, PrimeroEnProfundidad(G)) SI NO L PEP (G, L, n, p) == SI Est(L, n) ENTONCES
2 2 L P

SI Es_Vaca(p)= ENTONCES L SI NO PEP (G, L, Cima(p), Desapilar(p)) SI NO SEA p = Meter(p, Hermanos(n, G)) EN SI Es_Vaca(p) ENTONCES ConsFinal(L, n) SI NO PEP (G, ConsFinal(L,n),Cima(p),Desapilar(p))
2 2

Quitar(G, Crear ) == G
L

Quitar(G, Cons(e, L)) == Quitar(Borrar_Nodo(G, e), L)) Hermanos(n, Crear ) == Crear


G C

Hermanos(n, Aadir_Arista(G, n , n )) == SI n = n ENTONCES


1 2 1

Aadir(n , Hermanos(n, G))


2

SI NO SI n = n ENTONCES
2

Aadir(n ,Hermanos(n,G))
1

SI NO Hermanos(n, G) Hermanos(n, Aadir_Nodo(G, m)) == Hermanos (n, G)

11

Meter(p, c) == SI Es_Vaco(c) ENTONCES p SI NO Apilar(Elemento(c), Meter(p, Eliminar(c, Elemento(c)))) ConsFinal(Crear , n) == Cons(n, Crear )
L L

ConsFinal(Cons(e, l), n) == Cons(e, ConsFinal(l, n)) Para el recorrido primero en amplitud, basta con cambiar las operaciones de Pila por Cola: Apilar por Insertar, Desapilar por Extraer y Cima por Frente y sustituir la Pila por una Cola en las operaciones PEP y Meter.
2

Esta especificacin est pensada para un grafo no dirigido. Si el grafo es dirigido, hay que eliminar SI v = n ENTONCES Aadir(u, Hermanos(n, G)) de la ecuacin Hermanos(n, Aadir_Arista(G,n ,n ))
1 2

Bsquedas de caminos.
En este apartado vamos a ver una serie de algoritmos de bsquedas de caminos en el grafo. Estos algoritmos nos permitirn encontrar: - un camino de un nodo S a otro nodo T, - el camino ms corto entre S y T, - el camino de menor peso entre S y T y - los caminos de menor peso entre S y los dems nodos del grafo.

Bsqueda de un camino entre un nodo S y otro nodo T.


El problema de encontrar un camino entre dos nodos S y T es un problema muy sencillo que se resuelve fcilmente realizando un recorrido en profundidad partiendo de S y parando cuando se encuentra T.

Bsqueda del camino ms corto desde un nodo S.


En la actualidad no se han desarrollado algoritmos en los cuales encontrar el camino entre un nodo S y otro nodo T sea ms rpido que encontrar el camino ms corto de S a los dems nodos, por lo que describiremos el algoritmo para ste ltimo problema. Supondremos un grafo dirigido y un nodo inicial en el grafo. Para ilustrar el algoritmo veremos un ejemplo concreto.

12

La estrategia a seguir en este algoritmo ser realizar un recorrido primero en amplitud registrando informacin adicional al paso de cada nodo, informacin que posteriormente ser tratada para conocer el camino real. Deseamos conocer los caminos ms cortos desde el nodo N . De entrada, el camino ms corto
3

desde N a N es de longitud cero. A continuacin se buscan todos los nodos que estn a distancia
3 3

uno, o sea, que sean adyacentes. N y N estn a una arista de distancia. Ahora buscamos los nodos
1 6

que estn a distancia exactamente dos y que no hayan sido visitados an. stos sern los nodos adyacentes a N y N : N y N . Continuando de la misma manera, exploramos lo nodos adyacentes a
1 6 2 4

N y N no visitados, que son N y N . A stos el camino es de longitud tres. As se continua hasta


2 4 5 7

que se hayan visitado todos los nodos. Con esta informacin slo sabremos la longitud del camino. Si se desea conocer el camino real, es decir, la sucesin de nodos que nos lleva al destino, es necesario conservar informacin adicional. Con esta finalidad, el algoritmo ha de ir rellenando una tabla con la siguiente informacin:

13

La entrada MARCA se pone a VERDADERO despus de procesar un nodo. Al principio, todas son FALSO. Cuando un nodo est e VERDADERO, se tiene la certeza de que no existe un camino ms corto y por tanto su proceso ha terminado. La entrada DISTANCIA tendr un valor muy grande () para todos los nodos excepto para el inicial, que ser 0. La entrada CAMINO indica el nodo desde el que se ha llegado y nos sirve para conocer el camino real.

Bsqueda del camino de menor peso desde un nodo S.


La bsqueda de caminos de menor peso tiene sentido cuando hablamos de grafos etiquetados. El problema de encontrar el camino ms corto puede considerarse el caso particular de un grafo etiquetado donde todas las etiquetas tienen peso 1. El mtodo general para resolver este problema es el llamado algoritmo de Dijkstra. En este algoritmo se maneja la misma informacin que en el del apartado anterior. Cada nodo se marca a su paso con una distancia provisional para cada nodo. Esta distancia resulta ser la longitud del camino ms corto desde el origen a N usando como nodos intermedios slo nodos marcados. En
i

CAMINO se almacena el ltimo nodo que ha ocasionado un cambio en el valor de DISTANCIA. En cada etapa, el algoritmo selecciona entre los nodos no visitados aquel que tiene el camino ms corto al origen. El primer nodo seleccionado es el nodo origen, que tiene una camino de peso 0. Los dems tienen un camino de peso inicial . Una vez seleccionado el nodo, comprueba si se puede mejorar la distancia a sus nodos adyacentes no marcados. Si el peso del camino hasta el nodo seleccionado ms el peso del arco hasta el nodo adyacente es menor que el peso del camino provisional hasta el nodo adyacente, modificamos su distancia, adaptndola a la del nuevo camino. El campo CAMINO tambin se actualizar a este nuevo nodo. El algoritmo acaba una vez que se hayan visitado todos los nodos.

Sigamos la ejecucin del algoritmo de Dijsktra con el grafo de la figura 6.11 usando como nodo inicial el nodo N . El nodo N ser por tanto el primer nodo seleccionado. En la tabla de marca
1 1

14

como visitado y se inspeccionan los nodos adyacentes, N y N . En ambos casos el coste mnimo
2 4

hasta ese momento es infinito, por lo que hemos encontrado un camino mejor pasando por N . El
1

coste de este camino es el coste del camino a N ms el del arco que los une. Para N es d = d + c =
1 2 2 1 1,2

0 + 2 = 2. Para N es d = d + c = 0 + 1 = 1. En ambos casos, el campo CAMINO se actualiza a N .


4 4 1 1,4 1

De estos dos nodos, se selecciona N por ser el que tiene del camino de menor coste. Se marca y se
4

analizan los nodos adyacentes a N , que son N , N , N y N . En todos los casos, como no haba un
4 3 5 6 7

camino previo, se toma como mejor camino de forma provisional el camino a travs de N ,
4

actualizndose los campos DISTANCIA y CAMINO. El siguiente nodo seleccionado en N , que tiene como nodos adyacentes N y N . Como N
2 4 5 2

est marcado como visitado, y tiene por tanto un camino mejor que N , no es trabaja con l. Como el camino a N a travs de N tiene de peso d = d + c
5 2 5 2 2,5

= 2 + 10 = 12 no es mejor que el que ya tena

N , por lo que no se modifica.


5

El resto de los nodos se escogen en el siguiente orden: N , N , N y N , quedando la tabla con


5 3 7 6

los siguientes valores finales:

Aplicaciones de los Grafos


Gracias a la teora de Grafos se pueden resolver diversos problemas como por ejemplo la sntesis de circuitos secuenciales, contadores o sistemas de apertura. Los grafos se utilizan los mismos 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

15

rboles
Definicin 1.1.28. Un rbol es un grafo conexo y acclico. En la f i gura 1.15 se representa un rbol con 13 vrtices y 12 aristas.

Figura 1.15: rbol. Lema 1.1.29. Un rbol con n > 1 vrtices tiene al menos dos vrtices de grado 1. Demostracin. Sea vk sera adyacente sera un ciclo. Y si casos se llega a una P = v0 v1 . . . vk un camino de la mayor longitud posible. Si g(vk ) > 1 entonces a un vrtice u = vk1 . Si u = vi para algn i < k 1, entonces vi vi+1 . . . vk u no pertenece a P entonces el camino se podra extender. Como en ambos contradiccin debe ser g(vk ) = 1 y anlogamente g(v0 ) = 1.

Teorema 1.1.30. Un rbol con n vrtices tiene n 1 aristas. Demostracin. Por induccin en n. Para n = 1 se cumple pues no hay aristas. Si n > 1 y el rbol tiene m aristas, sea v un vrtice de grado 1. Entonces G v tiene n 1 vrtices y m 1 aristas, y obviamente es acclico y conexo. Por la hiptesis inductiva debe ser m 1 = (n 1) 1, de donde m = n 1. Teorema 1.1.31. Un grafo conexo con n vrtices tiene al menos n 1 aristas, y tiene exactamente n 1 aristas si y slo si es un rbol. Demostracin. Si un grafo conexo G es un rbol, entonces tiene n 1 aris- tas. Si no es un rbol y tiene m aristas, entonces debe contener algn ciclo. Removiendo una arista del ciclo se obtiene un grafo conexo G1 con m 1 aristas. Si G1 no es un rbol se repite el mismo procedimiento, y as sucesi- vamente hasta obtener un grafo conexo Gk con m k aristas y sin ciclos, es decir un rbol. Entonces m k = n 1 y m = n 1 + k > n 1. Teorema 1.1.32. Se G = (V, E) un grafo. Las a rmaciones siguientes son equivalentes: (a) G es un rbol. (b) Dos vrtices cualesquiera de G estn unidos por un nico camino. (c) G es conexo pero si se le quita cualquier arista deja de serlo. (d) G es acclico pero si se le agrega una arista cualquiera deja de serlo. Demostracin. (a) (a): Basta ver que G es conexo, es decir que dados dos vrtices cualesquiera u y v, existe un camino

16

de u a v. Si u y v son adyacentes, ese camino es simplemente uv. Si no lo son, en G + uv debe haber un ciclo vux1 x2 . . . xn v, y entonces ux1 x2 . . . xn v es un camino de u a v en G. (b): Si G es un rbol entonces es conexo y dos vrtices cualesquiera u y v estn unidos por un camino. Si existiesen caminos dife- rentes x0 x1 x2 . . . xn y y0 y1 y2 . . . ym , con x0 = y0 = u y xn = ym = v, sea i el primer ndice para el cual xi = yi , y sea j > i el primer ndice mayor que i para el cual xj = yk , para algn k. Entonces xi1 xi . . . xj 1 yk yk1 . . . yi xi1 sera un ciclo, lo cual es absurdo. (c): Si dos vrtices cualesquiera de G estn unidos por un nico camino, entonces G es conexo. Si uv es una arista de G, en G uv no hay ningn camino de u a v (pues si no en G habra al menos dos caminos de u a v). (d): Si G contuviese un ciclo, quitando cualquier arista del mismo debera seguir siendo conexo.

17

Redes
Definicin Diremos que un digrafo es dbilmente conexo si suprimiendo las orientaciones de las aristas obtenemos un grafo conexo. Diremos que un dgrafo es fuertemente conexo si cada dos vrtices existe un camino dirigido entre ellos Una red de transporte R = (V,A, c) es un grafo dirigido debilmente conexo y ponderado por c con valores no negativos que posee dos vertices distinguidos a y z tales que: 1. a es el unico vertice sin aristas entrantes: fuente. 2. z es el unico vertice sin aristas salientes: sumidero. Si a A al peso c(a) le llamaremos capacidad de a.

18

Bibliografa
ABALLERO, R., GMEZ, T., GONZLEZ, M., MUOZ, M.M., REY, L. y RUIZ, F. (1997) Programacin Matemtica para Economistas. CALDERN, S.; GONZLEZ PAREJA, A. (1995): Programacin Matemtica. Manuales de la Universidad de Mlaga. GONZLEZ PAREJA, A.,CALDERN, S., HIDALGO, R., CABALLERO FERNNDEZ, R., COBO, A., ORDOEZ, J.M.. (1999):Mathematica: Programacin Matemtica en la Economa y la Empresa. Ed. RAMA. ROMERO L., CARLOS (1977): Tcnicas de Programacin y Control de proyectos. Ed. Pirmide

Richard Jonhsonbaugh,. Matematicas Discretas, 4 edicion Berge, C., The Theory of Graphs and its applications, Methuen & Co - John Wiley & Sons, London - New York, 1962.

Bollobas, B., Modern Graph theory, Springer-Verlag, New York, 1998. [D1]

Diestel, R., Graph Theory, 2nd ed., Springer, New York, 2000.

Harary, F. Graph theory, Addison-Wesley, Reading, Mass., 1969. [R6] Rodrguez, J., Teora de Grafos, Karia Editores, Mrida, 2003.

19

TEORA DE LOS GRAFOS


MATEMTICAS DISCRETAS

20

Anda mungkin juga menyukai