You are on page 1of 36

Captulo 1

Grafos
1.1. Conjuntos y relaciones
Consideraremos un conjunto como una coleccin cualquiera de objetos. Un conjunto queda denido por los objetos que a l pertenecen; dichos objetos son los elementos o miembros del mismo. Si x es un miembro del conjunto A, escribimos x A y decimos que x pertenece a A; en caso contrario, escribimos x A y decimos, anlogamente, que x no pertenece a A. Si cada elemento x de un conjunto A es tambin miembro de otro conjunto B , decimos que A es un subconjunto de B , o que A est includo en B , y escribimos A B . Dos conjuntos A y B son iguales si y solamente si A B y B A; es decir, si constan exactamente de los mismos elementos. En ese caso, escribimos A = B . A veces se emplea tambin la notacin A B para la relacin de inclusin, y el smbolo se reserva para la inclusin propia, que ocurre cuando A B pero A = B . En general, la relacin de inclusin propia aparece con menos frecuencia, y usaremos el smbolo ms sencillo para la relacin ms frecuente, de modo que signicar siempre para nosotros est incluido en o es igual a. En lo sucesivo nos ocuparemos predominantemente de conjuntos nitos, que pueden denotarse convenientemente enumerando todos sus elementos. El nmero de elementos de un conjunto nito A se denomina tambin a veces su cardinal, y se escribe | A|.

1.1.1. Producto cartesiano


El producto cartesiano de dos conjuntos A y B se dene como el conjunto formado por todos los pares ordenados posibles cuyo primer elemento es un miembro de A y cuyo segundo elemento es un miembro de B . En notacin conjuntista A B = {(a , b) | a A , b B } Si los conjuntos involucrados son nitos, es evidente que | A B | = | A| | B |. Por ejemplo, si A es el conjunto de todos los hombres y B el de todas las mujeres, A B es el conjunto de todas las parejas (heterosexuales) posibles que pueden formarse entre ellos. En particular, si no existiesen hombres, A B sera vaco, y todo bastante aburrido.

Siguiendo con el ejemplo, el producto cartesiano A B contiene todas las parejas concebibles, no necesariamente las que existen en la realidad. Consideremos solamente aquellas parejas hombre-mujer que constituyan un matrimonio. El conjunto R de pares hombre-mujer (h , m ) donde h es un hombre, m es una mujer y h est casado con m es un subconjunto de A B . Adems, la inclusin R A B es casi seguramente propia, excepto en una sociedad polgama y extremadamente promiscua. En cualquier caso, R contiene toda la informacin que necesitamos sobre el matrimonio en general: nos dice exactamente quin est casado con quin.

1.1.2. Relaciones
Denimos una relacin entre dos conjuntos A y B como un subconjunto R del producto cartesiano A B ; en smbolos, R A B . El hecho de que (a , b) R se suele expresar diciendo que a est relacionado con b, y, de forma abreviada, se suele escribir como a R b. La negacin de a R b se escribe a R b Una relacin binaria en un conjunto A se dene como un subconjunto R del producto A A. El conjunto en el que se establece R suele denominarse dominio de la relacin. Algunos ejemplos de relaciones binarias son los siguientes: La relacin de igualdad = entre nmeros reales. La relacin ser hermano de en el conjunto de los seres humanos. La relacin de orden entre nmeros reales. La relacin ser progenitor de en el conjunto de los seres humanos. Esta relacin contendra todas las parejas ( p, h ) de personas cuyo segundo elemento fuese hijo del primero. La relacin ser hijo de en el conjunto de los seres humanos. Esta relacin contendra todas las parejas (h , p) de personas cuyo segundo elemento fuese padre del primero. Es evidente que esta relacin se obtiene de la anterior invirtiendo el orden de todos los pares: se dice que son inversas. La relacin ser divisor de entre nmeros naturales, que suele denotarse por el smbolo |. Por ejemplo, 6 | 24, pero 6 | 31. La relacin inversa de sta tambin tiene un nombre comn: ser mltiplo de.

1.1.3. Propiedades de las relaciones


Hay cuatro propiedades de una relacin que nos van a interesar especialmente: que sea reexiva, simtrica, transitiva o antisimtrica. Discutiremos primero el signicado de las deniciones y daremos al nal un resumen formal de las mismas. Decimos que una relacin R es reexiva si a R a para todo miembro a del dominio de R . Por ejemplo, la igualdad = y el orden son relaciones reexivas. Tambin lo es la relacin vivir en el mismo domicilio. Una relacin R es simtrica si para todo par de elementos a , b del dominio de R se verica que, si a R b, entonces b R a . Por ejemplo, ser hermano de es una relacin simtrica (es muy difcil ser hermano de alguien sin que ste sea hermano de uno), lo mismo que estar casado con. Tambin la igualdad = entre nmeros reales es una relacin simtrica; sin embargo, el orden no lo es. De modo ms interesante, 2

x ama a y (comoquiera que se dena) no es una relacin simtrica: un amor no tiene por qu ser correspondido (aunque puede serlo). Basta con que haya un solo amor no correspondido para que esta relacin deje de ser simtrica. Tampoco es simtrica la paternidad entre seres humanos: x es padre de y no implica que y sea padre de x (de hecho, en general, lo impide). Notemos la diferencia entre la paternidad y el amor: mientras que x ama a y no implica el recproco, no lo impide ( y puede amar a x ). En cambio, la paternidad difcilmente puede ser recproca en ningn caso: si x es padre de y , no es posible que y sea padre de x . Decimos que una relacin R es antisimtrica si, para cualquier par de miembros a , b del dominio, a R b y b R a se dan simultneamente slo cuando a = b. Por ltimo, otra propiedad muy importante es la transitividad. Decimos que R es transitiva si para cualquier terna a , b, c de miembros del dominio, las relaciones a R b y b R c obligan necesariamente a que a R c. Por ejemplo, si R es la relacin de amistad entre seres humanos, es bastante evidente que no es transitiva: a puede ser amigo de b y b puede serlo de c, mientras que a puede considerar a c muy poco recomendable. Si R fuese transitiva, sera cierto el refrn los amigos de mis amigos son mis amigos. S es transitiva, en cambio, la relacin ser antepasado de: los antepasados de mis antepasados son mis antepasados. En cambio, la paternidad no lo es: si x es el padre de y e y es el padre de z , esto no obliga en absoluto a que x sea el padre de z . Resumiendo, si R es una relacin binaria en el conjunto A, decimos que R es reexiva si a R a , para todo a A simtrica si a R b b R a , para todos a , b A transitiva si a R b y b R c a R c, para todos a , b, c A antisimtrica si a R b y b R a a = b, para todos a , b A Una relacin R se dice que es una relacin de equivalencia si es reexiva, simtrica y transitiva. El ejemplo por excelencia es la igualdad, pero existen otros ejemplos signicativos. Por ejemplo, la relacin ser hermano de es una relacin de equivalencia, si admitimos el hecho de que uno es hermano de s mismo. Dado un elemento a A del dominio de una relacin de equivalencia R , se dene su clase de equivalencia como el conjunto [a ] = {x A | a R x }, es decir, el conjunto de los elementos relacionados con a en virtud de R . En el ejemplo anterior, R = ser hermano de, la clase de equivalencia de un individuo es el conjunto de todos sus hermanos (incluyndolo a l mismo). Obsrvese que las clases de equivalencia de esta relacin son las progenies de cada familia, y toda la humanidad est dividida en clases disjuntas de hermanos. Este hecho no es casual. La propiedad ms importante de las relaciones de equivalencia la proporciona el siguiente Teorema 1 Sea R una relacin de equivalencia en un conjunto A. Las clases de equivalencia de R forman una particin de A, es decir, A es la unin de dichas clases de equivalencia, y dos clases de equivalencia son o iguales o disjuntas. D EMOSTRACIN Obviamente, cada elemento a A es miembro de una clase de equivalencia: la suya propia. Ello es as porque la relacin es reexiva, de modo que a R a y, por tanto, a [a ]. Se deduce que A a A [a ], es decir, A es unin de clases de equivalencia. 3

Por otro lado, sean [x ] e [ y ] dos clases de equivalencia. Si no son disjuntas, existe un elemento comn a [x ] [ y ]. Se deduce que a R x y que a R y x R aya R y x Ry Por tanto, si z [x ] x Rzyx R y z Rxyx R y z R y , o sea, y R z z [y] (denicin de [x ]) (simetra) (transitividad y simetra) (denicin de [ y ]) (pertenencia a [x ] e [ y ]) (simetra) (transitividad)

y se concluye que [x ] [ y ]. Se prueba del mismo modo que [ y ] [x ], y por tanto, que [x ] = [ y ]. Otro tipo de relacin de especial inters es la relacin de orden (parcial). Se llama as a una relacin que es reexiva, antisimtrica y transitiva. Como ejemplos tpicos de relaciones de orden tenemos la relacin entre nmeros reales, o la relacin de divisibilidad entre nmeros naturales (ser divisor de, denotada por |). Esta ltima es relacin de orden, puesto que para todo entero a , se verica que a |a (reexividad) para todo par de enteros a , b, se verica que si a |b y b|a , entonces existen nmeros k y l con a = kb = kla y kl = 1, de forma que a = b (antisimetra) para todo tro de enteros a , b, c, si se dan las relaciones a |b y b|c, existen ciertos naturales k y l que cumplen c = kb = kla , de modo que a |c (transitividad) La divisibilidad es un buen ejemplo de una relacin de orden parcial. En un orden parcial R no es preciso que una de las dos relaciones a R b o bien b R a se d. Por ejemplo, ni 7|69 ni 69|7. Se dice que los elementos en cuestin no son comparables. Una relacin de orden en la que para todo par de elementos a , b del dominio se verica que a R b o bien b R a (o ambas) se dice que es de orden total. La relacin de orden habitual entre nmeros, , es un ejemplo de orden total. Una representacin muy conveniente de las relaciones de orden en conjuntos nitos es su diagrama de Hasse, que deniremos en la seccin 1.4.

1.1.4. Clausura transitiva


Vimos en la seccin 1.1.3 que la relacin ser ancestro de es transitiva, pero la paternidad no lo es: el padre de mi padre no es mi padre (suele denominarse abuelo mo). Sin embargo, existe una vinculacin interesante entre la paternidad y la ancestralidad: los antepasados se obtienen, por lo general, remontndose hacia atrs una o ms veces en la relacin de paternidad (un ancestro mo es, o bien mi padre, o bien el padre de mi padre, o el padre de mi padre de mi padre, etc.) Del mismo modo, la relacin ser sucesor de denida sobre el conjunto de los enteros no es transitiva: 5 es el sucesor de 4, y 6 es el sucesor de 5, pero 6 no es sucesor de 4. Como mucho, es mayor que cuatro, y esta relacin de orden s que es transitiva.

