Está en la página 1de 7

Grafos 1. Isomorfismo 2. Codificacion de Huffman 3. Codificacion de Gray 4. Branch and Bound 5. Enumeracin de arboles 6. Enumeracin de s annin!

"rees

Apunte 4/ Arboles

1. Isomorfismo Cayley (1870) fue el primero en dedicar tiempo a la nocin del grafo llamado arbol a proposito del problema de los isomeros !someros son las sustancias "uimicas "ue tienen la misma formula "uimica pero "ue los atomos estan unidos de manera distinta #or e$emplo% considere dos isomeros para la formula C4&10

'n cada una de las dos figuras% los 4 (ertices negros representan los atomos de carbono "ue tienen 4 ramas ((alencia) "ue emergen de cada uno y los 10 (ertices blancos tienen c/u (alencia uno y representan los atomos de )idrogeno 'stas dos configuraciones tienen propiedades "uimicas distintas a pesar de la misma formula !gnorando los colores de los (ertices (negro y blanco) estos son grafos "ue no son isomorfos 'n cambio% los siguientes grafos son isomorfos y ambos representan *4

+efinicin +os grafos G,(&%-) y G.,(&.%-.) son isomorfos si se puede establecer una correspondencia biun/(oca entre sus (ertices "ue preser(e la adyacencia 's decir% e0iste una funcin biuni(oca f1--. tal "ue (u%()' sii (f(u)%f(())-. 2bser(acin 3o se conoce ningun algoritmo eficiente "ue determine si dos grafos son isomorfos 4as adelante precisaremos "ue "ueremos decir con 5algoritmo eficiente5 2. Codificacin de Huffman 6n alfabeto ,7% % 8 es un con$unto finito de simbolos "ue llamaremos letras 6na sucesion de letras la llamaremos palabra 6na sucesion de palabras la llamaremos mensaje 9ueremos transmitir un mensa$e usando solo ceros y unos #ara ello representaremos a cada letra de por una sucesion de ceros y unos "ue llamamos cdigo de la letra +os letras distintas deben tener diferente cdigo Adem:s% ning;n codigo debe ser prefi$o de otro codigo #or e$emplo% si el codigo de fuera 101 y el codigo de fuera 10 entonces en el mensa$e 101 no sabr/amos si empie<a con o con #odr/amos usar un espacio entre letra y letra pero entonces la codificacion tendr/a tres elementos1 0%1 y 5espacio5

Grafos

Apunte 4/ Arboles

Adem:s de e(itar la condicion de "ue )aya prefi$os% "ueremos minimi<ar la longitud de los mensa$es% es decir% la cantidad de ceros y unos "ue contienen #ara esto% las letras con mayor frecuencia de aparicin deben tener cdigos m:s cortos #ara construir un tal codigo procederemos de la siguiente manera #or e$emplo% sea , 7%%%8 Constru/mos un arbol binario con 4 )o$as "ue corresponden a las 4 letras +amos = e$emplos1
codigo 1 0 0 1 0 1 10 codigo = 0 0 0 1 1 1

A)ora a cada rama del arbol le asignamos un cero si es una rama i<"uierda y un uno en caso contrario A cada letra la representamos por los numeros "ue )ay en el camino "ue conduce desde la rai< del arbol a la )o$a As/ resulta la siguiente codificacion de las letras1 >etra Codigo ! Codigo !! 00 000 01 001 10 01 11 1 Ambos codigos satisfacen la pro)ibicion de prefi$os por la forma de construccion 2bser(emos "ue el codigo ! ser/a con(eniente si las 4 letras fueran igualmente frecuentes 'n cambio el codigo !! ser/a adecuado si fuera muy frecuente% fuera frecuente y y fueran poco frecuentes >lamemos f%f f y f las frecuencias relati(as de las 4 letras 'ntonces "uisieramos "ue la codificacion minimice el (alor esperado de la longitud de los codigos "ue aparecen en el mensa$e% es decir% es decir% "ueremos minimi<ar f> ? f>? f>? f> donde > es la longitud del camino desde la rai< )asta la )o$a% es decir% numero de ramas "ue forman el camino @ambien llamamos a > la profundidad de la )o$a 'l siguiente algoritmo arma un arbol "ue minimi<a la profundidad promedio Algoritmo Aea n el n;mero de letras "ue tiene !nicialmente representamos las letras por n arboles cada uno de los cuales solo contiene la ra/< y definimos su 5peso5 por la frecuencia de la letra 'n cada iteracion% el algoritmo une dos arboles binarios >a union la )acemos creando una ra/< "ue tiene = )i$os uno para cada cada arbol +efinimos el peso del arbol por la suma del peso de sus )o$as Al unir dos arboles se forma un arbol cuyo peso es la suma de los pesos de cada uno >os arboles "ue seleccionamos para unir en una dada iteracin son los "ue tienen menor peso entre los e0istentes en tal iteracion >uego de nB1 iteraciones termina el algoritmo con un solo arbol '$emplo >etras a b c d e f g Crecuencias =0 D 10 10 =D 1D 1D #rocediendo como indica el algoritmo se obtiene en la ultima iteracin el siguiente arbol1
0 0 1 1

