28
Versi´onpreliminar Cap´ ıtulo 9 ´ Arboles La de los Bernoulli de Basilea es, quiz´ as, la familia m´as famosa de las Matem´aticas. Nicolaus (1623-1708) Jacob (1654-1705) Nicolaus (1662-1716) Johann (1667-1748) Daniel (1700-1782) Johann II (1710-1790) Nicolaus II (1695-1726) Johann III (1744-1807) Jacob II (1759-1789) Daniel II (1751-1834) Nicolaus I (1687-1759) Famosa por la cantidad de excelentes matem´aticos que “produjo” (hasta ocho, los que aparecen en negrita en el esquema anterior, en tres generaciones distintas) y, tambi´ en, por la especial personalidad de algunos de ellos. De algunos de los m´as destacados ya hemos hablado en cap´ ıtulos anteriores (Daniel, p´ agina 508, y Jacob, p´ agina 535). Lo que aqu´ ı nos interesa es, precisamente, la manera en que hemos exhibido la informaci´on sobre la familia, su ´arbolgeneal´ogico. Es un grafo, donde los v´ ertices van etiquetados con los nombres de los componentes de la familia, que tiene una estructura especial. En muchas otras cuestiones utilizamos estas estructuras arb´oreas para representar informaci´ on. La imagen que mostramos a la iz- quierda resultar´a, sin duda, familiar: se trata de la descripci´ on que del contenido de un ordenador muestra el Explorador de Windows. Aqu´ ı, las etiquetas de los v´ ertices son los nombres de los distintos dispositivos. Pero de nuevo la estructura es especial: se trata de un ´ arbol. El cap´ ıtulo que aqu´ ı comienza est´a dedicado al estudio de estos objetos y a su aplicaci´on a diversas cuestiones:problemas de optimizaci´on (secci´on 9.2), dise˜ no de algoritmos (secci´on 9.3), an´alisis de juegos (secci´on 9.4), etc. 631

discreta arboles.pdf

  • Upload
    david

  • View
    68

  • Download
    0

Embed Size (px)

DESCRIPTION

matematica discreta una vision al tema de arboles

Citation preview

Page 1: discreta arboles.pdf

Versi

onpr

eliminarCapıtulo 9

Arboles

La de los Bernoulli de Basilea es, quizas, la familia mas famosa de las Matematicas.

Nicolaus (1623-1708)

Jacob (1654-1705)Nicolaus (1662-1716) Johann (1667-1748)

Daniel (1700-1782) Johann II (1710-1790)Nicolaus II (1695-1726)

Johann III (1744-1807) Jacob II (1759-1789)Daniel II (1751-1834)

Nicolaus I (1687-1759)

Famosa por la cantidad de excelentes matematicos que “produjo” (hasta ocho, los queaparecen en negrita en el esquema anterior, en tres generaciones distintas) y, tambien, porla especial personalidad de algunos de ellos. De algunos de los mas destacados ya hemoshablado en capıtulos anteriores (Daniel, pagina 508, y Jacob, pagina 535). Lo que aquı nosinteresa es, precisamente, la manera en que hemos exhibido la informacion sobre la familia,su arbol genealogico. Es un grafo, donde los vertices van etiquetados con los nombres de loscomponentes de la familia, que tiene una estructura especial.

En muchas otras cuestiones utilizamos estas estructuras arboreaspara representar informacion. La imagen que mostramos a la iz-quierda resultara, sin duda, familiar: se trata de la descripcion quedel contenido de un ordenador muestra el Explorador de Windows.Aquı, las etiquetas de los vertices son los nombres de los distintosdispositivos. Pero de nuevo la estructura es especial: se trata deun arbol. El capıtulo que aquı comienza esta dedicado al estudiode estos objetos y a su aplicacion a diversas cuestiones: problemasde optimizacion (seccion 9.2), diseno de algoritmos (seccion 9.3),analisis de juegos (seccion 9.4), etc.

631

Page 2: discreta arboles.pdf

Versi

onpr

eliminar

632 Capıtulo 9. Arboles

9.1. Definicion y caracterısticas

La primera definicion de la nocion de arbol (de las varias que daremos) es la sugerida porlos ejemplos vistos anteriormente:

Definicion 9.1 Un arbol es un grafo conexo y sin ciclos.

En el mismo tono botanico, se define un bosque como un grafo sin ciclos (si es conexo, sera unarbol; si no lo es, sus componentes conexas seran arboles). Por ejemplo, los grafos linealesLn son arboles, mientras que los circulares Cn o los completos Kn no lo son en cuanto n ≥ 3.Los bipartitos completos Kr,s, que son siempre conexos, solo son arboles si s = 1 o r = 1 (sir ≥ 2 y s ≥ 2 hay al menos un ciclo de orden cuatro).

Esta primera definicion no recoge una de las caracterısticas fundamentales de los arboles,que los hace especialmente utiles en ciertas cuestiones: son los conexos “mas baratos” (encuanto al numero de aristas) que podemos tener. Los siguientes enunciados nos proporcionancaracterizaciones alternativas que recogen esta idea:

Proposicion 9.1 Un grafo G es un arbol (un conexo sin ciclos) ⇐⇒ Es conexo y tiene lapropiedad de que al eliminar una arista cualquiera del grafo, este deja de ser conexo.

Demostracion. En un sentido, supongamos que tenemos un grafo G conexo y sin ciclos.Queremos probar que se desconecta al quitar una arista cualquiera.

Sea a una arista de G y formemos el grafo G \ {a} eliminandola. Si G \ {a} fuera conexo,podrıamos conectar en G\{a} los vertices de a. Pero anadiendo la arista a, lo que tendrıamosserıa un ciclo en G (contradiccion). Ası que G \ {a} es no conexo (sea cual sea la arista a deG que elijamos).

En el otro sentido, supongamos que G es un grafo conexo que se desconecta si quitamoscualquier arista. Si el grafo contuviera un ciclo, siempre podrıamos quitar una arista de esehipotetico ciclo sin que el grafo dejara de ser conexo, lo que una contradiccion. Luego ese talciclo no puede existir1. �

Proposicion 9.2 Un grafo G es un arbol (un conexo sin ciclos) ⇐⇒ No tiene ciclos y, sianadimos una arista cualquiera, se forma un ciclo.

Demostracion. En un sentido, sea G un grafo conexo y sin ciclos. Consideremos dos verticescualesquiera que no esten unidos por arista alguna en G. Por estar en un grafo conexo,existira un paseo que los conecte en G. Al anadir una arista entre los vertices, se formara unciclo.

En el otro sentido, sea G un grafo sin ciclos para el que anadir una arista cualquierasupone la formacion de un ciclo. Supongamos que no fuera conexo. En este caso, al menosexistirıan dos vertices que no podrıamos conectar en G. Pero entonces todavıa podrıamosanadir la arista que los une sin que se nos formara un ciclo, contradiccion. �

1Como sabemos, vease el lema 8.2, si quitamos una arista de un grafo conexo y este se desconecta, lo haceen exactamente dos componentes conexas. En el caso de un arbol, al quitar una arista cualquiera se formara unbosque con dos componentes conexas. Observese que lo que nos dice esta proposicion es que toda arista deun arbol es un puente.

(version preliminar 16 de diciembre de 2003)

Page 3: discreta arboles.pdf

Versi

onpr

eliminar

9.1. Definicion y caracterısticas 633

Sabemos (recuerdese la proposicion 8.3) que en un grafo conexo el numero de aristas|A(G)| no puede ser menor que |V (G)| − 1. La igualdad se alcanza para los arboles, comonos dice el siguiente resultado:

Proposicion 9.3 Un grafo G es un arbol (un conexo sin ciclos) ⇐⇒ Es conexo y |A(G)| =|V (G)| − 1.

Demostracion. En un sentido, vamos a proceder por induccion (en su version fuerte) sobreel numero de aristas, |A|:

Si G es un arbol con una arista, |A(G)| = 1, solo cabe la posibilidad de que sea un L2,para el que |V (G)| = 2.

Supongamos cierto que para todo arbol con |A(G)| ≤ d se tiene que |A(G)| = |V (G)|−1.

Consideremos un arbol cualquiera G con |A(G)| = d + 1. Si nos fijamos en una aristae de G, sabemos que

G \ {e} = G1 ∪ G2,

donde G1 y G2 son arboles con numero de aristas |A(G1)| ≤ d y |A(G2)| ≤ d − 1 (dehecho, |A(G1)| + |A(G2)| = d). A estos dos arboles podemos aplicarles la hipotesis deinduccion para deducir que

|A(G1)| = |V (G1)| − 1+ |A(G2)| = |V (G2)| − 1

|A(G)| − 1 = |V (G)| − 2 ,

de donde obtenemos lo que querıamos.

En el otro sentido, tomemos un grafo conexo G tal que |A(G)| = |V (G)| − 1. Si contuvieraun ciclo, podrıamos quitar una arista e de ese ciclo sin que el grafo se desconectara. Perohabrıamos llegado a un grafo, G \ {e}, conexo con

|A(G \ {e})| = |A(G)| − 1 y |V (G \ {e})| = |V (G)| .

Utilizando que |A(G)| = |V (G)| − 1,

|A(G \ {e})| = |V (G)| − 2 = |V (G \ {e})| − 2 ;

y esto contradice (¡nos faltan aristas!) el que G \ {e} fuera conexo. �

Los ejercicios 9.1.1 y 9.1.2 recogen algunas otras caracterizaciones. Resumamos todaslas caracterısticas que hacen de un grafo G un arbol: es conexo, sin ciclos, tiene |A(G)| =|V (G)| − 1 aristas y, si quitamos una arista cualquiera, se desconecta; y si anadimos unaarista cualquiera, se forma un ciclo. Es decir, como ya adelantabamos, es el grafo conexo masbarato (en el sentido de que no sobra ni falta arista alguna) que podemos construir.

