ALUMNOS:
OMAR CARMONA UNZUETA VCTOR HUGO DOMNGUEZ CONTRERAS ISAI GARCA MOSO
PROFESOR:
MATERIA:
MATEMTICAS DISCRETAS
TEMA:
CARRERA:
SEMESTRE:
UNO
GRUPO: XA
ndice
Portada ndice
o o o o o o ........................................................................... ............................................................................................... ...................................................................................
2
3 6 8
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
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
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.
K 1 K2
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.
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.
10
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
SI NO SI n = n ENTONCES
2
Aadir(n ,Hermanos(n,G))
1
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.
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
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.
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
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
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
20