You are on page 1of 28

´

Arboles

pr
eli
m
in
ar

Cap´ıtulo 9

La de los Bernoulli de Basilea es, quiz´
as, la familia m´as famosa de las Matem´aticas.
Nicolaus (1623-1708)

Nicolaus (1662-1716)

Jacob (1654-1705)

Johann (1667-1748)

Daniel (1700-1782)

Ve
rs
i´on

Nicolaus I (1687-1759) Nicolaus II (1695-1726)

Johann III (1744-1807)

Johann II (1710-1790)

Daniel II (1751-1834)

Jacob II (1759-1789)

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 ´
arbol geneal´
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 izquierda 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

´
Cap´ıtulo 9. Arboles

632

9.1.

Definici´
on y caracter´ısticas

pr
eli
m
in
ar

La primera definici´on de la noci´on de ´arbol (de las varias que daremos) es la sugerida por
los ejemplos vistos anteriormente:
Definici´
on 9.1 Un a
´rbol es un grafo conexo y sin ciclos.

En el mismo tono bot´
anico, se define un bosque como un grafo sin ciclos (si es conexo, ser´a un
´arbol; si no lo es, sus componentes conexas ser´an ´arboles). Por ejemplo, los grafos lineales
Ln 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, s´olo son ´arboles si s = 1 ´o r = 1 (si
r ≥ 2 y s ≥ 2 hay al menos un ciclo de orden cuatro).
Esta primera definici´
on no recoge una de las caracter´ısticas fundamentales de los a´rboles,
que los hace especialmente u
´tiles en ciertas cuestiones: son los conexos “m´as baratos” (en
cuanto al n´
umero de aristas) que podemos tener. Los siguientes enunciados nos proporcionan
caracterizaciones alternativas que recogen esta idea:
Proposici´
on 9.1 Un grafo G es un ´
arbol (un conexo sin ciclos) ⇐⇒ Es conexo y tiene la
propiedad de que al eliminar una arista cualquiera del grafo, ´este deja de ser conexo.

Ve
rs
i´on

´ n. En un sentido, supongamos que tenemos un grafo G conexo y sin ciclos.
Demostracio
Queremos probar que se desconecta al quitar una arista cualquiera.
Sea a una arista de G y formemos el grafo G \ {a} elimin´andola. Si G \ {a} fuera conexo,
podr´ıamos conectar en G\{a} los v´ertices de a. Pero a˜
nadiendo la arista a, lo que tendr´ıamos
ser´ıa un ciclo en G (contradicci´on). As´ı que G \ {a} es no conexo (sea cual sea la arista a de
G que elijamos).
En el otro sentido, supongamos que G es un grafo conexo que se desconecta si quitamos
cualquier arista. Si el grafo contuviera un ciclo, siempre podr´ıamos quitar una arista de ese
hipot´etico ciclo sin que el grafo dejara de ser conexo, lo que una contradicci´
on. Luego ese tal
1 

ciclo no puede existir .
Proposici´
on 9.2 Un grafo G es un ´
arbol (un conexo sin ciclos) ⇐⇒ No tiene ciclos y, si

nadimos una arista cualquiera, se forma un ciclo.

´ n. En un sentido, sea G un grafo conexo y sin ciclos. Consideremos dos v´ertices
Demostracio
cualesquiera que no est´en unidos por arista alguna en G. Por estar en un grafo conexo,
existir´a un paseo que los conecte en G. Al a˜
nadir una arista entre los v´ertices, se formar´a un
ciclo.
En el otro sentido, sea G un grafo sin ciclos para el que a˜
nadir una arista cualquiera
supone la formaci´
on de un ciclo. Supongamos que no fuera conexo. En este caso, al menos
existir´ıan dos v´ertices que no podr´ıamos conectar en G. Pero entonces todav´ıa podr´ıamos

nadir la arista que los une sin que se nos formara un ciclo, contradicci´
on. 

1

Como sabemos, v´ease el lema 8.2, si quitamos una arista de un grafo conexo y ´este se desconecta, lo hace
en exactamente dos componentes conexas. En el caso de un ´
arbol, al quitar una arista cualquiera se formar´
a un
bosque con dos componentes conexas. Obs´ervese que lo que nos dice esta proposici´
on es que toda arista de
un ´
arbol es un puente.

(versi´
on preliminar 16 de diciembre de 2003)

´ n. Consideremos un ´arbol cualquiera G con |A(G)| = d + 1. Pero habr´ıamos llegado a un grafo. para el que |V (G)| = 2.1 y 9. se desconecta. donde G1 y G2 son ´arboles con n´ umero de aristas |A(G1 )| ≤ d y |A(G2 )| ≤ d − 1 (de hecho. Si nos fijamos en una arista e de G. (versi´ on preliminar 16 de diciembre de 2003) . es el grafo conexo m´as barato (en el sentido de que no sobra ni falta arista alguna) que podemos construir. Es decir.  Los ejercicios 9. Definici´on y caracter´ısticas 633 pr eli m in ar Sabemos (recu´erdese la proposici´on 8. A estos dos ´arboles podemos aplicarles la hip´otesis de inducci´ on para deducir que Ve rs i´on + = |V (G1 )| − 1 = |V (G2 )| − 1 |A(G1 )| |A(G2 )| |A(G)| − 1 = |V (G)| − 2 . como ya adelant´abamos. G \ {e}. como nos dice el siguiente resultado: Proposici´ on 9. Supongamos cierto que para todo a´rbol con |A(G)| ≤ d se tiene que |A(G)| = |V (G)|−1. En un sentido. y si a˜ nadimos una arista cualquiera. si quitamos una arista cualquiera. vamos a proceder por inducci´ Demostracio on (en su versi´on fuerte) sobre el n´ umero de aristas. tiene |A(G)| = |V (G)| − 1 aristas y. En el otro sentido. tomemos un grafo conexo G tal que |A(G)| = |V (G)| − 1. |A(G1 )| + |A(G2 )| = d). conexo con |A(G \ {e})| = |A(G)| − 1 y |V (G \ {e})| = |V (G)| .1. se forma un ciclo. sin ciclos. podr´ıamos quitar una arista e de ese ciclo sin que el grafo se desconectara. sabemos que G \ {e} = G1 ∪ G2 .1. Si contuviera un ciclo.3 Un grafo G es un ´ arbol (un conexo sin ciclos) ⇐⇒ Es conexo y |A(G)| = |V (G)| − 1.9. |A(G)| = 1. de donde obtenemos lo que quer´ıamos. s´olo cabe la posibilidad de que sea un L2 .1. y esto contradice (¡nos faltan aristas!) el que G \ {e} fuera conexo. |A|: Si G es un ´arbol con una arista. Resumamos todas las caracter´ısticas que hacen de un grafo G un ´arbol: es conexo. Utilizando que |A(G)| = |V (G)| − 1. |A(G \ {e})| = |V (G)| − 2 = |V (G \ {e})| − 2 .2 recogen algunas otras caracterizaciones.3) que en un grafo conexo el n´ umero de aristas |A(G)| no puede ser menor que |V (G)| − 1. La igualdad se alcanza para los ´arboles.