(version preliminar 16 de diciembre de 2003)

Page 4: discreta arboles.pdf

Versi

onpr

eliminar

634 Capıtulo 9. Arboles

Como parece claro, la sucesion de grados de los vertices de un arbol ha de ser muy especial.Ya sabemos que en cualquier grafo G = (V,A) se tiene que∑

v∈V

gr(v) = 2 |A| .

Pero si ademas G es un arbol, como |A| = |V | − 1, se tendra que∑v∈V

gr(v) = 2 |V | − 2 .

Observese que ahora solo tenemos un “grado de libertad”, el numero de vertices |V |, pues elde aristas ya queda fijado. De esta igualdad podemos deducir el siguiente resultado.

Proposicion 9.4 Todo arbol con |V | ≥ 2 tiene, al menos, dos vertices de grado 1.

Demostracion. Supongamos que no hay vertices de grado 1, es decir, que gr(v) ≥ 2, paratodo v ∈ V . Entonces,

2|V | − 2 =∑v∈V

gr(v) ≥∑v∈V

2 = 2 |V | ,

lo que resulta imposible. Pero tampoco puede ocurrir que haya un solo vertice w de grado 1,porque tendrıamos

2|V | − 2 =∑v∈V

gr(v) = gr(w) +∑v �=w

gr(v) ≥ 1 + 2 (|V | − 1) = 2|V | − 1

Ası que al menos ha de haber dos de grado 1. �

En muchas ocasiones conviene senalar un vertice especial en unarbol. Lo que queda es lo que llamaremos un arbol con raız,donde la raız, por supuesto, es ese vertice especial, que sirvede origen de coordenadas. Muchos de los algoritmos que vere-mos en estas paginas producen, de manera natural, un arbolcon raız, y en la seccion 9.3 estudiaremos con detalle algunasaplicaciones de estos objetos. Por supuesto, cualquier arbol seconvierte en uno con raız en cuanto decidamos que vertice actua

como raız (la eleccion de este vertice especial puede hacer cambiar las propiedades del arbolcon raız, como veremos mas adelante). En un arbol con raız, los vertices se agrupan porgeneraciones: la primera contendrıa solo a la raız, la segunda estarıa formada por todos losvertices vecinos de la raız; la tercera, por los vecinos de estos ultimos (salvo la raız); la cuarta,por los vecinos de los de la tercera generacion (excepto los que ya estaban en la segunda). . . yası sucesivamente. Observese que los vertices de la generacion k solo pueden estar unidos avertices de las generaciones anterior y posterior, porque si no, tendrıamos ciclos. Lo que laproposicion anterior afirma es que al menos hay dos vertices terminales (que luego llamaremoshojas) en un arbol como este. El caso lımite es el de un Ln.

(version preliminar 16 de diciembre de 2003)

Page 5: discreta arboles.pdf

Versi

onpr

eliminar

9.1. Definicion y caracterısticas 635

Ejemplo 9.1.1 ¿Como son los arboles con n vertices que tienen el menor y el mayor numeroposible de vertices de grado 1?

Sabemos que el mınimo numero de vertices de grado 1 es 2. Ası que, si un arbol con n verticestiene exactamente dos vertices, digamos w y u, de grado 1, se cumplira que

2n − 2 =∑v∈V

gr(v) = 1 + 1 +∑

v �=u,w

gr(v).

En la suma final tenemos n− 2 terminos, todos ellos mayores o iguales que 2; la unica formade conseguir la igualdad sera que gr(v) = 2 para todo v ∈ V , v �= u,w. Y esta configuracionde grados es la del grafo lineal con n vertices, Ln.

◦ ◦◦

◦◦

◦◦

◦◦

◦◦◦

En el otro extremo, es imposible que todos los vertices tengan grado 1(pues no se cumplirıa la formula de los grados). Pero sı podrıa ocurrirque hubiera n − 1 de grado 1. El vertice restante, w, tendrıa grado

2n − 2 =∑v∈V

gr(v) = (n − 1) + gr(w) =⇒ gr(w) = n − 1 ,

que, por cierto, es el maximo grado que puede tener un vertice en un grafo con n vertices.En este caso, tenemos el grafo estrellado de la izquierda. ♣

9.1.1. Contando el numero de arboles distintos

Figura 9.1: Cayley

Cayley2 estaba muy interesado en la cuestion de enumerar cier-tos compuestos organicos, quizas uno de los primeros intentos seriosde aplicar las Matematicas a la Quımica. Hoy en dıa, cuando granparte de la Quımica moderna se escribe en terminos de modelos ma-tematicos, enternece recordar el comentario que el filosofo positivistaAuguste Comte hacıa alla por 1830:

[. . . ] cualquier intento de emplear metodos matematicos en elestudio de la Quımica debe ser considerado como profundamen-te irracional y contrario al propio espıritu de la Quımica.

Pero volvamos a los esfuerzos de Cayley, que estaba interesado, porejemplo, en la cuestion de enumerar los isomeros de hidrocarburossaturados, cuya formula es Ck H2k+2: los atomos de carbono tienenvalencia 4, mientras que los de hidrogeno, valencia 1. Se trata de ungrafo con 3k + 2 vertices, cuya suma de grados es 4k + (2k + 2) = 6k + 2, ası que el grafo

2El ingles Arthur Cayley (1821-1895) fue, durante parte de su vida, un “matematico aficionado”. Tras supaso por Cambridge, ejercio durante 14 anos como abogado, periodo en el que llego a publicar mas de 200artıculos de investigacion en Matematicas. En su tarea coincidio con James Joseph Sylvester (1814-1897),otro ilustre matematico y abogado, con quien gustaba de discutir sobre casos judiciales y teoremas. Algunasde esas discusiones matematicas estaban dedicadas a la Teorıa de grafos. A partir de 1863 se dedicarıa enexclusiva a las Matematicas, desde su puesto en Cambridge. Cayley es uno de los padres de la teorıa de gruposy el creador del calculo matricial. Tambien son fundamentales sus aportaciones a la geometrıa no euclıdea yla geometrıa proyectiva.

(version preliminar 16 de diciembre de 2003)

Page 6: discreta arboles.pdf

Versi

onpr

eliminar

636 Capıtulo 9. Arboles

debe tener 3k + 1 aristas. ¡Ah!, el numero de aristas es el de vertices menos 1: se trata de unarbol (si suponemos, como parece razonable, que el grafo es conexo).

Enumerar los grafos no isomorfos con n vertices y una cierta estructura (por ejemplo,ser arboles, tener una determinada sucesion de grados) es, en general, una cuestion muycomplicada; en los ejemplos de la subseccion 8.1.2 ya lo empezamos a sospechar. Cayley soloconsiguio resolver algunos casos particulares y, anos despues, Polya desarrollarıa su teorıaenumerativa (vease el capıtulo 14) para dar respuesta a los problemas de este tipo. Sinembargo, si etiquetamos los vertices, las cosas se simplifican a veces. Por ejemplo, sabemosque, dado el conjunto {v1, . . . , vn}, hay 2(n

2) grafos distintos con ese conjunto de vertices.Cayley obtuvo3, en 1889, una formula, sorprendentemente simple, para el caso de los arbolescon n vertices. Veamos que nos sugieren algunos ejemplos sencillos.

Ejemplo 9.1.2 Contemos el numero de arboles distintos con 2, 3 y 4 vertices.

Si tenemos dos vertices, solo cabe una posibilidad, que el arbol sea isomorfo a un L2. Y si elconjunto de vertices es {1, 2}, hay tambien un unico arbol (los dos posibles etiquetados delos vertices dan el mismo resultado).

Los arboles con tres vertices tambien han de ser isomorfos al grafo lineal correspondien-te, L3. Si el conjunto de vertices es {1, 2, 3}, basta con decidir que sımbolo va, por ejemplo,en la posicion central (cual es el vertice de grado 2). Esto se puede hacer de tres formasdistintas, ası que hay 3 arboles distintos con vertices {1, 2, 3}.

Vamos con el caso de cuatro vertices. Para asegurarnos de no olvidarnos ningun caso,ayudemonos de la relacion

gr(v1) + gr(v2) + gr(v3) + gr(v4) = 6 .

Ninguno de los cuatro numeros puede ser ≥ 4 (no puede haber vertices degrado 4) y un simple analisis nos lleva a concluir que solo puede haber dossucesiones de grados aceptables, (1, 1, 1, 3) y (1, 1, 2, 2). La primera de ellasse corresponde con el grafo que dibujamos a la izquierda y arriba, mientrasque la segunda se traduce en el debajo. Para etiquetar el primer grafo con

{1, 2, 3, 4}, observamos que basta con decidir el sımbolo que va en la posicion central; ası quehay cuatro maneras distintas de hacerlo. El etiquetado del grafo de la derecha es un pocomas delicado: elegimos primero los dos vertices de grado 2 (se puede hacer de

(42

)formas);

y para cada eleccion de estas, hay luego dos posibilidades para elegir los vecinos. En total,12 maneras distintas. En resumen, con 4 vertices hay dos arboles no isomorfos y 16 arbolesdistintos con vertices {1, 2, 3, 4}. ♣Ejemplo 9.1.3 Un poco mas difıcil: arboles con 5 vertices.

Se debe cumplir que5∑

i=1

gr(vi) = 8 ,

3Cayley solo enuncio el resultado, lo que tambien habıa hecho Sylvester anos antes, en 1857. De hecho,Borchardt habıa publicado una demostracion en 1860.

(version preliminar 16 de diciembre de 2003)

Page 7: discreta arboles.pdf

Versi

onpr

eliminar

9.1. Definicion y caracterısticas 637