La relacin transitiva que se obtiene por repeticin a partir de otra aparece con frencuencia, lo que motiva la siguiente denicin. Sea R una relacin en un conjunto A. Denimos la clausura transitiva de R (a veces denotada por R ) como la menor relacin transitiva que contiene a R . Ms explcitamente, a) R R A A (es decir, R es una relacin binaria en A). b) R es transitiva. c) Si R S R A A y adems S es transitiva, entonces S = R . Esta denicin es muy poco intuitiva, y generalmente utilizaremos esta otra: diremos que a R b si existe una sucesin {ai } de elementos de A que verica a R a 1 R a2 R a3 R R a n R b es decir, si a est relacionado con un elemento, que est relacionado con otro, que. . . y as sucesivamente hasta llegar a b. Por ejemplo, la clausura transitiva de la relacin de paternidad es ser antepasado de.

1.2. Grafos
1.2.1. Grafo dirigido y no dirigido
Un grafo (especcamente, grafo simple no dirigido) es un par G = (V , E ) = (V (G ), V ( E )), donde V es un conjunto nito no vaco de elementos llamados vrtices y E es un conjunto de pares desordenados de elementos distintos de V llamados aristas. Es decir, una arista e E tiene la forma {u , v }, donde u , v V y u = v . La terminologa en teora de grafos vara muchsimo: prcticamente no hay dos textos que adopten la misma. En paticular, los vrtices de un grafo tambin reciben a veces el nombre de nodos, y las aristas arcos, ejes o lneas. Obsrvese que, en un grafo no dirigido conforme con esta denicin, los bucles estn excludos. Por convenio, en grafos no dirigidos designaremos las aristas con la notacin (u , v) que usamos para los pares ordenados de vrtices; se sobreentiende que en las aristas de grafos no dirigidos no importa el orden, es decir, (u , v) = (v, u ). Un grafo se representa por medio de puntos o crculos, que designan los vrtices, y lneas que los unen, que representan las aristas. Por ejemplo, en la gura 1.1(b) tenemos un ejemplo de grafo no dirigido con conjunto de vrtices V = {1, 2, 3, 4, 5, 6} y aristas E = {(1, 2), (2, 5), (1, 5), (3, 6)}. Un grafo dirigido o digrafo G es un par (V , E ), donde V es un conjunto nito no vaco y E es una relacin binaria en V , es decir, un conjunto de pares ordenados de elementos de V . Los elementos de V reciben el nombre de vrtices. El conjunto E es el conjunto de aristas de G . Por ejemplo, en la gura 1.1(a) tenemos un grafo dirigido que, de acuerdo con la denicin, tiene seis vrtices (V = {1, 2, 3, 4, 5, 6}) y ocho aristas ( E = {(1, 2), (2, 2), (2, 4), (2, 5), (4, 1), (4, 5), (5, 4), (3, 6)}). Las echas apuntan del primer elemento de cada par al segundo. Obsrvese que es posible que una arista puede partir de un vrtice y llegar a l de nuevo. Una arista de esta clase, es decir, de la forma e = (v, v), recibe el nombre de bucle o lazo. 5

E F G H I J 3 + 5 + 6 12 1 ( K 5 ) = 5 ( K 3,3 ) = 2 (C7 ) = 3 (esto) = 4 (esto otro) = 4 4

E F G H I J 3 + 5 + 6 12 3 1 2 ( K 5 ) = 5 ( K 3,3 ) = 2 (C7 ) = 3 (esto) = 4 5 (esto 6 otro) = 4 4


(a)

5
(b)

Figura 1.1: Ejemplos de (a) grafo dirigido, y (b) no dirigido Tipo de grafo Grafo Multigrafo Pseudografo Grafo dirigido (digrafo) Multigrafo dirigido Dirigido No No No S S Simple S No No S No Lazos No No S S S

Cuadro 1.1: Cadro resumen de los diferentes tipos de grafos

Cuando el sentido de las echas no nos interesa (o, dicho de forma ms tcnica, la relacin que el grafo representa es simtrica), es ms conveniente el concepto de grafo no dirigido. Existen numerosas variantes de las deniciones que acabamos de dar. Por ejemplo, un multigrafo es un grafo no dirigido en el que permitimos la existencia de varias aristas conectando los mismo vrtices y la aparicin de bucles. Especcamente, un multigrafo queda denido por medio de una trada G = (V , E , f ), donde V y E son conjuntos y f : E V V asigna a cada arista e E un par desordenado f (e) = {u , v } de vrtices diferentes de V (los vrtices extremos de la arista e). Un multigrafo dirigido se dene de forma exactamente igual, excepto que el recorrido de f est formado por pares ordenados de vrtices. Por ltimo, si permitimos la existencia de bucles o lazos en un grafo no dirigido, tenemos un pseudografo: se trata de una terna G = (V , E , f ), donde f : E V V asigna a cada arista un par no ordenado de vrtices (posiblemente iguales). Dado que esta terminologa no es estndar, siempre es conveniente en cada caso especicar claramente si el grafo objeto de nuestra consideracin es dirigido o no; si se admiten mltiples aristas entre un par cualquiera de vrtices (es decir, si el grafo es o no simple); y si se admiten bucles o lazos. En el cuadro resumen 1.1 se esquematizan los valores de estos parmetros para las deniciones recin dadas.

1.2.2. Incidencia y grado


Si (u , v) es una arista de un grafo dirigido, decimos que incide desde o sale de el vrtice u , que ser su vrtice inicial, y que incide hacia o entra en el vrtice v , que ser su vrtice nal. Si estamos en un grafo no dirigido, decimos que (u , v) simplemente incide en los vrtices u y v , que sern sus vrtices extremos. Por ejemplo, en la gura 1.1(a), hay tres aristas que salen del vrtice 2: son (2, 2), 6

(2, 4) y (2, 5). En el grafo no dirigido de la gura 1.1(b), la arista (3, 6) incide en los vrtices 3 y 6. Si (u , v) es una arista de un grafo, decimos que el vrtice v es adyacente al vrtice u . En un grafo no dirigido, la relacin de adyacencia es simtrica; no es as necesariamente en un digrafo. Por ejemplo, en la gura 1.1(a), el vrtice 5 es adyacente al 2 (pero el 2 no es adyacente al 5). En cambio, en el grafo de la gura 1.1(b), los vrtices 1 y 2 son adyacentes entre s. El grado de un vrtice en un grafo no dirigido es nmero de aristas incidentes con l. Por ejemplo, el vrtice 5 de la gura 1.1(b) tiene grado 2. En un digrafo, el grado de salida de un vrtice es el nmero de aristas que salen de l, y el grado de entrada es el nmero de aristas que entran en l. El grado es la suma de los grados de salida y entrada. En el grafo dirigido de la gura 1.1(a), el vrtice 2 tiene grado de salida 3, grado de entrada 2 y grado 5.

1.2.3. Representacin como estructuras de datos


Nuestro inters en los grafos radica en su aplicacin a la informtica, y exige que podamos representarlos en nuestros programas como estructuras de datos que podamos manejar, crear, modicar y consultar. Existen tres representaciones usuales de los grafos que permiten su manipulacin como objetos en nuestros programas: las representaciones por medio de matrices de adyacencia, de listas de adyacencia y de matrices de incidencia. En la representacin por matrices de adyacencia, un grafo G = (V , E ) cuyo conjunto de vrtices sea V = {a1 , a2 , . . . , an } se representa por una matriz booleana M , cuadrada, de dimensin igual al nmero de vrtices n , y cuyos elementos se denen por 1 si (ai , a j ) es una arista de G Mi j = 0 en caso contrario Es decir, la matriz M representa la relacin de adyacencia. Habr un uno en la la i , columna j , si hay una arista que va del vrtice ai al vrtice a j . Obsrvese que la matriz no ser simtrica, en general, si el grafo es dirigido. En cambio, la matriz de adyacencia de un grafo no dirigido siempre ser simtrica. Las aristas mltiples no quedan bien representadas en la matriz de adyacencia, pero s los bucles o lazos, que provocan la presencia de unos en la diagonal principal. Para el grafo de la gura 1.1(a), la matriz de adyacencia se representa en la gura 1.2(a). La representacin por matrices de adyacencia tiene un inconveniente serio para grafos grandes: el tamao de la matriz es proporcional al cuadrado del nmero de vrtices. Si el nmero de aristas | E E | es comparativamente pequeo en relacin a |V | 2 , se desperdicia una cantidad enorme de espacio. La mayora de los grafos se encuentra en este caso: son grafos dispersos, donde | E | |V |2 . La representacin por listas de adyacencia es mucho ms conveniente en esta mayora de casos. Un grafo G = (V , E ) se representar por un vector de listas. El vector tiene |V | posiciones, una por cada vrtice; en la posicin i -sima se almacena la lista de los vrtices adyacentes a ai . En la gura 1.2(b) representamos el grafo de la gura 1.1(a) por medio de listas de adyacencia. Podemos ver que el tamao de esta representacin es proporcional al nmero | E | de aristas del grafo. Esto lo hace mucho ms conveniente en casi todos los casos. Sola-

0 0 0 M = 1 0 0

1 1 0 0 0 0

0 0 0 0 0 1
(a)

0 1 0 0 1 0

0 1 0 1 0 0

0 0 0 0 0 0

Vrtice 1 2 3 4 5 6
(b)

Adj(V ) {2} {2, 4, 5} {} {1, 5} {4} {3}

Figura 1.2: Representacin del grafo de la gura 1.1(a) por medio de a) matriz de adyacencia b) listas de adyacencia mente en el caso de grafos densos (en los que | E | y |V |2 son comparables) es razonable considerar la matriz de adyacencia como representacin alternativa. La matriz de incidencia de un grafo G = (V , E ), donde |V | = n y | E | = m se dene como una matriz booleana n m en la que ( Minc )i j = 1 si la arista j incide en el vrtice i 0 en caso contrario

Esta representacin es solamente vlida para grafos no dirigidos, puesto que el sentido de las aristas no puede ser representado de esta forma. Puede resultar til para representar multigrafos, pero su inters fundamental es ms bien terico.

1.2.4. Caminos y ciclos


Un camino de longitud k entre el vrtice u y el vrtice u del grafo G = (V , E ) es una sucesin de aristas {e1 , e2 , . . . , ek } tales que ei = (vi 1 , vi ) para i = 2, 3, . . . , k , con lo que cada arista tiene por vrtice inicial el vrtice nal de la anterior. Para hacer explcito este hecho, a veces un camino se denota tambin con los vrtices intercalados: C = {v0 , e1 , v1 , . . . , en , vn }. Si no hay ambigedad, un camino puede denotarse exclusivamente por la sucesin de vrtices que visita: C = {v0 , v1 , . . . , vk }. Esto puede hacerse, por ejemplo, cuando los grafos con los que trabajamos son simples. La longitud del camino, segn la denicin dada arriba, es el nmero de aristas que lo constituyen. El vrtice inicial de C = {v0 , e1 , . . . , ek , vk } es v0 , y el vrtice nal es vk . Un camino es simple si todas sus aristas son distintas. En ocasiones se llama simple a un camino que no visita dos veces el mismo vrtice. La segunda denicin es ms restrictiva que la primera, puesto que un camino puede pasar dos veces por un mismo vrtice sin visitar ninguna arista ms de una vez. Un camino (v0 , e1 , v1 , . . . , ek , vk ) forma un ciclo si v0 = vk y el camino contiene al menos una arista. El ciclo es simple si, adems, las aristas que lo forman son todas distintas. Por ejemplo, un lazo es un ciclo de longitud unidad.