de manera natural. se tendr´a que  gr(v) = 2 |V | − 2 . por supuesto. (versi´ on preliminar 16 de diciembre de 2003) . para Demostracio todo v ∈ V .´ Cap´ıtulo 9. la cuarta. A) se tiene que gr(v) = 2 |A| . 2|V | − 2 = v∈V v∈V Ve rs i´on lo que resulta imposible. Muchos de los algoritmos que veremos en estas p´aginas producen. . los v´ertices se agrupan por generaciones: la primera contendr´ıa s´olo a la ra´ız.  En muchas ocasiones conviene se˜ nalar un v´ertice especial en un ´arbol. como veremos m´as adelante). Lo que la proposici´on anterior afirma es que al menos hay dos v´ertices terminales (que luego llamaremos hojas) en un a´rbol como ´este. tendr´ıamos ciclos. es ese v´ertice especial. . De esta igualdad podemos deducir el siguiente resultado. es decir. por los vecinos de estos u ´ltimos (salvo la ra´ız).3 estudiaremos con detalle algunas aplicaciones de estos objetos. Lo que queda es lo que llamaremos un ´ arbol con ra´ız. dos v´ertices de grado 1. y en la secci´on 9. la sucesi´on de grados de los v´ertices de un ´arbol ha de ser muy especial.4 Todo ´ arbol con |V | ≥ 2 tiene. el n´ umero de v´ertices |V |. un a´rbol con ra´ız. pr eli m in ar  v∈V Pero si adem´as G es un ´arbol. Supongamos que no hay v´ertices de grado 1. pues el de aristas ya queda fijado. El caso l´ımite es el de un Ln . v∈V Obs´ervese que ahora s´olo tenemos un “grado de libertad”. Obs´ervese que los v´ertices de la generaci´on k s´olo pueden estar unidos a v´ertices de las generaciones anterior y posterior. y as´ı sucesivamente. Entonces. por los vecinos de los de la tercera generaci´on (excepto los que ya estaban en la segunda). porque tendr´ıamos   2|V | − 2 = gr(v) = gr(w) + gr(v) ≥ 1 + 2 (|V | − 1) = 2|V | − 1 v∈V v=w As´ı que al menos ha de haber dos de grado 1.   gr(v) ≥ 2 = 2 |V | . porque si no. como |A| = |V | − 1. Por supuesto. ´ n. la segunda estar´ıa formada por todos los v´ertices vecinos de la ra´ız. En un ´arbol con ra´ız. Arboles 634 Como parece claro. donde la ra´ız. la tercera. al menos. Pero tampoco puede ocurrir que haya un s´ olo v´ertice w de grado 1. Proposici´ on 9. que gr(v) ≥ 2. Ya sabemos que en cualquier grafo G = (V. cualquier ´arbol se convierte en uno con ra´ız en cuanto decidamos qu´e v´ertice act´ ua como ra´ız (la elecci´on de este v´ertice especial puede hacer cambiar las propiedades del a´rbol con ra´ız. que sirve de origen de coordenadas.

. Ln . un “matem´ atico aficionado”. En su tarea coincidi´ o con James Joseph Sylvester (1814-1897). ♣ 9. Pero volvamos a los esfuerzos de Cayley.w En la suma final tenemos n − 2 t´erminos.1. El v´ertice restante. es el m´aximo grado que puede tener un v´ertice en un grafo con n v´ertices. Hoy en d´ıa. por cierto. en la cuesti´on de enumerar los is´ omeros de hidrocarburos Figura 9. (versi´ on preliminar 16 de diciembre de 2003) . desde su puesto en Cambridge. Algunas de esas discusiones matem´ aticas estaban dedicadas a la Teor´ıa de grafos. tenemos el grafo estrellado de la izquierda. Definici´on y caracter´ısticas 635 Ejemplo 9. la u ´nica forma de conseguir la igualdad ser´a que gr(v) = 2 para todo v ∈ V . Y esta configuraci´on de grados es la del grafo lineal con n v´ertices.1 ¿C´ omo son los ´ arboles con n v´ertices que tienen el menor y el mayor n´ umero posible de v´ertices de grado 1? pr eli m in ar Sabemos que el m´ınimo n´ umero de v´ertices de grado 1 es 2.1. Cayley es uno de los padres de la teor´ıa de grupos y el creador del c´ alculo matricial. cuya f´ ormula es Ck H2k+2 : los ´atomos de carbono tienen valencia 4. Pero s´ı podr´ıa ocurrir que hubiera n − 1 de grado 1. v∈V que. 2n − 2 = v∈V v=u.9. ejerci´ o durante 14 a˜ nos como abogado. Contando el n´ umero de ´ arboles distintos Ve rs i´on Cayley2 estaba muy interesado en la cuesti´on de enumerar ciertos compuestos org´anicos. enternece recordar el comentario que el fil´osofo positivista Auguste Comte hac´ıa all´ a por 1830: [. A partir de 1863 se dedicar´ıa en exclusiva a las Matem´ aticas.1. si un ´arbol con n v´ertices tiene exactamente dos v´ertices. es imposible que todos los v´ertices tengan grado 1 (pues no se cumplir´ıa la f´ ormula de los grados). quiz´ as uno de los primeros intentos serios de aplicar las Matem´aticas a la Qu´ımica. otro ilustre matem´ atico y abogado.1: Cayley saturados. cuya suma de grados es 4k + (2k + 2) = 6k + 2. ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ En el otro extremo. Se trata de un grafo con 3k + 2 v´ertices. Tras su paso por Cambridge. tendr´ıa grado  2n − 2 = gr(v) = (n − 1) + gr(w) =⇒ gr(w) = n − 1 . con quien gustaba de discutir sobre casos judiciales y teoremas. se cumplir´ a que   gr(v) = 1 + 1 + gr(v). v = u. cuando gran parte de la Qu´ımica moderna se escribe en t´erminos de modelos matem´aticos. de grado 1. todos ellos mayores o iguales que 2. digamos w y u. En este caso. As´ı que. por ejemplo.1. mientras que los de hidr´ogeno. w. Tambi´en son fundamentales sus aportaciones a la geometr´ıa no eucl´ıdea y la geometr´ıa proyectiva. w. . as´ı que el grafo 2 El ingl´es Arthur Cayley (1821-1895) fue. que estaba interesado. periodo en el que lleg´ o a publicar m´ as de 200 art´ıculos de investigaci´ on en Matem´ aticas. valencia 1. durante parte de su vida. ] cualquier intento de emplear m´etodos matem´aticos en el estudio de la Qu´ımica debe ser considerado como profundamente irracional y contrario al propio esp´ıritu de la Qu´ımica.

lo que tambi´en hab´ıa hecho Sylvester a˜ nos antes. como parece razonable. Para asegurarnos de no olvidarnos ning´ un caso. Se debe cumplir que 5  gr(vi ) = 8 .2 ya lo empezamos a sospechar. en los ejemplos de la subsecci´on 8. 2. 4}. El etiquetado del grafo de la derechaes un poco m´as delicado: elegimos primero los dos v´ertices de grado 2 (se puede hacer de 42 formas). Esto se puede hacer de tres formas distintas. una cuesti´on muy complicada. dado el conjunto {v1 . el n´ umero de aristas es el de v´ertices menos 1: se trata de un ´arbol (si suponemos. 2. que el grafo es conexo). En resumen. i=1 3 Cayley s´ olo enunci´ o el resultado. en 1889. 2}. Por ejemplo. (1. Cayley s´ olo consigui´o resolver algunos casos particulares y. ser ´arboles. Ejemplo 9. en la posici´on central (cu´al es el v´ertice de grado 2). Ve rs i´on Vamos con el caso de cuatro v´ertices. 2. Si el conjunto de v´ertices es {1. hay 2( 2 ) grafos distintos con ese conjunto de v´ertices. Borchardt hab´ıa publicado una demostraci´ on en 1860. . hay luego dos posibilidades para elegir los vecinos. Los ´arboles con tres v´ertices tambi´en han de ser isomorfos al grafo lineal correspondiente. si etiquetamos los v´ertices. . as´ı que hay cuatro maneras distintas de hacerlo. en 1857. mientras que la segunda se traduce en el debajo. tener una determinada sucesi´on de grados) es. s´olo cabe una posibilidad. 4}. las cosas se simplifican a veces. 3}. 2. ¡Ah!. basta con decidir qu´e s´ımbolo va.1. sorprendentemente simple. 1. (versi´ on preliminar 16 de diciembre de 2003) .1. . una f´ con n v´ertices. Veamos qu´e nos sugieren algunos ejemplos sencillos. Si tenemos dos v´ertices. 3}. por ejemplo. a˜ nos despu´es. ayud´emonos de la relaci´on gr(v1 ) + gr(v2 ) + gr(v3 ) + gr(v4 ) = 6 . En total. 1. 2. 3. Para etiquetar el primer grafo con {1. vn }. L3 . ♣ Ejemplo 9. para el caso de los a´rboles Cayley obtuvo3 . as´ı que hay 3 ´arboles distintos con v´ertices {1. P´olya desarrollar´ıa su teor´ıa enumerativa (v´ease el cap´ıtulo 14) para dar respuesta a los problemas de este tipo. y para cada elecci´on de ´estas. observamos que basta con decidir el s´ımbolo que va en la posici´on central.1.´ Cap´ıtulo 9.2 Contemos el n´ umero de a ´rboles distintos con 2. De hecho. 3. en general. pr eli m in ar Enumerar los grafos no isomorfos con n v´ertices y una cierta estructura (por ejemplo. Ninguno de los cuatro n´ umeros puede ser ≥ 4 (no puede haber v´ertices de grado 4) y un simple an´ alisis nos lleva a concluir que s´olo puede haber dos sucesiones de grados aceptables. 2). que el a´rbol sea isomorfo a un L2 . . sabemos n que. Arboles 636 debe tener 3k + 1 aristas. Y si el conjunto de v´ertices es {1. ormula. 3 y 4 v´ertices. 1. La primera de ellas se corresponde con el grafo que dibujamos a la izquierda y arriba. 12 maneras distintas. 3) y (1.3 Un poco m´ as dif´ıcil: ´ arboles con 5 v´ertices. con 4 v´ertices hay dos ´arboles no isomorfos y 16 ´arboles distintos con v´ertices {1. hay tambi´en un u ´nico a´rbol (los dos posibles etiquetados de los v´ertices dan el mismo resultado). Sin embargo.

Y hay 360 distintos ´arboles que podemos construir con esta estructura y v´ertices {1. Si no hay de grado 4.1.1. 1. 1. . hay dos ´arboles no isomorfos a esta sucesi´on. un sencillo ejercicio comprobar que hay 180 etiquetados distintos para el de arriba y 360 para el de abajo. El lector deber´ıa comprobar que hay 90 formas distintas de etiquetar los v´ertices de este ´arbol. s´ olo cabe que la sucesi´on sea (1. El u ´nico grafo con estas caracter´ısticas es el que aparece a la derecha.3). Por u ´ltimo.1. que tiene un u ´nico v´ertice de grado 3. . entonces s´ olo podremos tener la sucesi´on de grados (1. 1. 6} asociados a esta estructura. Como ya vimos en el ejemplo 8. . 5). . pero s´ı de grado 3. 5 × 4 × 3 = 60 posibilidades. 4). 2. Resumiendo. (1. 2. 1. 1. 2. 1. cuyo ´arbol asociado es el de la figura. las cosas se ponen interesantes. pero hay de grado 4. 3. 3). la sucesi´on de grados (1.1. Etiquetarlo con {1. con 5 v´ertices hay tres a´rboles no isomorfos. 5 posibilidades. 5} es muy sencillo. 1. Para etiquetarlo con {1. 4). . luego los otros dos de grado 2 ( 42 = 6 posibilidades) y ya s´ posibilidades para etiquetar los v´ertices finales. 2. Tenemos. y la sucesi´on de grados ser´a (1. Dejamos como ejercicio para el lector la comprobaci´on de que hay 120 ´arboles con v´ertices {1. la sucesi´on de grados ha de ser (1. 1. 2. 1. por otro lado. 3. finalmente.9. Si hay de grado 4. si no hay v´ertices de grado 3. los que se muestran a la derecha. (versi´ on preliminar 16 de diciembre de 2003) . por un lado. si no hay de grado 3. 6} s´olo requiere decidir el s´ımbolo del v´ertice central: seis posibilidades. 3. de nuevo. En total. elegimos el s´ımbolo del v´ ertice central (5 olo quedan dos posibilidades).1. y 125 ´arboles distintos con v´ertices {1. . 2. las mismas que obtendr´ıamos eligiendo los dos vecinos de grado 1 del v´ertice de grado 3). 6}. . fijamos el s´ımbolo del v´ertice de grado 3 (5 posibilidades). y el grafo es isomorfo a un L6 . Si no hay v´ertices de grado 4. entonces s´ olo cabe tener cuatro v´ertices de grado 2. Si no hay de grado 5. que nos dice que no puede haber v´ertices de grado 6 o mayor. pues basta decidir qu´e situamos en el v´ertice central: en total. Es. De nuevo nos dejamos guiar por la relaci´on gr(v1 ) + · · · + gr(v6 ) = 10. Pero. 1. pero s´ı de grado 3. 2. 2).4. Para etiquetarlo. el que aparece a la derecha. 2. El ´arbol correspondiente aparece a la derecha. y tenemos el grafo de la derecha. s´ olo podr´ a haber uno. 4. 5}.4 M´ as dif´ıcil todav´ıa: ´ arboles con seis v´ertices. 4. elegimos el vecino de grado 1 del v´ertice de grado 2 (3 posibilidades.2. 1. Ve rs i´on Si hay v´ertices de grado 5. Por u ´ltimo. 2. ♣ Ejemplo 9. . 1. 5 × 6 × 2 = 60 formas distintas. . tenemos la sucesi´on de grados (1. 2. En total. Y el etiquetado de los v´ertices con {1. que corresponde a un L5 . 2). 1. 2. el del v´ertice de grado 2 (4 posibilidades) y. 3. 4. . la u ´nica sucesi´on de grados posible es (1. . 1. 1. 3). a la que le corresponde un u ´nico a´rbol. 5}. . 1. Definici´on y caracter´ısticas 637 pr eli m in ar as´ı que no puede haber v´ertices de grado 5 o mayor. 1.

1. k−s). . Digamos que m ≥ 1 y que k ≥ 0.8 se proponen un par de ellas m´as. k − s) .3). 4) Queda organizar a los restantes k − s empleados. . . hay seis ´arboles no isomorfos con 6 v´ertices.´ Cap´ıtulo 9. k) seguimos el siguiente proceso: 1) Distinguimos a los empleados cuyos supervisores son jefes. La escribiremos con el lenguaje (siempre simp´atico) que utiliza Zeilberger. y m´as. la u ´ltima de ellas. Al n´ umero de maneras distintas en que esto se puede hacer lo llamaremos P (m. Para obtener otros valores valor de P (m. En total. qu´e s empleados son jefecillos. los s jefecillos act´ uan como jefes. Ve rs i´on Existen diversas pruebas de este resultado. k). A estos empleados. Teorema 9. . En una cierta empresa hay m jefes y k empleados. desde este momento. n} es nn−2 . Pero. y como no pod´ıa ser de otro modo. con 1 ≤ s ≤ k. . adem´ as. 0) = 1 para cada m = 1. ´ n. 6}. para ´estos. mediante el llamado c´ odigo de Pr¨ ufer (v´eanse tambi´en el ejemplo 9. esto se puede hacer de ks maneras. pues. si como aparece en la tabla. de los que habr´a un cierto n´ umero s.5 (Cayley) El n´ umero de a ´rboles distintos que se pueden formar con el conjunto de v´ertices {1. calculamos los dos siguientes casos: n a´rboles no isomorfos a´rboles distintos 2 3 4 5 6 7 8 1 1 2 3 6 11 23 1 = 20 3 = 31 16 = 42 125 = 53 1296 = 64 16807 = 75 32768 = 86 Parece razonable suponer que la respuesta general es nn−2 .   2) Decidimos. En los ejercicios 9. As´ı que los podremos organizar de tantas maneras como nos diga P (s.7 y 9. . . se les asigna. 2. proporciona un mecanismo para codificar la informaci´ on que determina un ´ arbol.1. el papel de jefecillos. Arboles 638 En resumen. ♣ pr eli m in ar Los resultados que hemos ido obteniendo hasta ahora son especialmente “sospechosos”. Los queremos organizar de manera que cada empleado tenga un u ´nico supervisor (que pudiera ser otro empleado o quiz´ as un jefe). k) = k    k s=1 s ms P (s.3 y la secci´on 13. . Es claro que P (m. . . La que aqu´ı veremos es especialmente sencilla y sugerente y se debe a Zeilberger. P (m. . . (versi´ on preliminar 16 de diciembre de 2003) . y 1296 ´arboles distintos con v´ertices {1.2. 3) Y ahora asignamos el jefe ante el que responde cada jefecillo: ms maneras. Demostracio aunque luego lo reinterpretaremos en t´erminos de grafos.

n}. Si partimos de los s´ımbolos {1. n − 1) cuenta cu´antos ´arboles con ra´ız podemos formar con n v´ertices. El argumento que llevaba a la regla de recurrencia. k) que perseguimos. Aqu´ı llega el ingrediente ingenioso de la prueba. que la funci´on f (m. (versi´ on preliminar 16 de diciembre de 2003) . Pero por cada ´arbol con n v´ertices hay n ´arboles con ra´ız distintos. en estos nuevos t´erminos. y para ello. Sugerencia. coincide con P (1. 9. donde las ra´ıces llevan.9. 9.3 Probar que el grafo G con n v´ertices es un a ´rbol si y s´ olo si su polinomio crom´ atico es pG (k) = n−1 k (k − 1) .1. como el lector podr´a comprobar construy´endose la correspondiente tabla de valores. considerar un v´ertice de grado 1 del a´rbol y aplicar el algoritmo de “quitar aristas”. y el resultado de Cayley queda demostrado. k) = f (m. S´olo queda resolver la recurrencia de antes para obtener el valor particular de los P (m.1. determina de manera u ´nica el valor de los P (m. Cambiando al lenguaje de los grafos. hay n maneras de etiquetar la ra´ız. los nombres de los jefes. Para la implicaci´ on ⇒. As´ı que P (m. As´ı que concluimos que la cantidad que nos interesa. P (1. La ecuaci´ on de antes nos recuerda vagamente a las sumas que se obtienen en el teorema del binomio. n − 1) = f (1. lo que cuenta P (m. . Tenemos entonces un ´arbol con ra´ız con n v´ertices. usar el teorema del binomio y la caracterizaci´ on de a´rboles como grafos conexos con n − 1 aristas. consiste en decidir qu´e v´ertices van en la segunda generaci´ on (por debajo de las ra´ıces).1 Probar que un grafo G es un a ´rbol (conexo sin ciclos) si y s´ olo si no tiene ciclos y |A(G)| = |V (G)| − 1.  EJERCICIOS. el n´ umero de ´arboles con n v´ertices.1. . Para la implicaci´ on ⇐. utilizando este teorema. . k) para todo m y k. . As´ı que nP (1. k) = m(m + k)k−1 cumple la misma regla de recurrencia y los mismos valores iniciales. En particular. junto con los valores iniciales de antes. n − 1) = 1 × (1 + (n − 1))(n−1)−1 = nn−2 . 9.1. k). como etiquetas. El lector podr´ a comprobar. Definici´on y caracter´ısticas 639 j1 j2 pr eli m in ar Esta regla de recurrencia. probar por inducci´ on. k) es el n´ umero de bosques (con m + k v´ertices) formados por m ´arboles con ra´ız.2 Probar que en un a ´rbol existe un u ´nico camino que conecta dos v´ertices cualesquiera. en el que la ra´ız ya va etiquetada. y c´omo se distribuyen en esa segunda generaci´ on: j3 jm Ve rs i´on El caso que nos interesa realmente es cuando m = 1 y k = n − 1. n − 1).

. repetimos el procedimiento: localizamos el v´ertice de grado 1 con menor etiqueta. dn ) = 0. 0) = N (d1 −1. . . Para el tercero.. d2 .7 Denotemos por N (d1 . .. . 2. Arboles 640 9. (b) Probar la siguiente f´ ormula de recurrencia: N (d1 . (a) Hallar los c´ odigos de Pr¨ ufer de los a ´rboles siguientes: 6 2 5 4 7 1 8 3 2 3 4 1 7 (versi´ on preliminar 16 de diciembre de 2003) 6 7 8 . . . . . . Para d).4 Sea G un grafo con n v´ertices cuyo polinomio crom´ atico PG cumple que PG (0) = 0 y que (n−1) PG (0) = (1 − n)(n − 1)!. . (c) Deducir que si j=1 dj = n − 2. el llamado c´ odigo de Pr¨ ufer del a ´rbol T . q v´ertices de grado 4 y ning´ un otro v´ertice. . n} es nn−2 . hasta quedarnos con s´ olo un v´ertice. . Esta lista puede tener s´ımbolos repetidos y an−1 = n. que llamamos b1 . Borramos entonces b1 y su arista. . Soluci´ on. . n}. dn−1 . Localizamos el v´ertice de grado 1 con menor etiqueta. d2 −1. . d2 .. dn−1 )+N (d1 . 3? Sugerencia. . donde gr (j) = dj + 1. aplicar la f´ ormula del multinomio.dn−2 2 . . entonces N (d1 . Sugerencia. sucesivamente. . . . y apuntamos qui´en es su u ´nico vecino. d2 . Para a´rboles sabemos relacionar el valor de la suma de los grados con el n´ umero de v´ertices. 2. 9..1. . b2 . clasificar los a´rboles dependiendo de a qu´e v´ertice est´a unido el de grado 1. 1. . . d2 .6 Si G es a ´rbol con p v´ertices de grado 1. a1 . 1. Demostrar que G es un a ´rbol.1. .´ Cap´ıtulo 9. . Para el segundo. .5 (a) ¿Existen a ´rboles de siete v´ertices y con cinco v´ertices de grado 1 y dos de grado 2? (b) ¿Y con siete v´ertices de grados 1.1. pr eli m in ar Sugerencia. observar que la condici´ on es justamente la necesaria para que tengamos un a´rbol. (a) No. probar que ambos objetos comparten la misma recurrencia y las mismas condiciones iniciales.   n . . . y borramos b2 y su arista. 2. 2. . d2 . . . (b) S´ı (construir un ejemplo). 9.1. Y as´ı. . apuntamos qui´en es su vecino a2 . an−1 ). Observar que el rec´ıproco es tambi´en cierto (otra caracterizaci´on de un a´rbol). . . n (a) Observar que si j=1 dj = n − 2 entonces N (d1 .8 Sea T un a ´rbol con n v´ertices etiquetados con los n´ umeros {1. p = 2q + 2. Utilizar el significado de los coeficientes bn−1 y b1 del polinomio crom´ atico de cualquier grafo. dn ) el n´ umero de a ´rboles distintos que se pueden formar con el conjunto de v´ertices {1.dn (d) Deducir finalmente la f´ ormula de Cayley: el n´ umero de a ´rboles distintos que se pueden formar con los v´ertices {1. . 2. . . En el nuevo a ´rbol. 9. Lo que hemos ido anotando forma una lista (a1 . d2 . . . dn−1 )+· · ·+N (d1 . ¿qu´e relaci´ on hay entre p y q? Soluci´ on. dn−1 − 1) .1. 9. n}. dn ) = d1 . . Ve rs i´on donde en la suma anterior el t´ermino i-´esimo no aparece si di = 0. . Para el primer apartado. . .

2. . 1. 8. . . 2. Sugerencia. 1. (a) 360. existe un u ´nico a ´rbol cuyo c´ odigo de Pr¨ ufer es. 7. . an−1 } . 1. Definici´on y caracter´ısticas 641 (d) Deducir la f´ ormula de Cayley. . construir. (c) Demostrar que. bj−1 . el grafo T correspondiente.11 ¿Cu´ antos a ´rboles con v´ertices {1. . . a partir del c´ odigo de Pr¨ ufer (a1 . . . . pr eli m in ar (b) Comprobar que. . 1. 3. Las aristas son siempre de la forma {aj . . . . esa lista. . (versi´ on preliminar 16 de diciembre de 2003) . . a partir de la lista. 8}. .1. . 1. 8) y (1.1. Para el apartado (c). comprobar que   bj = m´ın k : k ∈ / {b1 . precisamente. dada una lista de n´ umeros (a1 . . n} tienen los grados de todos sus v´ertices menores o iguales a 2? Soluci´ on. bn−1 ) de los v´ertices que son borrados por el algoritmo. comprobar que b1 es el menor elementos que no est´e en el c´ odigo de Pr¨ ufer. Es decir. an−1 ).10 ¿Cu´ antos a ´rboles distintos se pueden formar con un conjunto de ocho v´ertices. . Ve rs i´on 9. . . . Soluci´ on. bj }. . n!/2 . 560. . {1. . 8). (b) 60. . de manera que 2 de los v´ertices tengan grado 4 y los 6 restantes tengan grado 1? Soluci´ on. an−1 ) de un cierto ´ arbol. aj . . . con la regla del apartado (b). 1. Para los restantes.9 Hallar el n´ umero de a ´rboles distintos que se pueden formar con los v´ertices {1. Soluci´ on. . n} si (a) n = 6 y cuatro v´ertices tienen grado 2. . con 1 ≤ aj ≤ n para cada j = 1.1. la sucesi´ on (b1 . 9. 2. . (a) (5. (b) n = 5 y exactamente tres v´ertices tienen grado 1. 1. 9. Para el apartado (b). .9. n−2 y an−1 = n. . 2. podemos recuperar el a ´rbol en s´ı.1. . .

sucesivamente. Una de las cuestiones que planteamos al principio del cap´ıtulo 8 era la siguiente: queremos construir una red que conecte una serie de puntos (por ejemplo. podr´ıa ser un oleoducto que conecte la refiner´ıa con unas cuantas ciudades. Definici´ on 9. resolveremos 4 Spanning tree. habremos llegado a un a´rbol abarcador. al menos. Arboles 642 9. hemos acabado. cuando el n´ umero de aristas llegue a |V (G)| − 1. que por definici´ Demostracio on es conexo. nuestra traducci´ on difiere de la habitual (“´ arbol generador”). Algoritmos en ´ arboles y optimizaci´ on pr eli m in ar Los ´arboles son unas estructuras especialmente adaptadas a los problemas de optimizaci´on. es un subgrafo abarcador del grafo inicial que.2. Existen otros algoritmos para construir un a´rbol abarcador.  De esta demostraci´on deducimos que si el grafo G es conexo y |A(G)|+1 = |V (G)|+k. que van “haciendo crecer” el ´arbol en pasos sucesivos. dicho de otra manera. efectivamente. ´ n. O.1. adem´ as. Se trata de ir “eliminando aristas” hasta quedarnos con el n´ umero adecuado de ellas. Si es un ´arbol. Pero si no es a´rbol. En un sentido.6 Un grafo G es conexo si y s´ olo si tiene. De nuevo. aunque all´ı.2. (versi´ on preliminar 16 de diciembre de 2003) . partimos de un grafo conexo. Ve rs i´on Proposici´ on 9. Es decir. como es razonable. un a´rbol que incluya a todos los v´ertices. por el mismo precio. en la terminolog´ıa anglosajona. los sucesivos grafos son conexos. para reflejar que el ´ arbol. o una red de ordenadores) de la forma m´as barata (en cuanto a n´ umero de tramos) a partir de un dise˜ no previo. ya hemos acabado (G es su propio ´arbol abarcador). A(H) ⊆ A(G) (tiene algunas —o todas— las aristas de G). con k ≥ 0. en definitiva. Y as´ı. entonces podemos quitar k aristas (convenientemente escogidas) y quedarnos con un ´arbol abarcador. podremos quitar una arista f de forma que (G \ {e}) \ {f } siga siendo conexo. podemos todav´ıa quitar una cierta arista e sin que se desconecte (recordemos el car´acter extremal de los ´arboles en este sentido). Si el objetivo es mantener conectadas todas las ciudades. As´ı que G \ {e} es conexo. Diremos que un ´ arbol H es a ´rbol abarcador4 de G si cumple que: V (H) = V (G) (tiene los mismos v´ertices que G). Estamos buscando. contiene todos los v´ertices del grafo. si un grafo tiene un a´rbol abarcador. algo dif´ıcil de implementar en el ordenador. hay tramos que se podr´ıan eliminar. En el otro: consideremos un grafo G conexo. Pero este proceso requiere identificar los distintos ciclos. como el de la figura. A). como es conexo. Si es ´arbol.´ Cap´ıtulo 9. es un ´arbol. Asegur´emonos primero de que tales ´arboles existen si. es obvio que G tambi´en lo ser´a. Los veremos en la subsecci´on 9. En cada paso. pero si no lo es. un ´ arbol abarcador. el objetivo es quitar el mayor n´ umero posible de aristas de manera que el grafo siga siendo conexo. quedarnos con el n´ umero m´ınimo de aristas que garantizan la conexi´on del grafo. y que resultan ser m´as sencillos desde el punto de vista computacional.2 Consideremos un grafo G = (V. El criterio para eliminarlas ser´ıa el de ir “rompiendo” los ciclos del grafo.

As´ı que Cn tiene n posibles a´rboles abarcadores. # =# abarcadores de Kn de v´ertices {1. Dado un grafo G. El n´ umero de ´ arboles abarcadores de un ´ arbol Que un grafo conexo tiene. Formar un ´arbol abarcador consiste. claro. . ♣ Ejemplo 9. exactamente? La respuesta. . As´ı que Ln es el u ´nico a´rbol abarcador que tenemos. Cn . Kn . . . 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 v´ertices de la derecha y de forma que su intersecci´on conste de un u ´nico v´ertice: Elegir un ´ arbol abarcador de K2. . que tengan V (H) = V (Kn ) = {1. . Buscamos subgrafos H de Kn que sean ´arboles.1 El n´ umero de a ´rboles abarcadores de los grafos Cn . Como veremos. A y B de manera que A ∪ B = {1. as´ı que pensemos de otra manera. porque si hubiera dos (o m´as) v´ertices a la derecha que conservaran sus dos aristas. El grafo lineal con n v´ertices. Ejemplo 9.s ? Empecemos con el grafo bipartito completo K2. . para que sea conexo. es ya un ´arbol. en quitar una arista. .2. Llamemos A = {v´ertices de {1. Ln . ¿cu´antos hay.2 ¿Cu´ antos ´ arboles abarcadores distintos contiene un Kr. s} que comparten arista con a en el ´arbol abarcador} B = {v´ertices de {1. . Ln y Kn . . en general.s . y cualquiera de las n que hay vale para ello. s´olo tiene un a´rbol abarcador (´el mismo). Con esta informaci´ on podemos contar el n´ umero de ´arboles abarcadores distintos. Y s´olo uno. . se formar´ıa un ciclo. para el que |A(Cn )| = |V (Cn )|. . s} y de forma que |A ∩ B| = 1 (versi´ on preliminar 16 de diciembre de 2003) . . as´ı que ´arboles ´arboles distintos con el conjunto = nn−2 . claro. Algoritmos en ´arboles y optimizaci´on 643 pr eli m in ar una cuesti´on m´as general. . el grafo con n v´ertices que m´as ´arboles abarcadores tiene. El grafo tiene 2s aristas y s + 2 v´ertices. .2. n} Kn es. . Es complicado localizar los ciclos del grafo para ir a rompi´endolos. Ve rs i´on Consideremos el grafo circular con n v´ertices.s ⇐⇒ Elegir dos conjuntos. m´ as de un ´arbol abarcador es bastante evidente. depender´a. la cuesti´on de hallar un a´rbol abarcador en un grafo sin pesos no es sino un caso particular de este planteamiento m´as general. Pero ha de haber al menos uno que se conecte a ambos. . n}. Por u ´ltimo. Un ´arbol abarcador del grafo contendr´a a una serie de v´ertices de los de la derecha que se conectan al v´ertice b a y otros que se conectan al v´ertice b. . . . pues permitiremos que las aristas tengan “peso”. simplemente. Esto es un resultado general: si G es un ´arbol. consideremos el grafo completo con n v´ertices. as´ı que tendremos que quitar s − 1 aristas sin que se desconecte el grafo.2. s ≥ 2.9. Pero en Kn est´an todas las aristas posibles. del tipo de grafo considerado.

Una vez elegido el elemento especial.3 Kirchhoff y Cayley. calcular el n´ umero de ´arboles abarcadores del grafo escalera que aparece a la derecha. Este desde 1 (si G es ya un ´arbol) hasta n n´ umero mide.s . as´ı que es una matriz singular.s tiene sr−1 rs−1 ´arboles abarcadores distintos (en el ejercicio 9. nos proporciona una manera de calcular esa medida de complejidad en un grafo arbitrario. Esto se puede hacer de 2s−1 formas distintas. Obs´ervese que. donde M es la matriz de vecindades del grafo y D es la matriz diagonal cuyas entradas son los grados de los v´ertices. Queremos contar cu´antos ´arboles abarcadores tiene un grafo completo Kn .j .3 se ♣ pide estudiar el caso del K3.j = (−1)i+j Mi. Ve rs i´on Teorema 9. sigamos el siguiente proceso: Elegimos el elemento de la intersecci´on (hay s posibilidades).j es el determinante de la matriz A.´ Cap´ıtulo 9. basta formar una lista de longitud s − 1 con repetici´on permitida con dos s´ımbolos (uno corresponde a estar en A y el otro a estar en B). en cierta manera. en la matriz D − M . el menor Mi. todas sus filas y columnas suman 1. el n´ umero de ´arboles abarcadores que contiene va n−2 . a la que le hemos quitado la fila i y la columna j.2. 2. Las matrices M y D son      M =     0 1 0 0 0 1 1 0 1 0 1 0 0 1 0 1 0 0 0 0 1 0 1 0 0 1 0 1 0 1 1 0 0 0 1 0                y D=     2 0 0 0 0 0 0 3 0 0 0 0 0 0 2 0 0 0 0 0 0 2 0 0 0 0 0 0 3 0 0 0 0 0 0 2 1 2 3 4 5 6     . cuyos v´ertices 5 Dada una matriz A n × n.     El c´alculo de un cofactor cualquiera de D − M (a mano o bien con ayuda de un paquete matem´atico) nos lleva a concluir que hay 15 a´rboles abarcadores en el grafo. O. por ejemplo. El cofactor correspondiente es Ci. (versi´ on preliminar 16 de diciembre de 2003) . la complejidad del grafo. que enunciamos sin demostraci´on.2. Arboles 644 Para contar el n´ umero de maneras de elegir A y B. pr eli m in ar 1. lo que es equivalente. basta decidir si el resto de los elementos est´an en A ´o en B.s ). En total tenemos que hay s 2s−1 ´arboles abarcadores de K2. El resultado general es el siguiente: un grafo Kr. El siguiente resultado. Si un grafo conexo G tiene n v´ertices. cuando G sea el grafo completo con n v´ertices. ♣ Ejemplo 9. Este resultado permite.7 (Kirchhoff ) El n´ umero de a ´rboles abarcadores de un grafo G coincide con 5 un cofactor cualquiera de la matriz D − M .

Ve rs i´on 3 Para modelar esta situaci´on. dispo1 qu´ nemos de la informaci´on sobre el coste de cada uno de 5 7 1 4 8 8 esos tramos. Sin embargo. y la respuesta que buscamos est´a. El lector podr´a comprobar que.. elegir una red que conecte 1 todas las ciudades con el menor coste posible. y sus entradas ser´an los pesos de las aristas (o 0 si no hay tales aristas).. aunque suene muy razonable. . El estudio previo de ingenier´ıa nos informa de 10 5 4 e tramos es posible construir pero.. (versi´ on preliminar 16 de diciembre de 2003) .2. s´ı que ser´ a fundamental cuando el problema que nos interese sea la construcci´ on de caminos m´ as cortos (v´ease la subsecci´ on 9. sacar un factor n de cada una de ellas. ´ Arbol abarcador de menor peso Vamos a considerar de nuevo el problema de la red de conducci´on.3). donde I es la matriz identidad (n − 1) × (n − 1). adem´as. cada arista a tenga asociado lo que llamaremos su peso. 0             D−M =    n − 1 −1 −1 −1 n − 1 −1 −1 −1 n − 1 . −1 −1 −1 . Queremos. El resultado de Cayley queda. con las operaciones adecuadas (sumar la primera fila a las restantes. de nuevo. . −1 −1 −1 ··· ··· ··· . y sumarle finalmente todas las filas a la primera). ♣ 9.1. . La infor11 maci´on de los costes se traduce en que cada arista lleva asociado un n´ umero. El valor de ese determinante.  p(a). adem´ as. pero ahora a˜ nadiremos un ingrediente 6 1 3 1 4 2 nuevo. .. Lo que buscamos es un ´arbol abarcador del grafo. 1 1 1 ··· 1 1 1 . pero de dimensiones (n − 1) × (n − 1). probado.9. claro. La matriz de vecindades de un grafo con pesos ser´a sim´etrica. de entre todos los posibles a´rboles abarcadores de G. necesitamos una generalizaci´on del concepto de grafo. Un grafo con pesos (o grafo ponderado) ser´ a un grafo G en el que.2. el de grafos dirigidos con pesos (redes). . . . . Recordemos que en la secci´on 8. Algoritmos en ´arboles y optimizaci´on 645 tienen todos grado n − 1:    M =    0 1 1 ··· 1 0 1 ··· 1 1 0 ··· . no cambia con las operaciones de eliminaci´ on gaussiana. con ceros en la diagonal.. salvo un signo. uno. .. . en el determinante de la matriz que es id´entica a D − M . el determinante original resulta ser nn−2 det(I). .. pero justo aqu´el (o aqu´ellos) para el que la suma de los costes de las aristas elegidas sea m´ınimo. . p(a). p(G) = a∈A(G) El problema es el siguiente: elegir.2. . .         pr eli m in ar  =⇒ ··· n − 1 La matriz de la derecha es n × n. no es en realidad necesaria para la discusi´ on que haremos sobre ´ arboles abarcadores de peso m´ınimo.. un n´ umero real no negativo6 .7 ya manejamos un concepto todav´ıa m´as general. . 6 Esta restricci´ on a pesos no negativos.. . La cantidad que nos interesa minimizar es lo que llamaremos el peso del grafo. recordemos.

La arista a1 es la de menor peso del grafo. y el resultado del algoritmo ser´a. todos los ´arboles abarcadores tienen el mismo peso (exactamente |V | − 1). V1 . Algoritmo de Kruskaal El procedimiento comienza ordenando las aristas en orden creciente de pesos: (a1 . y vamos a ir construyendo. Examinamos todas las aristas que tienen a v como uno de sus extremos y. Digamos que es la arista a. Ve rs i´on Supongamos que hemos construido los conjuntos Vi−1 (que contendr´a i v´ertices) y Ai−1 (con i−1 aristas). seleccionamos la que tenga un peso menor. . escogemos la de menor peso. de entre ellas. am ). . Observemos que no hemos exigido que el grafo G fuera conexo. . w} y A1 = {a}. A2 . A) con pesos. Bastar´ a. At−1 ). ⊆ V y de aristas A0 . (versi´ on preliminar 16 de diciembre de 2003) . Ambos son algoritmos austeros. como el que describimos para la coloraci´on de un grafo: en cada paso. A2 . elegiremos la mejor decisi´ on posible (que sea compatible con las restricciones del problema).´ Cap´ıtulo 9. . asignar peso 1 a cada arista. ⊆ A de la siguiente manera: Elegimos un v´ertice v cualquiera del grafo y formamos V0 = {v}. Sobre el hecho de que sea de peso m´ınimo reflexionamos m´as adelante. los sucesivos grafos Gj = (Vj . Si en el paso t no podemos encontrar una arista para continuar el procedimiento. tal como est´a dise˜ nado el algoritmo. En estas condiciones. A1 . . . donde p(ai ) ≤ p(aj ) si i ≤ j. . y la incluimos para formar A1 = {a1 }. Formamos entonces V1 = {v. el resultado es un ´arbol abarcador de la componente conexa en la que se encuentre el v´ertice de partida v. . Si lo fuera. ⊆ A de la siguiente manera: Al principio. . Si cuando el proceso acaba hemos incluido todos los v´ertices del grafo. que a˜ nadimos a Ai−1 para formar Ai . sucesivamente. Observemos que. Arboles 646 H. simplemente. de forma que p(H) =  p(a) a∈A(H) pr eli m in ar sea lo menor posible. . A0 = Ø. De entre las aristas que unan v´ertices de Vi−1 con v´ertices de V \Vi−1 . Obs´ervese que estos algoritmos servir´an tambi´en para resolver la cuesti´on cuando se trate de un grafo sin pesos. por ejemplo. Aj ) no pueden contener ciclos (y adem´as son conexos). el algoritmo acaba y la salida es el grafo Gt = (Vt−1 . El conjunto de aristas es. Algoritmo de Prim Partimos de un grafo G = (V. pero si no. el algoritmo producir´ıa un ´arbol abarcador. uno de estos ´arboles abarcadores. . . conjuntos de v´ertices V0 . en este paso. El “nuevo” v´ertice se a˜ nade a los de Vi−1 para formar Vi . En cada paso se van determinando conjuntos de aristas A0 . A0 = Ø. Vamos a describir un par de algoritmos sencillos que consiguen este objetivo. el resultado es un a´rbol abarcador. A1 . . y sea w su otro extremo.

ambos algoritmos producen a´rboles abarcadores. mientras que en el de Kruskal no necesariamente: son bosques y s´ olo al final. mantener en cada paso el car´ acter de ´arbol. en el paso i = m). En el grafo con pesos que aparece a la izquierda. {5. Observaciones Ve rs i´on Empecemos insistiendo en que. Si cambiamos la ordenaci´on de las aristas. si G es conexo. se pueden elegir tanto la {2. en el de Kruskal.9. siempre existe. ir´ıa 5 1 2 4 incluyendo. 6} 2 4 como la {1. las aristas {3. Los dos algoritmos que aqu´ı hemos descrito pertenecen a los que hemos dado en llamar la clase de los algoritmos austeros. En el u ´ltimo paso. 1}. 5}. los sucesivos grafos son siempre ´arboles. al menos. 6}). que sea compatible con las restricciones del problema (en el de Prim. Si el grafo de partida es conexo. {3. el resultado de ambos (versi´ on preliminar 16 de diciembre de 2003) . un ´arbol abarcador de peso m´ınimo. el algo2 3 ritmo de Prim. Podr´ıa ser. dado un grafo G conexo con pesos. 2} y 3 3 1 2 {2. 4}. En caso contrario. los sucesivos grafos producidos por este procedimiento no tienen por qu´e ser ´arboles (aunque s´ı bosques). El algoritmo acaba cuando cuando Ai contenga |V | − 1 aristas o bien cuando hayamos examinado todas las aristas (esto es. 6}. si la adici´on de la arista ai no hace que se forme un ciclo en el grafo producido hasta el momento. 6}. 3}. pero podr´ıa haber varios con ese peso m´ınimo. 2}. El conjunto Ai ser´a Ai−1 ∪ {ai } si es que el grafo (V. 5} (ya tendr´ıamos cinco aristas. En el de Prim. Pi´ensese. 6 6 5 y acabando con la elecci´on de la arista {3. Ai = Ai−1 . El de Prim partir´ıa de una ordenaci´ on de las 2 3 5 aristas seg´ un sus pesos. 6} (pues se formar´ıa un ciclo). la siguiente: 1 2 4 ({1. 4}. obtendr´ıamos un ´arbol abarcador distinto (lo mismo ocurrir´ıa con el de Prim en cada momento en que tengamos varias elecciones posibles). {2. Uno de los posibles resultados es el ´arbol 6 6 5 abarcador. 5}. Es decir. 6}. que es de peso m´ınimo. por ejemplo. {5. Ai−1 ∪ {ai }) no contiene ciclos. respetando el que aparezcan en orden creciente de pesos. en un grafo completo Kn con pesos 1 en cada una de sus aristas: hay nn−2 ´arboles abarcadores distintos. {1. salt´ andose {1. sucesivamente. la m´as “barata” en este caso. 5}. Algoritmos en ´arboles y optimizaci´on 647 pr eli m in ar Supongamos que ya hemos determinado Ai−1 . empezando por ejemplo en el v´ertice 3. tendremos con seguridad un a´rbol abarcador. {2. {4. 5}. {3. 3 3 1 2 2 4 El algoritmo ir´ıa incluyendo las aristas en el orden que aparecen en esa lista. en este caso. En un grafo G conexo con pesos. las que necesitamos). porque en cada etapa toman la decisi´on ´optima. As´ı que estos procedimientos sirven de comprobaci´on de la conexi´on de un grafo arbitrario. a diferencia del algoritmo de Prim. El resultado ser´ıa el mismo a´rbol abarcador de antes. y todos tienen el mismo peso. se puede demostrar que. si G es conexo. Pero. No siempre estas estrategias “austeras” garantizan que el resultado obtenido sea el mejor posible (recu´erdese el algoritmo de coloreado de grafos). {2. n − 1. Obs´ervese que. entonces acaba necesariamente en un ´arbol abarcador (aunque el que sea de peso m´ınimo no es tan claro). que no se formen ciclos).2. {3. por ejemplo. que dibujamos abajo a la izquierda.

El camino ser´ıa A → B → E. Arboles 648 ambos algoritmos.´ Cap´ıtulo 9. Un an´ alisis “global” (por D ejemplo. Pero si procedi´eramos “austeramente”. es un a´rbol abarcador de peso m´ınimo (si hay varios. En el grafo dirigido -4 A E de la derecha. siguiendo el sentido de las flechas. enumerar todos los posibles caminos y determinar cu´al es el m´as barato de todos ellos) nos llevar´ıa a la respuesta correcta: A → D → E. queremos encontrar un camino barato de A a * j 5 1 E. tanto el de Prim como el de Kruskaal. que no es el mejor posible. la que lleva a C. Una vez tomada esta decisi´on. producen uno de ellos). partiendo de A elegir´ıamos la de menor peso. B Ve rs i´on pr eli m in ar El siguiente ejemplo nos ilustra sobre las limitaciones que 3* 8 C 4j pueden tener m´etodos localmente ´optimos. ya no hay marcha atr´as: no nos queda m´as alternativa que escoger la arista que lleva a B. (versi´ on preliminar 16 de diciembre de 2003) .

j}. j = 1. . .s y K3.3 Calcular el n´ umero de a ´rboles abarcadores distintos de un grafo isomorfo a K3. 2.2 Deducir del ejercicio anterior que si G es un grafo conexo con n v´ertices entonces pG (x) ≤ x(x − 1) n−1 . j = 1.4 Consideremos el grafo que se obtiene al tomar n tri´ angulos con exactamente un v´ertice com´ un. b y c. Es decir. 9.s .2.) ¿Cu´ antos a ´rboles abarcadores tiene? Sugerencia. . Soluci´ on.5 Sea H un a ´rbol abarcador de peso m´ınimo de un grafo ponderado G.2. Observar que en G hay m´ as prohibiciones (habr´ a menos coloraciones v´alidas). 12. . Ve rs i´on Soluci´ on. Con los resultados de K2. . s} pero de manera que estos tres conjuntos est´en conectados. . Hay que quitar una arista en cada tri´ angulo. . a trav´es de un u ´nico v´ertice o a trav´es de dos v´ertices distintos. Algoritmos en ´arboles y optimizaci´on 655 EJERCICIOS. para cada x natural . 9. si llamamos a. Sugerencia.2. Construir los a´rboles abarcadores a la manera del caso K2. (versi´ on preliminar 16 de diciembre de 2003) . respectivamente) de forma que A ∪ B ∪ C = {1. 3n . 10} (12 v´ertices) y aristas {{a. 2. Probar que el peso de e es menor o igual que el peso de f . Las aristas que tienen a a como extremo pesan 1 y las aristas que tiene a b como extremo pesan 2. Sugerencia.6 Sea G el grafo con v´ertices {a.2. Probar que pG (x) ≤ pH (x). 2. b y c a los tres v´ertices de la izquierda. Obs´ervese que si no se cumpliera esa condici´on podr´ıamos escoger un ´arbol abarcador con menor peso.2. Por ser conexo. 10} (20 aristas). .2. x natural. Y sea e cualquier arista del camino (´ unico) en H que une los v´ertices de f . 9. . . se deben formar tres conjuntos de v´ertices A.1 Sean H y G dos grafos con los mismos v´ertices y de forma que toda arista de H lo sea tambi´en de G. parecer´ıa que el resultado general para Kr. N´ otese que los papeles de r y s son intercambiables. Sugerencia. 10} y {{b.2. . . Y obs´ervese que ahora hay dos maneras de realizar esta conexi´ on. G tiene al menos un a´rbol abarcador. B y C (los v´ertices que quedan unidos en el a´rbol abarcador a a. s2 3s−1 9.s . Soluci´ on. Sea f una arista de G que no est´ a en H. 1. pr eli m in ar 9.s ser´ıa sr−1 rs−1 .9. . (El n´ umero total de v´ertices es 2n + 1 y el n´ umero de aristas es 3n. . Sugerencia. ¿Cu´ al es el peso m´ınimo de entre los a ´rboles abarcadores de G? Sugerencia. 9.s . para todo x. j}. b. . Hay que mantener una (y s´ olo una) arista de las que llegan a b.

3. Ser´ a casi q-ario si el n´ umero de descendientes de cada v´ertice est´a comprendido entre 0 y q. y el tipo de ´arbol. Un ´arbol con ra´ız ser´a q-ario si cada progenitor tiene exactamente q descendientes (es decir. . Elegir. el v´ertice 1 o el 3 lleva a que la altura del a´rbol sea 2 o´ 4. se trata de un a´rbol en el que designamos un v´ertice especial. cualquiera de sus v´ertices puede servir como ra´ız. 0 1 2 3 = = = = pr eli m in ar En la secci´on 9. . En un a´rbol con ra´ız. Los par´ametros que manejaremos en un ´arbol con ra´ız ser´an el n´ umero de v´ertices. al m´aximo nivel no vac´ıo.. donde la ra´ız es el v´ertice en el que comienza el algoritmo. que sirve de origen de coordenadas. . n. como sugieren los siguientes esquemas: 2 3 1 4 3 2 1 4 5 5 6 6 Definamos algunos conceptos: Los descendientes de un v´ertice v son los v´ertices del nivel siguiente al de v que sean vecinos suyos (al v´ertice v se le dice progenitor de sus descendientes)... el n´ umero de hojas. 2 3 1 4 5 Ve rs i´on 6 Llamaremos a. Arboles 656 9. el n´ umero de descendientes es 0 si el v´ertice es hoja y q si es progenitor). a. por ejemplo. . Es importante recordar que el valor de a depende de la ra´ız elegida. (versi´ on preliminar 16 de diciembre de 2003) .. h.´ Cap´ıtulo 9. los v´ertices se agrupan en niveles: {ra´ız} {vecinos de la ra´ız} {vecinos de los v´ertices del nivel 1} \ {ra´ız} {vecinos de los v´ertices del nivel 2} \ {Nivel 1} . la ra´ız. Nivel j = {vecinos de los v´ertices del nivel j − 1} \ {Nivel j − 2} . la altura del ´arbol. . Un v´ertice es hoja de un ´arbol con ra´ız si no tiene descendientes. si partimos del ´arbol que aparece dibujado a la izquierda.1 y hablamos de a´rboles con ra´ız. Algunos de los algoritmos de optimizaci´on que hemos visto anteriormente producen estructuras de este tipo. ´ Arboles con ra´ız y dise˜ no de algoritmos Nivel Nivel Nivel Nivel . definido por el entero positivo q (podr´ a ser q-ario o casi q-ario). la altura del ´arbol. Por ejemplo.

queremos averiguar de la manera m´as econ´omica posible (con menos usos de la balanza) cu´al es la no legal. queremos ordenarlos con comparaciones binarias. a lo sumo. Veamos algunos ejemplos.1 > Ve rs i´on > + 3 pesa − 3 = ? 1 pesa + < = ? + 2 2. con el peso correcto. en el peor de los casos. Este procedimiento emplea. y. los dejamos tal como est´an. 4}.2 Un algoritmo de ordenaci´ on. Dada una lista de tres n´ umeros cualesquiera. por supuesto. en el tercer paso investigamos si el segundo es menor o igual que el tercero (observamos que aqu´ı hay respuestas que son incompatibles con las obtenidas anteriormente). Podemos. c). e =.3. Si representamos este proceso en un ´arbol. El a´rbol que hemos dise˜ nado es ternario (q = 3). 2. b. dependiendo de la respuesta. (a. Lo fundamental en este caso es que el algoritmo funciona porque el a´rbol tiene 9 hojas. {1. se queda equilibrada. Disponemos adem´as de una moneda patr´ on. Por u ´ ltimo.3. ♣ Ejemplo 9. comparar sucesivamente la moneda patr´on con las otras cuatro. una de ellas no tiene el peso correcto (no es legal).1 Un ´ arbol de decisi´ on. 3.´ 9. cuatro pesadas para obtener la respuesta (aunque a veces la podamos obtener con menos). si es no.3. Dise˜ nemos un procedimiento alternativo. justo el n´ umero de respuestas posibles (1 pesa m´as. comprobamos si el primer elemento es menor o igual que el tercero. 2 pesa menos. tiene altura a = 2 (el n´ umero de pesadas) y n´ umero de hojas h = 9. y de nuevo procedemos como antes. Dise˜ namos el siguiente algoritmo: en el primer paso.3 0 < ~ 2 pesa − > s 4 = 2 < ~ 4 pesa − ? 4 pesa + todas buenas > 2 pesa - 3 = ? 1 pesa − < ~ 3 pesa + Los s´ımbolos casi se explican por s´ı mismos: < significa que la balanza se vence hacia la derecha. En el segundo. que tiene tres resultados posibles. etc). Tenemos 4 monedas. miramos si el primero es menor o igual que el segundo. Arboles con ra´ız y dise˜ no de algoritmos 657 La importancia de estos ´arboles con ra´ız radica en que se utilizan para representar algoritmos en los que intervienen operaciones binarias (o q-arias) sucesivas. pr eli m in ar Ejemplo 9. Si la respuesta es s´ı. > hacia la izquierda. El problema es el siguiente: con una balanza. el que se recoge en el siguiente esquema: 0. los permutamos. la 0. obtenemos (versi´ on preliminar 16 de diciembre de 2003) .

para recordar cu´antas monedas quedan en el mont´ on. que llamaremos I y II. que analizaremos detalladamente m´as adelante (secci´on 9. alternativamente. una o dos monedas del mont´on de seis. Veremos que no. como en cada movimiento se reduce el tama˜ no del mont´on. dependiendo de cu´al sea el jugador al que le toca jugar. ♣ Ejemplo 9. Adem´as. que de nuevo coincide con el n´ umero de resultados posibles (las 3! = 6 posibles ordenaciones). El jugador I tiene dos opciones. el a´rbol que representa los diferentes desarrollos del mismo tambi´en lo ser´a. y un n´ umero.4). quitar una o dos monedas. obtenemos que h ≤ 4. estas dos acciones vendr´ an representadas por aristas. Ve rs i´on Consideremos el siguiente juego: de un mont´ on inicial de monedas. a su vez.3. por tanto.3 El juego de Nim con seis monedas. el juego es finito y. el primer v´ertice vendr´a etiquetado con un I6 . en cada paso. Para el caso que nos ocupa. y con ese n´ umero de hojas no podr´ıamos cubrir todos los resultados posibles. para recordar que juega I y que hay seis monedas en el mont´on. van retirando. en menos pasos. Gana el jugador que retira las u ´ltimas monedas de la mesa. Arboles 658 ¿1a ≤ 3a ? abc s´ı no 2a ? no s´ı abc ¿2a ≤ 3a ? cba pr eli m in ar abc ¿1a ≤ bac s´ı no abc acb no s´ı s´ı bac cba no no s´ı — bca cba cab s´ı no bca — El ´arbol as´ı construido es casi binario. Para cada una de estas elecciones. por ejemplo dos. si a es 2. dos jugadores.´ Cap´ıtulo 9. el jugador II se encuentra con dos configuraciones distintas y en cada una de ellas puede tomar. con comparaciones binarias. ´ Esta es una de las muchas variantes del llamado juego de Nim. dos decisiones: I6 I6 II5 II5 II4 I4 II4 I3 I3 I2 Obs´ervese que. hacia la izquierda si quita una. Lo que ahora nos interesa es que podemos describir los posibles desarrollos de la partida con a´rboles: representaremos cada configuraci´on de monedas con un v´ertice. Podr´ıamos preguntarnos si se podr´ıan ordenar estos tres n´ umeros. que recordamos que eran 6. que etiquetaremos con un I o un II. porque en un ´arbol casi binario se cumplir´ a que h ≤ 2a . hacia la derecha si quita dos monedas. un mont´ on inicial de seis monedas. As´ı. con a = 3 y h = 6. para el mont´ on de partida que dibujamos a la derecha. el ´arbol completo del juego es el que aparece debajo de (versi´ on preliminar 16 de diciembre de 2003) . lo que obtenemos es un a´rbol.

3. el ´arbol q-ario con menor n´ umero de hojas (para a fijo) ser´ıa aqu´el en el que las hojas van apareciendo lo antes posible. Los dos siguientes dibujos representan ambas situaciones: a−1 a (versi´ on preliminar 16 de diciembre de 2003) a−1 a . la clave para que los algoritmos (representados por a´rboles q-arios. En el otro extremo. Queremos estimar el n´ umero de hojas que puede tener un ´arbol con ra´ız con esas caracter´ısticas.´ 9. etiquetamos las hojas del ´arbol con G si en esa hoja el jugador I ha ganado la partida y con P si ha perdido: II5 II4 I4 I3 II3 II1 II2 I2 I1 I1 G G G II2 P I1 G P I3 II1 P P I2 II2 I1 II1 P P II1 G P G ♣ Relaci´ on entre a y h en un ´ arbol q-ario Ve rs i´on 9. y las cotas que obtendremos nos permitir´an establecer estimaciones a priori sobre. Supongamos fijados a y q. pr eli m in ar I6 En los ejemplos anteriores. o casi q-arios) funcionaran era que el n´ umero de hojas cubriera todas las posibles respuestas. por ejemplo. Parece que la configuraci´ on con mayor n´ umero de hojas es aqu´ella en la que todas las hojas est´an en el u ´ltimo nivel. Estos dos par´ametros. Arboles con ra´ız y dise˜ no de algoritmos 659 estas l´ıneas.3. el m´ınimo n´ umero de pasos que puede tener un cierto algoritmo.1. no son independientes. Como preparaci´on al an´alisis que haremos m´as adelante. la altura y el n´ umero de hojas.

con descendientes).1). Ve rs i´on N´otese que hay a lo sumo q sub-´arboles Bi . La prueba de este resultado la dejamos como ejercicio (v´ease el ejercicio 9. y el n´ umero de hojas debe poder cubrir todos los resultados. B2 nos (en altura) que A y son todos ´arboles con ra´ız Los Bi son m´as peque˜ casi q-arios. Recordemos que con r pesadas siempre lo podemos hacer. y la moneda patr´ on. h=  i i En el otro sentido. que h ≤ q a . para cada i (el peor caso corresponder´ıa a los sub-´arboles que se extendieran hasta altura a − 1). pero ahora con r monedas (en lugar de cuatro). pero no al rev´es. h ≤ q a . como en cada Esto nos sugiere. como m´ınimo. Sea entonces un a´rbol 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.´ Cap´ıtulo 9. umero de hojas de cada sub-´arbol Bi . h = s (q − 1) + 1. Un algoritmo que permita detectar la moneda falsa debe recoger todos estos resultados. es claro B1 que h ≤ q. la altura del a´rbol. (versi´ on preliminar 16 de diciembre de 2003) . como afirm´abamos antes. Si lo representamos por un a´rbol ternario. N´otese que hemos relajado las condiciones sobre el tipo de ´arbol. entonces requerir´ a. desde el 1 hasta el a − 1. que es que todas sean legales. Arboles 660 on extrema.3.4 Apliquemos las cotas obtenidas al problema de la balanza. necesitaremos 2r + 1 ≤ 3a =⇒ a ≥ log3 (2r + 1).9 En todo ´ arbol con ra´ız q-ario. Es claro que el n´ umero de posibles resultados es 2r + 1. la altura ser´a el n´ umero m´aximo de pesadas necesarias para alcanzar todos los posibles resultados. ha de haber al menos un v´ertice interior). por un lado. As´ı que   hi ≤ q ai ≤ qq a−1 = q a . Si a = 1. que hi ≤ q ai (la misma q para todos). pr eli m in ar Proposici´ on 9. donde s es el n´ umero de v´ertices interiores del a ´rbol (esto es. desde el 0 hasta el a − 1. se puede probar la siguiente cota: Proposici´ on 9. si est´ a basado en comparaciones ternarias.8 En todo ´ arbol con ra´ız casi q-ario. Como a ≥ s (porque en cada nivel. en general). llamando ai y hi a la altura y el n´ respectivamente. porque para cada moneda hay dos posibles (pesa m´ as o menos de lo legal) y hay un resultado extra. Como h ≤ 3a . ´ n. La hip´otesis de inducci´on nos dir´ıa que para los Bi se tiene. sea cual sea el algoritmo. de las cuales a lo suma una es falsa. Ejemplo 9. deducimos que h ≥ a (q − 1) + 1. aqu´ı comprobamos que. Lo probaremos por inducci´on en a. Para la otra situaci´ nivel. y que ai ≤ a − 1.3. basta con Demostracio que sea casi q-ario (por supuesto. un a´rbol q-ario es tambi´en casi q-ario. 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.

a cada hoja le corresponde un desarrollo del juego distinto). En el ejemplo que hemos descrito. (versi´ on preliminar 16 de diciembre de 2003) . as´ı que podemos mejorar umero de hojas que tiene el ´arbol del juego de Nim con n la estimaci´on. Si llamamos Pn al n´ monedas tendremos que Pn ≤ 2n−1 + 1 .´ 9. pr eli m in ar r=4 as´ı que al menos se requieren dos pesadas. as´ı que necesitaremos que 2# pasos ≥ n! =⇒ # pasos ≥ log2 (n!) Por ejemplo. Pero ´estas son cotas te´oricas. por supuesto. Arboles con ra´ız y dise˜ no de algoritmos 661 un n´ umero de pasos del orden de log r. De la misma manera obtendr´ıamos que para r entre 3 y 13 necesitar´ıamos al menos necesitaremos 3 pesadas. Y se requerir´ıan cuatro pesadas.4. dependiendo de si el jugador I gana o pierde.3. as´ı que podemos estimar # { posibles partidas en un Nim con n monedas} = #{hojas del a´rbol} ≤ 2n . si r = 4.5 binarias. para cualquier r entre 14 y 40.6 Contemos el n´ umero de hojas en el juego de Nim. 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 Ve rs i´on Utilizando las estimaciones sobre el tama˜ no de n! que obtuvimos en la subsecci´on 2.3. en realidad cada hoja representa un posible final del juego (y de hecho. Aunque hemos etiquetado las hojas s´ olo con G y P . podemos asegurar que  n n  n = n log2 . Por ejemplo. Tambi´en podemos observar que el u ´ltimo nivel s´olo tiene una hoja. el juego de Nim con seis monedas.4.3. otra cosa. al menos. porque el camino de mayor longitud en el a´rbol es aqu´el en el que vamos quitando una sola moneda en cada turno (la rama de la izquierda). tendremos que =⇒ a ≥ log3 9 = 2 . ♣ Ejemplo 9. Si el juego de Nim parte de n monedas. podemos contar en el ´arbol que hay exactamente 13 hojas. Apliqu´emoslas al algoritmo para ordenar n n´ umeros con comparaciones El n´ umero de resultados posibles es n!. # pasos ≥ log2 (n!) > log2 e e ♣ Ejemplo 9. como en el ejemplo que propon´ıamos. es dise˜ nar un algoritmo que permita hacerlo con ese n´ umero m´ınimo de pesadas. es f´ acil convencerse de que la altura del ´arbol (que es casi-binario) es siempre n.

. . . De acuerdo. vk . si es que es uno de los que vive en esa m´ axima generaci´on). . as´ı que el n´ umero de hojas de un juego de Nim con n monedas es justamente el n´ umero de Fibonacci ♣ Fn+1 . Para ello. . . hk } a la mayor altura a la que encontramos alguno de los v´ertices se˜ nalados. . . .2. con el resto de los v´ertices v2 . . pero eso no afecta al n´ umero de hojas que tenga cada ´arbol. . . . que estar´an a alturas (generaciones) h1 . v1 . los papeles de I y II est´an intercambiados. Observemos que esta elecci´on de v´ertices se corresponde con una poda del ´arbol en la que las hojas superivientes est´an a alturas h1 . . . j=1 Ve´amoslo: hemos seleccionado unos v´ertices v1 . De manera m´as precisa. vk que est´an a alturas h1 . . .. . Los valores iniciales son P1 = 1 y P2 = 2. a seleccionar un conjunto de v´ertices en el ´arbol infinito con el siguiente procedimiento: tomamos el v´ertice v1 y escogemos sus 2H−h1 descendientes que est´an en la generaci´on H (quiz´ as solo el propio v1 . . Pn = Pn−1 + Pn−2 n ≥ 2 . . en una poda cualquiera. . .. . . . es decir. Arboles 662 pr eli m in ar Pero en realidad podemos calcular expl´ıcitamente el n´ umero de hojas que hay. nuestra conocida ecuaci´on de Fibonacci.3. N´otese que los v´ertices que seleccionamos de esta manera son todos distintos. Llamemos H = m´ax{h1 . y esto es lo que nos interesa comprobar. el n´ umero de hojas del ´arbol total es la suma del n´ umero de hojas que tenga cada sub´arbol. . . . 9. Vamos ahora.. La poda de un ´ arbol binario Tomemos el ´arbol binario (con ra´ız) infinito. los hj correspondientes han de cumplir que k  2−hj ≤ 1 . vk a estos v´ertices se˜ nalados.. . que los hj no pueden ser arbitrariamente peque˜ nos. Esto lo hacemos. . . Por supuesto. hk . v4 : Ve rs i´on - . fij´emonos en que un ´arbol de Nim con n monedas se compone de un ´arbol de Nim con n − 1 monedas (el ´arbol que encontramos a partir del descendiente de la ra´ız que est´a a la izquierda) y otro con n − 2 monedas (el de la derecha). hk . . . . . a partir de esta elecci´on inicial. . (versi´ on preliminar 16 de diciembre de 2003) . es decir.´ Cap´ıtulo 9. . Llamemos v1 . hk . En la siguiente figura hemos escogido cuatro v´ertices. v3 v1 v2 v4 . En ´el vamos a seleccionar k v´ertices de manera que ninguno de ellos sea antecesor de ning´ un otro. sucesivamente. . Exigir esta condici´on hace pensar que los v´ertices seleccionados no pueden estar todos muy “arriba” en el a´rbol.

Seleccionar un v´ertice de v3 v1 altura h ≥ 1 no es. en la generaci´ on H vamos se˜ nalando. . Arboles con ra´ız y dise˜ no de algoritmos 663  −h(v) 2 = v∈A k   pr eli m in ar En el dibujo que mostramos a la izquierda tenemos un ejemplo de este procedimiento. . la rama de la izquierda es un 1. . las listas (0. v3 y v4 : dos de la segunda generaci´on y otros dos de la tercera. etc. . y a los v´ertices v3 y v4 . . 2H v´ertices. a lo sumo. hk }. y elegir la de la derecha un 0. y sea D(vj ) el conjunto de v´ertices descendientes de vj que escogemos. . Elegir. 0.3. La desigualdad anterior nos dice que en esa generaci´on encontramos suficientes v´ertices como para completar el proceso. . respectivamente. en el a´rbol binario infinito. En el ejemplo que hemos estado considerando. en el ´arbol binario infinito. H = m´ax{h1 . 1). La m´axima altura es H = 3. . 1) y (0. Digamos que elegir. Llamamos. Y observamos que 1≥ k  j=1 −hj 2 −H =2 k  j=1 H−hj 2 =⇒ H 2 ≥ k  2H−hj . hk tales que 2 j ≤ 1. como antes. j=1 Ahora.´ 9. v∈A j=1 Ve rs i´on Lo interesante del asunto es que el resultado es cierto en el otro sentido: si damos unos  −h n´ umeros h1 . como en (versi´ on preliminar 16 de diciembre de 2003) . . Llamemos A a la elecci´on inicial de v´ertices y A a la nueva. . 0. En trazo m´as v3 v1 grueso hemos se˜ nalado los v´ertices de esta tercera generaci´on v2 v4 que seleccionamos en segundo lugar. etc. El c´ alculo an´alogo. Si sumamos los n´ umeros 2−hj para cada v´ertice vj obtenemos 1/4+1/4+1/8+1/8 = 3/4. . entonces en el ´arbol binario (infinito) podemos se˜ nalar k v´ertices v1 . un n´ umero no mayor que 1. vk de alturas respectivas h1 . de izquierda a H−h H−h 1 2 derecha y sucesivamente. Entonces −h(v) 2 j=1 v∈D(vj ) = k  −H 2 j=1 |D(vj )| =    =2H−hj k  2−hj = j=1  2−h(v) . al v2 v4 v´ertice v1 le corresponder´ıa la lista (1. v2 . Vamos ahora a interpretar este resultado etiquetando con listas de ceros y unos los v´ertices seleccionados. al v´ertice v2 la lista (1. El lector podr´a comprobar que el argumento funciona de manera an´aloga para el caso de un a´rbol q-ario general (sustituyendo el 2 por q en la desigualdad). Los v´ertices escogidos en primer lugar son v1 . Pero claro. hk y de manera que ninguno sea antecesor de ning´ un otro. . sino dar una lista de ceros y unos de longitud h. 0). 2 v´ertices. . luego 2 . . a v2 como el que tiene a los 2H−h2 siguientes. entonces. pero ahora para los v´ertices seleccionados en segundo lugar. 0). nos lleva al mismo resultado. . as´ı que k   2−hj = 2−h(v) = |A | 2−H ≤ 2H 2−H = 1 . en A hay. v∈A El valor de la suma es el mismo para A que para A . . El paso final consiste en se˜ nalar a v1 como el v´ertice de la generaci´on h1 que tiene a los primeros H−h 1 2 v´ertices seleccionados como descendientes en la generaci´on H.

a Hipatia le corresponde la lista (1). las listas de ceros y unos que codifiquen las posibles respuestas han de cumplir esta condici´on.´ Cap´ıtulo 9. Las tres listas cumplen la condici´ on de Gauss Fermat prefijo. Con la identificaci´ on habitual de 1 NO S´I ´ para el SI y 0 para el NO. a Gauss la (0. y posteriormente si es alem´ an. Esto es algo general: si queremos que el cuestionario realmente identifique a los k objetos.3. Preguntamos primero si el personaje es mujer. 1) y a Fermat la (0. podr´ıamos tener tres personajes.2) llamaremos a esta restricci´on condici´ on de prefijo y veremos que ser´a fundamental a la hora de construir ciertos c´odigos. Ejemplo 9. Arboles 664 el ejemplo. v´ertices con la restricci´on de que unos no sean antecesores de otros se traduce en que ninguna de las listas correspondientes puede coincidir con el comienzo de ninguna otra. 0).1 Probar la proposici´ on 9. 9. Gauss y Fermat.3. ♣ S´I NO Ve rs i´on EJERCICIOS. Veamos ahora otro ejemplo en el que esta condici´on de prefijo es relevante.9. (versi´ on preliminar 16 de diciembre de 2003) . El resultado es Hipatia el ´ a rbol que aparece a la izquierda. pr eli m in ar M´as adelante (en la secci´on 11.7 El problema de los cuestionarios. Tenemos k objetos que se pueden identificar con una sucesi´on de preguntas cuya respuesta es un S´I o un NO. Por ejemplo. tres ilustres matem´ aticos: Hipatia de Alejandr´ıa.