ası que no puede haber vertices de grado 5 o mayor. Si hay de grado 4,la sucesion de grados ha de ser (1, 1, 1, 1, 4), a la que le corresponde ununico arbol, el que aparece a la derecha. Etiquetarlo con {1, 2, 3, 4, 5} esmuy sencillo, pues basta decidir que situamos en el vertice central: en total, 5 posibilidades.

Si no hay de grado 4, pero sı de grado 3, la unica sucesion de gradosposible es (1,1,1,2,3), y tenemos el grafo de la derecha. Para etiquetarlo con{1, 2, 3, 4, 5}, fijamos el sımbolo del vertice de grado 3 (5 posibilidades), eldel vertice de grado 2 (4 posibilidades) y, finalmente, elegimos el vecino degrado 1 del vertice de grado 2 (3 posibilidades, las mismas que obtendrıamos eligiendo losdos vecinos de grado 1 del vertice de grado 3). En total, 5 × 4 × 3 = 60 posibilidades.

Por ultimo, si no hay vertices de grado 3, entonces solo podre-mos tener la sucesion de grados (1, 1, 2, 2, 2), que corresponde aun L5. Para etiquetarlo, elegimos el sımbolo del vertice central (5posibilidades), luego los otros dos de grado 2 (

(42

)= 6 posibilidades) y ya solo quedan dos

posibilidades para etiquetar los vertices finales. En total, 5 × 6 × 2 = 60 formas distintas.

Resumiendo, con 5 vertices hay tres arboles no isomorfos, y 125 arboles distintos convertices {1, 2, 3, 4, 5}. ♣Ejemplo 9.1.4 Mas difıcil todavıa: arboles con seis vertices.

De nuevo nos dejamos guiar por la relacion gr(v1) + · · · + gr(v6) = 10, que nos dice que nopuede haber vertices de grado 6 o mayor.

Si hay vertices de grado 5, solo podra haber uno, y la sucesion de gradossera (1, 1, 1, 1, 1, 5). El unico grafo con estas caracterısticas es el queaparece a la derecha. Y el etiquetado de los vertices con {1, . . . , 6} solorequiere decidir el sımbolo del vertice central: seis posibilidades.

Si no hay de grado 5, pero hay de grado 4, solo cabe que la sucesion sea(1, 1, 1, 1, 2, 4). El arbol correspondiente aparece a la derecha. Dejamoscomo ejercicio para el lector la comprobacion de que hay 120 arbolescon vertices {1, . . . , 6} asociados a esta estructura.

Si no hay vertices de grado 4, pero sı de grado 3, las cosas se poneninteresantes. Tenemos, por un lado, la sucesion de grados (1, 1, 1, 1, 3, 3),cuyo arbol asociado es el de la figura. El lector deberıa comprobar quehay 90 formas distintas de etiquetar los vertices de este arbol.

Pero, por otro lado, tenemos la sucesion de grados (1, 1, 1, 2, 2, 3), quetiene un unico vertice de grado 3. Como ya vimos en el ejemplo 8.1.4,hay dos arboles no isomorfos a esta sucesion, los que se muestran ala derecha. Es, de nuevo, un sencillo ejercicio comprobar que hay 180etiquetados distintos para el de arriba y 360 para el de abajo.

Por ultimo, si no hay de grado 3, entonces solo cabe tener cuatrovertices de grado 2, (1, 1, 2, 2, 2, 2), y el grafo es isomorfo a unL6. Y hay 360 distintos arboles que podemos construir con estaestructura y vertices {1, . . . , 6}.

(version preliminar 16 de diciembre de 2003)

Page 8: discreta arboles.pdf

Versi

onpr

eliminar

638 Capıtulo 9. Arboles

En resumen, hay seis arboles no isomorfos con 6 vertices, y 1296 arboles distintos convertices {1, . . . , 6}. ♣

Los resultados que hemos ido obteniendo hasta ahora son especialmente “sospechosos”;y mas, si como aparece en la tabla, calculamos los dos siguientes casos:

n arboles no isomorfos arboles distintos

2 1 1 = 20

3 1 3 = 31

4 2 16 = 42

5 3 125 = 53

6 6 1296 = 64

7 11 16807 = 75

8 23 32768 = 86

Parece razonable suponer que la respuesta general es nn−2.

Teorema 9.5 (Cayley) El numero de arboles distintos que se pueden formar con el con-junto de vertices {1, . . . , n} es nn−2.

Existen diversas pruebas de este resultado. La que aquı veremos es especialmente sencilla ysugerente y se debe a Zeilberger. En los ejercicios 9.1.7 y 9.1.8 se proponen un par de ellasmas; la ultima de ellas, ademas, proporciona un mecanismo para codificar la informacion quedetermina un arbol, mediante el llamado codigo de Prufer (veanse tambien el ejemplo 9.2.3y la seccion 13.3).Demostracion. La escribiremos con el lenguaje (siempre simpatico) que utiliza Zeilberger,aunque luego lo reinterpretaremos en terminos de grafos.

En una cierta empresa hay m jefes y k empleados. Los queremos organizar de maneraque cada empleado tenga un unico supervisor (que pudiera ser otro empleado o quizas unjefe). Al numero de maneras distintas en que esto se puede hacer lo llamaremos P (m,k).

Digamos que m ≥ 1 y que k ≥ 0. Es claro que P (m, 0) = 1 para cada m = 1, 2, . . . . Paraobtener otros valores valor de P (m,k) seguimos el siguiente proceso:

1) Distinguimos a los empleados cuyos supervisores son jefes. A estos empleados, de losque habra un cierto numero s, con 1 ≤ s ≤ k, se les asigna, desde este momento, ycomo no podıa ser de otro modo, el papel de jefecillos.

2) Decidimos, pues, que s empleados son jefecillos; esto se puede hacer de(ks

)maneras.

3) Y ahora asignamos el jefe ante el que responde cada jefecillo: ms maneras.

4) Queda organizar a los restantes k−s empleados. Pero, para estos, los s jefecillos actuancomo jefes. Ası que los podremos organizar de tantas maneras como nos diga P (s, k−s).

En total,

P (m,k) =k∑

s=1

(k

s

)ms P (s, k − s) .

(version preliminar 16 de diciembre de 2003)

Page 9: discreta arboles.pdf

Versi

onpr

eliminar

9.1. Definicion y caracterısticas 639

Esta regla de recurrencia, junto con los valores iniciales de antes, determina de manera unicael valor de los P (m,k), como el lector podra comprobar construyendose la correspondientetabla de valores.

Cambiando al lenguaje de los grafos, lo que cuenta P (m,k) es el numero de bosques (conm + k vertices) formados por m arboles con raız, donde las raıces llevan, como etiquetas,los nombres de los jefes. El argumento que llevaba a la regla de recurrencia, en estos nuevosterminos, consiste en decidir que vertices van en la segunda generacion (por debajo de lasraıces), y como se distribuyen en esa segunda generacion:

j1 j2 j3 jm

El caso que nos interesa realmente es cuando m = 1 y k = n − 1. Tenemos entonces unarbol con raız con n vertices, en el que la raız ya va etiquetada. Si partimos de los sımbolos{1, . . . , n}, hay n maneras de etiquetar la raız. Ası que nP (1, n − 1) cuenta cuantos arbolescon raız podemos formar con n vertices. Pero por cada arbol con n vertices hay n arbolescon raız distintos. Ası que concluimos que la cantidad que nos interesa, el numero de arbolescon n vertices, coincide con P (1, n − 1).

Solo queda resolver la recurrencia de antes para obtener el valor particular de los P (m,k)que perseguimos. Aquı llega el ingrediente ingenioso de la prueba. La ecuacion de antesnos recuerda vagamente a las sumas que se obtienen en el teorema del binomio. El lectorpodra comprobar, utilizando este teorema, que la funcion f(m,k) = m(m + k)k−1 cumple lamisma regla de recurrencia y los mismos valores iniciales. Ası que P (m,k) = f(m,k) paratodo m y k. En particular,

P (1, n − 1) = f(1, n − 1) = 1 × (1 + (n − 1))(n−1)−1 = nn−2 ,

y el resultado de Cayley queda demostrado. �

EJERCICIOS.

9.1.1 Probar que un grafo G es un arbol (conexo sin ciclos) si y solo si no tiene ciclos y |A(G)| =|V (G)| − 1.

9.1.2 Probar que en un arbol existe un unico camino que conecta dos vertices cualesquiera.

9.1.3 Probar que el grafo G con n vertices es un arbol si y solo si su polinomio cromatico es pG(k) =k (k − 1)n−1.

Sugerencia. Para la implicacion ⇒, probar por induccion, y para ello, considerar un vertice degrado 1 del arbol y aplicar el algoritmo de “quitar aristas”. Para la implicacion ⇐, usar el teoremadel binomio y la caracterizacion de arboles como grafos conexos con n − 1 aristas.

(version preliminar 16 de diciembre de 2003)

Page 10: discreta arboles.pdf

Versi

onpr

eliminar

640 Capıtulo 9. Arboles

9.1.4 Sea G un grafo con n vertices cuyo polinomio cromatico PG cumple que P ′G(0) �= 0 y que

P(n−1)G (0) = (1 − n)(n − 1)!. Demostrar que G es un arbol.

Sugerencia. Utilizar el significado de los coeficientes bn−1 y b1 del polinomio cromatico de cual-quier grafo. Observar que el recıproco es tambien cierto (otra caracterizacion de un arbol).

9.1.5 (a) ¿Existen arboles de siete vertices y con cinco vertices de grado 1 y dos de grado 2? (b) ¿Ycon siete vertices de grados 1, 1, 1, 2, 2, 2, 3?

Sugerencia. Para arboles sabemos relacionar el valor de la suma de los grados con el numero devertices.

Solucion. (a) No, (b) Sı (construir un ejemplo).

9.1.6 Si G es arbol con p vertices de grado 1, q vertices de grado 4 y ningun otro vertice, ¿que relacionhay entre p y q?