1.3. Accesibilidad y conexin


Decimos que un vrtice u de un grafo es accesible (o alcanzable) desde otro vrtice u si existe un camino de u a u . Es fcil ver que la relacin de accesibilidad es transitiva: si w es accesible desde v y v es accesible desde u , es evidente que w es accesible desde u . Adems, todo nodo es accesible desde s mismo (por medio de un camino de longitud cero). En un grafo no dirigido, la relacin tambin es simtrica; en un digrafo ya no tiene por qu ser as (en la gura 1.1(a), el vrtice 3 es accesible desde 6, pero no al contrario). Un grafo no dirigido es conexo si cada par de vrtices est conectado por un camino (es decir, todos los vrtices son mutuamente accesibles). Las componentes conexas de un grafo son las clases de equivalencia de los vrtices bajo la relacin de accesibilidad. El grafo de la gura 1.1(b) no es conexo, ya que, por ejemplo, 6 es inaccesible desde 1. Hay tres componentes conexas en el grafo: {1, 2, 5}, {3, 6} y {4}. En una componente conexa, todos los vrtices son mutuamente accesibles; es evidente, por tanto, que un grafo es conexo si y solamente si tiene una nica componente conexa. Intuitivamente, las componentes son los diferentes trozos conexos en que el grafo se descompone. Un grafo dirigido es fuertemente conexo si cualquier vrtice es accesible desde cualquier otro. Las componentes fuertemente conexas de un digrafo son las clases de equivalencia de los vrtices bajo la relacin ser mutuamente accesibles. Es algo menos intuitivo visualmente el extraer las componentes fuertemente conexas de un digrafo. Por ejemplo, en el grafo de la gura 1.1(a), tenemos tres componentes: {1, 2, 4, 5}, {3} y {6}. Los cuatro vrtices que residen en la primera componente son mutuamente accesibles entre s (basta usar el ciclo (1, 2, 5, 4) para desplazarse de un vrtice a otro); pero 3 y 6 no son mutuamente accesibles (solamente 3 es accesible desde 6, pero no a la inversa), y por consiguiente residen en componentes distintas.

1.4. Relaciones y grafos


Existe una conexin muy ntima entre las relaciones binarias en un conjunto y los grafos. De hecho, hemos denido un grafo dirigido como una relacin, y el uso que hacemos de los grafos en informtica es para representar relaciones. Sea A un conjunto nito y R una relacin binaria de dominio A. Al ser A nito, podremos enumerar sus elementos: A = {a1 , a2 , a3 , . . . , an } Denimos el grafo asociado a R (o grafo que representa R ) como un grafo cuyos vrtices son los elementos de A, siendo (ai , a j ) una arista del grafo si y solamente si ai R a j . De hecho, segn la denicin de digrafo que dimos en la seccin 1.1(b), la propia relacin es un grafo. Como ejemplo, consideremos la relacin binaria R denida entre nmeros enteros como sigue a R b si y solamente si b = pa con p primo y estudiemos su restriccin al conjunto A = {1, 2, 3, 4, 6, 9, 12, 18, 36} formado por los divisores de 36. El grafo asociado a la relacin ser el que se muestra en la gura 1.3(a). En cambio, el grafo de la relacin entre los nmeros {3, 4, 6, 9} puede verse en la gura 1.3(b). 9

Zapatero Zorrilla A B C D E F G H I J 3 + 5 + 64 12 ( K 5 ) = 5 ( K 3,3 ) = 2 (C7 ) = 3 (esto) = 4 (esto otro) = 4

Zapatero Zorrilla A B C D E F G H I J 36 3 + 12 18 5 + 6 6 9 12 ( K 5 ) = 5 ( 3 K 3,3 ) = 2 2 (C7 ) = 3 (esto) = 4 3 1 (esto otro) = 4


(a)

(b)

Figura 1.3: (a) Retculo de divisores de 36 y (b) Relacin de orden entre 3, 4, 6, 9 Algunas propiedades de estas relaciones son directamente observables a partir del grafo. Por ejemplo, en ninguna de las guras encontramos echas dirigidas en sentidos contrarios entre ningn par de nodos. Esto se debe a que las relaciones representadas son antisimtricas. La relacin de orden de la gura 1.3(b) es, adems, obviamente reexiva: la presencia de un bucle o lazo en todos y cada uno de los nodos lo prueba. Observemos que 2 R 6 y que 6 R 12, pero que, sin embargo, 2 R 12. Esto se debe a que la relacin R no es transitiva. En cambio, s es una relacin transitiva; veremos enseguida en qu se traduce esto en trminos de grafos. Un ejemplo de grafo que se vincula a una relacin de manera algo diferente es el diagrama de Hasse de una relacin de orden. El diagrama de Hasse se obtiene representando la relacin por un grafo, y suprimiendo todos los lazos todas las aristas que se puedan deducir por transitividad de otras dos En la gura 1.3(a) tenemos un ejemplo de un tal diagrama para la relacin de divisibilidad en el conjunto de los divisores de 36. La matriz de adyacencia del grafo asociado a una relacin R se denomina simplemente matriz de la relacin; es una matriz cuadrada binaria M R , de dimensin igual al cardinal del dominio de R . El elemento ( M R )i j de la matriz vale uno o cero segn que los elementos ai y a j estn relacionados o no. En smbolos, ( M R )i j = 1 si ai R a j 0 en caso contrario

Veamos cmo se plasman en trminos de grafos y de matrices de relaciones las cuatro propiedades estudiadas en 1.1.3. reexividad R es reexiva sii a R a para todo a A. Por lo tanto, si cada vrtice del grafo posee un lazo, R es reexiva; si algn vrtice carece de lazo, la relacin no es reexiva. En trminos de matrices, cada elemento de la diagonal principal de M R debe ser un uno. 10

D E F G H I J 3 + 5 + 6 12 ( K 5 ) = 5 ( K 3,3 ) = 2 (C7 ) = 3 (esto) = 4 (esto otro) = 4

K4

K5

K6

Figura 1.4: Grafos completos de cuatro, cinco y seis vrtices simetra R es simtrica sii a R b b R a , para todo par de a , b A. Por lo tanto, si hay una echa de un vrtice v a otro w, la echa contraria tambin debe estar presente; y si no la hay en un sentido, la contraria tampoco puede existir. En trminos matriciales, ( M R )i j = ( M R ) j i para todo par de ndices i , j ; o, ms t brevemente, M R es simtrica: M R = MR transitividad R es transitiva si y solamente si a R b junto con b R c implica necesariamente que a R c. En trminos de grafos, la existencia de una arista entre los vrtices a , b y otra entre b, c implica la existencia de la arista (a , c). El par de aristas (a , b), (b, c) forma un camino de longitud dos entre los vrtices a y c, de modo que la condicin de transitividad puede formularse as: la accesibilidad de orden dos implica adyacencia. En trminos matriciales, ( M R )2 i j = 1 implicar 2 siempre que ( M R )i j = 1 o, abreviando, M R M R : elevar al cuadrado la matriz de la relacin no introduce unos que no existieran ya en M R .

1.5. Algunos grafos especiales


1.5.1. Grafos completos
Un grafo completo es un grafo no dirigido en que todos los vrtices son adyacentes entre s. Para cada nmero de vrtices n , existe esencialmente un solo grafo completo (todos son isomorfos entre s), que se designa por K n . Por ejemplo, en la gura 1.4 tenemos algunos grafos completos. Teorema 2 El grafo completo de n vrtices K n tiene Hay varias formas de demostrar esto: 1. El nmero de aristas de K n es el nmero de pares desordenados en un conjunto de n objetos, es decir, el de combinaciones de n elementos tomados de dos en dos. 2. Cada vrtice del grafo est unido a los n 1 restantes. Si contamos las aristas incidentes en cada uno de los n vrtices, obtenemos n (n 1), pero, al obrar as, estamos contando cada arista dos veces (puesto que tiene dos extremos). Por tanto, el nmero total de aristas es exactamente la mitad, n (n 1)/2.
n 2

= n (n 1)/2 aristas.

11

Propiedad Reexiva Simtrica Antisimtrica Transitiva 12

Denicin a a , b a , b a R a R a R

a , b, c a R