1 0 0 1 1

0 0

e d

Grafos Eesulta la siguiente codificacin1 >etras a b c Codigos 00 0100 0101

Apunte 4/ Arboles

d 011

e 10

f 110

g 111

@eorema >a codificacion "ue obtiene este algoritmo minimi<a la longitud esperada del mensa$e +emostracion1 e$ercicioF 3. Codificacion de Gray 6na sucesion de =n (ectores de n componentes binarias (ceros o unos) tal "ue dos (ectores sucesi(os difieren entre si en solo una componente se llama un codigo de Gray de orden n #or e$emplo% para n,= 1 00 01 11 10 #ara n,G agreguemos un 0 y luego un 1 a la sucesion para n,= % es decir% 000 001 010 011 110 111 100 101 Con estas dos partes podemos formar un codigo de Gray de orden G asi1 100 110 010 000 001 011 111 101 'sta claro entonces como )acer un codigo de orden n?1 a partir de un codigo de orden n 6n codigo de Gray puede interpretarse como un camino )amiltoniano en un )ipercubo #or e$emplo% en G dimensiones consideremos las coordenadas (0%y%<) de los (ertices del cubo unitario >a sucesion de Gray se interpreta como recorrer todos los (ertices pasando de un (ertice a otro adyacente sin repetir ninguno
010 011 001 010 000 100 101 110 111

Como e$emplo del uso de este codigo% imaginemos "ue "ueremos transmitir una fotograf/a en blanco y negro usando ceros y unos A cada fran$a de la gama de grises desde blanco )asta negro le asignamos un codigo de Gray A las coordenadas de cada punto de la foto le asignamos el codigo del gris del punto 'l proposito es "ue si )ay un error en la transmisin "ue cambie un 0 por 1 en el mensa$e% esto no resulte en un importante cambio cuando el receptor de la transmision recomponga la foto 4. Branch and Bound 6n moc)ilero tiene "ue cargar su moc)ila con (arios de n art/culos 'l art/culo i tiene un peso pi y un (alor (i >a moc)ila admite un peso m:0imo H0 'l moc)ilero "uiere una carga de m:0imo (alor #odemos e0presar el problema as/1 sea 0 i,1 si el articulo i se incluye en la moc)ila y 0i,0 si no Ae trata de )allar un (ector binario 0,(0 1% 0= % % 0n) tal "ue Aea ma0imo -,

i= 1

vi xi

(1)
n i =1

Au$eto a las condiciones1

pi xi W0

(=) (G)

0i,0%1 para i,1%=% %n

Grafos

Apunte 4/ Arboles

Auponemos "ue 0,(1%1% %1) no satisface (=)% es decir% no caben todos los n articulos en la moc)ila +e cual"uier solucion 0 binaria diremos "ue es factible si satisface (=) >a dificultad de este problema radica en "ue los 0 i deben ser enteros 'n cambio es simple la solucion del problema si en lugar de (G) tu(ieramos la condicion1 00i1 (G.) +ecimos "ue la condicion (G) )a sido rela$ada '$ercicio 'l problema rela$ado (1) (=) y (G.) tiene la siguiente solucion 2rdenemos las i de forma "ue (i/pi sean no crecientes Asignemos a 01,1% 0=,1% %0I,1% 0I?1,% 0I?=,0% %0n,0 donde 01 y se satisface "ue p1 01 ? p= 0= ?pI 0I ? pI?1 , H0 'sta claro "ue (1)(=)(G.) tiene un ma0imo - "ue el ma0 - de (1)(=)(G) 'l problema (1)(=)(G) lo podriamos resol(er por enumeracion testeando cada uno de los =n (ectores binarios "ue satisfacen (=) y determinando cual es el de ma0imo - #ero si n es grande (n40) el tiempo "ue tarda la computadora ser/a impracticable 3o e0iste un metodo eficiente para este problema pero el siguiente es me$or "ue la bruta enumeracin >lamemos P al problema (1)(=)(G) y considermoslo la ra/< de un arbol binario +e P cuelga a la i<"uierda el subproblema P con la condicion adicional 01,0 y a la derec)a el subproblema P con la condicion 01,1% etc ((er figura) 'ste arbol tiene n ni(eles1 el primer ni(el son los dos )i$os de P y el ultimo ni(el tiene =n )o$as "ue significa "ue se )an especificado todos los posibles (alores de las n componentes de 0 01 ,0 01,1

0=,0 0G,0 0G ,1

0= ,1 0G ,0 0G ,1 0G,0

0= ,0

0= ,1 0G ,1 0G,0 0G,1

.................................................
'l algoritmo empie<a calculando una solucion inicial #ara ello ordenamos las i de forma "ue (i/pi (i,1%=% n) sea no creciente >a solucion inicial es 0 1,1 % 0= ,1% %0I,1% 0I?1,0% %0n,0 donde I es el mayor numero tal "ue (=) sea satisfec)a Al (alor - de esta solucion lo almacenamos en C >uego a C lo iremos actuali<ando a medida "ue el algoritmo encuentre una me$or solucion 's decir% el algoritmo recorrer: el arbol con una estrategia y cada (e< "ue (isita una )o$a compara la - de esta )o$a con C Ai -JC entonces guarda - en C y guarda la solucion de la )o$a 'l algoritmo mantiene un con$unto A de subproblemas pendientes (o (ertices a e0aminar) !nicialmente A solo contiene a P 'l algoritmo recorre el arbol con la estrategia de e0aminar primero el )i$o derec)o ('sta estrategia se llama dept)Bfirst)

Grafos

Apunte 4/ Arboles

Algoritmo 0) A7P8 1) Ai A, stop =) Eetirar de A el ultimo subproblema u ingresado A G) '0aminarlo1 ) +eterminar cota superior de - Ai cotaKC go to 1) ) Ai u no es factible go to 1) ) Ai u es una )o$a actuali<ar C y go to 1) ) Guardar en A primero el )i$o i<"uierdo de u y luego el derec)o Go to =) Aubrutina1 +eterminar cota superior de Cada (e< "ue e0aminamos un (ertice nos encontramos con un subproblema de (1)(=)(G) donde algunas componentes de 0 )an sido definidas (0i,0 o 1) y las restantes no )an sido definidas (0i,L) +eterminamos una cota superior para el (alor - de todas )o$as "ue se deri(an de este subproblema Consideremos el siguiente1 ma0imi<ar -,
i1 nodef