Solucion. p = 2q + 2.

9.1.7 Denotemos por N(d1, d2, . . . , dn) el numero de arboles distintos que se pueden formar con elconjunto de vertices {1, 2, . . . , n}, donde gr (j) = dj + 1.(a) Observar que si

∑nj=1 dj �= n − 2 entonces N(d1, d2, . . . , dn) = 0.

(b) Probar la siguiente formula de recurrencia:

N(d1, d2, . . . , dn−1, 0) = N(d1−1, d2, . . . , dn−1)+N(d1, d2−1, . . . , dn−1)+· · ·+N(d1, d2, . . . , dn−1 − 1) ,

donde en la suma anterior el termino i-esimo no aparece si di = 0.(c) Deducir que si

∑nj=1 dj = n − 2, entonces N(d1, d2, . . . , dn) =

(n−2

d1,d2,...,dn

).

(d) Deducir finalmente la formula de Cayley: el numero de arboles distintos que se pueden formar conlos vertices {1, 2, . . . , n} es nn−2.

Sugerencia. Para el primer apartado, observar que la condicion es justamente la necesaria paraque tengamos un arbol. Para el segundo, clasificar los arboles dependiendo de a que vertice esta uni-do el de grado 1. Para el tercero, probar que ambos objetos comparten la misma recurrencia y lasmismas condiciones iniciales. Para d), aplicar la formula del multinomio.

9.1.8 Sea T un arbol con n vertices etiquetados con los numeros {1, . . . , n}. Localizamos el verticede grado 1 con menor etiqueta, que llamamos b1, y apuntamos quien es su unico vecino, a1. Bo-rramos entonces b1 y su arista. En el nuevo arbol, repetimos el procedimiento: localizamos el verticede grado 1 con menor etiqueta, b2, apuntamos quien es su vecino a2, y borramos b2 y su arista. Yası, sucesivamente, hasta quedarnos con solo un vertice. Lo que hemos ido anotando forma una lista(a1, . . . , an−1), el llamado codigo de Prufer del arbol T . Esta lista puede tener sımbolos repetidos yan−1 = n.(a) Hallar los codigos de Prufer de los arboles siguientes:

1

2

34

56

78

12

3

4

6

7

87

(version preliminar 16 de diciembre de 2003)

Page 11: discreta arboles.pdf

Versi

onpr

eliminar

9.1. Definicion y caracterısticas 641

(b) Comprobar que, a partir del codigo de Prufer (a1, . . . , an−1) de un cierto arbol, podemos recuperarel arbol en sı. Es decir, la sucesion (b1, . . . , bn−1) de los vertices que son borrados por el algoritmo.(c) Demostrar que, dada una lista de numeros (a1, . . . , an−1), con 1 ≤ aj ≤ n para cada j = 1, . . . , n−2y an−1 = n, existe un unico arbol cuyo codigo de Prufer es, precisamente, esa lista.(d) Deducir la formula de Cayley.

Sugerencia. Para el apartado (b), comprobar que b1 es el menor elementos que no este en elcodigo de Prufer. Para los restantes, comprobar que

bj = mın{k : k /∈ {b1, . . . , bj−1, aj , . . . , an−1}

}.

Las aristas son siempre de la forma {aj , bj}.Para el apartado (c), construir, a partir de la lista, el grafo T correspondiente, con la regla delapartado (b).

Solucion. (a) (5, 8, 1, 2, 7, 1, 8) y (1, 1, 1, 1, 1, 1, 8).

9.1.9 Hallar el numero de arboles distintos que se pueden formar con los vertices {1, 2, . . . , n} si (a)n = 6 y cuatro vertices tienen grado 2; (b) n = 5 y exactamente tres vertices tienen grado 1.

Solucion. (a) 360, (b) 60.

9.1.10 ¿Cuantos arboles distintos se pueden formar con un conjunto de ocho vertices, {1, 2, 3, . . . , 8},de manera que 2 de los vertices tengan grado 4 y los 6 restantes tengan grado 1?

Solucion. 560.

9.1.11 ¿Cuantos arboles con vertices {1, 2, . . . , n} tienen los grados de todos sus vertices menores oiguales a 2?

Solucion. n!/2 .

(version preliminar 16 de diciembre de 2003)

Page 12: discreta arboles.pdf

Versi

onpr

eliminar

642 Capıtulo 9. Arboles

9.2. Algoritmos en arboles y optimizacion

Los arboles son unas estructuras especialmente adaptadasa los problemas de optimizacion. Una de las cuestionesque planteamos al principio del capıtulo 8 era la siguien-te: queremos construir una red que conecte una serie depuntos (por ejemplo, podrıa ser un oleoducto que conectela refinerıa con unas cuantas ciudades, o una red de or-denadores) de la forma mas barata (en cuanto a numerode tramos) a partir de un diseno previo, como el de la figura. Si el objetivo es mantenerconectadas todas las ciudades, hay tramos que se podrıan eliminar; el objetivo es quitar elmayor numero posible de aristas de manera que el grafo siga siendo conexo. O, dicho de otramanera, quedarnos con el numero mınimo de aristas que garantizan la conexion del grafo.Estamos buscando, en definitiva, un arbol que incluya a todos los vertices.

Definicion 9.2 Consideremos un grafo G = (V,A). Diremos que un arbol H es arbol abar-cador4 de G si cumple que:

V (H) = V (G) (tiene los mismos vertices que G).

A(H) ⊆ A(G) (tiene algunas —o todas— las aristas de G).

Es decir, es un subgrafo abarcador del grafo inicial que, ademas, es un arbol. Aseguremonosprimero de que tales arboles existen si, como es razonable, partimos de un grafo conexo.

Proposicion 9.6 Un grafo G es conexo si y solo si tiene, al menos, un arbol abarcador.

Demostracion. En un sentido, si un grafo tiene un arbol abarcador, que por definicion esconexo, es obvio que G tambien lo sera.

En el otro: consideremos un grafo G conexo. Si es un arbol, ya hemos acabado (G es supropio arbol abarcador). Pero si no es arbol, como es conexo, podemos todavıa quitar unacierta arista e sin que se desconecte (recordemos el caracter extremal de los arboles en estesentido). Ası que G \ {e} es conexo. Si es arbol, hemos acabado; pero si no lo es, podremosquitar una arista f de forma que (G \ {e})\{f} siga siendo conexo. Y ası, sucesivamente. Encada paso, los sucesivos grafos son conexos; cuando el numero de aristas llegue a |V (G)| − 1,habremos llegado a un arbol abarcador. �

De esta demostracion deducimos que si el grafo G es conexo y |A(G)|+1 = |V (G)|+k, conk ≥ 0, entonces podemos quitar k aristas (convenientemente escogidas) y quedarnos con unarbol abarcador. Se trata de ir “eliminando aristas” hasta quedarnos con el numero adecuadode ellas. El criterio para eliminarlas serıa el de ir “rompiendo” los ciclos del grafo. Pero esteproceso requiere identificar los distintos ciclos, algo difıcil de implementar en el ordenador.

Existen otros algoritmos para construir un arbol abarcador, que van “haciendo crecer”el arbol en pasos sucesivos, y que resultan ser mas sencillos desde el punto de vista compu-tacional. Los veremos en la subseccion 9.2.1, aunque allı, por el mismo precio, resolveremos

4Spanning tree, en la terminologıa anglosajona. De nuevo, nuestra traduccion difiere de la habitual (“arbolgenerador”), para reflejar que el arbol, efectivamente, contiene todos los vertices del grafo.

(version preliminar 16 de diciembre de 2003)

Page 13: discreta arboles.pdf

Versi

onpr

eliminar

9.2. Algoritmos en arboles y optimizacion 643

una cuestion mas general, pues permitiremos que las aristas tengan “peso”. Como veremos,la cuestion de hallar un arbol abarcador en un grafo sin pesos no es sino un caso particularde este planteamiento mas general.

El numero de arboles abarcadores de un arbol

Que un grafo conexo tiene, en general, mas de un arbol abarcador es bastante evidente.Dado un grafo G, ¿cuantos hay, exactamente? La respuesta, claro, dependera, del tipo degrafo considerado.

Ejemplo 9.2.1 El numero de arboles abarcadores de los grafos Cn, Ln y Kn.

Consideremos el grafo circular con n vertices, Cn, para el que |A(Cn)| = |V (Cn)|. Formar unarbol abarcador consiste, simplemente, en quitar una arista; y cualquiera de las n que hayvale para ello. Ası que Cn tiene n posibles arboles abarcadores.

El grafo lineal con n vertices, Ln, es ya un arbol. Ası que Ln es el unico arbol abarcadorque tenemos. Esto es un resultado general: si G es un arbol, solo tiene un arbol abarcador(el mismo).

Por ultimo, consideremos el grafo completo con n vertices, Kn. Buscamos subgrafos Hde Kn que sean arboles, que tengan V (H) = V (Kn) = {1, . . . , n}. Pero en Kn estan todaslas aristas posibles, ası que

#

{arboles

abarcadores de Kn

}= #

{arboles distintos con el conjunto

de vertices {1, . . . , n}

}= nn−2 .

Kn es, claro, el grafo con n vertices que mas arboles abarcadores tiene. ♣

a

b

Ejemplo 9.2.2 ¿Cuantos arboles abarcadores distintos contiene un Kr,s?

Empecemos con el grafo bipartito completo K2,s, s ≥ 2. El grafo tiene 2saristas y s + 2 vertices, ası que tendremos que quitar s − 1 aristas sin quese desconecte el grafo. Es complicado localizar los ciclos del grafo para irrompiendolos, ası que pensemos de otra manera. Un arbol abarcador del grafocontendra a una serie de vertices de los de la derecha que se conectan al verticea y otros que se conectan al vertice b. Pero ha de haber al menos uno quese conecte a ambos, para que sea conexo. Y solo uno, porque si hubiera dos(o mas) vertices a la derecha que conservaran sus dos aristas, se formarıa