P6 Q 0 Q 2Q4 C m Q 1 Q 3Q5 Q 0 Q 2 Q Abad 4 Q Q Abascal 3 Q1 5 Q Q2 4 lvarez Abad Q Q3 Bastardo Abascal 5 Q Cobas 4 Abad lvarez Cazorla Q5 Abascal Bastardo Dehesa Cobas Abad lvarez Gonzlez Abascal Cazorla Bastardo Guzmn Dehesa Cobas lvarez Herrero Gonzlez Cazorla Bastardo Lebrel Guzmn Dehesa Cobas Zapatero Herrero Gonzlez Cazorla Zorrilla Lebrel Guzmn Dehesa Zapatero Herrero A Gonzlez Lebrel B Zorrilla Guzmn Zapatero A C Herrero B D Lebrel Zorrilla C Zapatero A E F D B G Zorrilla E H C A F I D B G E J C H F 3 D I G E J + H F 3 I 5 G + J + H 3 6 I 5 12 + J + ( K 5 )3 =5 6 5 + ( K 3,312 ) =2 + ( K 5 6 5) ( C= =3 7 )5 Grafo 12 + ( K )= 2 3,3 ( esto ) =4 ( K ) = 5 6 5 ( C ) = 3 7 ( esto otro )2 =4 a 12 ( K )= = 3,3 ) ( esto 4 ( K ) = 5 5 ( C ) = 3 7 otro )= =4 b b( Resto a ( K 3,3 ) ( esto ) =2 4 ( C ) = 7 ( esto otro ) =3 4 byb R a a = b (esto) = 4 esto b y b ( Rc otro a R)c= 4

Matriz ( M R )ii = 1 i
t MR = MR ( M R )i j = ( M R ) j i 2 MR

i = j

MR

Cuadro 1.2: Cuadro resumen de las propiedades de las relaciones

Zorrilla A B C D E F G H I J 3 + 5 + 6 3 12 ( K 5 ) = 5 ( K 3,3 ) = 2 (C7 ) = 3 (esto) = 4 (esto otro) = 4

Figura 1.5: Torneo de seis vrtices 3. Numeremos los vrtices de 1 a n . En el vrtice 1 inciden n 1 aristas: (1, 2), (1, 3), (1, 4), . . . (1, n ) En el vrtice 2 inciden tambin n 1 aristas, pero una ya ha sido contada anteriormente, de modo que slo aparecen aqu n 2 nuevas: (2, 3), (2, 4), . . . (2, n ) Si proseguimos as el recuento, llegamos a que el nmero total de aristas es la suma de una progresin aritmtica: | E | = (n 1) + (n 2) + + 2 + 1 = (n 1) (n 1) + 1 2

De este teorema deducimos que un grafo simple no dirigido de n vrtices tendr, a lo sumo, n 2 aristas.

1.5.2. Torneos
Un torneo (tournament) es un grafo dirigido cuya versin no dirigida es un grafo completo. Podemos decir que un torneo puede obtenerse a partir de un grafo completo asignando orientaciones a cada una de las aristas. En la gura 1.5 podemos ver un ejemplo de torneo con seis vrtices. En el torneo de la gura podemos ver que el camino simple (1, 2, 4, 6, 3, 5) pasa por todos los vrtices. Un camino as se denomina camino hamiltoniano. En el teorema 8 veremos que siempre es posible encontrar uno en cualquier torneo.

1.5.3. Grafos bipartitos


Un grafo bipartito es un grafo no dirigido G = (V , E ) cuyo conjunto de vrtices V es unin de dos conjuntos disjuntos V1 y V2 de forma que (u , v) E implica que, o bien u V1 y v V2 , o bien u V2 y v V1 . Es decir, todas las aristas tienen un extremo en cada uno de los conjuntos V1 y V2 . Recordemos que V1 y V2 forman una particin de V si son disjuntos y su unin es V . 13

D E F G H I J 3 + 5 + 6 12 ( K 5 ) = 5 ( K 3,3 ) = 2 (C7 ) = 3 (esto) = 4 P6 (esto otro) = 4

C5

C7 Figura 1.6: Camino P6 y ciclos C7 y C5

Teorema 3 Un grafo es bipartito si y solamente si carece de ciclos de longitud impar D EMOSTRACIN Sea G bipartito y C = (v0 , v1 , . . . , vn ) un ciclo de G . Como cada arista (vi 1 , vi ) une un elemento de V1 con uno de V2 , se deduce que vrtices consecutivos de C pertenecen a lados distintos de la particin, de forma que los vrtices de subndice par estn todos en un lado y los de subndice impar en el contrario. Como v0 = vn , se deduce que n tiene la misma paridad que 0, es decir, es par. Recprocamente, supongamos que el grafo G carece de ciclos de longitud impar. En primer lugar, es obvio que bastar probar que cada componente de G es bipartita, as que podemos suponer G conexo. Sea v0 V (G ) un vrtice cualquiera, y denamos V1 = {v V (G ) | existe un camino de longitud impar entre v0 y v }, y V2 = V V1 . Por denicin, los caminos entre v0 y cualquier vrtice de V2 sern todos de longitud par. Adems, V1 y V2 forman una particin de V . Ahora, si dos vrtices v, w de V1 son adyacentes, los caminos de longitud impar que los unen con v 0 , ms las arista (v, w), constituyen un ciclo impar, contra la hiptesis. Por lo tanto, no hay ningn par de vrtices adyacentes en V1 . Para V2 , el mismo razonamiento es vlido, de forma que cualquier arista une algn vrtice de V1 con alguno de V2 .

1.5.4. Caminos y ciclos


El camino de longitud n es el grafo Pn = (V , E ), donde V = {v0 , v1 , . . . , vn } y E = {(v0 , v1 ), (v1 , v2 ), . . . , (vn1 , vn )}. El ciclo de longitud n es el grafo C n = (V , E ), donde V = {v1 , . . . , vn } y E = {(vn , v1 ), (v1 , v2 ), . . . , (vn1 , vn )}. En la gura 1.5.4 podemos ver ejemplos de estos complicadsimos conceptos.

1.5.5. Grafos cbicos Q n


Los grafos Q n son la representacin de la red de vrtices y aristas de un cubo n dimensional. El cubo de dimensin cero Q 0 consta, por denicin, de un solo vrtice. A partir de ah, se obtiene Q n uniendo por medio de aristas los vrtices correlativos de dos copias de Q n1 . En la gura 1.7 podemos ver los primeros grafos cbicos, hasta el de dimensin 4.

1.6. Arboles
Un rbol es un grafo no dirigido, conexo y acclico. Un grafo no dirigido que es acclico, pero posiblemente no conexo, se denomina bosque.

14

Abascal Abascal 9 9A 9 A A lvarez lvarez 12 12 B 12 B B Bastardo Bastardo 18 18 C 18 C C Cobas Cobas 36 36 36 D D D Cazorla Cazorla C1 C1 E C1 E E Dehesa Dehesa C2 C C2 2F F F Gonzlez Gonzlez C3 C3 G C3 G G Guzmn Guzmn C4 C4 H C4 H H Herrero Herrero C5 C5 I C5 I I Lebrel Lebrel C7 C C7 7 J J J Zapatero Zapatero P6 P P6 6 3 3 3 Zorrilla Zorrilla Cm C C + + m+ m Q0 Q0 A Q0 A Q1 Q1 5 B Q1 5B 5 C C Q2 Q Q2 + + 2+ D D Q3 Q Q3 3 6 6 6 E E Q4 Q Q4 412 12 12 F Q 5 ( K 5 ) = 5 F Q Q5 ( K 5 ) = 5 ( K ) = 5 5 5 Q 0 G G ( K ) = 2 ( K ) = 2 ( K ) = 2 3Abad ,3 3,3 Abad 3,3 Abad Q1 ( C7 ) = 3 H (C7 ) = 3 Abascal (C7 ) = 3 H Abascal Abascal (esto) = 4 I (lvarez esto) = 4 I (esto) = 4 lvarez lvarez J J ( esto otro ) = 4 ( esto otro ) = 4 ( esto otro) = Bastardo 4 Bastardo Bastardo 3 Cobas Cobas 3 Cobas + (a) (b) Cazorla Cazorla + Cazorla (c) Dehesa Dehesa Dehesa 5 Gonzlez Gonzlez 5 Gonzlez + Guzmn Guzmn + Guzmn 6 Herrero Herrero 6 Herrero 12 Lebrel Lebrel 12 Lebrel 53 ( K 5 ) = 5 Zapatero ( K 5 ) = Q Zapatero Zapatero ( K 3,3 ) = 2 ( K 3,3 ) = 2 Zorrilla Zorrilla Zorrilla (C7 ) = 3 (C7 ) = 3 A A A (esto) = 4 (esto) = 4 B B B (esto otro) = 4 (esto otro) = 4 Q 4 C C C D D D (d) (e) E E E F F F Figura 1.7: 4 G G Grafos Q n , para n = 0, . . . ,G H H H I I I J J J 3 3 3 + + + 5 5 5 + + + 6 6 6 12 12 12 ( K 5 ) = 5 ( K 5 ) = 5 ( K 5 ) = 5 ( K 3,3 ) = 2 ( K 3,3 ) = 2 ( K 3,3 ) = 2 (C7 ) = 3 (C7 ) = 3 (C7 ) = 3 (esto) = 4 (esto) = 4 (esto) = 4 (esto otro) = 4 (esto otro) = 4 (esto otro) = 4


   

Q2

(a)

(b)

(c)

Figura 1.8: (a) Un rbol. (b) Un bosque. (c) Un grafo que no es ni un rbol ni un bosque

15

La gura 1.8(a) muestra un rbol, y en 1.8(b) vemos un bosque que no es un rbol, al no ser conexo. El grafo de 1.8(c) no es un rbol ni un bosque, pues contiene un ciclo. Antes de demostrar un importante teorema sobre rboles precisamos los dos lemas siguientes, cuyas demostraciones son prcticamente idnticas. Lema 1 Sea G un grafo no dirigido con n vrtices y e aristas. Si G es conexo, se verica que e n 1. D EMOSTRACIN Por induccin sobre el nmero de vrtices. El teorema es trivialmente cierto para n = 1. Supongamos entonces que la desigualdad se verica en todos los grafos conexos con menos de n vrtices. Consideremos un vrtice cualquiera v V (G ) de grado d como el que mostramos en la gura 1.9, siendo sus vrtices adyacentes v1 , v2 , . . . , vd . El grafo G v obtenido al suprimir v y sus aristas adyacentes posee n 1 vrtices, e d aristas y es posiblemente inconexo; al suprimir v , G puede divirse a lo sumo en d componentes conexas (por qu?). Sean entonces esas componentes los subgrafos C i de G , con i = 1, 2, . . . , m d . Cada componente C i es un grafo conexo con menos de n vrtices. Por tanto, por hiptesis de induccin, sus nmeros de vrtices n i y aristas ei satisfacen la desigualdad ei n i 1 i = 1, 2, . . . m

Sumando estas desigualdades sobre todas las componentes


m m m

ei
i =1 i =1

(n i 1) =
i =1

ni

Ahora, el primer sumatorio es el nmero de aristas de G v , es decir, e d , y el ltimo es el de vrtices, n 1. Como el nmero de componentes m no supera el grado d ed n1m es decir e n1+d m n1

como se quera demostrar. El lema dual del recin probado cambia la conexin por la aciclicidad, con lo que el sentido de la desigualdad se invierte. Lema 2 Sea G un grafo no dirigido con n vrtices y e aristas. Si G es acclico, e n 1. D EMOSTRACIN Por induccin sobre el nmero de vrtices. El teorema es trivialmente cierto para n = 1. Supongamos entonces que la desigualdad se verica en todos los grafos acclicos con menos de n vrtices. Consideremos un vrtice cualquiera v V (G ) de grado d como el que mostramos en la gura 1.9, siendo sus vrtices adyacentes v1 , v2 , . . . , vd . Al suprimir el vrtice v y obtener G v , resulta ahora un grafo acclico que, a diferencia del lema anterior, posee al menos d componentes conexas (por qu?). Es decir, m d . Ahora cada componente es un subgrafo acclico y, por hiptesis de induccin ei n i 1 Sumando
m m

i = 1, 2, . . . m
m

ei
i =1 i =1

(n i 1) =
i =1

ni

16

Lebrel Zapatero Zorrilla A B C D E F G H vd I C m J 3 . + . . C4 5 v + 6 6 12 ( K 5 ) = 5 ( K 3,3 ) = 2 v5 (C7 ) = 3 (esto) = 4 (esto otro) = 4 C3

v1 C1 v2 v

v3 C2 v4

Figura 1.9: Demostracin de los lemas 1 y 2 En el presente caso, rige la desigualdad m d y se tiene entonces ed n1m es decir e n1+d m n1

como se quera demostrar. Existen numerosas formulaciones equivalentes de la denicin de rbol; el teorema siguiente resume las fundamentales. Teorema 4 Sea G = (V , E ) un grafo no dirigido. Las siguientes armaciones son equivalentes. 1. G es un rbol

2. Dos vrtices cualesquiera de G estn conectados por un nico camino simple 3. 4. 5. 6. G es conexo, pero si se le suprime una arista cualquiera, deja de serlo. G es conexo y | E | = |V | 1 G es acclico y | E | = |V | 1 G es acclico, pero si se le aade una arista, deja de serlo

D EMOSTRACIN 1 2) Sean u , v V . Como G es conexo, existe un camino simple entre ellos. Si existen dos caminos simples distintos entre ambos vrtices, se dar la situacin de la gura 4: los caminos p y p divergen por primera vez en el vrtice w y vuelven a converger en el vrtice z , pasando por vrtices diferentes x e y . Como resultado, es posible construir un ciclo, contra la hiptesis. Por tanto, no pueden existir dos caminos simples distintos entre u y v . 2 3) Evidentemente, G es conexo. Si se suprime la arista (u , v) de G , los vrtices u y v quedan desconectados, pues, por hiptesis, dicha arista era el nico camino simple que los conectaba. 3 4) Una vez ms, la conexin de G es parte de la hiptesis. Por otro lado, G es acclico, puesto que si tuviese un ciclo, podra suprimrsele una arista sin perder la conexin. Por tanto, de los lemas precedentes de deduce que | E | = |V | 1. 17