v x
i

v i xi ? i 1 def

(a) Au$eto a las condiciones1 pi x i pi xi H0 i i1 nodef 1 def (b) 0i ,0%1 para i no definida (c)

>a situacion es la siguiente Algunas 0i )an sido definidas% es decir% se )a decidido poner en la moc)ila algunos articulos y se )a decidido no poner otros >o "ue resta decidir es la carga de (alor m:0imo con los art/culos "ue aun no )an sido decididos 'sto es lo "ue e0presa el planteo (a)(b)(c) 'n lugar de resol(er este problema resol(emos (a)(b) con la condicion 00i 1 'l ma0 - de este problema rela$ado es mayor (o igual) "ue el - de cual"uier )o$a "ue se deri(e del subproblema de este (ertice 'sto nos da un criterio para podar el presente (ertice Ai el ma0 - del problema rela$ado es "ue C podamos este (ertice 5. Enumeracin de #rboles Grafos con $er"ices dis"in!uibles &ay 8 grafos con G (ertices distinguibles pero solo )ay 4 "ue no son isomorfos

@eorema 'l numero de grafos con n (ertices distinguibles es +emostracion

n =

Grafos

Apunte 4/ Arboles

n Cada una de los = posibles ramas esta presente o no en el grafo

'$ercicio
n Cuantos grafos )ay con n (ertices distinguibles y m = ramasL

%rboles binarios Consideremos un arbol binario con ra/< Eecordamos "ue esto significa "ue cada (ertice tiene 0%1 o = )i$os Adem:s distingamos el )i$o i<"uierdo del )i$o derec)o 9ueremos contar cuantos arboles distintos de este tipo )ay "ue tengan n (ertices Consideremos el e$emplo n,4 @enemos los siguientes casos1 a) >a rai< tiene solo un )i$o i<"uierdo y de el cuelgan todos los arboles con G (ertices Ad(ierta en la figura "ue para n,G )ay D arboles distintos