un ciclo. Con esta informacion podemos contar el numero de arboles abarcadores distintos.Llamemos

A = {vertices de {1, . . . , s} que comparten arista con a en el arbol abarcador}B = {vertices de {1, . . . , s} que comparten arista con b en el arbol abarcador}

Lo que buscamos son conjuntos A y B tales que entre los dos tengamos todos los vertices dela derecha y de forma que su interseccion conste de un unico vertice:

Elegir un arbolabarcador de K2,s

⇐⇒ Elegir dos conjuntos, A y B de manera queA ∪ B = {1, . . . , s} y de forma que |A ∩ B| = 1

(version preliminar 16 de diciembre de 2003)

Page 14: discreta arboles.pdf

Versi

onpr

eliminar

644 Capıtulo 9. Arboles

Para contar el numero de maneras de elegir A y B, sigamos el siguiente proceso:

1. Elegimos el elemento de la interseccion (hay s posibilidades).

2. Una vez elegido el elemento especial, basta decidir si el resto de los elementos estanen A o en B. O, lo que es equivalente, basta formar una lista de longitud s − 1 conrepeticion permitida con dos sımbolos (uno corresponde a estar en A y el otro a estaren B). Esto se puede hacer de 2s−1 formas distintas.

En total tenemos que hay s 2s−1 arboles abarcadores de K2,s. El resultado general es elsiguiente: un grafo Kr,s tiene sr−1 rs−1 arboles abarcadores distintos (en el ejercicio 9.2.3 sepide estudiar el caso del K3,s). ♣

Si un grafo conexo G tiene n vertices, el numero de arboles abarcadores que contiene vadesde 1 (si G es ya un arbol) hasta nn−2, cuando G sea el grafo completo con n vertices. Estenumero mide, en cierta manera, la complejidad del grafo. El siguiente resultado, que enuncia-mos sin demostracion, nos proporciona una manera de calcular esa medida de complejidaden un grafo arbitrario.

Teorema 9.7 (Kirchhoff) El numero de arboles abarcadores de un grafo G coincide conun cofactor5 cualquiera de la matriz D − M , donde M es la matriz de vecindades del grafoy D es la matriz diagonal cuyas entradas son los grados de los vertices.

Observese que, en la matriz D − M , todas sus filas y columnas su-man 1, ası que es una matriz singular. Este resultado permite, porejemplo, calcular el numero de arboles abarcadores del grafo escaleraque aparece a la derecha. Las matrices M y D son

M =

0 1 0 0 0 11 0 1 0 1 00 1 0 1 0 00 0 1 0 1 00 1 0 1 0 11 0 0 0 1 0

y D =

2 0 0 0 0 00 3 0 0 0 00 0 2 0 0 00 0 0 2 0 00 0 0 0 3 00 0 0 0 0 2

.

El calculo de un cofactor cualquiera de D − M (a mano o bien con ayuda de un paquetematematico) nos lleva a concluir que hay 15 arboles abarcadores en el grafo. ♣

1 2 3

4 5 6

Ejemplo 9.2.3 Kirchhoff y Cayley.

Queremos contar cuantos arboles abarcadores tiene un grafo completo Kn, cuyos vertices

5Dada una matriz A n × n, el menor Mi,j es el determinante de la matriz A, a la que le hemos quitado lafila i y la columna j. El cofactor correspondiente es Ci,j = (−1)i+jMi,j .

(version preliminar 16 de diciembre de 2003)

Page 15: discreta arboles.pdf

Versi

onpr

eliminar

9.2. Algoritmos en arboles y optimizacion 645

tienen todos grado n − 1:

M =

0 1 1 · · · 11 0 1 · · · 11 1 0 · · · 1...

......

. . ....

1 1 1 · · · 0

=⇒ D − M =

n − 1 −1 −1 · · · −1−1 n − 1 −1 · · · −1−1 −1 n − 1 · · · −1...

......

. . ....

−1 −1 −1 · · · n − 1

La matriz de la derecha es n × n, y la respuesta que buscamos esta, salvo un signo, en eldeterminante de la matriz que es identica a D − M , pero de dimensiones (n − 1) × (n − 1).El valor de ese determinante, recordemos, no cambia con las operaciones de eliminaciongaussiana. El lector podra comprobar que, con las operaciones adecuadas (sumar la primerafila a las restantes, sacar un factor n de cada una de ellas, y sumarle finalmente todas las filasa la primera), el determinante original resulta ser nn−2 det(I), donde I es la matriz identidad(n − 1) × (n − 1). El resultado de Cayley queda, de nuevo, probado. ♣

9.2.1. Arbol abarcador de menor peso

Vamos a considerar de nuevo el problema de la redde conduccion, pero ahora anadiremos un ingredientenuevo. El estudio previo de ingenierıa nos informa deque tramos es posible construir pero, ademas, dispo-nemos de la informacion sobre el coste de cada uno deesos tramos. Queremos, claro, elegir una red que conectetodas las ciudades con el menor coste posible. La infor-macion de los costes se traduce en que cada arista lleva

asociado un numero. Lo que buscamos es un arbol abarcador del grafo, pero justo aquel (oaquellos) para el que la suma de los costes de las aristas elegidas sea mınimo.

3

4

4

61

3

1

21

1

510

4

75

1

11

88

Para modelar esta situacion, necesitamos una generalizacion del concepto de grafo. Ungrafo con pesos (o grafo ponderado) sera un grafo G en el que, ademas, cada arista atenga asociado lo que llamaremos su peso, p(a), un numero real no negativo6. La matrizde vecindades de un grafo con pesos sera simetrica, con ceros en la diagonal, y sus entradasseran los pesos de las aristas (o 0 si no hay tales aristas). Recordemos que en la seccion 8.7ya manejamos un concepto todavıa mas general, el de grafos dirigidos con pesos (redes).

La cantidad que nos interesa minimizar es lo que llamaremos el peso del grafo,

p(G) =∑

a∈A(G)

p(a).

El problema es el siguiente: elegir, de entre todos los posibles arboles abarcadores de G, uno,

6Esta restriccion a pesos no negativos, aunque suene muy razonable, no es en realidad necesaria parala discusion que haremos sobre arboles abarcadores de peso mınimo. Sin embargo, sı que sera fundamentalcuando el problema que nos interese sea la construccion de caminos mas cortos (vease la subseccion 9.2.3).

(version preliminar 16 de diciembre de 2003)

Page 16: discreta arboles.pdf

Versi

onpr

eliminar

646 Capıtulo 9. Arboles

H , de forma quep(H) =

∑a∈A(H)

p(a)

sea lo menor posible. Vamos a describir un par de algoritmos sencillos que consiguen esteobjetivo. Ambos son algoritmos austeros, como el que describimos para la coloracion deun grafo: en cada paso, elegiremos la mejor decision posible (que sea compatible con lasrestricciones del problema). Observese que estos algoritmos serviran tambien para resolver lacuestion cuando se trate de un grafo sin pesos. Bastara, por ejemplo, asignar peso 1 a cadaarista. En estas condiciones, todos los arboles abarcadores tienen el mismo peso (exactamente|V | − 1), y el resultado del algoritmo sera, simplemente, uno de estos arboles abarcadores.

Algoritmo de Prim

Partimos de un grafo G = (V,A) con pesos, y vamos a ir construyendo, sucesivamente,conjuntos de vertices V0, V1, . . . ⊆ V y de aristas A0, A1, A2, . . . ⊆ A de la siguiente manera:

Elegimos un vertice v cualquiera del grafo y formamos V0 = {v}. El conjunto de aristases, en este paso, A0 = Ø.

Examinamos todas las aristas que tienen a v como uno de sus extremos y, de entreellas, seleccionamos la que tenga un peso menor. Digamos que es la arista a, y sea wsu otro extremo. Formamos entonces V1 = {v,w} y A1 = {a}.Supongamos que hemos construido los conjuntos Vi−1 (que contendra i vertices) y Ai−1

(con i−1 aristas). De entre las aristas que unan vertices de Vi−1 con vertices de V \Vi−1,escogemos la de menor peso, que anadimos a Ai−1 para formar Ai. El “nuevo” verticese anade a los de Vi−1 para formar Vi.

Si en el paso t no podemos encontrar una arista para continuar el procedimiento, el algoritmoacaba y la salida es el grafo Gt = (Vt−1, At−1).

Observemos que, tal como esta disenado el algoritmo, los sucesivos grafos Gj = (Vj , Aj)no pueden contener ciclos (y ademas son conexos). Si cuando el proceso acaba hemos incluidotodos los vertices del grafo, el resultado es un arbol abarcador. Sobre el hecho de que sea depeso mınimo reflexionamos mas adelante. Observemos que no hemos exigido que el grafo Gfuera conexo. Si lo fuera, el algoritmo producirıa un arbol abarcador; pero si no, el resultadoes un arbol abarcador de la componente conexa en la que se encuentre el vertice de partida v.

Algoritmo de Kruskaal

El procedimiento comienza ordenando las aristas en orden creciente de pesos: (a1, . . . , am),donde p(ai) ≤ p(aj) si i ≤ j. En cada paso se van determinando conjuntos de aristasA0, A1, A2, . . . ⊆ A de la siguiente manera:

Al principio, A0 = Ø.

La arista a1 es la de menor peso del grafo, y la incluimos para formar A1 = {a1}.

(version preliminar 16 de diciembre de 2003)

Page 17: discreta arboles.pdf

Versi

onpr

eliminar

9.2. Algoritmos en arboles y optimizacion 647