lvarez E Bastardo F Cobas G Cazorla H Dehesa I Gonzlez J Guzmn 3 Herrero + Lebrel Zapatero 5 Zorrilla + p A 6 x v B 12 u ( K 5 ) =C 5 w z ( K 3,3 ) =D 2 (C7 ) = E 3 y (esto) = F 4 p (esto otro) =G 4 H Figura I 1.10: Demostracin de la implicacin 1 2 en el teorema 4 J 3 7 + 6 8 9 5 + 6 12 3 4 5 10 11 12 ( K 5 ) = 5 ( K 3,3 ) = 2 (C7 ) = 3 (esto) = 4 2 (esto otro) = 4 1 Figura 1.11: Arbol de doce nodos enraizado en el nodo 7 4 5) Si suprimimos una arista de G , deja de vericarse la desigualdad | E | |V | 1; por tanto, de la implicacin anterior se sigue que G es acclico. La igualdad | E | = |V | 1 es parte de la hiptesis. 5 6) Al aadir una arista a G , se viola la desigualdad | E | |V | 1 y el contrarrecproco del lema 2 implica que G deja de ser acclico. 6 1) Sean u y v dos vrtices distintos de G (si no los hay la implicacin es trivial). Si existe una arista (u , v), los dos vrtices son mutuamente accesibles; si no, la adicin de (u , v) a E (G ) provoca la aparicin de un ciclo C del que dicha arista es obviamente miembro. Suprimiendo (u , v) de C obtenemos un camino que conecta u y v .

1.6.1. Arboles enraizados


Un rbol enraizado es un rbol en el que marcamos uno de los vrtices como vrtices disinguido. Dicho vrtice se denomina raz del rbol. Por ejemplo, el rbol de la gura 1.11 tiene por raz el nodo 7. Como puede verse, en los rboles enraizados es ms comn llamar nodos a los vrtices Consideremos un nodo cualquiera v de un rbol enraizado de raz r . Existe un nico camino entre r y v ; cualquier nodo presente en ese camino es un ancestro o antecesor de v . Si w es un ancestro de v , decimos que v es un descendiente de w. Todo nodo es, por denicin, ancestro de s mismo; un ancestro de v diferente a l es un ancestro propio. Un descendiente propio se dene de forma anloga. El subrbol con raz en v es el subrbol inducido por los descendientes de dicho vrtice. 18

Lebrel

A B C D E F G Abad H I J lvarez Zapatero Abascal 3 + 5 + Guzmn Bastardo Gonzlez 6 12 ( K 5 ) = 5 ( K 3,3 ) = 2 (C7 ) = 3 Herrero Dehesa (esto) = 4 Cazorla Cobas (esto otro) = 4 Figura 1.12: Buscando al abonado Dehesa

Zorrilla

Supongamos que la ltima arista del (nico) camino entre la raz y un nodo v es (w, v). En ese caso, decimos que w es el padre de v , y que v es hijo de w. Dos nodos que tienen el mismo padre son hermanos. Un nodo sin hijos es una hoja o nodo externo; en caso contrario, es un nodo interno. El nmero de hijos de un nodo es su grado; obsrvese que, en este contexto, el grado de un nodo es una unidad inferior a lo denido en la seccin 1.2.2. Si todos los nodos de un rbol tienen grado a lo sumo m , el rbol es m-ario. As, en un rbol ternario cada nodo tiene, a lo sumo, tres hijos; posiblemente, menos. Denimos la profundidad de un nodo v como la longitud del camino de la raz a v . La altura de un rbol es el mximo de las profundidades de sus nodos. El rbol de la gura 1.11 tiene altura 3, puesto que los nodos 1 y 2 tienen ambos dicha profundidad. El subrbol con raz en el nodo 9 tiene altura uno. Un rbol enraizado en el que los hijos de cada nodo tienen asignado un orden es un rbol ordenado. Esto signica que si un nodo tiene k hijos, hay un primer, segundo, . . . , k -simo hijo. El inters de los rboles reside en su uso como estructuras de datos para clasicar informacin. Por ejemplo, el rbol de la gura 1.6.1 codica un ndice de una base de datos de abonados telefnicos. El rbol es ordenado y cuaternario; tiene, adems, la propiedad de que los datos residentes en una rama son siempre anteriores a los datos que residen en ramas situadas a su derecha. Esto lo convierte en un rbol de bsqueda. Para localizar al abonado Dehesa, es suciente encontrar qu hijo del nodo raz lo contiene, lo que se determina de inmediato. Prosiguiendo recursivamente de esta forma, llegamos a encontrar al abonado en un nmero de pasos igual, a lo sumo, a la altura del rbol de bsqueda. Cul podra ser esa altura en el caso de tener un milln de abonados? Teorema 5 Sea T un rbol m-ario de altura h. Entonces, el nmero de nodos n del rbol satisface la desigualdad m h +1 1 n m1 19

Dicho de otro modo, un rbol m-ario de n nodos tiene que tener altura mnima dada por h 1 + logm ((m 1)n + 1) En particular, un rbol binario satisface las desigualdades siguientes n h 2h +1 1 1 + log2 (n + 1)

D EMOSTRACIN Si cada nodo tiene a lo sumo m hijos, habr a lo sumo un nodo de nivel 0 (el nodo raz); m nodos de nivel 1 (sus hijos); m 2 nodos de nivel 2 (sus nietos); m 3 nodos de nivel 3 (sus bisnietos); y, en general, el nivel k tendr una poblacin mxima de m k nodos. Por lo tanto, el nmero total de nodos ser inferior a 1 + m + m2 + m3 + + mh = m h +1 1 m1

que es lo que se quera demostrar. Las dems desigualdades se obtienen despejando la altura y particularizando para m = 2. Como ejemplo, en el caso de un milln de abonados, tendramos un rbol de altura mnima h 1 + log4 (3106 + 1) = 9,758 luego un rbol de altura h = 10 podra albergar nuestro milln de abonados, si est correctamente equilibrado. En esta hiptesis, nuestra bsqueda concluira tras la lectura de once registros de nuestra base de datos a lo sumo, lo que no est nada mal.

1.6.2. Arboles binarios


Aunque podramos denir estos rboles a partir de lo estudiado en las secciones anteriores, seguiremos otra va mucho ms conveniente. Un rbol binario T es una estructura denida en un conjunto nito de nodos, que, o bien no contiene nodos, o bien contiene tres conjuntos distintos de nodos: un nodo raz, un rbol binario llamado el subrbol izquierdo y otro llamado el subrbol derecho. Observemos que est permitido que un rbol binario sea vaco: se trata del rbol vaco o rbol nulo. Dado un rbol binario de raz r , si el subrbol izquierdo no es vaco, su raz es el hijo izquierdo de r ; el hijo derecho de dene anlogamente. Es posible, pues, que un hijo izquierdo o derecho estn ausentes (cuando sea vaco el correspondiente subrbol). Es preciso hacer notar que un rbol binario no es simplemente un rbol ordenado en que cada nodo tiene a lo sumo dos hijos. En tal caso, no podramos decidir, para un nodo con un solo hijo, si ste es el izquierdo o el derecho. El rbol binario, pues, proporciona ms estructura que un simple rbol ordenado. Un nodo puede tener solamente un hijo izquierdo o solamente un hijo derecho.

1.7. Recorridos de grafos


Un recorrido de un grafo es un procedimiento que origina una enumeracin ordenada de sus vrtices. Comenzaremos nuestro estudio de los recorridos por el caso particular de los rboles binarios 20

P REORDEN(T ) 1 if T = NIL 2 then no hacer nada 3 else V ISITA(T ) 4 P REORDEN (T .i z ) 5 P REORDEN (T .de)

P OSTORDEN(T ) 1 if T = NIL 2 then no hacer nada 3 else P OSTORDEN(T .i z ) 4 P OSTORDEN(T .de) 5 V ISITA(T )

I NORDEN(T ) 1 if T = NIL 2 then no hacer nada 3 else I NORDEN(T .i z ) 4 V ISITA(T ) 5 I NORDEN(T .de)

Figura 1.13: Pseudocdigo de los recorridos de un rbol binario

1.7.1. Recorridos de rboles binarios