b) >a ra/< tiene solo un )i$o derec)o #or ra<ones de simetr/a esto nos da otros D c) >a rai< tiene un )i$o i<"uierdo y uno derec)o y del )i$o i<"uierdo cuelga un )i$o i<"uierdo o derec)o lo "ue da = mas

d) >a rai< tiene un )i$o i<"uierdo y uno derec)o y del )i$o derec)o cuelga un )i$o i<"uierdo o derec)o #or ra<ones de simetr/a esto nos da = mas Concluimos "ue )ay 14 arboles distintos Ea<onemos a)ora en general Ai el arbol tiene n (ertices sea a n al n;mero de los mismos +e la rai< colgaran nB1 (ertices y tenemos los siguientes casos1 a) >os nB1 (ertices cuelgan a la i<"uierda y totali<an a nB1 subarboles b) A la i<"uierda cuelgan nB= (ertices por un total de a nB= subarboles y otro (ertice solo a la derec)a c) A la i<"uierda cuelgan nBG (ertices por un total de a nBG subarboles y a la derec)a cuelgan = (ertices "ue forman a= subarboles (a=,=) 'stos se combina por un total de anBG a= arboles -emos entonces "ue el total an puede e0presarse por la siguiente relacion de recurrencia1 an, anB1 ? anB=? anBG a= ? ? a= anBG ? anB= ? anB1 Eelacin (alida para n,=%G%4% si definimos a1,1 an, anB1 ? anB= a1? anBG a= ? ? a= anBG ? a1 anB= ? anB1 (1) &allaremos an encontrando la funcion generatriz de las an1 G(0), 1?a10?a=0=? Ad(irtamos "ue MG(0)N=, 1? (a1?a1)0? (a=?a1a1?a=)0=? ? (anB1?anB= a1? ? a= anBG? anB= ?anB n 1)0 ? A partir de relacion (1) tenemos1 a1 , 1

Grafos a= , a1?a1 aG , a=?a1a1?a= a1 , 1 a=0 , (a1?a1)0 aG0=, (a=?a1a1?a=)0=


...

Apunte 4/ Arboles

1 ( G ( x ) 1) = MG ( x )N = x

0MG(0)N= P G(0) ? 1 ,0 G(0), 1

1 4x =x

(=)
(G)

#or el desarrollo de 3eQton del binomio tenemos1 1 / = 1/ = k 1 4 x = (1 4 x ) = k =0 k ( 4 x )


1/ = '$ercicio1 'n (G) se define =
1/ = k = k 1 ( 1) 1 = k 1 k =

( 1 )( 1 1)( 1 = ) ( 1 k + 1) = = = = kF

+emostrar "ue

=k = k 1 (I,1%=% )

6sando el resultado del e$ercicio en (G) y reempla<ando en (=) G(0),


= k 1 = ( 1) 1 1 + k =1 k =x

=k = x k k 1

1 =k k = k =0 k + 1 k x
1 =k k +1 k

As/ el n;mero de arboles binarios con I (ertices es

(I,1%=% )

'$ercicio Considere una operacion binaria donde ((ab)c) no es necesariamente e"ui(alente a (a(bc)) Calcule el n;mero de maneras distintas de colocar los parentesis al reali<ar las n operaciones en a1a= an 6. & annin! 'rees de (n 9ueremos saber cuantos arboles con n (ertices )ay suponiendo "ue los (ertices se distinguen entre si o lo "ue es e"ui(alente1 cuantos spanning trees tiene * n 'sto se trata en el apRndice1 Apunte 4 1 ,,,,