Supongamos que ya hemos determinado Ai−1. El conjunto Ai sera Ai−1 ∪ {ai} si esque el grafo (V,Ai−1 ∪ {ai}) no contiene ciclos. Es decir, si la adicion de la arista ai nohace que se forme un ciclo en el grafo producido hasta el momento. En caso contrario,Ai = Ai−1.

El algoritmo acaba cuando cuando Ai contenga |V | − 1 aristas o bien cuando hayamos exa-minado todas las aristas (esto es, en el paso i = m). Observese que, a diferencia del algoritmode Prim, los sucesivos grafos producidos por este procedimiento no tienen por que ser arboles(aunque sı bosques). Si el grafo de partida es conexo, entonces acaba necesariamente en unarbol abarcador (aunque el que sea de peso mınimo no es tan claro).

Observaciones

Empecemos insistiendo en que, si G es conexo, ambos algoritmos producen arboles abar-cadores. Ası que estos procedimientos sirven de comprobacion de la conexion de un grafoarbitrario. En el de Prim, los sucesivos grafos son siempre arboles, mientras que en el deKruskal no necesariamente: son bosques y solo al final, si G es conexo, tendremos con segu-ridad un arbol abarcador.

1

2 3

4

56

1

22

52

433

6

1

2 3

4

56

1

22

52

433

6

En el grafo con pesos que aparece a la izquierda, el algo-ritmo de Prim, empezando por ejemplo en el vertice 3, irıaincluyendo, sucesivamente, las aristas {3, 4}, {3, 5}, {5, 2} y{2, 1}. En el ultimo paso, se pueden elegir tanto la {2, 6}como la {1, 6}. Uno de los posibles resultados es el arbolabarcador, que es de peso mınimo, que dibujamos abajo ala izquierda. El de Prim partirıa de una ordenacion de lasaristas segun sus pesos. Podrıa ser, por ejemplo, la siguiente:({1, 2}, {3, 4}, {2, 6}, {1, 6}, {2, 5}, {3, 5}, {4, 5}, {2, 3}, {5, 6}).El algoritmo irıa incluyendo las aristas en el orden que apare-cen en esa lista, saltandose {1, 6} (pues se formarıa un ciclo),y acabando con la eleccion de la arista {3, 5} (ya tendrıamos

cinco aristas, las que necesitamos). El resultado serıa el mismo arbol abarcador de antes, Sicambiamos la ordenacion de las aristas, respetando el que aparezcan en orden creciente depesos, obtendrıamos un arbol abarcador distinto (lo mismo ocurrirıa con el de Prim en cadamomento en que tengamos varias elecciones posibles).

En un grafo G conexo con pesos, siempre existe, al menos, un arbol abarcador de pesomınimo, pero podrıa haber varios con ese peso mınimo. Piensese, por ejemplo, en un grafocompleto Kn con pesos 1 en cada una de sus aristas: hay nn−2 arboles abarcadores distintos,y todos tienen el mismo peso, n−1. Los dos algoritmos que aquı hemos descrito pertenecen alos que hemos dado en llamar la clase de los algoritmos austeros, porque en cada etapa tomanla decision optima, la mas “barata” en este caso, que sea compatible con las restriccionesdel problema (en el de Prim, mantener en cada paso el caracter de arbol, en el de Kruskal,que no se formen ciclos). No siempre estas estrategias “austeras” garantizan que el resultadoobtenido sea el mejor posible (recuerdese el algoritmo de coloreado de grafos). Pero, en estecaso, se puede demostrar que, dado un grafo G conexo con pesos, el resultado de ambos

(version preliminar 16 de diciembre de 2003)

Page 18: discreta arboles.pdf

Versi

onpr

eliminar

648 Capıtulo 9. Arboles

ambos algoritmos, tanto el de Prim como el de Kruskaal, es un arbol abarcador de pesomınimo (si hay varios, producen uno de ellos).

El siguiente ejemplo nos ilustra sobre las limitaciones quepueden tener metodos localmente optimos. En el grafo dirigidode la derecha, queremos encontrar un camino barato de A aE, siguiendo el sentido de las flechas. Un analisis “global” (porejemplo, enumerar todos los posibles caminos y determinar cuales el mas barato de todos ellos) nos llevarıa a la respuesta correcta: A → D → E. Pero siprocedieramos “austeramente”, partiendo de A elegirıamos la de menor peso, la que lleva aC. Una vez tomada esta decision, ya no hay marcha atras: no nos queda mas alternativa queescoger la arista que lleva a B. El camino serıa A → B → E, que no es el mejor posible.

�� ��

�A

B

C

D

E

3

4 4

5 1

8

(version preliminar 16 de diciembre de 2003)

Page 19: discreta arboles.pdf

Versi

onpr

eliminar

9.2. Algoritmos en arboles y optimizacion 655

EJERCICIOS.

9.2.1 Sean H y G dos grafos con los mismos vertices y de forma que toda arista de H lo sea tambiende G. Probar que pG(x) ≤ pH(x), para todo x, x natural.

Sugerencia. Observar que en G hay mas prohibiciones (habra menos coloraciones validas).

9.2.2 Deducir del ejercicio anterior que si G es un grafo conexo con n vertices entonces

pG(x) ≤ x(x − 1)n−1, para cada x natural .

Sugerencia. Por ser conexo, G tiene al menos un arbol abarcador.

9.2.3 Calcular el numero de arboles abarcadores distintos de un grafo isomorfo a K3,s.

Sugerencia. Construir los arboles abarcadores a la manera del caso K2,s. Es decir, si llamamosa, b y c a los tres vertices de la izquierda, se deben formar tres conjuntos de vertices A, B y C(los vertices que quedan unidos en el arbol abarcador a a, b y c, respectivamente) de forma queA ∪ B ∪ C = {1, . . . s} pero de manera que estos tres conjuntos esten conectados. Y observese queahora hay dos maneras de realizar esta conexion, a traves de un unico vertice o a traves de dosvertices distintos. Con los resultados de K2,s y K3,s, parecerıa que el resultado general para Kr,s

serıa sr−1 rs−1. Notese que los papeles de r y s son intercambiables.

Solucion. s2 3s−1

9.2.4 Consideremos el grafo que se obtiene al tomar n triangulos con exactamente un vertice comun.(El numero total de vertices es 2n + 1 y el numero de aristas es 3n.) ¿Cuantos arboles abarcadorestiene?

Sugerencia. Hay que quitar una arista en cada triangulo.

Solucion. 3n.

9.2.5 Sea H un arbol abarcador de peso mınimo de un grafo ponderado G. Sea f una arista de Gque no esta en H. Y sea e cualquier arista del camino (unico) en H que une los vertices de f . Probarque el peso de e es menor o igual que el peso de f .

Sugerencia. Observese que si no se cumpliera esa condicion podrıamos escoger un arbol abarcadorcon menor peso.

9.2.6 Sea G el grafo con vertices {a, b, 1, 2, . . . , 10} (12 vertices) y aristas {{a, j}, j = 1, 2, . . . , 10} y{{b, j}, j = 1, 2, . . . , 10} (20 aristas). Las aristas que tienen a a como extremo pesan 1 y las aristasque tiene a b como extremo pesan 2. ¿Cual es el peso mınimo de entre los arboles abarcadores de G?

Sugerencia. Hay que mantener una (y solo una) arista de las que llegan a b.

Solucion. 12.

(version preliminar 16 de diciembre de 2003)

Page 20: discreta arboles.pdf

Versi

onpr

eliminar

656 Capıtulo 9. Arboles

9.3. Arboles con raız y diseno de algoritmos

En la seccion 9.1 y hablamos de arboles con raız. se trata de un arbol en el que designamosun vertice especial, la raız, que sirve de origen de coordenadas. Algunos de los algoritmos deoptimizacion que hemos visto anteriormente producen estructuras de este tipo, donde la raızes el vertice en el que comienza el algoritmo. En un arbol con raız, los vertices se agrupanen niveles:

Nivel 0 = {raız}Nivel 1 = {vecinos de la raız}Nivel 2 = {vecinos de los vertices del nivel 1} \ {raız}Nivel 3 = {vecinos de los vertices del nivel 2} \ {Nivel 1}

......

Nivel j = {vecinos de los vertices del nivel j − 1} \ {Nivel j − 2}...

...

12 3

45

6

Llamaremos a, la altura del arbol, al maximo nivel no vacıo. Esimportante recordar que el valor de a depende de la raız elegida. Porejemplo, si partimos del arbol que aparece dibujado a la izquierda,cualquiera de sus vertices puede servir como raız. Elegir, por ejemplo,el vertice 1 o el 3 lleva a que la altura del arbol sea 2 o 4, como sugierenlos siguientes esquemas:

12 3

45

6

3 2 1 45

6

Definamos algunos conceptos:

Los descendientes de un vertice v son los vertices del nivel siguiente al de v que seanvecinos suyos (al vertice v se le dice progenitor de sus descendientes).

Un vertice es hoja de un arbol con raız si no tiene descendientes.

Un arbol con raız sera q-ario si cada progenitor tiene exactamente q descendientes (esdecir, el numero de descendientes es 0 si el vertice es hoja y q si es progenitor). Sera casiq-ario si el numero de descendientes de cada vertice esta comprendido entre 0 y q.

Los parametros que manejaremos en un arbol con raız seran

el numero de vertices, n;

la altura del arbol, a;

el numero de hojas, h;

y el tipo de arbol, definido por el entero positivo q (podra ser q-ario o casi q-ario).

(version preliminar 16 de diciembre de 2003)

Page 21: discreta arboles.pdf

Versi

onpr

eliminar

9.3. Arboles con raız y diseno de algoritmos 657

La importancia de estos arboles con raız radica en que se utilizan para representar algoritmosen los que intervienen operaciones binarias (o q-arias) sucesivas. Veamos algunos ejemplos.

Ejemplo 9.3.1 Un arbol de decision.