Recordemos que un rbol binario se dene como un grafo vaco, o bien un nodo raz ms dos rboles binarios que constituyen el subrbol izquierdo y el derecho Esta denicin recursiva es de especial inters cuando recorremos el rbol. Podemos denir tres maneras de visitar todos y cada uno de los vrtices segn se ve en la gura 1.13. Aplicando estos procedimientos al rbol de la gura 1.14(a), se obtienen las secuencias que se muestran en la tabla adjunta 1.14(b). Estos tres tipos de recorrido se relacionan con tres notaciones usuales para las expresiones algebraicas inja La notacin del lgebra corriente exige que los operadores vayan en medio de sus dos operandos. Por ejemplo, la expresin 3 + 5 (6 + 12) est en notacin inja. postja Se obtiene colocando cada operador binario a continuacin de sus operandos. Al contrario que la inja, no requiere parntesis ni reglas de precedencia para resolucin de la ambigedad. La expresin anterior, en notacin posja se convierte en 3 5 6 12 + + La notacin postja (tambin llamada polaca inversa es muy adecuada para su interpretacin por mquinas, lo que no es de extraar a la luz del ejemplo anterior. Es muy sencillo escribir un programa que interprete de forma directa expresiones postjas empleando una pila como estructura de datos auxiliar pretja Se obtiene colocando los operadores binarios como prejos de los operandos. As: + 3 5 + 6 12 No es de mucho uso, pero an pervive en el lenguaje Lisp, donde el clculo anterior se escribira como (+ 3 (* 5 (+ 6 12)))

21

Zorrilla A B C D E F G H I J 3 + 5 + 6 12 ( K 5 ) = 5 ( K 3,3 ) = 2 (C7 ) = 3 (esto) = 4 (esto otro) = 4

(a) rbol binario

Tipo Inorden Preorden Postorden

c e c

a a b

b c a

Resultado e j g h b g j f j h d f

f h g

d d e

(b) Recorridos

Figura 1.14: Recorridos de un rbol binario a pesar de que tampoco son precisos parntesis ni reglas de precedencia para resolucin de ambigedades (el uso de parntesis en Lisp tiene un signicado distinto). Las tres notaciones resultan de recorrer en in-, pre- y postorden un rbol sintctico de la expresin, como puede comprobarse en la gura 1.7.1.

1.7.2. Recorridos eulerianos


El problema que estudiamos a continuacin se encuentra en el origen mismo de la teora de grafos y de otra importante rama de la Matemtica: la topologa. Se trata del clebre problema de los puentes de Knigsberg. La ciudad de Knigsberg, capital de Prusia y patria del clebre lsofo Immanuel Kant, es atravesada por el ro Pregel. En medio del ro encontramos dos islas que se encuentran comunicadas con las orillas y entre s por siete puentes, como se muestra en la gura 1.16. Los habitantes de Knigsberg se plantearon si era posible dar un paseo que recorriese los siete puentes sin repetir ninguno (y, naturalmente, sin mojarse). Tras numerosos intentos infructuosos, la solucin de este divertido problema combinatorio fue aportada por el matemtico suizo Leonhard Euler en 1736. Euler no solamente demostr la imposibilidad del pretendido paseo, sino que, adems, dio un sencillo criterio general para resolver cualquier problema del mismo tipo. Si prescindimos de detalles anecdticos, es fcil ver que la bsqueda de un paseo por los puentes equivale a encontrar un camino que recorra todas las aristas del grafo de la gura 1.17 sin repetir ninguna (naturalmente, los vrtices pueden repetirse). O, 22

Zapatero Cm 2 Q0 3 Zorrilla Q1 4 A Q2 6 B Q3 9 C Q4 12 D Q5 18 E 36 F Abad C1 G Abascal C2 H lvarez C3 IBastardo C4 J Cobas C5 Cazorla C7 + Dehesa + P6 Gonzlez Cm Recorrido Expresin Guzmn Q0 3 Inorden 3 + 5 6 + 12 Herrero Q1 Postorden 3 5 6 12 + + Lebrel Zapatero Q2 Preorden +3 5 + 6 12 Q3 ( K 5 ) = 5 Zorrilla 5 ( K 3,3 ) = 2 Q4 + Q5 (C7 ) = 3 (esto) = 4 Abad 12 6 (esto otro) = 4 Abascal lvarez E (a) (b) Bastardo F Cobas G Cazorla H Figura 1.15: a) rbol sintctico y b) notaciones inja, preja y postja para la expresin Dehesa I 3 + 5 (6 + 12) Gonzlez J Guzmn 3 + Herrero Lebrel B Zapatero 5 + Zorrilla 6 12 ( K 5 ) = 5 A D ( K 3,3 ) = 2 (C7 ) = 3 E (esto) = 4 F (esto otro) = 4 G C H Figura I 1.16: Los puentes de Knigsberg J 3 + A 5 + 6 12 D B ( K 5 ) = 5 ( K 3,3 ) = 2 (C7 ) = 3 (esto) = 4 (esto otro) = 4 C Figura 1.17: Los puentes de Knigsberg

23

como suele formularse en las revistas de matemtica recreativa, dibujar la gura de un solo trazo sin levantar el lpiz del papel. Sea G un grafo no dirigido. Denominamos recorrido euleriano de G a un camino que pasa por todas las aristas de G exactamente una vez. Es decir, si C = (v1 , v2 , . . . , vn ), la sucesin de aristas (v1 , v2 ), (v2 , v3 ), (v3 , v4 ), . . . , (vn1 , vn ) contiene cada arista de G exactamente una vez. Si adems C es cerrado, denominamos al recorrido un circuito euleriano El grafo del problema de los puentes no es un grafo dirigido en el sentido de la denicin dada en 1.2.1, sino un multigrafo, en el que permitimos que haya ms de una arista distinta entre dos vrtices. Aunque no hemos denido rigurosamente estos objetos, todo lo que probaremos en la presente seccin se extiende a ellos sin dicultad. Decimos que un grafo es euleriano si posee un recorrido euleriano. Obviamente, un grafo euleriano tiene que ser conexo. Pero, adems, se necesitarn condiciones adicionales para garantizar la existencia de recorridos eulerianos. Tras bastantes ensayos con el grafo de los puentes, parece claro que no podemos encontrar una solucin. La razn est en la paridad de los vrtices del grafo. Decimos que un vrtice v de un grafo no dirigido G es par (respectivamente, impar) si su grado es un entero par (resp. impar). Por ejemplo, en el grafo de la gura 1.17, todos los vrtices son impares. Ahora bien, si intentamos dibujarlo de un solo trazo, cada vez que pasemos por un vrtice, entraremos en l por una arista y saldremos por otra; ambas quedarn inutilizadas para su recorrido posterior. Excepto los vrtices inicial o nal de la trayectoria, todos los dems (vrtices de paso) tendrn tantas aristas de entrada como de salida; por tanto, un nmero par de ellas, y su grado ser par. Esto nos lleva al teorema de Euler. Teorema 6 Sea G un grafo conexo no dirigido. Entonces, G posee un circuito euleriano si y solamente si G carece de vrtices impares. D EMOSTRACIN Supongamos primero que G posee un circuito euleriano dado por la sucesin de vrtices C = (v0 , v1 , v2 , . . . , vn ). Por denicin, cada arista del grafo aparece en la sucesin (v0 , v1 ), . . . , (vn1 , vn ) exactamente una vez, y al ser el recorrido cerrado, v0 = v n . Sea v un vrtice cualquiera de G . Si v es el nico vrtice de G , no hay nada que demostrar. Si no es as, v tendr alguna arista incidente puesto que G se supone conexo, y esto obliga a que v aparezca cierto nmero de veces en el camino C . En cada aparicin de v , ste gura dos veces; si, por ejemplo, est en la posicin k -sima de C , v = vk y tenemos dos aristas (vk 1 , vk ) y (vk , vk +1 ) incidentes en vk . Como estas aristas solamente guran una vez en el recorrido, obtenemos que el nmero de aristas incidentes en v es igual al doble del nmero de apariciones de v en C , y, como todas las aristas son visitadas por C , el grado de v es forzosamente un nmero par. La nica excepcin de este argumento se encuentra en los extremos: cuando k = 0, n , las dos aristas (vn , v0 ) y (v0 , v1 ) se aaden al recuento de aristas incidentes en v0 segn el argumento anterior, de modo que tambin v0 = vn debe ser par. La implicacin contraria se demuestra por induccin sobre el nmero de vrtices. De hecho, vamos a demostrar esta implicacin para multigrafos dirigidos. Supongamos que G es un multigrafo conexo todos cuyos vrtices son de grado par. En el caso de un grafo de un solo vrtice, el circuito euleriano se obtiene de forma trivial. As pues, sea |V | = n y supongamos que todo multigrafo conexo de menos de n vrtices, todos pares, posee un circuito euleriano. Sea v un vrtice cualquiera de G ; por hiptesis de conexin, el grado d de v debe ser un nmero par estrictamente mayor que cero. Consideremos los vrticesi v 1 , v2 , . . . , vd 24

Cobas Cazorla Dehesa Gonzlez Guzmn Herrero Lebrel Zapatero Zorrilla A B C D E F G H I J 3 + 5 + 6 12 ( K 5 ) = 5 ( K 3,3 ) = 2 (C7 ) = 3 (esto) = 4 (esto otro) = 4

C3 Cobas C4 Cazorla C5 Dehesa C7 Gonzlez P6 Guzmn Cm Herrero Q0 Lebrel Q1 Zapatero Q2 Zorrilla Q3 A Q4 B Q5 C Abad D Abascal E lvarez F Bastardo G Cobas H Cazorla I Dehesa J Gonzlez v1 3 vd Guzmn + Herrero Lebrel v2 5 Zapatero + . v Zorrilla 6 . . A 12 B ( K 5 ) = 5 v3 C ( K 3,3 ) = 2 D (C7 ) = 3 E v5 (esto) = 4 v4 F (esto otro) = 4 G (a) H I J v1 3 vd + 5 + v 6. . . 12 ( K 5 ) = 5 ( K 3,3 ) = 2 (C7 ) = 3 (esto) = 4 v5 v4 (esto otro) = 4
(c)

vd

v1

v2 . . . v v3 v5 v4
(b)

v2

v3

Figura 1.18: Demostracin del teorema de Euler: (a) antes de suprimir v . (b) Suprimido v y aadidas las aristas auxiliares, el grafo resultante posee un circuito euleriano. (c) Construccin del circuito euleriano para G

25

adyacentes a v , como se muestran en la gura 1.18(a). Si suprimimos v y las aristas incidentes en l, obtenemos el grafo G v ; la supresin de las aristas indicadas se muestra en gris en la gura 1.18(b). Ahora, los vrtices vi resultan ser todos impares tras la supresin. Adjuntando las aristas (v1 , v2 ), (v3 , v4 ), . . . , (vd 1 , vd ) obtenemos un nuevo grafo en el que todos los vrtices vuelven a ser de grado par; no obstante, el nmero de vrtices es ahora n 1. Adems, el nuevo grafo es obviamente conexo (obsrvese que, por la adjuncin de las nuevas aristas, podemos obtener un multigrafo). Por lo tanto, se aplica la hiptesis de induccin, y deducimos que existe un recorrido euleriano. El paso por las aristas auxiliares de dicho circuito se produce en sentidos imprevisibles que indicamos con echas en 1.18(b). Queda convertir este circuito euleriano en uno para G . Para ello, basta observar que la nueva arista (vi 1 , vi ) siempre puede ser reemplazada por el recorrido de (vi 1 , v), (v, vi ) (y en sentido contrario si es necesario), como se muestra en la gura 1.18(c). Con esto obtenemos un circuito euleriano de G y el teorema queda demostrado. De este teorema se deduce un interesante corolario. Corolario 1 Sea G un grafo conexo no dirigido. Si G tiene exactamente dos vrtices impares, G posee un recorrido euleriano. Recprocamente, si G posee un recorrido euleriano, sus vrtices extremos son los nicos vrtices impares de G (si son diferentes). D EMOSTRACIN Sean v y w los vrtices impares en cuestin, y aadamos a G la arista (v, w) (observemos que, una vez ms, de esta adjuncin puede resultar un multigrafo). Con esto, obtenemos un grafo en las hiptesis del teorema anterior, que posee un circuito euleriano. Forzosamente, el circuito para por la arista (v, w) exactamente una vez. Suprimindola del circuito obtenemos un recorrido del grafo G . Recprocamente, un recorrido euleriano de vrtices extremos v y w se completa, aadiendo la arista (v, w), obteniendo un circuito euleriano del multigrafo resultante. Por lo tanto, ste tiene todos sus vrtices pares, de lo que se deduce que los vrtices v y w eran impares al principio. Por lo tanto, un grafo tiene un recorrido euleriano si y solamente si el nmero de vrtices impares es cero o dos. Que dicho nmero no pueda ser la unidad es consecuencia del siguiente Teorema 7 Sea G un grafo no dirigido. El nmero de vrtices impares de G es siempre par. D EMOSTRACIN Sean {v1 , v2 , . . . , vn } los vrtices de G y d1 , d2 , . . . , dn sus respectivos grados. El nmero de extremos que poseen las aristas de G es, evidentemente, 2| A|, puesto que cada arista tiene dos extremos. Ahora bien, podemos contar dicho nmero de extremos sumando los grados de todos los vrtices, puesto que dichos grados son el nmero de extremos de aristas que conuyen en un vrtice dado. De modo que se tiene
n

di = 2| A|
i =1

Ahora bien, esto signica que la suma de los grados de los vrtices es par. Como la suma de dos nmeros impares es siempre par, el nmero de d i s no puede ser impar, puesto que el resultado de la suma sera impar en ese caso. Por tanto, hay un nmero par de vrtices impares. 26

B C D E F G H I J 3 + 5 + 6 12 ( K 5 ) = 5 ( K 3,3 ) = 2 (C7 ) = 3 (esto) = 4 (esto otro) = 4 Figura 1.19: El puzzle de Hamilton Es decir, un grafo nunca podr tener un solo vrtice impar (ni tres, ni cinco. . . ). Este teorema se conoce a veces como lema del apretn de manos, porque puede ponerse en la siguiente forma: en una esta, el nmero de personas que estrechan la mano a una cantidad impar de gente tiene que ser necesariamente par. Es una consecuencia directa de que en un apretn siempre intervienen dos manos.

1.7.3. Caminos hamiltonianos


Un problema de enunciado anlogo, pero cuya simplicidad es tremendamente engaosa, es la determinacin de si un grafo posee un camino hamiltoniano. Sea G un grafo (dirigido o no). Un camino C en G se dice que es hamiltoniano si C pasa por cada vrtices del grafo exactamente una vez. Un ciclo que pasa exactamente una vez por cada vrtice (excepto el vrtice inicial, que aparece tambin como nal), se denomina ciclo hamiltoniano Al contrario que en el caso euleriano, aqu no precisamos recorrer todas las aristas; simplemente nos interesa visitar cada vrtice exactamente una vez. Aunque no se menciona explcitamente, los caminos hamiltonianos son siempre simples, lo que se deduce directamente de la denicin. El nombre de este tipo de recorrido deriva de un puzzle ideado por Sir William Rowan Hamilton (18051865). Bsicamente, Hamilton peda encontrar un ciclo hamiltoniano en un grafo isomorfo al retculo de vrtices de un dodecaedro. La solucin es bastante sencilla. Sin embargo, dado un grafo arbitrario, no resulta fcil determinar si posee un ciclo hamiltoniano o no. De hecho, no se conoce ninguna caracterizacin fcil de los grafos hamiltonianos, y es probable que nunca se conozca ninguna. La razn de ello es que el problema del ciclo hamiltoniano es NP-completo. No es sencillo denir esta propiedad; baste mencionar que una solucin eciente del problema del ciclo hamiltoniano permitira resolver de golpe una vasta familia de problemas computacionales enormemente difciles, y existen sospechas muy fundadas de que tal solucin ecaz no puede existir. Esto no implica que, para determinados grafos de tipos muy particulares, no sea posible determinar la existencia de caminos hamiltonianos (no necesariamente cerrados). Un ejemplo de ello lo constituyen los torneos denidos en la seccin 1.5.2. Teorema 8 Todo torneo posee un camino hamiltoniano D EMOSTRACIN Por induccin sobre el nmero de vrtices n = |V |. El teorema es trivial para n = 1. 27

B C D E F G H I J 3 + 5 + v2 6 12 ( K 5 ) = 5 ( K 3,3 ) = 2 (C7 ) = 3 (esto) = 4 (esto otro) = 4

v3

vm vm +1

vn v1

Figura 1.20: Construccin de un camino hamiltoniano en un torneo. Consideremos entonces un torneo G de n vrtices y supongamos que todo torneo de n 1 vrtices posee un camino hamiltoniano. Sea v = v1 un vrtice de G y consideremos el grafo G v que se obtiene suprimiendo v y todas las aristas que entran o salen de dicho vrtice. El grafo resultante tiene n 1 vrtices y, por hiptesis de induccin, posee un camino hamiltoniano. Sea ste C = (v2 , v3 , . . . , vn ); numeramos los vrtices en el orden que dicho camino nos proporciona, por conveniencia. Nuestra notacin implica, naturalmente, que el camino supuesto por hiptesis va de v 2 a vn , no en sentido contrario. Ahora pueden darse tres posibilidades: 1. El torneo posee una arista (v1 , v2 ). En ese caso, puede completarse el camino C aadindole al principio esta arista y obtenindose un camino hamiltoniano C = (v1 , v2 , . . . , vn ) para G , con lo que el teorema quedara demostrado. 2. El torneo posee una arista (vn , v1 ). En ese caso, puede completarse el camino C aadindole al nal esta arista y obtenindose un camino hamiltoniano C = (v2 , . . . , vn , v1 ) para G , con lo que el teorema quedara demostrado. 3. Si ninguna de las circunstancias anteriores se da, la denicin de torneo obliga a que G posea las aristas (v2 , v1 ) y (v1 , vn ). Para cada vrtice vk , con 2 k n , debe existir una arista ak con ak = (v1 , vk ) o ak = (vk , v1 ), puesto que as lo exige el hecho de que G sea un torneo. Esta situacin se describe en la gura 1.7.3. Consideremos entonces la sucesin de aristas a2 , a3 , a4 , . . . , an . En nuestro caso, la primera arista entra en v1 y la ltima sale de v1 . Por lo tanto, tiene que haber una ltima arista que entre en v1 en esa sucesin, antes de llegar a an . Sea dicha arista am . Entonces, si reemplazamos la arista vm , vm +1 de C por el par de aristas am y am +1 obtenemos C = (v2 , v3 , . . . , vm , v1 , vm +1 , vm +2 , . . . , vn ) que constituye el deseado camino hamiltoniano, y el teorema tambin es cierto para G en este caso.

28

Gonzlez Guzmn Herrero Lebrel Zapatero Zorrilla A B C D E F G 1 H I J + 4 + 12 ( K 5 ) = 5 ( K 3,3 ) = 2 (C7 ) = 3 (esto) = 4 (esto otro) = 4
7

Vrtice 1 2 3 4 5 6 7 8 9 10

Adyacentes {2, 4} {1, 3, 5} {2, 5} {1, 5, 7, 8} {2, 3, 4, 6, 8, 9} {5} {4, 8, 10} {4, 5, 7, 9, 10} {5, 8} {7, 8}

10

(a) Grafo ejemplo

(b) Lista de adyacencia

Figura 1.21: Datos de partida para recorridos en anchura y profundidad

1.7.4. Recorridos en anchura y profundidad


Los algoritmos clsicos de teora de grafos se basan en dos procedimientos bsicos de recorrido denominados recorrido en anchura (breadth-rst) y recorrido en profundidad (depth-rst). Aunque admiten muchas formulaciones (por ejemplo, como algoritmos de bsqueda en rboles), aqu estableceremos su funcionamiento en el caso de grafos no dirigidos; para otros contextos funcionan exactamente igual con las modicaciones obvias. Consideremos el grafo de la gura 1.21(a), en la cual mostramos adems su representacin por listas de adyacencia (1.21(b)). Vamos a enunciar y ejecutar dos algoritmos que producen una enumeracin ordenada de cada vrtice del rbol. En cada algoritmo, procedemos visitando cada vrtice y aadiendo sus vecinos a una lista de vrtices pendientes. La visita de un vrtice consiste en marcarlo como visitado y, si procede, tratar la informacin que contiene y emitir su nombre o algn otro dato como resultado de la visita. Hecho esto, seguimos tratando los vrtices que queden pendientes. A grandes rasgos, los algoritmos de recorrido se describen en pseudocdigo en la gura 1.22. El recorrido en profundidad admite una formulacin recursiva muy simple, mientras que el recorrido en anchura debe formularse en trminos de una cola de vrtices pendientes de visitar. En la cola, que inicialmente contiene slo el vrtice de partida, los vrtices se mantienen en orden; se extraen del principio con la operacin S ACA P RIMERO y se aaden al nal con la operacin E NCOLA. Los vrtices ya visitados no se introducen en la cola en dicha operacin. En la tabla de la gura 1.23(a) podemos observar la operacin del algoritmo de recorrido en anchura. En cada paso, se toma el primer elemento de la cola, que se anota como visitado, y se examina su lista de adyacencia. Los vecinos que no hayan sido ya visitados se aaden al nal de la cola antes de proceder a la siguiente iteracin. 29

D EPTH -F IRST(G , v) 1 V ISITA (v) 2 for each w in Ad j (v) 3 do D EPTH -F IRST(G , w)


(a) En profundidad

B READTH -F IRST(G , v) 1 Q [v ] 2 while Q = 3 do w S ACA P RIMERO ( Q ) 4 V ISITA(w) 5 E NCOLA( Ad j (w))


(b) En anchura

D EPTH -F IRST-NR(G , v) 1 S v aci o 2 P USH (v) 3 while S = 4 do w P OP( S ) 5 if w no visitado 6 then 7 V ISITA(w) 8 next Ad j (w) 9 next next V ISITADOS(next ) 10 P USH(next ) 11
(c) En profundidad, no recursivo

Figura 1.22: Recorridos en anchura (a) y en profundidad (b, c); pseudocdigos Como resultado de este proceso, obtenemos que el recorrido construye un rbol como el mostrado en 1.23(b). Cada nodo gura en este rbol como hijo del nodo culpable de su ingreso en la cola Q . Un rbol de esta forma es un rbol abarcador (spanning tree): cubre todos los vrtices del grafo. El recorrido de los vrtices en profundidad es ms difcil de visualizar al ser recursiva la formulacin natural del algoritmo 1.22(a). La idea consiste en visitar en cada paso cualquiera de los nodos vecinos an no visitados, hasta que llegamos a un callejn sin salida (es decir, no hay ms vecinos inmediatos sin visitar). En ese caso es preciso volver atrs y reiniciar nuestro paseo en el ltimo punto en el que dejamos sin explorar alguna posibilidad. Una forma menos vaga de expresar este procedimiento es la forma no recursiva del recorrido en profundidad que se esboza en el algoritmo de la gura 1.22(c). En esta versin se emplea una pila S , en la que se almacenan los vrtices pendientes de ser recorridos. La operacin de una pila es inversa a la de una cola: los elementos se introducen en ella por delante (con la operacin P USH) y se sacan de ella tambin del principio (P OP). Inicialmente introducimos en la pila slo el vrtice de partida. Mientras la pila no se vace, tomamos el primer elemento de la pila (que es el ltimo introducido, al revs que en una cola); si no est marcado como visitado ya, lo visitamos; y nalmente apilamos su lista de adyacentes (salvo los que estn marcados como visitados, que no se aaden).