Tenemos 4 monedas, {1, 2, 3, 4}, y, a lo sumo, una de ellas no tiene el peso correcto (no eslegal). Disponemos ademas de una moneda patron, la 0, con el peso correcto. El problemaes el siguiente: con una balanza, que tiene tres resultados posibles, queremos averiguar de lamanera mas economica posible (con menos usos de la balanza) cual es la no legal. Podemos,por supuesto, comparar sucesivamente la moneda patron con las otras cuatro. Este proce-dimiento emplea, en el peor de los casos, cuatro pesadas para obtener la respuesta (aunquea veces la podamos obtener con menos). Disenemos un procedimiento alternativo, el que serecoge en el siguiente esquema:

� � �

>=

<

1 pesa +

��

� �

� �

0,1 2,3

2 3 0 4 2 3

> > >= = =< < <

3 pesa − 4 pesa −2 pesa −todas buenas

4 pesa + 2 pesa -

1 pesa −3 pesa +

Los sımbolos casi se explican por sı mismos: < significa que la balanza se vence hacia laderecha, > hacia la izquierda, e =, se queda equilibrada. El arbol que hemos disenado esternario (q = 3), tiene altura a = 2 (el numero de pesadas) y numero de hojas h = 9. Lofundamental en este caso es que el algoritmo funciona porque el arbol tiene 9 hojas, justo elnumero de respuestas posibles (1 pesa mas, 2 pesa menos, etc). ♣Ejemplo 9.3.2 Un algoritmo de ordenacion.

Dada una lista de tres numeros cualesquiera, (a, b, c), queremos ordenarlos con comparacionesbinarias. Disenamos el siguiente algoritmo: en el primer paso, comprobamos si el primerelemento es menor o igual que el tercero. Si la respuesta es sı, los dejamos tal como estan; sies no, los permutamos. En el segundo, miramos si el primero es menor o igual que el segundo,y de nuevo procedemos como antes, dependiendo de la respuesta. Por ultimo, en el tercerpaso investigamos si el segundo es menor o igual que el tercero (observamos que aquı hayrespuestas que son incompatibles con las obtenidas anteriormente). Si representamos esteproceso en un arbol, obtenemos

(version preliminar 16 de diciembre de 2003)

Page 22: discreta arboles.pdf

Versi

onpr

eliminar

658 Capıtulo 9. Arboles

a b c

a b c c b a

a b c b a c c b a b c a

a b c a c b b a c — c b a c a b b c a —

sı sı sı sı

no

nono

no nono no

¿1a≤ 3a?

¿1a≤ 2a?

¿2a≤ 3a?

El arbol ası construido es casi binario, con a = 3 y h = 6, que de nuevo coincide con elnumero de resultados posibles (las 3! = 6 posibles ordenaciones). Podrıamos preguntarnossi se podrıan ordenar estos tres numeros, con comparaciones binarias, en menos pasos, porejemplo dos. Veremos que no, porque en un arbol casi binario se cumplira que h ≤ 2a; si a es2, obtenemos que h ≤ 4, y con ese numero de hojas no podrıamos cubrir todos los resultadosposibles, que recordamos que eran 6. ♣Ejemplo 9.3.3 El juego de Nim con seis monedas.

Consideremos el siguiente juego: de un monton inicial de monedas, dos jugado-res, que llamaremos I y II, van retirando, alternativamente, una o dos monedasdel monton de seis. Gana el jugador que retira las ultimas monedas de la mesa.Esta es una de las muchas variantes del llamado juego de Nim, que analiza-remos detalladamente mas adelante (seccion 9.4). Lo que ahora nos interesa esque podemos describir los posibles desarrollos de la partida con arboles: representaremos cadaconfiguracion de monedas con un vertice, que etiquetaremos con un I o un II, dependiendo decual sea el jugador al que le toca jugar, y un numero, para recordar cuantas monedas quedanen el monton. Ası, para el monton de partida que dibujamos a la derecha, el primer verticevendra etiquetado con un I6, para recordar que juega I y que hay seis monedas en el monton.El jugador I tiene dos opciones, quitar una o dos monedas; estas dos acciones vendran re-presentadas por aristas, hacia la derecha si quita dos monedas, hacia la izquierda si quitauna. Para cada una de estas elecciones, el jugador II se encuentra con dos configuracionesdistintas y en cada una de ellas puede tomar, a su vez, dos decisiones:

I6

II5 II4

I6

I4

II5 II4

I3I3 I2

Observese que, en cada paso, lo que obtenemos es un arbol. Ademas, como en cadamovimiento se reduce el tamano del monton, el juego es finito y, por tanto, el arbol querepresenta los diferentes desarrollos del mismo tambien lo sera. Para el caso que nos ocupa,un monton inicial de seis monedas, el arbol completo del juego es el que aparece debajo de

(version preliminar 16 de diciembre de 2003)

Page 23: discreta arboles.pdf

Versi

onpr

eliminar

9.3. Arboles con raız y diseno de algoritmos 659

estas lıneas. Como preparacion al analisis que haremos mas adelante, etiquetamos las hojasdel arbol con G si en esa hoja el jugador I ha ganado la partida y con P si ha perdido:

I6

I3I4

II5 II4

I3 I2

II3 II2 II2 II1 II2 II1 II1 G

I2 I1 I1 P I1 P P I1 P P P

GII1 G G G G

P ♣

9.3.1. Relacion entre a y h en un arbol q-ario

En los ejemplos anteriores, la clave para que los algoritmos (representados por arbolesq-arios, o casi q-arios) funcionaran era que el numero de hojas cubriera todas las posiblesrespuestas. Estos dos parametros, la altura y el numero de hojas, no son independientes, y lascotas que obtendremos nos permitiran establecer estimaciones a priori sobre, por ejemplo,el mınimo numero de pasos que puede tener un cierto algoritmo.

Supongamos fijados a y q. Queremos estimar el numero de hojas que puede tener un arbolcon raız con esas caracterısticas. Parece que la configuracion con mayor numero de hojas esaquella en la que todas las hojas estan en el ultimo nivel. En el otro extremo, el arbol q-ariocon menor numero de hojas (para a fijo) serıa aquel en el que las hojas van apareciendo loantes posible. Los dos siguientes dibujos representan ambas situaciones:

a−1 a a−1 a

(version preliminar 16 de diciembre de 2003)

Page 24: discreta arboles.pdf

Versi

onpr

eliminar

660 Capıtulo 9. Arboles

Esto nos sugiere, por un lado, que h ≤ qa. Para la otra situacion extrema, como en cadanivel, desde el 1 hasta el a − 1, aparecen q − 1 hojas nuevas y en el nivel a hay q hojas,sospechamos que h ≥ (a − 1)(q − 1) + q = (q − 1)a + 1.

Proposicion 9.8 En todo arbol con raız casi q-ario, h ≤ qa.

Demostracion. Notese que hemos relajado las condiciones sobre el tipo de arbol, basta conque sea casi q-ario (por supuesto, un arbol q-ario es tambien casi q-ario; pero no al reves, engeneral).

B1

B2

Lo probaremos por induccion en a, la altura del arbol. Si a = 1, es claroque h ≤ q. Sea entonces un arbol A casi q-ario con raız y llamemos Bi

a los arboles que tienen como raız a los vecinos de la raız del arbol A.Los Bi son mas pequenos (en altura) que A y son todos arboles con raızcasi q-arios. La hipotesis de induccion nos dirıa que para los Bi se tiene,llamando ai y hi a la altura y el numero de hojas de cada sub-arbol Bi,respectivamente, que

hi ≤ qai (la misma q para todos).

Notese que hay a lo sumo q sub-arboles Bi, y que ai ≤ a − 1, para cada i (el peor casocorresponderıa a los sub-arboles que se extendieran hasta altura a − 1). Ası que

h =∑

i

hi ≤∑

i

qai ≤ qqa−1 = qa .�

En el otro sentido, se puede probar la siguiente cota:

Proposicion 9.9 En todo arbol con raız q-ario, h = s (q − 1) + 1, donde s es el numero devertices interiores del arbol (esto es, con descendientes).

Como a ≥ s (porque en cada nivel, desde el 0 hasta el a − 1, ha de haber al menos unvertice interior), deducimos que h ≥ a (q − 1) + 1, como afirmabamos antes. La prueba deeste resultado la dejamos como ejercicio (vease el ejercicio 9.3.1).

Ejemplo 9.3.4 Apliquemos las cotas obtenidas al problema de la balanza, pero ahora con rmonedas (en lugar de cuatro), de las cuales a lo suma una es falsa, y la moneda patron.

Es claro que el numero de posibles resultados es 2r + 1, porque para cada moneda hay dosposibles (pesa mas o menos de lo legal) y hay un resultado extra, que es que todas sean legales.Un algoritmo que permita detectar la moneda falsa debe recoger todos estos resultados. Si lorepresentamos por un arbol ternario, la altura sera el numero maximo de pesadas necesariaspara alcanzar todos los posibles resultados; y el numero de hojas debe poder cubrir todos losresultados. Como h ≤ 3a, necesitaremos

2r + 1 ≤ 3a =⇒ a ≥ log3(2r + 1).

Recordemos que con r pesadas siempre lo podemos hacer; aquı comprobamos que, sea cual seael algoritmo, si esta basado en comparaciones ternarias, entonces requerira, como mınimo,

(version preliminar 16 de diciembre de 2003)

Page 25: discreta arboles.pdf

Versi

onpr

eliminar

9.3. Arboles con raız y diseno de algoritmos 661

un numero de pasos del orden de log r. Por ejemplo, si r = 4, como en el ejemplo queproponıamos, tendremos que

r = 4 =⇒ a ≥ log3 9 = 2 ,