30

Zapatero Zorrilla A B C D E F G H I J Visitados 1 12 124 1245 12453 124537 1245378 12453786 124537869 1 2 4 5 3 7 8 6 9 10
(a) Traza

Cola Q + 1 23 453 + 5378 37869 12 7869 ( K 5 ) = 5 8 6 9 10 ( K 3,3 ) = 2 6 9 10 (C7 ) = 3 9 10 (esto) = 4 10 (esto otro) = 4

10

(b) Arbol abarcador

Figura 1.23: Funcionamiento del algoritmo B READTH -F IRST: (a) Traza del algoritmo, con la historia de vrtices visitados y el estadode la cola en cada iteracin, (b) rbol abarcador resultante del recorrido Un ejemplo de ejecucin de este proceso aparece en la tabla de la gura 1.24(a), donde vamos viendo la historia de los contenidos de la pila y los elementos que van visitndose en sucesin. Como resultado del proceso obtenemos tambin el diagrama 1.24(b), que es otro rbol abarcador del grafo inicial. Una vez ms, las aristas del grafo relacionan cada vrtice con el culpable de su inclusin en la pila de pendientes. Las echas grises indican los momentos en que se produjo vuelta atrs (backtracking) al haberse encontrado un callejn sin salida.

1.7.5. Caminos mnimos, MST y dems


Los algoritmos de recorrido de la seccin 1.7.4 son la base de los algoritmos clsicos de teora de grafos que se estudian en la teora de Estructuras de Datos y Algortmica. De hecho, la estructura de datos bsica subyacente a las bsquedas en anchura y profundidad (cola o pila) puede reemplazarse por una estructura ms general denominada cola de prioridad, en la que los elementos son recuperados de acuerdo con un valor de prioridad que se asocia a cada uno. Con valores adecuados de la prioridad, se obtienen bsquedas en anchura, en profundidad o recorridos que conducen a algoritmos para encontrar caminos mnimos o rboles abarcadores. Estos conceptos se relacionan con el concepto de red. Una red se dene como un grafo a cada una de cuyas aristas se ha asociado un nmero real, denominado su peso o coste. En la gura 1.25 tenemos un ejemplo de red. El coste asociado a un camino se obtiene de la forma obvia: sumando los pesos de las aristas que lo componen, y lo mismo puede denirse para un subrbol de la red correspondiente. Se denomina camino mnimo (o camino ms corto) entre dos vrtices v y w al camino de peso menor que une los dos vrtices. En la red de la gura 1.25, el camino ms corto entre los vrtices 1 y 8 es el marcado en lnea de trazos. El algoritmo para encontrar este tipo de caminos es el algoritmo de Dijkstra y se estudiar con profusin en la asignatura de Estructuras de Datos.

31

Pila 1 24 2875 2872368 2 8 7 2 3 6 9 7 10 287236977 28723697 2872369 287236 28723 2872 287 28 2

Visitado 1 4 + 5 8 10 + 7 12 9 ( K 5 ) = 5 6 ( K 3,3 ) = 2 3 (C7 ) = 3 2 (esto) = 4 esto otro) = 4 (

Herrero Lebrel Zapatero Zorrilla A B C D E F G H I J


1 2

10

(b) Arbol abarcador

(a) Evolucin del stack

Figura 1.24: Funcionamiento del algoritmo D EPTH -F IRST: (a) Traza del algoritmo, con la historia de vrtices visitados y el estado de la pila en cada iteracin, (b) rbol abarcador resultante del recorrido . Las echas grises indican los procesos de backtracking. Las aristas marcadas con trazo grueso en la misma gura (de pesos 3, 6, 5, 13, 14, 17 y 25) constituyen un rbol abarcador mnimo (en ingls, minimum spanning tree o MST. Se trata de un rbol que cubre todos los vrtices del grafo teniendo el peso menor posible. Existen dos algoritmos clsicos para encontrar tal MST, los algoritmos de Kruskal y Prim; sern tambin objeto de estudio en el futuro.

32

Q0 Q1 Q2 Q3 Q4 Q5 Abad Abascal lvarez Bastardo Cobas Cazorla Dehesa Gonzlez Guzmn Herrero Lebrel Zapatero Zorrilla A B C D E F G H I J
2 32 21 8

+
1

12 5

6
13 8

18 17 14

+ 3 6
24 4 69

15 7

( K 5 ) = 5 ( K 3,3 ) = 2 (C7 ) = 3 (esto) = 4 (esto otro) = 4

25

Figura 1.25: Una red con el camino ms corto entre 1 y 8 y su MST

33

Cazorla Dehesa Gonzlez Guzmn Herrero Lebrel Zapatero Zorrilla A B C D E F1 G H I J +

2 2 1 2

3
1 2 1 2

4 5 ( K 5 ) = 5

( K 3,3 ) = 2
1 2

(C7 ) = 3
1

3 + 61 12
2 1

4 2

2 4

2 4 1 2 1 2 1

3 (esto) = 4

(esto otro) = 4

Figura 1.26: Algunos grafos y sus nmeros cromticos

1.8. Planaridad y coloreado


Se dice que un grafo G = (V , E ) (simple, no dirigido y sin bucles) es coloreable con n colores, o simplemente n -coloreable, si existe una funcin f : V {1, 2, . . . , n } tal que si u y v son vrtices adyacentes, f (u ) = f (v). Intuitivamente, esta denicin implica que, disponiendo de n colores distintos, podemos colorear los vrtices del grafo de modo que los vrtices vecinos se distingan por el color. El menor nmero n de colores que resulta suciente para colorear un grafo G se denomina su nmero cromtico, y se denota por (G ). En la gura 1.26 mostramos algunos ejemplos de grafos con diferentes nmeros cromticos. Vamos a dar algunos teoremas que nos permiten estimar un nmero de colores suciente para el coloreado de ciertos grafos Teorema 9 Dado un grafo G, las siguientes armaciones son equivalentes: a) G es 2-coloreable, b) G es bipartito, y c) G carece de ciclos de longitud impar. D EMOSTRACIN La equivalencia de b) y c) fue el contenido del teorema 3; nos queda, pues, probar la (casi trivial) equivalencia de a) y b). Si un grafo G admite un coloreado con dos colores, llammoslo f : G {1, 2}, denotemos V1 V2 = {v V (G ) | f (v) = 1} = {v V (G ) | f (v) = 2}

es decir, los conjuntos V1 y V2 contienen los vrtices de color 1 y color 2, respectivamente. Obviamente, estos conjuntos forman una particin de los vrtices de V . Al 34

ser f un 2-coloreado, vrtices adyacentes tienen colores distintos: dicho de otro modo, cada arista va de V1 a V2 , y el grafo es, por tanto, bipartito. Si G es bipartito, con aristas entre dos conjuntos V1 y V2 exclusivamente, basta asignar el primer color a los vrtices de V1 y el segundo a los de V2 . El caso de los grafos bipartitos es bastante especial. Un teorema algo ms general, aunque no demasiado potente, nos da una cota superior para el nmero de colores preciso en un grafo cualquiera G . Teorema 10 Si (G ) = max {deg(v) | v V (G )} es el mayor de los grados de los vrtices de G, entonces (G ) (G )

Dicho de otra manera, si el vrtice de mayor grado de G tiene grado d , bastan d + 1 colores para colorear G . D EMOSTRACIN Por induccin sobre el nmero de vrtices. Si el grafo tiene un solo vrtice, su grado ser cero y el grafo es trivialmente 1-coloreable, o sea que (G ) = 1 1 = (G ) + 1

Supongamos ahora que G tiene un nmero cualquiera |V | de vrtices, y que el teorema que queremos probar es cierto para todos los grafos con menos vrtices que |V |. Sea v un vrtice de mximo grado de G , i.e., deg(v) = (G ). Suprimamos v y todas las aristas en l incidentes, obteniendo el grafo G = G v . Evidentemente, G tiene un vrtice menos, y est claro que (G ) (G ), as que G es ( (G ) + 1)-coloreable, por hiptesis de induccin. Ahora bien, si consideramos un ( (G ) + 1)-coloreado de G , podemos extenderlo a un coloreado de G asignando algn color a v . Como el grado de v es (G ), alguno de los (G ) + 1 colores no se ha utilizado en teir a los vecinos de v , y ese color podr utilizarse para teir a v , con lo que tambin G ser ( (G ) + 1)coloreable. Obsrvese que este teorema proporciona un nmero de colores suciente, pero puede ser bastante mayor que el mnimo necesario. Por ejemplo, para K 3,3 (vase la gura 1.26) el teorema dice que cuatro colores bastan, y es as, porque de hecho bastan dos. El caso del ltimo grafo de la misma gura es especialmente signicativo: hay un vrtice de grado 8, luego el teorema garantiza que nueve colores bastan. Sin embargo, en la prctica vemos que con cuatro es posible colorear el grafo. El ltimo teorema sobre coloreado que veremos no se demostrar: sera realmente difcil, por las razones que despus veremos. Denimos un grafo plano como uno que es factible representar en el plano de forma que sus aristas no tengan intersecciones (salvo en los extremos, claro). Por ejemplo, la gura 1.26 representa tres grafos planos. Los dos primeros no lo son: aunque no es obvio, K 5 y K 3,3 son imposibles de dibujar en un plano sin que alguna arista se cruce con otra. Una propiedad curiosa de los grafos planos es la siguiente, que enunciamos sin demostrar: Teorema 11 Si G es un grafo plano, el nmero C de regiones conexas en que su representacin divide al plano satisface la relacin C A+V =2 siendo A y V los nmeros de aristas y vrtices, respectivamente. 35

El teorema al que hacamos referencia antes es el Teorema 12 (de los cuatro colores) Todo grafo plano es 4-coloreable La interpretacin geomtrica de este enunciado es que cualquier mapa puede colorearse con cuatro colores de forma que pases fronterizos se distingan por el color. Por complejo que sea el mapa, cuatro colores sern siempre sucientes. El teorema de los cuatro colores se demostr en 1976, tras ms de un siglo de intentos fallidos y la comprobacin exhaustiva por computador de miles de conguraciones a las que la demostracin se reduce.

36

You might also like