ası que al menos se requieren dos pesadas. De la misma manera obtendrıamos que para r entre3 y 13 necesitarıamos al menos necesitaremos 3 pesadas. Y se requerirıan cuatro pesadas, almenos, para cualquier r entre 14 y 40. Pero estas son cotas teoricas; otra cosa, por supuesto,es disenar un algoritmo que permita hacerlo con ese numero mınimo de pesadas. ♣Ejemplo 9.3.5 Apliquemoslas al algoritmo para ordenar n numeros con comparacionesbinarias.

El numero de resultados posibles es n!, ası que necesitaremos que

2# pasos ≥ n! =⇒ # pasos ≥ log2(n!)

Por ejemplo,

n = 3 −→ #pasos ≥ log2(3!) = log2(6) =⇒ #pasos ≥ 3

n = 4 −→ #pasos ≥ log2(4!) = log2(24) =⇒ #pasos ≥ 5

n = 5 −→ #pasos ≥ log2(5!) = log2(120) =⇒ #pasos ≥ 7

Utilizando las estimaciones sobre el tamano de n! que obtuvimos en la subseccion 2.4.4,podemos asegurar que

# pasos ≥ log2(n!) > log2

((n

e

)n)= n log2

(n

e

).

♣Ejemplo 9.3.6 Contemos el numero de hojas en el juego de Nim.

En el ejemplo que hemos descrito, el juego de Nim con seis monedas, podemos contar en elarbol que hay exactamente 13 hojas. Aunque hemos etiquetado las hojas solo con G y P ,dependiendo de si el jugador I gana o pierde, en realidad cada hoja representa un posiblefinal del juego (y de hecho, a cada hoja le corresponde un desarrollo del juego distinto). Siel juego de Nim parte de n monedas, es facil convencerse de que la altura del arbol (que escasi-binario) es siempre n, porque el camino de mayor longitud en el arbol es aquel en el quevamos quitando una sola moneda en cada turno (la rama de la izquierda), ası que podemosestimar

# { posibles partidas en un Nim con n monedas} = #{hojas del arbol} ≤ 2n .

Tambien podemos observar que el ultimo nivel solo tiene una hoja, ası que podemos mejorarla estimacion. Si llamamos Pn al numero de hojas que tiene el arbol del juego de Nim con nmonedas tendremos que

Pn ≤ 2n−1 + 1 .

(version preliminar 16 de diciembre de 2003)

Page 26: discreta arboles.pdf

Versi

onpr

eliminar

662 Capıtulo 9. Arboles

Pero en realidad podemos calcular explıcitamente el numero de hojas que hay. Para ello,fijemonos en que un arbol de Nim con n monedas se compone de un arbol de Nim conn − 1 monedas (el arbol que encontramos a partir del descendiente de la raız que esta a laizquierda) y otro con n−2 monedas (el de la derecha). De acuerdo, los papeles de I y II estanintercambiados, pero eso no afecta al numero de hojas que tenga cada arbol. Por supuesto,el numero de hojas del arbol total es la suma del numero de hojas que tenga cada subarbol,es decir,

Pn = Pn−1 + Pn−2 n ≥ 2 ,

nuestra conocida ecuacion de Fibonacci. Los valores iniciales son P1 = 1 y P2 = 2; ası que elnumero de hojas de un juego de Nim con n monedas es justamente el numero de FibonacciFn+1. ♣

9.3.2. La poda de un arbol binario

Tomemos el arbol binario (con raız) infinito. En el vamos a seleccionar k vertices demanera que ninguno de ellos sea antecesor de ningun otro. Llamemos v1, . . . , vk a estosvertices senalados, que estaran a alturas (generaciones) h1, . . . , hk. Observemos que estaeleccion de vertices se corresponde con una poda del arbol en la que las hojas superivientesestan a alturas h1, . . . , hk. En la siguiente figura hemos escogido cuatro vertices, v1, . . . , v4:

......

......

v1

v2

v3

v4

Exigir esta condicion hace pensar que los vertices seleccionados no pueden estar todosmuy “arriba” en el arbol, es decir, que los hj no pueden ser arbitrariamente pequenos. Demanera mas precisa, y esto es lo que nos interesa comprobar, en una poda cualquiera, los hj

correspondientes han de cumplir que

k∑j=1

2−hj ≤ 1 .

Veamoslo: hemos seleccionado unos vertices v1, . . . , vk que estan a alturas h1, . . . , hk. Llame-mos H = max{h1, . . . , hk} a la mayor altura a la que encontramos alguno de los verticessenalados.

Vamos ahora, a partir de esta eleccion inicial, a seleccionar un conjunto de vertices en elarbol infinito con el siguiente procedimiento: tomamos el vertice v1 y escogemos sus 2H−h1

descendientes que estan en la generacion H (quizas solo el propio v1, si es que es uno delos que vive en esa maxima generacion). Esto lo hacemos, sucesivamente, con el resto delos vertices v2, . . . , vk. Notese que los vertices que seleccionamos de esta manera son todosdistintos.

(version preliminar 16 de diciembre de 2003)

Page 27: discreta arboles.pdf

Versi

onpr

eliminar

9.3. Arboles con raız y diseno de algoritmos 663

v1

v2

v3

v4

En el dibujo que mostramos a la izquierda tenemos unejemplo de este procedimiento. Los vertices escogidos en primerlugar son v1, v2, v3 y v4: dos de la segunda generacion y otrosdos de la tercera. La maxima altura es H = 3. En trazo masgrueso hemos senalado los vertices de esta tercera generacionque seleccionamos en segundo lugar. Si sumamos los numeros2−hj para cada vertice vj obtenemos 1/4+1/4+1/8+1/8 = 3/4,

un numero no mayor que 1. El calculo analogo, pero ahora para los vertices seleccionados ensegundo lugar, nos lleva al mismo resultado.

Llamemos A a la eleccion inicial de vertices y A′ a la nueva, y sea D(vj) el conjunto devertices descendientes de vj que escogemos. Entonces

∑v∈A′

2−h(v) =k∑

j=1

∑v∈D(vj)

2−h(v) =k∑

j=1

2−H |D(vj)|︸ ︷︷ ︸=2H−hj

=k∑

j=1

2−hj =∑v∈A

2−h(v) .

El valor de la suma es el mismo para A que para A′. Pero claro, en A′ hay, a lo sumo, 2H

vertices, ası quek∑

j=1

2−hj =∑v∈A′

2−h(v) = |A′| 2−H ≤ 2H 2−H = 1 .

Lo interesante del asunto es que el resultado es cierto en el otro sentido: si damos unosnumeros h1, . . . , hk tales que

∑2−hj ≤ 1, entonces en el arbol binario (infinito) podemos

senalar k vertices v1, . . . , vk de alturas respectivas h1, . . . , hk y de manera que ninguno seaantecesor de ningun otro. Llamamos, como antes, H = max{h1, . . . , hk}. Y observamos que

1 ≥k∑

j=1

2−hj = 2−Hk∑

j=1

2H−hj =⇒ 2H ≥k∑

j=1

2H−hj .

Ahora, en el arbol binario infinito, en la generacion H vamos senalando, de izquierda aderecha y sucesivamente, 2H−h1 vertices, luego 2H−h2 , etc. La desigualdad anterior nos diceque en esa generacion encontramos suficientes vertices como para completar el proceso. Elpaso final consiste en senalar a v1 como el vertice de la generacion h1 que tiene a los primeros2H−h1 vertices seleccionados como descendientes en la generacion H , a v2 como el que tienea los 2H−h2 siguientes, etc. El lector podra comprobar que el argumento funciona de maneraanaloga para el caso de un arbol q-ario general (sustituyendo el 2 por q en la desigualdad).

v1

v2

v3

v4

Vamos ahora a interpretar este resultado etiquetando conlistas de ceros y unos los vertices seleccionados. Digamos queelegir, en el arbol binario infinito, la rama de la izquierda esun 1, y elegir la de la derecha un 0. Seleccionar un vertice dealtura h ≥ 1 no es, entonces, sino dar una lista de ceros y unosde longitud h. En el ejemplo que hemos estado considerando, alvertice v1 le corresponderıa la lista (1, 1), al vertice v2 la lista

(1, 0, 0), y a los vertices v3 y v4, las listas (0, 1) y (0, 0, 0), respectivamente. Elegir, como en

(version preliminar 16 de diciembre de 2003)

Page 28: discreta arboles.pdf

Versi

onpr

eliminar

664 Capıtulo 9. Arboles

el ejemplo, vertices con la restriccion de que unos no sean antecesores de otros se traduce enque ninguna de las listas correspondientes puede coincidir con el comienzo de ninguna otra.

Mas adelante (en la seccion 11.2) llamaremos a esta restriccion condicion de prefijo yveremos que sera fundamental a la hora de construir ciertos codigos. Veamos ahora otroejemplo en el que esta condicion de prefijo es relevante.

Ejemplo 9.3.7 El problema de los cuestionarios.

Tenemos k objetos que se pueden identificar con una sucesion de preguntas cuya respuestaes un SI o un NO.

SI

SI

NO

NOHipatia

Gauss Fermat

Por ejemplo, podrıamos tener tres personajes, tres ilustres matemati-cos: Hipatia de Alejandrıa, Gauss y Fermat. Preguntamos primero siel personaje es mujer, y posteriormente si es aleman. El resultado esel arbol que aparece a la izquierda. Con la identificacion habitual de 1para el SI y 0 para el NO, a Hipatia le corresponde la lista (1), a Gaussla (0, 1) y a Fermat la (0, 0). Las tres listas cumplen la condicion deprefijo. Esto es algo general: si queremos que el cuestionario realmente

identifique a los k objetos, las listas de ceros y unos que codifiquen las posibles respuestashan de cumplir esta condicion. ♣

EJERCICIOS.

9.3.1 Probar la proposicion 9.9.

(version preliminar 16 de diciembre de 2003)