110
Fundamentos de Inform´ atica II ILI-153 Horst H. von Brand 2º Semestre 2009 Resumen Este documento presenta el resumen de las clases de Fundamentos de Inform´ atica II, dictada durante el 2º semestre de 2008 y 2009. Hay material adicional en estos apuntes, que no se vio en clase. 1. Funciones generatrices En lo que sigue veremos c´ omo usar series de potencias (una herramienta del an´ alisis, vale decir matem´ aticas de lo continuo) para resolver una variedad de problemas discretos. La idea de funciones generatrices permite resolver muchos problemas de forma simple y transparente. Incluso cuando no da soluciones puede iluminar, indicando relaciones entre problemas que a primera vista no son obvias. El aplicar herramientas anal´ ıticas (especialmente la teor´ ıa de funciones de variables complejas) permite deducir resultados que de otra forma ser´ ıan muy dif´ ıciles de obtener. as que exponer la teor´ ıa tras las t´ ecnicas, mostraremos aplicaciones. Para detalles de la teor´ ıa (y mucho m´ as al respecto) v´ ease [12]. Muchos de nuestros ejemplos llevan a resultados de inter´ es independiente. Sea una secuencia ha n i 0 = ha 0 ,a 1 ,a 2 ,...,a n ,...i. La funci´ongeneratriz (ordinaria) de la secuencia es la serie de potencias: A(x)= X 0n a n x n El punto es que la serie representa en forma compacta y manejable la secuencia infinita. Como veremos, en muchos casos resulta bastante m´ as sencillo manipular la serie que trabajar directamente con la secuencia. Para un primer ejemplo, volveremos al problema de la Competencia de Ensayos de la Universidad de Miskatonic, que llev´ o a la relaci´ on: b 2r+1 = b 2r-1 + r +1 b 1 =1 con lo que tenemos, como antes (arbitrariamente dando el valor cero a los que no quedan definidos por la recurrencia): hb n i 0 = h0, 1, 0, 3, 0, 6, 0, 10, 0, 15,...i Contar con algunos valores sirve para verificar (y para “sentir” c´ omo se comportan). Definamos la serie: B(x)= X r0 b 2r+1 x r Si multiplicamos nuestra recurrencia por x r y sumamos sobre r 1 nos queda: X r1 b 2r+1 x r = X r1 b 2r-1 x r + X r1 (r + 1)x r

Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Fundamentos de Informatica II

ILI-153

Horst H. von Brand

2º Semestre 2009

Resumen

Este documento presenta el resumen de las clases de Fundamentos de Informatica II, dictada durante el 2ºsemestre de 2008 y 2009. Hay material adicional en estos apuntes, que no se vio en clase.

1. Funciones generatrices

En lo que sigue veremos como usar series de potencias (una herramienta del analisis, vale decir matematicas delo continuo) para resolver una variedad de problemas discretos. La idea de funciones generatrices permite resolvermuchos problemas de forma simple y transparente. Incluso cuando no da soluciones puede iluminar, indicandorelaciones entre problemas que a primera vista no son obvias. El aplicar herramientas analıticas (especialmente lateorıa de funciones de variables complejas) permite deducir resultados que de otra forma serıan muy difıciles deobtener.

Mas que exponer la teorıa tras las tecnicas, mostraremos aplicaciones. Para detalles de la teorıa (y mucho masal respecto) vease [12]. Muchos de nuestros ejemplos llevan a resultados de interes independiente.

Sea una secuencia 〈an〉∞0 = 〈a0, a1, a2, . . . , an, . . .〉. La funcion generatriz (ordinaria) de la secuencia es la seriede potencias:

A(x) =∑

0≤n

anxn

El punto es que la serie representa en forma compacta y manejable la secuencia infinita. Como veremos, en muchoscasos resulta bastante mas sencillo manipular la serie que trabajar directamente con la secuencia.

Para un primer ejemplo, volveremos al problema de la Competencia de Ensayos de la Universidad de Miskatonic,que llevo a la relacion:

b2r+1 = b2r−1 + r + 1 b1 = 1

con lo que tenemos, como antes (arbitrariamente dando el valor cero a los que no quedan definidos por la recurrencia):

〈bn〉∞0 = 〈0, 1, 0, 3, 0, 6, 0, 10, 0, 15, . . .〉

Contar con algunos valores sirve para verificar (y para “sentir” como se comportan).Definamos la serie:

B(x) =∑

r≥0

b2r+1xr

Si multiplicamos nuestra recurrencia por xr y sumamos sobre r ≥ 1 nos queda:

r≥1

b2r+1xr =

r≥1

b2r−1xr +

r≥1

(r + 1)xr

Page 2: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Expresando lo anterior en terminos de B(x), reconocemos:∑

r≥1

b2r+1xr =

r≥0

b2r+1xr − b1

= B(x)− 1∑

r≥1

b2r−1xr =

r≥0

b2r+1xr+1

= x∑

r≥0

b2r+1xr

= xB(x)

Por el otro lado, sabemos que para |x| < 1 vale la serie geometrica:

1

1− x =∑

r≥0

xr

Derivando la serie geometrica respecto de x termino a termino, lo que es valido dentro de su radio de convergencia,nos queda:

d

dx

(1

1− x

)=∑

r≥0

d

dxxr

1

(1− x)2=∑

r≥1

rxr−1

=∑

r≥0

(r + 1)xr

Tambien:∑

r≥1

(r + 1)xr =∑

r≥0

(r + 1)xr − 1

Uniendo las anteriores queda:

B(x)− 1 = xB(x) +1

(1− x)2− 1

Despejando B(x):

B(x) =1

(1− x)3

Conociendo la funcion B(x), de cierta forma sabemos los valores b2r+1 que nos interesan. Para algunas aplicacionesbasta llegar hasta aca, pero nos interesa obtener una formula explıcita (ojala simple) para los coeficientes, de formade poder determinar el tamano requerido de las tarjetas.

Derivando la serie geometrica por segunda vez:

d2

dx2

(1

1− x

)=∑

r≥1

d

dxrxr−1

2

(1− x)3=∑

r≥2

r(r − 1)xr−2

=∑

r≥0

(r + 2)(r + 1)xr

Con esto se sigue:

B(x) =1

2

r≥0

(r + 2)(r + 1)xr

2

Page 3: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

y tenemos nuevamente la formula explıcita:

b2r+1 =1

2(r + 1)(r + 2)

La ventaja frente al desarrollo anterior es que no tuvimos que “adivinar” esta solucion y nos ahorramos la demos-tracion por induccion.

Receta

Para resolver recurrencias se debe:

1. Plantear la recurrencia.

2. Recopilar valores iniciales.

3. Aclarar para que valores de n vale la recurrencia.

4. Definir la funcion generatriz de interes

5. Multiplicar la recurrencia de (1) por xn y sumar sobre todos los valores (3)

6. Expresar (5) en terminos de la funcion generatriz.

7. Despejar.

8. Extraer los coeficientes.

1.1. Algunas series utiles

Al trabajar con funciones generatrices es importante tener algunas expansiones en serie conocidas a la mano.Las mas comunes en aplicaciones son las siguientes.

1.1.1. Serie geometrica

Es la serie mas comun en aplicaciones. Si |x| < 1, se cumple:

n≥0

xn =1

1− x

Una variante importante es la siguiente, expansion valida para |x| < 1/a:

n≥0

anxn =1

1− ax

1.1.2. Teorema del binomio

Una de las series mas importantes es la expansion de la potencia de un binomio:

n≥0

n

)xn = (1 + x)α

Esto vale no solo para valores reales de α, sino incluso para α ∈ C siempre que |x| < 1, donde

k

)=α

1· α− 1

2· α− 2

3· · · · · α− k + 1

k

y (consistente con la convencion que productos vacıos son 1) siempre es:

0

)= 1

3

Page 4: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Esta expansion es facil de demostrar por el teorema de Maclaurin.Si α es un entero positivo, la serie se reduce a un polinomio y la relacion es valida para todo x. Ademas, en caso

que n ∈ N podemos escribir:

(n

k

)=

n!

k!(n− k)!

Notese la simetrıa:(n

k

)=

(n

n− k

)

Casos especiales notables de coeficientes binomiales para α 6∈ N son los siguientes:

α = 1/2: Tenemos, como siempre:

(1/2

0

)= 1

Cuando k ≥ 1:

(1/2

k

)=

12 · ( 1

2 − 1) · · · · · ( 12 − k + 1)

k!

=1

2k· 1 · (1− 2)(1− 4) . . . (1− 2k + 2)

k!k ≥ 1

=(−1)k−1

k!2k· (1 · 3 · · · · · (2k − 3))

=(−1)k−1

k!2k· 1 · 2 · 3 · 4 · · · · · (2k − 3)(2k − 2)

2 · 4 · 6 · · · · · (2k − 2)

=(−1)k−1

2kk!· (2k − 2)!

2k−1(k − 1)!

=(−1)k−1

22k−1 · k ·(2k − 2)!

(k − 1)!(k − 1)!

=(−1)k−1

22k−1 · k ·(

2k − 2

k − 1

)

Hay que tener cuidado, la ultima formula no cubre el caso k = 0.

α = −1/2: Mucha de la derivacion es similar a la del caso anterior. Tenemos, para k > 0:

(−1/2

k

)=

(−1/2) · (−1/2− 1) · . . . · (−1/2− k + 1)

k!

= (−1)k1

2k· 1 · 3 · . . . · (2k − 1)

k!

= (−1)k1

2k· (2k)!

k!2kk!

= (−1)k1

22k

(2k

k

)

Esta formula con k = 0 da:(−1/2

0

)= 1

ası no se necesita hacer un caso especial aca.

4

Page 5: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

α = −n: Cuando α es un entero negativo, podemos escribir:(−nk

)=

(−n) · (−n− 1) · . . . · (−n− k + 1)

k!

= (−1)kn · (n+ 1) · . . . · (n+ k − 1)

k!

= (−1)k(n+ k − 1)!

k!(n− 1)!

= (−1)k(n+ k − 1

k

)

= (−1)k(n+ k − 1

n− 1

)

Notense los casos particulares:(−2

k

)= (−1)k(k + 1)

(−3

k

)= (−1)k

(k + 1)(k + 2)

2

En general, resulta:

1

(1− x)n+1=∑

k≥0

(n+ k

n

)xk

1.1.3. Otras series

Otra serie comun es la exponencial:

ex =∑

n≥0

xn

n!

con su variante:

e−x =∑

n≥0

(−1)nxn

n!

A veces aparecen funciones trigonometricas:

sinx =∑

n≥0

(−1)nx2n+1

(2n+ 1)!

cosx =∑

n≥0

(−1)nx2n

(2n)!

Una relacion util es la formula de Euler:

eix = cosx+ i sinx

Es frecuente la serie para el logaritmo:

d

dxln(1− x) = − 1

1− x= −

n≥0

xn

ln(1− x) = −∑

n≥1

xn

n

Muchos ejemplos adicionales de series utiles se hallan por ejemplo en [12].

5

Page 6: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

1.2. Notacion para coeficientes

Comunmente extraeremos el coeficiente de un termino de una serie. Para esto, dada la serie:

f(x) =∑

n≥0

anxn

usaremos la notacion:

[xn] f(x) = an

Considerando esto como “lo que multiplica lo indicado en la serie,” tenemos tambien:

[αxn] f(x) =anα

[xn]xkf(x) =[xn−k

]f(x)

[xn] (αf(x) + βg(x)) = α [xn] f(x) + β [xn] g(x)

En terminos de esta notacion el teorema de Maclaurin queda expresado como:

[xn]f(x) =1

n!

dn

dxnf(x)

∣∣∣∣0

1.3. Series de potencias: Teorıa formal

Nuestro interes en las series de potencias no es en su capacidad de definir funciones, sino simplemente como unarepresentacion compacta de una secuencia infinita. Si dejamos de lado el requerimiento de que la serie converja (ydefina una funcion), podemos darle sentido incluso a series como

n≥0

n!xn

que solo convergen para x = 0, y para las que el analisis no tiene ningun uso. Parte de lo que sigue viene de [8].Sea la serie:∑

n≥0

anxn

donde los elementos an pertenecen a un anillo R. Puede considerarse como una construccion puramente formal,sin darle sentido a x ni preocuparse por convergencia. La unica restriccion que impone esto es que toda vez que secalcula un coeficiente deben efectuarse un numero finito de operaciones (en un anillo arbitrario no son aplicableslas ideas de lımite y convergencia, necesarias para darle sentido a un numero infinito de operaciones).

Definimos la igualdad entre series formales:∑

n≥0

anxn =

n≥0

bnxn cuando an = bn para todo n ≥ 0

Definimos ademas las operaciones:∑

n≥0

anxn +

n≥0

bnxn =

n≥0

(an + bn)xn

(∑

k≥0

akxk

)·(∑

i≥0

bixi

)=

i ≥ 0k ≥ 0

akbixi+k

=∑

n ≥ 00 ≤ k ≤ n

akbn−kxn

=∑

n≥0

( ∑

0≤k≤n

akbn−k

)xn

6

Page 7: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Es rutina verificar que las series formales de potencias sobre el anillo R con variable x forman un anillo, con0 =

∑n≥0 0 · xn y 1 = 1 + 0 · x + 0 · x2 + . . . A este anillo lo llamaremos RJxK (recuerdese que llamamos R[x]

al anillo de polinomios en x sobre R). Si R es conmutativo, tambien lo es RJxK. Para evitar distinciones inutilesconsideramos que R[x] es un subanillo de RJxK de la forma natural. Podemos tambien considerar series en mas deuna variable, si las variables son x e y anotaremos RJx, yK. Esto es, por ejemplo:

S(x, y) =∑

m ≥ 0n ≥ 0

am,nxmyn

Es simple (aunque engorroso) demostrar que RJx, yK es isomorfo a RJxKJyK y a RJyKJxK, pero no nos detendremosen tales detalles. Salvo situaciones excepcionales, en lo que sigue consideraremos series con elementos tomados dealgun campo, normalmente C (o R).

1.3.1. Unidades y recıprocos

Sea F un campo. En el anillo de series formales F JxK hay unidades que no son simplemente constantes (comoocurre en el correspondiente anillo de polinomios formales). Por ejemplo, en CJxK:

1

1− x = 1 + x+ x2 + . . .

(1− x) · (1 + x+ x2 + x3 + . . .) = 1

Si a0 = 0 la serie no puede tener recıproco, ya que no hay forma de crear un termino constante del producto en talcaso.

Por otro lado, supongamos que a0 6= 0:

(∑

n≥0

anxn

)·(∑

n≥0

bnxn

)= 1

n≥0

( ∑

0≤k≤n

akbn−k

)xn = 1

Para n = 0 debe ser a0b0 = 1, o sea, b0 = 1/a0; luego para n > 0:

0≤k≤n

akbn−k =∑

0≤k≤n

an−kbk

= 0

bn = − 1

a0

0≤k≤n−1

an−kbk

Con esto ultimo se obtiene la secuencia de todos los bn, que es la secuencia de coeficientes del recıproco de la serieA(x). Las sumas indicadas son siempre finitas.

1.3.2. Derivadas formales

Definimos:

d

dx

(∑

n≥0

anxn

)=∑

n≥1

nanxn−1

=∑

n≥0

(n+ 1)an+1xn

Esta es una definicion puramente formal, no intervienen lımites ni el significado de la serie como funcion. Debeinterpretarse (n + 1)an como lo definimos para anillos, vale decir, sumar n + 1 veces el valor an. Debe tenersecuidado con situaciones en las cuales ma = 0 para algun elemento a del anillo de base con m 6= 0. Nos interesa masque nada el caso en que el anillo es un campo infinito (normalmente R o C) en el cual esta situacion no se da, ysupondremos eso de ahora en adelante salvo que se indique explıcitamente lo contrario.

7

Page 8: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

1.4. Manipulacion de series formales

Sea una secuencia 〈an〉∞0 = 〈a0, a1, a2, . . . , an, . . .〉. La funcion generatriz (ordinaria) de la secuencia es la seriede potencias:

A(x) =∑

0≤n

anxn

Anotaremos A(x)ops←→〈an〉∞0 en este caso (ops es por ordinary power series).

La funcion generatriz exponencial de la secuencia es la serie:

E(x) =∑

0≤n

anxn

n!

Anotaremos E(x)egf←→〈an〉∞0 en este caso (egf es por exponential generating function).

Las siguientes resumen operaciones comunes sobre las secuencias y como se reflejan en las funciones generatricesdel caso.

1.4.1. Reglas OPS

Las siguientes resumen propiedades de las funciones generatrices ordinarias. Donde no son directamente lasdefiniciones del caso son muy simples de demostrar, y sus justificaciones detalladas quedaran de ejercicios.

Secuencia desplazada a la izquierda: Si fops←→〈an〉∞0 , entonces:

f(x)− a0 − a1x− . . .− ak−1xk−1

xkops←→〈an+k〉∞0

Multiplicar por n: Consideremos:

fops←→〈an〉∞0

xd

dxf(x)

ops←→〈nan〉∞0Esta ultima operacion la expresamos en terminos del operador xD (D por derivada). Ademas:

(xD)2fops←→

⟨n2an

⟩∞0

Notese que x2D2 corresponde a x2 d2

dx2 ; lo que es bien distinto de (xD)2, o sea, x ddx

(x ddx

).

Multiplicar por un polinomio en n: En general, si p(n) es un polinomio, entonces:

p(xD)fops←→〈p(n)an〉∞0

Convolucion: Si fops←→〈an〉∞0 y g

ops←→〈bn〉∞0 entonces:

f · g ops←→⟨ ∑

0≤k≤n

akbn−k

⟩∞

0

Sea k un entero positivo y fops←→〈an〉∞0 , entonces:

fkops←→

⟨ ∑

n1+n2+...+nk=n

(an1· an2

· . . . · ank)

⟩∞

0

Sumas parciales: Supongamos:

fops←→〈an〉∞0

Entonces, por convolucion:

f(x)

1− xops←→

⟨ ∑

0≤k≤n

ak

⟩∞

0

8

Page 9: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

1.4.2. Reglas EGF

Las siguientes resumen propiedades de las funciones generatrices exponenciales. Son simples de demostrar, y lasjustificaciones detalladas quedaran de ejercicios.

Secuencia desplazada a la derecha: Si fegf←→〈an〉∞0 entonces Dkf

egf←→〈an+k〉∞0

Multiplicacion por un polinomio en n: Si fegf←→〈an〉∞0 , y p es un polinomio, entonces p(xD)f

egf←→〈p(n)an〉∞0

Convolucion: Si fegf←→〈an〉∞0 y g

egf←→〈bn〉∞0 entonces:

f(x) =∑

n≥0

anxn

n!

g(x) =∑

n≥0

bnxn

n!

f(x) · g(x) =∑

n≥0

( ∑

0≤k≤n

akk!

bn−k(n− k)!

)xn

=∑

n≥0

( ∑

0≤k≤n

(n

k

)akbn−k

)xn

n!

Vale decir:

f(x) · g(x)egf←→

⟨ ∑

0≤k≤n

(n

k

)akbn−k

⟩∞

0

1.5. El truco xD log

Los logaritmos ayudan a simplificar expresiones con exponenciales y potencias. Pero terminamos con el logaritmode una suma si el argumento es una serie, que es algo bastante feo de contemplar. Eliminar el logaritmo se lograderivando:

d ln(f)

dx=f ′

f

Esto es mucho mas decente. Multiplicamos por x para reponer la potencia “perdida” al derivar.

Receta:

1. Aplicar xD ln

2. Multiplicar para eliminar fracciones

3. Igualar coeficientes

1.6. Algunos ejemplos

Un primer ejemplo de aplicacion de las ideas planteada es obtener la suma de los primeros N cuadrados:

1 + x+ x2 + · · ·+ xN =1− xN+1

1− x

(xD)2[1 + x+ x2 + . . .+ xN

]= (xD)2 1− xN+1

1− x[02 + 12x+ 22x2 + . . .+N2xN

]x=1

= lımx→1

(xD)2 1− xN+1

1− x

9

Page 10: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

El resto es derivar, calcular lımites y algebra:

1≤k≤N

k2 =N(N + 1)(2N + 1)

6

Esta claro que la misma idea sirve para otras potencias. La maquinaria de funciones generatrices permite obteneren forma rutinaria resultados que de otra forma serıan complicados de sospechar, y luego deberıan ser demostradospor induccion.

Otra aplicacion es obtener la serie para A(x)α, una potencia arbitraria (α ∈ C) de una serie A(x) que yaconocemos. Sea entonces

A(x) =∑

n≥0

anxn

Definimos:

B(x) = Aα(x) =∑

n≥0

bnxn

Aplicando la receta para xD log se tiene:

xB′(x)

B(x)= αx

A′(x)

A(x)

xB′(x) ·A(x) = αxA′(x) ·B(x)(∑

n≥0

nbnxn

)·(∑

n≥0

anxn

)= α

(∑

n≥0

nanxn

)·(∑

n≥0

bnxn

)

n≥0

( ∑

0≤i≤n

ibian−i

)xn =

n≥0

( ∑

0≤i≤n

αiaibn−i

)xn

De aca se sigue, igualando coeficientes:

0≤i≤n

ai(n− i)bn−i =∑

0≤i≤n

αiaibn−i

Nuevamente, esto involucra solo operaciones finitas. Finalmente:

0≤i≤n

(ai(n− i)bn−i − αiaibn−i

)= 0

0≤i≤n

(n− i− αi)aibn−i = 0

na0bn = −( ∑

1≤i≤n

(n− i− αi)aibn−i)

bn = − 1

na0

1≤i≤n

(n− i− αi)aibn−i

Para comenzar la recurrencia, usamos:

b0 = aα0

2. Aplicaciones

Veremos varias aplicaciones de la maquinaria de funciones generatrices, hallando funciones generatrices y tambienderivando (y demostrando) identidades.

10

Page 11: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

2.1. Numeros harmonicos

Un caso interesante es la funcion generatriz de los numeros harmonicos, definidos como:

Hn =∑

1≤k≤n

1

k

Ademas definimos H0 = 0 (consistente con que sumas vacıas son cero). Esta secuencia es importante en teorıa denumeros, y aparece en formulas para calcular una variedad de funciones especiales.

Los primeros valores son:

⟨1,

3

2,

11

6,

25

12,

137

60,

49

20,

363

140,

761

280,

7 129

2 520, . . .

Buscamos una expresion para:

H(x) =∑

n≥0

Hnxn

Esto se reduce a:

H(x) =∑

n≥1

( ∑

1≤k≤n

1

k

)xn

= x∑

n≥1

( ∑

0≤k≤n−1

1

k + 1

)xn−1

= x∑

n≥0

( ∑

0≤k≤n

1

k + 1

)xn

Como tenemos una suma entre manos, intentamos:

H(x) =1

1− x · x∑

k≥0

xk

k + 1

=1

1− x ln1

1− xAca usamos la suma para el logaritmo derivada en la seccion 1.1.3.

2.2. Numeros de Fibonacci

Consideremos la secuencia 〈0, 1, 1, 2, 3, 5, . . .〉, que se obtiene de la recurrencia valida para n ≥ 0:

Fn+2 = Fn+1 + Fn F0 = 0, F1 = 1

Esta la encontramos al analizar el algoritmo de Euclides. Tiene muchas aplicaciones, como en el metodo de optimi-zacion que se conoce como busqueda de Fibonacci. Muchos fenomenos naturales, como el crecimiento de los arbolesy las espirales que se observan en los girasoles siguen esta secuencia.

Definimos:

f(x) =∑

n≥0

Fnxn

11

Page 12: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Se tiene que:

Fn+2 = Fn+1 + Fn

Fn+2 · xn = Fn+1 · xn + Fn · xn∑

n≥0

Fn+2 · xn =∑

n≥0

Fn+1 · xn +∑

n≥0

Fn · xn

f(x)− F0 − F1 · xx2

=f(x)− F0

x+ f(x)

f(x)− xx2

=f(x)

x+ f(x)

f(x)− x = xf(x) + x2f(x)

f(x) =x

1− x− x2

Se busca factorizar de la siguiente manera:

1− x− x2 = (1− r+x)(1− r−x)

Para obtener esta factorizacion realizamos el cambio de variable y = 1/x y se tiene que:

y2 − y − 1 = (y − r+)(y − r−)

r± =1±√

5

2

y se denotara a r+ = ϕ (ϕ es la seccion aurea). Podemos expresar:

y2 − y − 1 = (y − r+)(y − r−)

= y2 − (r+ + r−)y + r+r−

Comparando coeficientes resulta r− = −1/ϕ = 1− ϕ. Luego mediante el uso de fracciones parciales se tiene:

f(x) =1√5·(

1

1− r+x− 1

1− r−x

)

De esto ultimo se reconocen dos series geometricas. Continuando:

f(x) =∑

n≥0

1√5rn+x

n −∑

n≥0

1√5rn−x

n

=∑

n≥0

rn+ − rn−√5

xn

Esto da la sorprendente relacion, conocida como formula de Binet, que expresa los numeros de Fibonacci (enteros)en terminos de numeros irracionales:

Fn =ϕn − (1− ϕ)n√

5

=(1 +

√5)n − (1−

√5)n

2n√

5

Ahora bien:

ϕ = 1, 618 . . .

1− ϕ = −0, 618 . . .ϕ√5

= 0, 75 . . .

1− ϕ√5

= −0, 27 . . .

12

Page 13: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Para todo n ≥ 0:∣∣∣∣(1− ϕ)n√

5

∣∣∣∣ < 0, 5

Por lo tanto, Fn = ϕn/√

5, redondeado al entero mas cercano.

2.3. Fibonacci RECARGADO

Recordando que:

Fn+2 = Fn+1 + Fn F0 = 0, F1 = 1

Entonces con:

F (x) =∑

n≥0

Fnxn

n!

Se tiene que:

n≥0

Fn+2xn

n!=∑

n≥0

Fn+1xn

n!+∑

n≥0

Fnxn

n!

F ′′(x) = F ′(x) + F (x)

donde F (0) = 0 y F ′(0) = 1.Esto ultimo no es mas que una notacion comoda para F0 y F1 en terminos de la serie. Si ademas comparamos

la ecuacion diferencial con la recurrencia original, esta claro que obtener una de la otra es inmediato.Resolvemos esta ecuacion diferencial ordinaria de segundo orden, homogenea y de coeficientes constantes por el

metodo de la ecuacion caracterıstica:

r2 = r + 1

r2 − r − 1 = 0

Sabemos que las soluciones a esta ecuacion son r+ = ϕ y r− = 1− ϕ, con lo que tenemos:

F (x) = αeϕx + βe(1−ϕ)x

de donde:

F (0) = α+ β = 0

F ′(0) = αϕ+ β(1− ϕ) = 1

La solucion de estas ecuaciones es:

α =1√5

β = − 1√5

y finalmente resulta la misma formula anterior:

Fn =1√5

[xn

n!

](eϕx − e(1−ϕ)x

)

=1√5

([xn

n!

]exϕ −

[xn

n!

]e(1−ϕ)x

)

=ϕn − (1− ϕ)n√

5

Si comparamos las derivaciones, obtener la ecuacion y sus condiciones de borde es mas simple aca, debemos resolveruna ecuacion diferencial, pero obtener el resultado de su solucion es inmediato. En la derivacion anterior obtener laecuacion era algo mas trabajo, y tuvimos que usar fracciones parciales para poder obtener la secuencia; pero tratarla ecuacion misma era mas simple.

13

Page 14: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

2.4. Recurrencias lineales de coeficientes constantes

Un caso particularmente importante es el de recurrencias de la forma:

akun+k + ak−1un+k−1 + . . .+ a0un = f(n)

donde los ai son constantes y f(n) es una funcion cualquiera. Esto se llama una recurrencia lineal de coeficientesconstantes (de orden k, si ak 6= 0). Si f(n) = 0, se dice homogenea. Se requieren k condiciones adicionales parafijar la solucion, que generalmente toman la forma de condiciones iniciales dando los valores de u0 hasta uk−1. Larecurrencia de Fibonacci que resolvimos antes es una recurrencia de segundo orden, lineal de coeficientes constantes,homogenea.

Tratar el caso general es bastante engorroso, mostraremos el procedimiento mediante un ejemplo. De formasimilar a la aplicacion de funciones generatrices ordinarias presentada aca pueden aplicarse funciones generatricesexponenciales como lo hicimos en la seccion 2.3 para los numeros de Fibonacci. Cual se usa en un caso particulardependera de lo que resulte mas simple.

Consideremos la recurrencia:

un+2 + 4un = 5n2 u0 = 1, u1 = 3

Los primeros valores son

〈1, 3, 12, 53, 232, 973, 3972, 16013, . . .〉

Aplicando nuestra estrategia general, definimos:

U(x) =∑

n≥0

unxn

Siguiendo la receta:

n≥0

un+2xn + 4

n≥0

xn = 5∑

n≥0

n2xn

U(x)− 3x− 1

x2+ 4U(x) = 5(xD)2

(1

1− x

)

= 5x(1 + x)

(1− x)3

Despejando y expresando en fracciones parciales:

U(x) =2x4 + 13x3 − 6x2 + 1

(1− x)3(1 + 4x2)

=82x+ 37

24(1 + 4x2)+

2

(1− x)3− 19

5(1− x)2+

33

25(1− x)

14

Page 15: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Luego basta “leer” los coeficientes en esto. Puntos interesantes los ponen los terminos:

1

1 + 4x2= 1− 4x2 + 16x4 − . . .

=∑

n≥0

(−4)nx2n

x

1 + 4x2= x− 4x3 + 16x5 − . . .

=∑

n≥0

(−4)nx2n+1

1

(1− x)3=∑

n≥0

(−3

n

)(−1)nxn

=∑

n≥0

(n+ 2)(n+ 1)

2xn

1

(1− x)2=∑

n≥0

(−2

n

)(−1)nxn

=∑

n≥0

(n+ 1)xn

Podemos entonces expresar la solucion como:

u2n =37

24· (−4)2n + 2 · (2n+ 2)(2n+ 1)

2− 19

5· (2n+ 1) +

33

25

=37

24· (−16)n + 4n2 − 8

25n− 12

25

u2n+1 =82

24· (−4)2n+1 + 2 · (2n+ 3)(2n+ 2)

2− 19

5· (2n+ 2) +

33

25

=41

6· (−16)n + 4n2 +

12

5n− 7

25

Esta separacion en terminos pares e impares es incomoda. Usando numeros complejos podemos factorizar mas:

1 + 4x2 = (1− 2ix)(1 + 2ix)

1

1 + 4x2=

1

2

(1

1 + 2ix+

1

1− 2ix

)

x

1 + 4x2=i

4

(1

1 + 2ix− 1

1− 2ix

)

y podemos entonces expresar:

un =82

24· i

4

((−2i)n − (2i)n

)+

37

24· 1

2

((−2i)n + (2i)n

)+ 2 · (n+ 2)(n+ 1)

2− 19

5· (n+ 1) +

33

25

=

(37 + 82i

96(−i)n +

37− 82i

96in)· 2n + n2 − 4

5n− 12

25

Es bien poco probable que hubieramos adivinado esta solucion. . .

2.5. Dividir y conquistar

Una de las estrategias mas fructıferas para disenar algoritmos es la que se llama “dividir y conquistar” [1]. Laidea es resolver un problema “grande” por la vıa de expresarlo en terminos de varios problemas menores del mismotipo, resolver estos (recursivamente) y luego combinar los resultados. Ejemplos tıpicos son el ordenamiento porintercalacion y busqueda binaria. Un ejemplo menos conocido es el algoritmo de Karatsuba para multiplicacion.

15

Page 16: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

La idea es que si se desean multiplicar numeros de 2n dıgitos, llamemosles A y B, los dividimos en mitades mas ymenos significativas. Si la base es B, escribimos:

A = a ·Bn + b

B = c ·Bn + d

donde 0 ≤ a, b, c, d < Bn, y tenemos:

A ·B = ac ·B2n + (ad+ bc) ·Bn + bd

Si definimos:

u = ac

v = bd

w = uv

= ac+ ad+ bc+ bd

podemos expresar

A ·B = u ·B2n + (w − u− v) ·Bn + v

Esta formula significa usar tres (no cuatro) multiplicaciones, a costa de mas operaciones de suma.Si el tiempo de ejecucion de un algoritmo de este tipo para una entrada de tamano n lo denotamos por t(n), el

problema se reduce a a problemas de tamano n/b, y el costo de reducir el problema y luego combinar las solucioneses f(n), al sumar el tiempo para resolver los subproblemas y las otras operaciones obtendremos recurrencias de laforma:

t(n) = at(n/b) + f(n) t(1) = t1

El restringir el analisis a potencias de b es valido ya que nos interesa el comportamiento asintotico de la soluciona la recurrencia. Intuitivamente es claro que los algoritmos considerados se ejecutan en un tiempo intermedio paratamanos intermedios, y en el peor caso podemos “rellenar” los datos hasta completar la potencia respectiva. Haceresto no cambia nuestras conclusiones mas abajo.

En el caso de ordenamiento por intercalacion, dividimos en dos partes iguales que se procesan recursivamente.El proceso de dividir puede implementarse vıa tomar elementos alternativos y ubicarlos en grupos separados, elcombinar las partes ordenadas toma tiempo proporcional a su tamano. Por lo tanto, el crear los subproblemas ycombinar sus soluciones toma un tiempo proporcional al numero de elementos a ordenar. Ası tenemos que a = b = 2,f(n) = cn para alguna constante c. Para busqueda binaria, se divide en dos partes iguales de las cuales se procesarecursivamente solo una, y el proceso de division es simplemente ubicar el elemento medio y comparar con el, y nohay combinacion de subproblemas; todo esto toma un tiempo constante. En este caso es a = 1, b = 2, f(n) = cpara alguna constante. En el algoritmo de Karatsuba, las tareas adicionales son dividir los numeros en mitades yefectuar varias sumas y restas de numeros de n dıgitos. El costo de estas operaciones es simplemente proporcionala n. Estos ejemplos son bastante representativos, y el analisis resulta simple si f(n) = cnd. Para busqueda binariatenemos d = 0, para ordenamiento por intercalacion d = 1.

Consideramos entonces la recurrencia, valida para n una potencia de b:

t(bn) = at(n) + cnd t(1) = t1

Efectuamos el cambio de variables:

n = bk k = logb n

t(n) = T (k) t(bn) = T (k + 1)

En estos terminos, dadas las condiciones del problema para constantes c > 0 (el costo de dividir y combinar no esnulo) y t1 > 0 (el resolver un problema de tamano mınimo tiene algun costo) tenemos para k ≥ 0:

T (k + 1) = aT (k) + c(bd)k T (0) = t1

16

Page 17: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Para resolver la recurrencia definimos la funcion generatriz

g(x) =∑

k≥0

T (k)xk

y aplicamos nuestra tecnica

k≥0

T (k + 1)xk =∑

k≥0

T (k)xk + c∑

k≥0

(bd)kxk

g(x)− t1x

= g(x) + c1

1− (bd)x

g(x) =t1 − ((bd)t1 − c)x

1− (bd + a)x+ a(bd)x2

=t1 − ((bd)t1 − c)x

(1− (bd)x)(1− ax)

Veamos primero el caso en que hay raıces repetidas (a = bd), donde la expansion en fracciones parciales toma laforma siguiente, para constantes α y β:

g(x) =α

(1− ax)2+

β

1− ax

Resultan ser:

α =c

a

β =at1 − ca

T (k) = αkak + (α+ β)ak

t(n) = α(blogb a

)logb n logb n+ (α+ β)(blogb a

)logb n

= α(blogb n

)logb a logb n+ (α+ β)(blogb n

)logb a

= αnlogb a logb n+ (α+ β)nlogb a

=c

anlogb a logb n+

t1anlogb a

Es claro que ninguno de los coeficientes se anula. Como el primer termino domina asintoticamente al segundo,podemos decir que en este caso:

t(n) = O(nlogb a log n)

El otro caso es cuando a 6= bd, y la expansion en fracciones parciales toma la forma siguiente con constantes α y β:

g(x) =α

1− ax +β

1− bdxdonde ahora:

α =(bd − a)t1 − c

bd − aβ =

c

bd − aNuevamente, si ninguna de estas expresiones se anula resulta mediante una derivacion similar a la anterior:

T (k) = αak + β(bd)k

t(n) = αnlogb a + βnd

17

Page 18: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Dependiendo de los valores relativos de logb a y d, o lo que es lo mismo, a y bd, es el termino que domina estaexpresion, siempre que α 6= 0.

Resumiendo:

t(n) =

O(nlogb a) si a > bd

O(nlogb a log n) si a = bd

O(nd) si a < bd

En nuestro caso, esto nos dice que el tiempo de ejecucion de busqueda binaria es O(log n), el de ordenamiento porintercalacion es O(n log n), y el algoritmo de Karatsuba toma O(nlog2 3) = O(n1,58...). Usar las cuatro multiplica-ciones implicadas en nuestra formula original lleva a O(nlog2 4) = O(n2), lo que no es mejora sobre el algoritmotradicional.

2.6. Numeros de Bernoulli

Definamos

Sm(n) =∑

1≤k≤n−1

km

En estos terminos, Bernoulli noto los siguientes:

S0(n) = n

S1(n) =1

2n2 − 1

2

S2(n) =1

3n3 − 1

2n2 +

1

6n

S3(n) =1

4n4 − 1

2n3 +

1

4n2

S4(n) =1

5n5 − 1

2n4 +

1

3n3 − 1

30n

S5(n) =1

6n6 − 1

2n5 +

5

12n4 − 1

12n3

Estos podemos expresarlos:

S0(n) =1

1

(1

0

)n

S1(n) =1

2

((2

0

)n2 −

(2

1

)1

2n

)

S2(n) =1

3

((3

0

)n3 −

(3

1

)1

2n2 +

(3

2

)1

6n

)

S3(n) =1

4

((4

0

)n4 −

(4

1

)1

2n3 +

(4

2

)1

6n2 −

(4

4

)1

30

)

S4(n) =1

5

((5

0

)n5 −

(5

1

)1

2n4 +

(5

2

)1

6n3 −

(5

4

)1

30n

)

S5(n) =1

6

((6

0

)n6 −

(6

1

)1

2n5 +

(6

2

)1

6n4 −

(6

4

)1

30n2

)

Parece entonces que se puede expresar:

Sm(n) =1

m+ 1

0≤k≤m

(m+ 1

k

)Bkn

m+1−k

para alguna secuencia 〈Bk〉 que comienza 〈1,−1/2, 1/6, 0,−1/30, 0, . . .〉.

18

Page 19: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Para atacar este problema, como aparece una convolucion binomial definamos la funcion generatriz exponencial

S(x, n) =∑

m≥0

Sm(n)xm

m!

mediante la cual buscamos hallar

B(x) =∑

k≥0

Bkxk

k!

Podemos expresar:

S(x, n) =∑

m≥0

( ∑

0≤k≤n−1

km)xm

m!

=∑

0≤k≤n−1

(∑

m≥0

(kx)m

m!

)

=∑

0≤k≤n−1

ekx

=enx − 1

ex − 1

Por el otro lado tenemos

S(x, n) =∑

m≥0

(1

m+ 1

0≤k≤m

(m+ 1

k

)Bkn

m+1−k)xm

m!

=

(∑

m≥0

Bmxm

m!

)·(∑

m≥0

nm+1xm

(m+ 1)!

)

= B(x) · enx − 1

x

Comparando ambas expresiones resulta

B(x) =x

ex − 1

e interesa evaluar sus coeficientes.Primeramente, tenemos:

ex − 1

x=∑

n≥0

xn

(n+ 1)!

Nuestra formula para el recıproco ahora da:

B0 = 1

Bn = −n!∑

0≤k≤n−1

1

(n+ 1− k)!

Bkk!

= −∑

0≤k≤n−1

(n

k

)Bk

n+ 1− k

Vale decir, se confirma nuestra sospecha de que las sumas de potencias podıan expresarse de la forma indicada,y hemos obtenido una recurrencia para los coeficientes involucrados. La secuencia de coeficientes (los numeros deBernoulli) es muy importante, aparece en una amplia gama de situaciones diferentes. Debe tenerse cuidado, hayautores que definen la secuencia (bajo el mismo nombre e incluso con la misma notacion) de forma que todos sonpositivos.

19

Page 20: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

De los valores dados antes pareciera ser que los valores para ındices impares son todos cero, salvo B1 = − 12 .

Consideremos la funcion:

x

ex − 1+x

2=x

2· e

x + 1

ex − 1

=x

2coth

x

2

Esta funcion es par, y hemos demostrado nuestra sospecha de que los coeficientes impares (salvo B1) son todos cero.

2.7. Potencias factoriales

Definamos:

G(z, u) =∑

n≥0

unzn

n!

Como

un

n!=

(u

n

)

tenemos

G(z, u) =∑

n≥0

(u

n

)zn

= (1 + z)u

Esto implica:

G(z, u) ·G(z, v) = G(z, u+ v)

Evaluando el producto de funciones generatrices exponenciales

n≥0

( ∑

0≤k≤n

(n

k

)ukvn−k

)zn

n!=∑

n≥0

(u+ v)nzn

n!

Comparando los coeficientes de zn resulta

(u+ v)n =∑

0≤k≤n

(n

k

)ukvn−k

Curioso equivalente de la formula para la potencia normal de un binomio.

3. Aplicaciones combinatorias

Las funciones generatrices tienen muchas aplicaciones en combinatoria, por las razones que quedaran claras atraves de los siguientes ejemplos.

3.1. Coeficientes binomiales

Hagamos como que nada sabemos. . . ¿Cuantos subconjuntos de k elementos podemos obtener de un conjuntode n elementos? Obviamente, exactamente que conjunto de n elementos tomemos da lo mismo, podemos usarel conjunto 1, 2, . . . , n sin perdida de generalidad. Llamese f(n, k) a dicha cantidad. Podemos descomponer losf(n, k) subconjuntos en dos grupos:

Aquellos conjuntos que no contienen a n: Corresponden simplemente a tomar k elementos de los restantesn− 1, de estos hay f(n− 1, k).

20

Page 21: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Aquellos conjuntos que contienen a n: Estamos tomando n, y k−1 elementos mas de entre los restantes n−1,de estos hay f(n− 1, k − 1).

Como estas dos posibilidades son excluyentes, y corresponden a todas las formas de armar subconjuntos de kelementos:

f(n, k) = f(n− 1, k) + f(n− 1, k − 1)

Hay una unica manera de obtener un subconjunto de cero elementos (subconjunto vacıo), o sea, f(n, 0) = 1.Siguiendo con nuestra receta, definimos:

Bn(x) =∑

k≥0

f(n, k)xk

Partiremos de k + 1 para poder sumar desde k = 0.

f(n, k + 1) = f(n− 1, k + 1) + f(n− 1, k)

f(n, k + 1)xk = f(n− 1, k + 1)xk + f(n− 1, k)xk

k≥0

f(n, k + 1)xk =∑

k≥0

f(n− 1, k + 1)xk +∑

k≥0

f(n− 1, k)xk

Luego, en terminos de la funcion generatriz, y teniendo en cuenta que f(n, 0) = 1, se tiene:

Bn(x)− 1

x=Bn−1(x)− 1

x+Bn−1(x)

Bn(x) = Bn−1(x)(1 + x)

Finalmente es claro que B0(x) =∑k≥0 f(0, k)xk = 1, por lo que:

Bn(x) = (1 + x)n

Aplicando el teorema de Maclaurin a Bn(x):

dk

dxkBn(x)

∣∣∣∣x=0

= n · (n− 1) · . . . · (n− k + 1)(1 + x)n−k∣∣x=0

= n · (n− 1) · . . . · (n− k + 1)

Hemos demostrado nuevamente la relacion entre los coeficientes binomiales y el numero de maneras de elegir kelementos de entre n:

f(n, k) =n(n− 1) . . . (n− k + 1)

k!

=n!

k!(n− k)!

=

(n

k

)

La recurrencia para los coeficientes binomiales da el famoso triangulo de Pascal:

n = 0: 1

n = 1: 1 1

n = 2: 1 2 1

n = 3: 1 3 3 1

n = 4: 1 4 6 4 1

n = 5: 1 5 10 10 5 1

n = 6: 1 6 15 20 15 6 1

21

Page 22: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

1 2,3,41,2 3,41,3 2,41,4 2,41,2,3 41,2,4 31,3,4 2

3.2. Numeros de Stirling de segunda especie

Se desea partir el conjunto 1, 2, 3, 4 en 2 clases:Esto muestra que hay 7 particiones de 4 elementos en 2 clases. El numero de formas de particionar un conjunto

de n elementos en k clases se llama numero de Stirling de segunda especie, se anotank

para el numero de formas de

particionar un conjunto de n elementos en k particiones. Por ejemplo, para determinar el numero de funciones sobrede [n] a [k], esto corresponde a particionar el dominio en las preimagenes de cada elemento del rango, y podemosasignar valores de la funcion a cada una de las k particiones de k! maneras, con lo que

nk

k! es el valor buscado.

Cabe hacer notar que esta notacion es comun (uno de sus campeones es Knuth, p.ej. [3]), aunque hay una variedadde ellas.

Para obtenernk

, consideremos dos grupos de particiones:

Aquellas en que n esta solo: Corresponden a tomar k− 1 particiones de los demas n− 1 elementos, hayn−1k−1

de estas.

Aquellas en que n esta con otros elementos: Se construyen en base a k clases de los restantes n−1 elementosvıa agregar n a cada clase, hay k ·

n−1k

de estas.

Nuevamente, estas dos opciones son excluyentes y exhaustivas, y:

n

k

=

n− 1

k − 1

+ k

n− 1

k

Donde:n

0

= 0, n 6= 0

0

0

= 1

Si ademas decretamos:

n

k

=

0 n < 0

0 k < 0

0 k > n

la recurrencia siempre se cumple.Tenemos varias opciones de funciones generatrices:

An(x) =∑

k≥0

n

k

xk

Bk(y) =∑

n≥0

n

k

yn

C(x, y) =∑

n ≥ 0k ≥ 0

n

k

xkyn

22

Page 23: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

De estas tres opciones, la primera involucra derivadas (por el termino kn−1k

xk), la tercera involucra trabajar con

dos variables (lo cual siempre es complicado), ademas que involucra derivadas igual que el caso A. Por lo tanto lasegunda opcion parece ser la mas facil. Primeramente, tenemos por lo anterior:

B0(y) = 1

Bk(0) =

0

k

= 0 si k > 0

Aplicando ahora nuestra receta para manejar recurrencias, bajo el entendido que k > 0, y recordando que larecurrencia como esta escrita es valida para n ≥ 1:

n≥1

n

k

yn =

n≥1

n− 1

k − 1

yn +

n≥0

k

n− 1

k

yn

Bk(y)−

0

k

= y

n≥1

n− 1

k − 1

yn−1 + y

n≥1

n− 1

k

yn−1

Bk(y) = y∑

n≥0

n

k − 1

yn + ky

n≥0

n

k

yn

= yBk−1(y) + kyBk(y)

Despejando:

Bk(y) =y

1− kyBk−1(y)

=yk

(1− y) · (1− 2y) · . . . · (1− ky)·B0(y)

=yk

(1− y) · (1− 2y) · . . . · (1− ky)

Descomponiendo en fracciones parciales:

1

(1− y) · (1− 2y) · . . . · (1− ky)=∑

1≤i≤k

αi1− iy

Multiplicando todo por 1 − ry, y luego haciendo y → 1/r (este es un truco estandar para obtener los coeficientesde expansiones en fracciones parciales):

αr =1(

1− 1r

)·(1− 2

r

)· . . . ·

(1− r−1

r

)·(

1− r+1r

)· . . . ·

(1− k

r

)

=rk−1

(r − 1) · . . . · (r − r + 1) · (r − r − 1) · . . . · (r − k)

=rk−1

(r − 1)! · (−1)k−r(k − r)!

=(−1)k−rrk−1

(r − 1)!(k − r)!

23

Page 24: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Con esto tenemos:

Bk(y) =∑

1≤r≤k

(−1)k−rrk−1

(r − 1)!(k − r)! ·yk

1− ry

[yn]Bk(y) =∑

1≤r≤k

[yn](−1)k−rrk−1

(r − 1)!(k − r)! ·yk

1− ryn

k

=∑

1≤r≤k

(−1)k−rrk−1

(r − 1)!(k − r)! [yn]yk

1− ry

=∑

1≤r≤k

(−1)k−rrk−1

(r − 1)!(k − r)! ·[yn−k

] 1

1− ry

=∑

1≤r≤k

(−1)k−rrk−1

(r − 1)!(k − r)! · rn−k

=∑

1≤r≤k

(−1)k−rrn

r!(k − r)!

Esta es la formula explıcita que buscabamos.Una tabla de los numeros de Stirling de segunda especie en forma de triangulo (como el triangulo de Pascal)

comienza:

n = 0: 1

n = 1: 0 1

n = 2: 0 1 1

n = 3: 0 1 3 1

n = 4: 0 1 7 6 1

n = 5: 0 1 15 25 10 1

n = 6: 0 1 31 90 65 15 1

3.2.1. Potencias y numeros de Stirling

Tenemos el siguiente problema: Tomando la serie geometrica y derivando n veces, queda simplemente:

dn

dxn1

1− x =n!

(1− x)n

=∑

k≥n

knxk−n

=∑

k≥0

(n+ k)nxk

Esta es la funcion generatriz de un polinomio de grado n en k, y combinando apropiadamente varios de estospodemos construir las funciones generatrices de cualquier polinomio. Pero hacerlo es bastante engorroso, busquemosuna forma de expresar la funcion generatriz de kn, conociendo estas es simple construir la de un polinomio dado.

Lo que nos interesa entonces es conocer los coeficientes sn,k en la expansion siguiente:

xn =∑

0≤k≤n

sn,kxk

Esta claro que sn,k = 0 si k < 0 o k > n, con lo que los lımites en realidad son superfluos. Ademas, para n = 0resulta s0,0 = 1

24

Page 25: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Para hallar los sn,k usamos xk+1 = xk · (x− k), que nos da x · xk = xk+1 + kx, de donde:

x∑

k

sn−1,k xk =

k

sn−1,k x · xk

=∑

k

sn−1,k xk+1 +

k

sn−1,k kxk

=∑

k

sn−1,k−1 xk +

k

ksn−1,k xk

=∑

k

(sn−1,k−1 + ksn−1,k)xk

Comparando coeficientes de esto con:

xn =∑

k

sn,k x · xk

vemos que debe ser:

sn,k = sn−1,k−1 + ksn−1,k

y tenemos las condiciones:

s0,0 = 1

sn,0 = 0 si n > 0

El lector astuto reconocera esto simplemente como la recurrencia que obtuvimos para los numeros de Stirling desegunda especie, y tenemos:

xn =∑

k

n

k

xk

Esto cumple la promesa dada por el tıtulo.

3.3. Numeros de Bell

El numero de Bell b(n) es el numero total de particiones posibles de un conjunto de n elementos. Claramente:

b(n) =∑

0≤k≤n

n

k

Esta formula da b(0) = 1, los primeros valores son 1, 1, 2, 5, 15, 52, 203, . . .. Para n > 0 podemos omitir el primertermino (esto simplifica lo que sigue). En consecuencia, supondremos n ≥ 1 de ahora en adelante.

Pero resulta que la suma monstruosa que da los numeros de Stirling de segunda especie “sabe” quenk

= 0

si k > n (por su derivacion cumple la recurrencia de los numeros de Stirling de segunda especie) ası que podemosescribir para todo M ≥ n (ası solo trabajamos con sumas finitas por ahora, y no nos meteremos en problemas).

b(n) =∑

1≤k≤M

1≤r≤k

(−1)k−rrn−1

(r − 1)!(k − r)!

El siguiente paso es intercambiar las sumas. Si combinamos las condiciones de ambas sumas resulta 1 ≤ r ≤ k ≤M ,que podemos descomponer en r recorriendo el rango 1 ≤ r ≤M mientras k recorre r ≤ k ≤M (mucho mas detallesobre manipulacion de sumas se encuentra en [3]). Obtenemos:

b(n) =∑

1≤r≤M

rn−1

(r − 1)!

r≤k≤M

(−1)k−r

(k − r)!

=∑

1≤r≤M

rn−1

(r − 1)!

0≤k≤M−r

(−1)k

k!

25

Page 26: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

La suma interna huele a e−1. . . Si ahora hacemos M →∞:

b(n) =1

e

r≥1

rn−1

(r − 1)!

=1

e

r≥0

rn

r!

En esto multiplicamos por r en el numerador y denominador, y luego agregamos el termino para r = 0, que seanula. Esta formula vale para n ≥ 1. Muy bonito, aunque bien poco util para calcular b(n).

Definamos la funcion generatriz exponencial:

E(x) =∑

n≥0

b(n)xn

n!

Mas adelante veremos otras situaciones en las cuales conviene introducir factores extra.Como la formula para b(n) es valida para n ≥ 1:

E(x)− b(0) =∑

n≥1

b(n)xn

n!

E(x)− 1 =∑

n≥1

xn

n!

1

e

r≥0

rn

r!

=1

e

n≥1

r≥0

(rx)n

r!n!

=1

e

r≥0

erx − 1

r!

=1

e

(∑

r≥0

erx

r!−∑

r≥0

1

r!

)

E(x)− 1 =1

e

(ee

x − e)

E(x) = eex−1

Simplemente notable.Podemos aplicar el truco xD log a esto. Aplicando nuestra receta:

xD ln(E(x)) = xD(ee

x−1)

xDE(x)

E(x)= xex

xDE(x) = xexE(x)

n≥0

nb(n)xn

n!= x

(∑

n≥0

xn

n!

)·(∑

n≥0

b(n)xn

n!

)

n≥1

b(n)xn

(n− 1)!= x

n≥0

( ∑

0≤k≤n

(n

k

)b(k)

)xn

n!

=∑

n≥1

( ∑

0≤k≤n−1

(n− 1

k

)b(k)

)xn

(n− 1)!

Igualando coeficientes se obtiene la recurrencia:

b(n) =∑

0≤k≤n−1

(n− 1

k

)b(k) b(0) = 1

Esto es definitivamente mas util para calcular los valores de b(n) que la ecuacion anterior.

26

Page 27: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

3.4. Derangements

Un punto fijo de una permutacion ocurre cuando el elemento numero k es k. Un derangement (¿“desordena-miento”?) es una permutacion sin puntos fijos. Llamamos Dn al numero de derangements de n elementos. Porejemplo, D0 = 1 (hay una unica manera de ordenar cero elementos, y en esa ningun elemento esta en su posicion),D1 = 0 (un elemento puede ordenarse de una manera solamente, y ese siempre esta en su posicion), D2 = 1 (solo21), D3 = 2 (312 y 231).

Ejemplo Consideremos una permutacion de 7 elementos:

Nº elemento 1 2 3 4 5 6 7Valor 2 6 3 4 1 5 7

Esta permutacion tiene tres puntos fijos: El 3 esta en la posicion 3, el 4 en la posicion 4 y el 7 en la posicion 7. Luegohay D7−3 formas de ordenar los demas sin introducir puntos fijos adicionales, y esos “3 puntos fijos” se puedenelegir de

(73

)formas diferentes.

En general, si hay k puntos fijos en una permutacion, estos pueden elegirse de(nk

)maneras; por lo tanto hay

exactamente(nk

)·Dn−k permutaciones con k puntos fijos. Toda permutacion tiene puntos fijos (0, 1, . . . , n de ellos)

y hay un total de n! permutaciones:

n! =∑

0≤k≤n

(n

k

)·Dn−k

Esta recurrencia es valida para n ≥ 0 si definimos D0 = 1 (hay una unica permutacion de 0 elementos, que no tienepuntos fijos y por tanto es un derangement).

En la recurrencia se observa que el lado derecho se parece al producto de funciones generatrices exponenciales(por el coeficiente binomial). En consecuencia definimos:

D(x) =∑

n≥0

Dnxn

n!

Multiplicando la recurrencia por xn/n! y sumando sobre n ≥ 0 tenemos:

n≥0

n!xn

n!=∑

n≥0

( ∑

0≤k≤n

(n

k

)·Dn−k

)xn

n!

1

1− x =

(∑

n≥0

xn

n!

)·(∑

n≥0

Dnxn

n!

)

= exD(x)

D(x) =e−x

1− x=∑

n≥0

( ∑

0≤k≤n

(−1)k1

k!

)xn

En esto usamos la formula para el producto de funciones generatrices exponenciales, y luego el que multiplicar por(1− x)−1 nos da la funcion generatriz de las sumas parciales.

De lo ultimo:

Dn =

[xn

n!

]d(x)

= n!∑

0≤k≤n

(−1)k

k!

La suma es la de la serie para e−1 truncada, y esta ultima converge muy rapidamente, por lo que se podrıa decirque:

Dn ≈n!

e

27

Page 28: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Algo ası como un 37 % de las permutaciones no tienen puntos fijos. Es curioso que este resultado dependa tan pocode n.

Otra manera de resolver esto es partir derivando una recurrencia para los Dn. Considere un derangement σ de1, 2, . . . , n. Entonces para algun 1 ≤ k ≤ n − 1 tenemos σ(k) = n. Si intercambiamos k con n para obtener unanueva permutacion σ′, hay dos posibilidades:

σ′(k) 6= k: Al eliminar el ultimo elemento, los primeros elementos de σ′ forman un derangement de 1, 2, . . . , n−1.Por ejemplo, si tomamos k = 4 tenemos 312645→ (31254)6.

σ′(k) = k: Podemos intercambiar σ′(k) con σ′(n− 1), para obtener un derangement σ′′ de 1, 2, . . . , n− 2 en lasprimeras n − 2 posiciones de σ′′. Al tomar nuevamente k = 4 queda sucesivamente 512634 → (51243)6 →(4123)56

Estas dos transformaciones en conjunto son una biyeccion para cada valor de k, que podemos elegir de n−1 maneras.Otra manera de verlo es considerar n personas que eligen entre n sombreros de manera que ninguna se lleva el

suyo. Numeramos a las personas 1, 2, . . . , n, y los respectivos sombreros de la misma forma. La persona 1 puedeelegir el sombrero equivocado de n− 1 maneras, supongamos que elige el sombrero i. Ahora hay dos posibilidades:Si la persona i toma el sombrero 1, podemos eliminar a 1 e i, y el problema se reduce a distribuir los n−2 sombrerosrestantes entre las otras n− 2 personas. Si la persona i no toma el sombrero 1, podemos renumerar ese como i (nolo tomara i porque le corresponde) y quedan por distribuir los otros n− 1 sin que a nadie le toque el suyo.

De cualquier forma obtenemos:

Dn = (n− 1)(Dn−1 +Dn−2)

Para completar la recurrencia, nuevamente tomamos D0 = 1. Esto es consistente ya que da D2 = 1 · (D1 +D0).Para resolver esta recurrencia, definimos la funcion generatriz exponencial. La razon de intentar una funcion

generatriz exponencial en este caso es que el factor n se compensa parcialmente con n! en el denominador.

D(x) =∑

n≥0

Dnxn

n!

De la recursion tenemos para n ≥ 1:

Dn+1

n!=nDn

n!+

Dn−1

(n− 1)!

Entonces:

n≥1

Dn+1xn

n!=∑

n≥1

nDnxn

n!+∑

n≥1

Dn−1xn

(n− 1)!

Notese que:

n≥1

Dn+1

n!xn =

d

dx

n≥0

Dn+1xn−1

(n+ 1)!= D′(x)

n≥1

nDn

n!xn−1 =

d

dx

n≥1

Dnxn

n!= D′(x)

n≥1

Dn−1xn−1

(n− 1)!=∑

n≥0

Dnxn

n!= D(x)

28

Page 29: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

y tenemos:

D′(x) = xD′(x) + xD(x)

D′(x)

D(x)=

x

1− x

ln D(x) =

∫ x

0

x

1− x dx

= ln1

1− x − x

D(x) =1

1− xe−x

Dn

n!=

0≤k≤n

(−1)k

k!

Igual que antes.Queda de ejercicio intentar con una funcion generatriz ordinaria.

3.5. ¿Cuantos strings de 2n parentesis balanceados hay?

Llamemos Cn al numero de strings de 2n parentesis balanceados. Estos son los numeros de Catalan, que aparecencon bastante frecuencia en aplicaciones combinatorias. Todo string de parentesis balanceados se puede dividir endos partes: El 2k-esimo parentesis cierra el primer parentesis (1 ≤ k ≤ n), y el resto. Por ejemplo, marcando estecomienzo con negrillas esta el string (()())(()(()))()(()()()). Los primeros valores son 1 (hay una unica forma detener cero parentesis balanceados), 1 (una forma de tener dos parentesis balanceados), 2 (tenemos las opciones ()()y (()) aca), . . .

Llamamos perfecto a un string con n = k. ¿Cuantos strings perfectos de largo 2n hay? Hay Cn−1, como muestrala siguiente biyeccion:

Tomar un string balanceado cualquiera de largo 2n− 2, y encerrarlo entre parentesis da un string perfecto delargo 2n.

Tomar un string perfecto, y eliminar los “( )” de mas afuera da un string balanceado

Por lo anterior, un string balanceado de largo 2n se obtiene combinando:

Un string perfecto de largo 2k, para 1 ≤ k ≤ n: Hay Ck−1 de estos.

Un string balanceado de largo 2n− 2k: Hay Cn−k de ellos.

Sabemos que C1 = 1, y hay una unica manera de tener ningun parentesis balanceado, o sea C0 = 1 tambien. Luego,como todo string se puede dividir de esta forma, y las “mitades” se pueden elegir en forma independiente:

Cn =∑

1≤k≤n

Ck−1 · Cn−k

=∑

0≤k≤n−1

Ck · Cn−k−1

Esta recurrencia es valida para n ≥ 1.La suma corresponde a una convolucion (el coeficiente en el producto de series de potencias). Definimos

C(x) =∑

n≥0

Cnxn

29

Page 30: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

para luego aplicar nuestra receta:

n≥1

Cnxn =

n≥1

( ∑

0≤k≤n−1

CkCn−k−1

)xn

C(x)− 1 =∑

n≥0

( ∑

0≤k≤n

CkCn−k

)xn+1

= x ·∑

n≥0

( ∑

0≤k≤n

CkCn−k

)xn

= xC2(x)

Esto nos da:

xC2(x)− C(x) + 1 = 0

Tenemos dos posibles valores para resolver la ecuacion:

C(x) =1±√

1− 4x

2x

Como ambas opciones son indeterminadas en x = 0, calculamos lımites, y debe ser C(0) = C0 = 1. Resulta comodoexpandir la raız mediante el teorema del binomio:

lımx→0

1 +√

1− 4x

2x=∞

lımx→0

1−√

1− 4x

2x= lımx→0

1− (1− 12 (4x)− . . .)2x

= 1

La opcion correcta es el signo menos:

C(x) =1−√

1− 4x

2x

y solo queda obtener los coeficientes. A esta se le ha llamado la funcion generatriz mas famosa de la combinatoria.Usaremos la expansion en serie de la raız y simplificaremos el resultado luego. Este camino es mas sencillo

que obtener la serie directamente usando el teorema de Maclaurin (significarıa obtener la n-esima derivada de esaexpresion complicada). Tenemos:

(1− 4x)1/2 =∑

n≥0

(1/2

n

)· (−4x)n

= 1 +∑

n≥1

(−1)n−1

22n−1 · n ·(

2n− 2

n− 1

)· (−4x)n

= 1 +∑

n≥1

(2n− 2

n− 1

)·(

22n

22n−1· x

n

n· (−1)n−1 · (−1)n

)

= 1−∑

n≥1

2

n

(2n− 2

n− 1

)· xn

Reemplazando esto en la expresion para la funcion generatriz se tiene:

1−√

1− 4x

2x=∑

n≥1

1

n

(2n− 2

n− 1

)· xn−1

=∑

n≥0

1

n+ 1

(2n

n

)· xn

30

Page 31: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

con lo que:

Cn =1

n+ 1

(2n

n

)

Veremos varios ejemplos adicionales donde aparecen los numeros de Catalan mas adelante.

Ejemplo ¿Cuantas palabras de largo n formadas unicamente por las 5 vocales pueden formarse, si deben contenerun numero par de vocales fuertes (’a’, ’e’ y ’o’)?

De las solicitadas podemos formar 1 de largo 0, 2 de largo 1, 2 × 2 + 3 × 3 = 13 de largo 2, . . . Estos valoressirven para verificar luego.

Podemos definir un como el numero de palabras de largo n con un numero par de vocales fuertes, y vn comoel numero de palabras de largo n con un numero impar de vocales fuertes. Entonces tenemos que u0 = 1, v0 = 0.Como una palabra con un numero par de vocales fuertes puede obtenerse vıa agregar una vocal debil a una palabradel mismo tipo (hay dos formas de hacer esto) o vıa agregar una vocal fuerte a una con un numero impar de vocalesfuertes (de tres maneras). Podemos razonar de forma similar para palabras con un numero impar de vocales fuertes,y obtenemos:

un+1 = 2un + 3vn

vn+1 = 3un + 2vn

Usando nuestra estrategia para resolver recurrencias, definimos funciones generatrices:

U(x) =∑

n≥0

unxn

V (x) =∑

n≥0

vnxn

Multiplicamos las ecuaciones anteriores por xn y sumamos sobre n ≥ 0, obteniendo:∑

n≥0

un+1xn = 2

n≥0

unxn + 3

n≥0

vnxn

n≥0

vn+1xn = 3

n≥0

unxn + 2

n≥0

vnxn

Expresado en terminos de las funciones generatrices definidas antes:

U(x)− u0

x= 2U(x) + 3V (x)

V (x)− v0

x= 3U(x) + 2V (x)

Con los valores iniciales y reorganizando:

U(x) = 2xU(x) + 3xV (x) + 1

V (x) = 3xU(x) + 2xV (x)

Resolvemos el sistema de ecuaciones para U(x), que es lo unico que realmente nos interesa, y descomponemos enfracciones parciales:

U(x) =1− 2x

1− 4x− 5x2

=1

2· 1

1 + x+

1

2· 1

1− 5x

Podemos leer los un de esto ultimo, que son simplemente dos series geometricas:

un =1

2(5n + (−1)n)

Esto coincide con los valores obtenidos antes.

31

Page 32: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

3.6. Particiones de enteros

Una de las areas de investigacion importantes en teorıa de numeros en el siglo XX fue la teorıa de las particionesde enteros. Aca veremos solo un par de resultados curiosos, que se conocen hace mucho.

3.6.1. Particiones en general

Sea p(n) el numero de formas de escribir n como suma. Tenemos:

p(1) = 1 1

p(2) = 2 1 + 1 = 2

p(3) = 3 1 + 1 + 1 = 2 + 1 = 3

p(4) = 4 1 + 1 + 1 + 1 = 2 + 1 + 1 = 2 + 2 = 3 + 1 = 4

...

Si definimos la funcion generatriz:

P (x) =∑

n≥0

p(n)xn

A la suma 1 puede aportar 0, 1, 2, . . . , lo que queda expresado en la serie geometrica 1/(1− x); de la misma forma2 aporta 1/(1− x2); . . . ; y en general n aporta 1/(1− xn). La serie entonces se puede expresar como:

P (x) =∏

n≥0

1

1− xn

3.6.2. Sumandos diferentes e impares

Analizando ahora la serie anterior pero poniendo como condicion que los sumandos no se pueden repetir elaporte de n es 0 o n, lo que se refleja en un factor 1 + xn. Llamamos al numero de estas particiones pd(n), pordifferent, y distinguimos ası la funcion generatriz tambien:

Pd(x) =∑

n≥0

pd(n)xn

=∏

n≥0

(1 + xn)

Este producto podemos expresarlo de otra forma:

Pd(x) =∏

n≥0

1− x2n

1− xn

=∏

n≥0

1

1− x2n+1

Este producto corresponde a sumandos impares, y si escribimos po(n) por el numero de particiones en sumandosimpares (por odd), tenemos:

pd(n) = po(n)

Curioso resultado, obtenido unicamente considerando las funciones generatrices del caso. Y ni siquiera evaluamosninguna de ellas.

32

Page 33: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

3.7. Obtener funciones generatrices directamente

Supongamos que A(x) es la funcion generatriz ordinaria para las secuencias de 0, 1. Esta la podemos expresarcomo:

A(x) =∑

secuencia s

xlargo de s

O sea, consideramos un x como marcando cada elemento de s. Mirando las cosas de esta forma, podemos expresar:

A(x) = 1 + 2xA(x)

Esto se interpreta como A(x) representando todas las secuencias, mientras 1 representa la secuencia de largo 0 (hayuna sola), y 2xA(x) corresponde a que dada una secuencia cualquiera obtenemos dos nuevas de largo uno mayoragregando 0 y 1, respectivamente. Tenemos:

A(x) =1

1− 2x

an = 2n

Esto ya lo sabıamos, pero esta derivacion es muy sencilla.Sea ahora B(x) la funcion generatriz de secuencias de 0, 1 sin ceros adyacentes. Razonado en forma similar a

antes, una secuencia de estas es una secuencia que termina en uno (en cuyo caso, lo que viene antes es una de lassecuencias que nos interesa) o termina en cero (en este caso el penultimo sımbolo es un uno, y lo que viene antesde ese es una de las secuencias que nos interesa). Resulta:

B(x) = 1 + x+ xB(x) + x2B(x)

=1 + x

1− x− x2

Esta es casi la funcion generatriz de los numeros de Fibonacci:

f(x) =x

1− x− x2

Sabemos que F0 = 0:

B(x) = f(x) +f(x)− F0

x

[xn]B(x) = [xn]f(x) + [xn]f(x)− F0

x= Fn + Fn+1

= Fn+2

y resulta bn = Fn+2. Podemos verificar directamente que:

B(x) =f(x)− F1x− F0

x2

Sea ahora C(x, y) la funcion generatriz de secuencias de 0, 1 sin ceros adyacentes, donde x marca el largo dela secuencia e y marca los unos. Si cn,k es el numero de secuencias de largo n que tienen k unos, entonces:

C(x, y) =∑

n ≥ 00 ≤ k ≤ n

cn,kxnyk

De forma similar a antes, obtenemos:

C(x, y) = 1 + x+ xyC(x, y) + x2yC(x, y)

33

Page 34: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

La justificacion es que una de las secuencias que nos interesa o es vacıa (aporta 0 en largo y 0 en unos, lo que setraduce en x0y0 = 1), o es un cero (aporta x1y0 = x), o es una de las secuencias que nos interesa seguida por ununo (ademas de esa secuencia aporta 1 en largo y 1 en unos, dando xyC(x, y)), o es una de las secuencias que nosinteresa seguida por uno cero (ademas de la secuencia base aporta 2 en largo y 1 en unos, vale decir, x2yC(x, y)).

Despejando y expandiendo una serie geometrica:

C(x, y) =1 + x

1− xy − x2y

=1 + x

1− xy(1 + x)

= (1 + x)∑

k≥0

xkyk(1 + x)k

=∑

k≥0

xkyk(1 + x)k+1

De lo anterior:

cn,k =[xnyk

]∑

i≥0

xiyi(1 + x)i+1

= [xn]xk(1 + x)k+1

=[xn−k

](1 + x)k+1

=

(k + 1

n− k

)

Viendo esta curiosa formula, podemos interpretarla considerando que al haber k unos hay k + 1 posiciones en lascuales podemos ubicar los n − k ceros (antes del primer uno, entre los primeros dos unos, . . . , despues del ultimouno).

Otra manera de obtener la ecuacion para C(x) (la funcion generatriz de los numeros de Catalan) es razonardirectamente como sigue: Sea C(x) nuestra funcion generatriz. Para obtener una de las secuencias que nos interesa,hay dos posibilidades: La secuencia vacıa (aporta 1), o una secuencia perfecta y una arbitraria cuyos tamanos sumann− 1. La secuencia perfecta es una arbitraria y un par de parentesis extra (aporta xC(x)) y resulta:

C(x) = 1 + xC2(x)

Se buscan las formas de obtener un canasto de n frutas si:

El numero de manzanas tiene que ser par.

El numero de platanos debe ser un multiplo de 5.

Hay a lo mas 4 naranjas.

Hay a lo mas 1 pera.

Por ejemplo tomemos un canasto de 6 frutas: En total hay 7 posibilidades.

Tipo (1) (2) (3) (4) (5) (6) (7)Manzanas 6 4 4 2 2 0 0Platanos 0 0 0 0 0 5 5Naranjas 0 2 1 4 3 1 0

Peras 0 0 1 0 1 0 1

Para ver como aplicar funciones generatrices, veamos primero la situacion en que tenemos solo manzanas yplatanos. Consideremos que x marca el numero total de frutas, y que 〈mk〉∞0 es la secuencia de formas de obtenerk manzanas mientras 〈pk〉∞0 corresponde a los platanos; y 〈fk〉∞0 la secuencia de las maneras de obtener k frutas.Para un total de 4 frutas es:

f4 = m0 · p4 +m1 · p3 +m2 · p2 +m3 · p3 +m4 · p0

34

Page 35: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Esta es exactamente la forma en que calcularıamos el coeficiente de x4 en la serie:(∑

k≥0

mkxk

)·(∑

k≥0

pkxk

)

Vale decir, la funcion generatriz ordinaria de 〈fk〉∞0 es el producto de las funciones generatrices de 〈mk〉∞0 y 〈pk〉∞0 .Podemos extender esto a los demas tipos de frutas, y las funciones generatrices correspondientes a nuestro

problema son:

Para manzanas se tiene:

1 + x2 + x4 + . . . =1

1− x2

Para platanos se tiene:

1 + x5 + x10 + . . . =1

1− x5

Para las naranjas:

1 + x+ x2 + x3 + x4 =1− x5

1− xLas peras aportan:

1 + x

Combinando las anteriores:

g(x) =1

1− x2· 1

1− x5· 1− x5

1− x · (1 + x)

=1

(1− x)2

Por lo tanto hay (−1)n(−2n

)=(n+1

1

)= n+1 maneras diferentes de llenar el canasto con n frutas, lo que es consistente

con el resultado que obtuvimos antes.Esta forma de ver las cosas da una aproximacion adicional al teorema del binomio. Cada uno de los n elementos

queda representado por 1+x, con lo que la funcion generatriz del numero de maneras de elegir k elementos de entren, debe ser simplemente (1 + x)n:

0≤k≤n

(n

k

)xk = (1 + x)n

Si tenemos 10 libros de tapa negra y 7 de tapa roja, e interesa saber de cuantas formas pueden elegirse 3 libros,esto sera una de las siguientes posibilidades:

N R Opciones Totales0 3 1 35 1 · 35 = 351 2 10 21 10 · 21 = 2102 1 45 7 45 · 7 = 3153 0 120 1 120 · 1 = 120

Gran total 680

Si ni y ri son los numeros de maneras de elegir libros negros y rojos, respectivamente, entonces:∑

0≤i≤3

nir3−i

que es precisamente la forma en que se calcularıa el coeficiente de x3 en el producto de las funciones generatricesordinarias de las secuencias 〈ni〉∞0 y 〈ri〉∞0 .

Si ahora consideramos diferente el orden en que se ubican 6 de los libros, tendremos para el caso de elegir 4libros negros y 2 rojos:

35

Page 36: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Los libros negros se pueden elegir en 10 · 9 · 8 · 7 = 5 040 ordenes diferentes

Los libros rojos se pueden elegir en 7 · 6 = 42 ordenes diferentes

Una vez elegidos los libros (1er libro negro, 2o libro negro, . . . ; 1er libro rojo, 2o libro rojo, . . . ), queda pordecidir en que posiciones de las 6 se ubican los 4 libros negros, cosa que se puede hacer de

(64

)= 15 formas.

Al hacer esto los libros rojos se ubicaran en las posiciones restantes.

En resumen, hay 15 · 5 040 · 42 = 3 175 200 opciones.

En total, en este caso si Ni y Ri son los numeros de maneras de elegir en orden i libros negros y rojos, respectiva-mente, las maneras de ordenar 6 libros son:

0≤i≤6

(6

i

)NiR6−i

Esto corresponde precisamente a la forma de multiplicar las series generatrices exponenciales de las secuencias〈Ni〉∞0 y 〈Ri〉∞0 .

Ejemplo Supongamos la tıpica “mezcla coctel”: Manı, pasas y almendras. Nos interesa saber de cuantas formaspuedo tener un total de n de estas.

Si tengo una almendra y un manı, la forma de representar las combinaciones posibles esta dada por:

(1 + x) · (1 + x) = 1 + 2x+ x2

El primer factor 1 + x indica que hay 1 forma de tener 0 almendras en nuestra mezcla (1 · x0) y 1 forma de tener 1almendra (1 · x1). De forma analoga se tiene 1 + x para el manı. En el resultado, los coeficientes indican que hay 1manera de tener nada, 2 maneras de tener 1 (1 almendra o 1 manı) y 1 manera de tener 2 (1 almendra y 1 manı).

Ahora si hay “infinitos” componentes de cada tipo, y solo nos interesa la cantidad de cada uno de ellos, lasecuencia es 〈1〉∞0 (hay 1 manera de tener 0 manıs, 1 manera de tener 1 manı, 1 manera de tener 2 manıs, . . . ), ynos enfrentamos con la serie:

1 + x+ x2 + x3 + . . . =1

1− xPor lo tanto, las maneras de obtener n items en total (pasas, manı y almendras) tiene la funcion generatriz ordinaria:

g(x) =1

(1− x)3

=∑

n≥0

(−2

n

)(−1)nxn

=∑

n≥0

(n+ 1)(n+ 2)

2xn

lo que nos da la respuesta que hay [xn]g(x) = (n+ 1)(n+ 2)/2 maneras de obtener n pasas, manı y almendras.

Ejemplo Si ahora nos interesara no solo la cantidad de cada tipo de ıtem, sino nos interesa el orden en queingerimos los ingredientes, nuevamente la secuencia que describe cada uno de ellos es 〈1〉∞0 (hay solo una forma deordenar n manıs identicos), y las funciones generatrices exponenciales correspondientes son:

n≥0

xn

n!= ex

Para los tres ingredientes tenemos entonces:

G(x) = ex · ex · ex

= e3x

=∑

n≥0

3nxn

n!

y la respuesta es 3n.

36

Page 37: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Ejemplo Otra variante del mismo tema es cuando interesa el orden en que viene cada ingrediente (ya no sonidenticos, sino cada uno viene numerado). En tal caso, cada ingrediente queda representado por la secuencia 〈n!〉∞0(hay n! maneras de ordenar n manıs), con funcion generatriz exponencial:

n!≥0

n!xn

n!=

1

1− x

y la funcion generatriz exponencial para los ordenamientos respectivos es (1− x)−3. Ası tenemos

1

(1− x)3=∑

n≥0

(n+ 2

2

)xn

=∑

n≥0

n!

(n+ 2

2

)xn

n!

El numero buscado es:

n!

(n+ 2

2

)=

(n+ 2)!

2

Ejemplo Cambio de monedas¿Cuantas formas hay de dar US$ 2?Analizando el aporte de los cambios de monedas se tiene:

1¢ 1 + x+ x2 + . . . =1

1− x5¢ 1 + x5 + x10 + . . . =

1

1− x5

10¢ 1 + x10 + x20 + . . . =1

1− x10

25¢ 1 + x25 + x50 + . . . =1

1− x25

50¢ 1 + x50 + x100 + . . . =1

1− x50

La funcion generatriz del numero de maneras de entregar n centavos es entonces

1

1− x ·1

1− x5· 1

1− x10· 1

1− x25· 1

1− x50

Luego “bastarıa” calcular la serie hasta obtener el coeficiente de x200 para responder a la consulta. . .

3.8. Cuando usar funciones generatrices ordinarias o exponenciales

Resumiendo las observaciones anteriores, podemos decir lo siguiente: Supongamos que tenemos objetos de tipoA, de los cuales hay an de tamano n, y objetos de tipo B, de los cuales hay bn de tamano n. Si se crean los objetosde tipo C de tamano m + n combinando un objeto A de tamano m y uno B de tamano n de todas las formasposibles, esto corresponde a cn objetos de tipo C, donde

cn =∑

0≤k≤n

akbn−k

Esto resulta de considerar todas las combinaciones posibles de tamanos de los objetos A y B que conforman el C.Si definimos funciones generatrices ordinarias:

A(x) =∑

n≥0

anxn

B(x) =∑

n≥0

bnxn

C(x) =∑

n≥0

cnxn

37

Page 38: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

resulta:

C(x) = A(x) ·B(x)

Si ahora los objetos A de tamano n tienen n partes numeradas 1, 2, . . . , n, y similarmente los objetos de tipoB y D, ademas de combinar los objetos mismos tenemos que distribuir los m + n numeros que corresponden alobjeto D que es la combinacion entre la parte A (le tocan m numeros) y la parte B (queda con los n restantes).Esto puede deberse a posiciones que ocupan las partes del objeto A en el objeto D o pueden ser rotulos asignados alas partes. Ası, con un objeto de tipo A de tamano m y uno B de tamano n hay

(m+nm

)combinaciones que pueden

construirse, y sumando sobre todos los posibles tamanos de los objetos A y B nos queda para el numero de objetosD que pueden construirse:

dn =∑

0≤k≤n

(n

k

)akbn−k

Si definimos funciones generatrices exponenciales:

A(x) =∑

n≥0

anxn

n!

B(x) =∑

n≥0

bnxn

n!

D(x) =∑

n≥0

dnxn

n!

resulta:

D(x) = A(x) · B(x)

Estas relaciones son las que hacen que la herramienta de funciones generatrices sea de importancia fundamental encombinatoria.

4. Principio de inclusion y exclusion

Habıamos considerado antes la situacion de contar los elementos contenidos en la union entre dos conjuntos,concluyendo que

|A ∪B| = |A|+ |B| − |A ∩B|

La situacion se complica rapidamente cuando se consideran mas conjuntos y sus intersecciones. Por ejemplo, paracalcular |A∪B ∪B|, comenzamos con |A|+ |B|+ |C|. Pero hemos incluido las intersecciones dos veces (como en elcaso de dos conjuntos), y debemos restar |A∩B|+ |A∩C|+ |B ∩C|. Pero esto a su vez hace que hayamos restado|A ∩B ∩ C| demas, y debemos restituirlo:

|A ∪B ∪B| =(|A|+ |B|+ |C|

)−(|A ∩B|+ |A ∩ C|+ |B ∩ C|

)+ |A ∩B ∩ C|

Al resultado general se le llama principio de inclusion y exclusion, porque incluimos demas, y luego corregimosexcluyendo.

En lo que sigue atacaremos el caso general. El tratamiento que sigue es definitivamente no tradicional, segui-mos [12]. Tomamos un conjunto universo, y los conjuntos que consideramos se representan mediante propiedades(un elemento pertenece a uno de los conjuntos si tiene la propiedad que representa a ese conjunto). Las diversasintersecciones quedan expresadas a traves de los elementos que tienen todas las propiedades correspondientes a losconjuntos intersectados.

Sean:

Ω: El universo. Un conjunto de objetos.

P : Un conjunto de propiedades que los objetos pueden tener

38

Page 39: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

S: Un subconjunto de las propiedades, S ⊆ P .

N(⊇ S): Numero de objetos con las propiedades en S (esto no quiere decir que no puedan tener otras).

Buscamos la forma de calcular cuantos objetos tienen exactamente t de las propiedades.Para r ≥ 0 fijo definimos:

Nr =∑

|S|=r

N(⊇ S)

Esto corresponde a la suma del tamano de los conjuntos de objetos con al menos r de las propiedades, lo queperfectamente puede ser mayor que |Ω|. Estos numeros en general no tienen significado claro, N2 corresponde auna suma como |A ∩ B| + |A ∩ C| + |B ∩ C| que aparece en el calculo de la union de tres conjuntos visto antes.Notese eso sı que N0 = |Ω|, ya que considera todos los conjuntos de objetos con a lo menos cero propiedades, y esoes simplemente el universo mismo. De la misma forma, si hay r propiedades en total, entonces Nr es simplementeel numero de objetos con todas las propiedades, ya que hay un unico conjunto a considerar en este caso. Ilustrandoesto en el ejemplo con tres conjuntos, tenemos que N3 = |A ∩B ∩ C|.

Denote ω ∈ Ω un objeto cualquiera, y llamemos P (ω) al conjunto de propiedades de ω. Entonces:

Nr =∑

|S|=r

N(⊇ S)

=∑

|S|=r

( ∑

ω ∈ ΩS ⊆ P (ω)

1

)

=∑

ω∈Ω

( ∑

S ⊆ P (ω)|S| = r

1

)

=∑

ω∈Ω

(|P (ω)|r

)

En espanol dice: Si el objeto tiene un total de |P (ω)| propiedades, puedo elegir r de sus propiedades de(|P (ω)|

r

)

formas.Ahora sea et el numero de objetos con exactamente t propiedades, es decir

et =∑

|P (ω)|=t

1

Expresando Nr como una suma sobre el numero de propiedades de los objetos, como cada uno de los et objetoscon exactamente t propiedades aporta lo mismo (se considera en Nr una vez por cada subconjunto de r de suspropiedades):

Nr =∑

ω∈Ω

(|P (ω)|r

)

=∑

t≥0

(t

r

)· et

De lo anterior (un sistema de lineal de ecuaciones) se busca despejar los et. Para esta tarea definimos las funcionesgeneratrices:

E(x) =∑

t≥0

etxt

N(x) =∑

r≥0

Nrxr

39

Page 40: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Siguiendo la receta vista antes:

r≥0

Nrxr =

r≥0

(∑

t≥0

(t

r

)· et)xr

=∑

t≥0

et

(∑

r≥0

(t

r

)xr)

=∑

t≥0

et(1 + x)t

O sea:

N(x) = E(1 + x)

E(x) = N(x− 1)

De la expresion anterior podemos extraer el et que se quiera:

et =[xt]E(x)

=[xt]N(x− 1)

=[xt]∑

r≥0

Nr(x− 1)r

=∑

r≥0

Nr[xt]

(x− 1)r

=∑

r≥0

(−1)t−r ·(r

t

)Nr

Esta formula expresa el celebrado principio de inclusion y exclusion. Ademas de ser mucho mas simple que lademostracion tradicional, la ventaja de nuestro desarrollo es que no hace necesario recordar esta engorrosa formula,nos da las herramientas para deducirla sin mayor esfuerzo cada vez que la necesitemos, y en muchos casos obtenerlos resultados buscados directamente sin tener que recurrir a ella.

Tıpicamente interesa saber cuantos objetos no tienen ninguna de las propiedades:

e0 = E(0) = N(−1)

Si hay t propiedades en total, entonces et = Nt, ya que suma los tamanos de todos los conjuntos de objetos quetienen a lo menos t de las propiedades, y eso considera exactamente al unico conjunto de los que tienen todas laspropiedades. En nuestro ejemplo de tres conjuntos, e0 es el tamano del complemento de A ∪B ∪ C, mientras e3 esel tamano de la interseccion entre los tres, e3 = |A ∩B ∩ C|. Tenemos tambien que

|A ∪B ∪ C| = |Ω| − e0

= e1 + e2 + e3

Esto era lo que buscabamos originalmente.Si solo nos interesa calcular el numero promedio de propiedades por objeto, como t =

(t1

)resulta:

t =∑

t≥0

tet/∑

t≥0

et

=N1

N0

Receta

1. Definir Ω y P , expresar lo que se busca en terminos de et

2. Calcular los N(⊇ S)

40

Page 41: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

3. Calcular los Nr, y en consecuencia obtener N(x).

4. et = [xt]N(x− 1).

Hay que tener cuidado con esto, aca las series deben converger para que nuestras operaciones tengan sentido.Normalmente el numero de propiedades y objetos de interes es finito, ası que en realidad estamos manipulandopolinomios y no hay problemas.

Ejemplo Un curso rinde pruebas con los profesores Ellery, Upham y Atwood. Sabemos que 12 pasaron la pruebade quımica, 15 la de matematicas y 10 la de fısica; 8 pasaron quımica y matematicas, 5 pasaron quımica y fısica, 6pasaron matematicas y fısica. Sabemos que el total de estudiantes que pasaron al menos una prueba es 20. ¿Cuantospasaron las tres pruebas?

Aplicamos nuestra receta:

1. El universo es el grupo de 20 estudiantes que aprobaron alguna de las pruebas, las propiedades son las pruebasaprobadas (Q,F,M). Nos interesan los que aprobaron todas las pruebas, o sea e3.

2. Algunos de los N(⊇ S) estan dados en el enunciado del problema. Por ejemplo, dice que N(⊇ Q,F) = 5.

3. Para calcular los Nr tenemos:

N0 = |Ω| = 20

N1 = N(⊇ Q) +N(⊇ M) +N(⊇ F)= 12 + 15 + 10

= 37

N2 = N(⊇ Q,M) +N(⊇ Q,F) +N(⊇ M,F)= 8 + 5 + 6

= 19

N3 = N(⊇ Q,M,F)

Como se comento antes, al haber 3 propiedades es N3 = e3. Sabemos tambien que e0 = 0 (entre los consi-derados no hay nadie que no haya aprobado al menos una prueba). La funcion generatriz de los Nr resultaser:

N(x) = 20 + 37x+ 19x2 + e3x3

4. Sabemos que nuestro universo no incluye estudiantes que no han aprobado al menos una de las pruebas,ası que:

e0 = 0 = E(0) = N(−1) = 2− e3

Con esto resulta e3 = 2.

Pero tambien tenemos:

E(x) = N(x− 1)

= 5x+ 13x2 + 2x3

lo que nos dice que 5 aprobaron una unica prueba y que 13 aprobaron dos.

Ejemplo Determinar cuantos numeros de largo n escritos en decimal tienen un numero par de ceros.Aca nuestro universo es el conjunto de todos los numeros con n dıgitos. La propiedad i es que el dıgito i-esimo

es cero. Lo que nos interesa entonces es:

e0 + e2 + . . . =∑

r≥0

e2r

41

Page 42: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Podemos extraer unicamente los terminos con potencia par mediante:

E(x) + E(−x)

2=∑

t≥0

e2tx2t

y nuestra suma no es mas que:

E(1) + E(−1)

2

Un numero decimal de n dıgitos comienza con un dıgito no cero, los demas n− 1 dıgitos pueden ser cualquiera.En este caso podemos calcular los er directamente, observando que hay r posiciones para los ceros, elegidas de entren− 1 posiciones, los otros n− r dıgitos (incluyendo el primero) pueden tomar uno de los 9 valores restantes:

er =

(n− 1

r

)· 9n−r

E(x) = 9 ·∑

r≥0

(n− 1

r

)· 9n−1−r · xr

= 9 · (9 + x)n−1

y el numero buscado resulta ser:

1

2(E(1) + E(−1)) =

1

2

(9 · (9 + 1)n−1 + 9 · (9− 1)n−1

)

=9

2

(10n−1 + 8n−1

)

Ejemplo Puntos fijos de permutaciones.Este es un tema que ya hemos visto (derangements), pero aca obtendremos una vision adicional.Siguiendo nuestra receta:

1. Ω: Las n! permutaciones de n elementos. Una permutacion τ tiene la propiedad i si i es un punto fijo de lapermutacion. Nos interesa obtener e0.

2. Sea S ⊆ 1, . . . , n. Entonces N(⊇ S) corresponde a las permutaciones para las cuales los elementos de S sonfijos, solo se pueden “mover” los n− |S| restantes:

N(⊇ S) = (n− |S|)!

3. Como r puntos fijos pueden elegirse de(nr

)maneras, se tiene que:

Nr =∑

|S|=r

N(⊇ S)

=∑

|S|=r

(n− r)!

=

(n

r

)· (n− r)!

Con esto:

N(x) =∑

0≤r≤n

(n

r

)(n− r)!xr

=∑

0≤r≤n

n!

r!(n− r)! · (n− r)! · xr

= n!∑

0≤r≤n

xr

r!

42

Page 43: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Definamos la funcion exponencial truncada en n como:

exp|n(x) =∑

0≤r≤n

xr

r!

Entonces:

N(x) = n! · exp|n(x)

4. Finalmente buscamos et:

et =[xt]n! exp|n(x− 1)

En particular, e0 es el numero de derangements de n, o sea Dn = e0 = E(0) = N(−1):

Dn = n! exp|n(−1)

≈ n!e−1

Este resultado ya lo habıamos obtenido.

Mas en general, tenemos tambien:

et = n![xt] ∑

0≤r≤n

(x− 1)r

r!

= n![xt] ∑

0≤r≤n

0≤k≤r

1

r!

(r

k

)xk(−1)r−k

= n!∑

0≤r≤n

1

r!

(r

t

)(−1)r−t

= n!∑

t≤r≤n

(−1)r−t

t!(r − t)!

=n!

t!

0≤r≤n−t

(−1)r

r!

=n!

t!exp|n−t(−1)

El numero promedio de puntos fijos es:

t =N1

N0

=

(n1

)(n− 1)!

n!= 1

Curiosamente no depende de n.

El principio de inclusion y exclusion completa las herramientas elementales de la combinatoria vistas anterior-mente.

5. La formula de inversion de Lagrange

La formula de inversion de Lagrange es una herramienta notable para resolver ecuaciones de la forma:

u = tφ(u)

43

Page 44: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

donde φ es una funcion dada de u. Esta relacion define u en funcion de t, y “estamos despejando u en terminos det.” La utilidad en combinatoria resulta porque al derivar la ecuacion para la funcion generatriz G(x) tıpicamentetendremos un caso “vacıo” (aporta 1) y x veces alguna expresion que involucra a G, que representa “casos anterioresy este.” Con la substitucion u = G(x)− 1 la ecuacion queda de la forma indicada. Veremos un par de ejemplos masadelante.

Teorema 5.1 (Formula de Inversion de Lagrange). Sean f(u) y φ(u) series formales de potencias en u, conφ(0) = 1. Entonces hay una unica serie formal u = u(t) que cumple:

u = tφ(u)

Ademas, el valor f(u(t)) de f en la raız u = u(t), expandida en serie alrededor de t = 0, cumple:

[tn] f(u(t)) =1

n

[un−1

]f ′(u)φ(u)n

Dadas las funciones f y φ, esta formula nos da los coeficientes de f(u(t)) en bandeja. No demostraremos esteresultado, ya que nos llevarıa demasiado fuera del rango de este ramo. La demostracion de esta forma del teoremapuede encontrarse en [12].

Ejemplo Arboles binarios.Un arbol binario es vacıo, o es una raız y un subarbol binario izquierdo y un subarbol binario derecho. Definimos

bn como el numero de arboles binarios con n nodos, con funcion generatriz ordinaria B(x). Directamente, ya queobtenemos los arboles de tamano n de combinar un nodo con dos subarboles cuyos tamanos suman n− 1:

B(x) = 1 + xB2(x)

Sabemos que esta relacion para la funcion generatriz nos lleva a los numeros de Catalan (ver seccion 3.5), o searesulta bn = Cn. Si ahora definimos u(x) = B(x)− 1, queda:

u(x) = x (u(x) + 1)2

Con φ(u) = (u + 1)2 esta es la forma a la que es aplicable la formula de inversion de Lagrange, ya que φ(0) = 1.Tenemos entonces, como en nuestro caso interesa f(u) = u:

[xn]u(x) =1

n

[un−1

]f ′(u)φ(u)n

=1

n

[un−1

](u+ 1)2n

=1

n

(2n

n− 1

)

=1

n+ 1

(2n

n

)

Esto nos da unicamente los coeficientes para n ≥ 1 (solo estos coeficientes de B y de u = B − 1 coinciden). Porcasualidad la formula final, luego de simplificar, cubre correctamente el caso b0 = 1. Casi indoloro.

Ejemplo Arboles ternarios.Son similares a los arboles binarios, pero cada nodo tiene tres descendientes. Vale decir, un arbol ternario es vacıo,

o un nodo raız ademas de tres subarboles ternarios (el izquierdo, el central y el derecho) Nos interesa determinarcuantos arboles ternarios de n nodos hay. Llamemos tn a esta cantidad. Claramente t0 = 1. Aplicando nuestrareceta anti-recurrencias, definimos:

T (x) =∑

n≥0

tnxn

De la definicion, un arbol ternario de n ≥ 1 nodos consta de un nodo raız y tres subarboles, cuyos tamanos sumann− 1. Como los tres subarboles pueden elegirse independientemente:

T (x) = 1 + xT 3(x)

44

Page 45: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Usando la misma idea anterior, definimos u = T − 1, φ(u) = (u+ 1)3, f(u) = u, y la formula nos da:

[xn]u(x) =1

n

[un−1

]f ′(u)φ(u)n

=1

n

[un−1

](u+ 1)3n

=1

n

(3n

n− 1

)

=1

2n+ 1

(3n

n

)

Seguir en este caso el camino que emprendimos originalmente en la seccion 3.5 cuando derivamos los numeros deCatalan lleva a la cubica xT 3(x)− T (x) + 1 = 0, resolviendo esta (maxima [6] ayuda mucho con las manipulacionesrutinarias) da las tres soluciones:

T1 =

(−√

3 i

2− 1

2

)

√27 x−4x

6√

3x− 1

2x

1/3

+

√3 i2 − 1

2

3x

(√27 x−4

x

6√

3 x− 1

2 x

)1/3

T2 =

(√3 i

2− 1

2

)

√27 x−4x

6√

3x− 1

2x

1/3

+−√

3 i2 − 1

2

3x

(√27 x−4

x

6√

3 x− 1

2 x

)1/3

T3 =

√27 x−4x

6√

3x− 1

2x

1/3

+1

3x

(√27 x−4

x

6√

3 x− 1

2 x

)1/3

Nos interesan soluciones reales, por lo que la rama correcta es T3(x). Extraer los coeficientes (para verificar nuestrosresultados anteriores) debera quedar de ejercicio.

Ejemplo Arboles ordenadosUn arbol ordenado es vacıo, o consta de un nodo raız unicamente, o es un nodo raız y uno o mas subarboles no

vacıos ubicados en un orden especıfico.Sea an el numero de arboles ordenados de n nodos. Definimos la funcion generatriz:

A(x) =∑

n≥0

anxn

Directamente de la definicion anterior, como A(x)− 1 representa arboles ordenados no vacıos:

A(x) = 1 + x+ x((A(x)− 1) + (A(x)− 1)2 + . . .

)

= 1 + x(1 + (A(x)− 1) + (A(x)− 1)2 + . . .

)

= 1 + x1

1− (A(x)− 1)

Si definimos u = A(x)− 1, resulta:

u = x · 1

1− u

45

Page 46: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

y la formula de inversion nos da para n ≥ 1 (sabemos que a0 = 1):

an = [xn]u(x)

=1

n[un−1](1− u)−n

=1

n(−1)n−1

( −nn− 1

)

=1

n·(

2n− 2

n− 1

)

De nuevo bastante indoloro.El lector astuto reconoce inmediatamente que para n > 0 es an = Cn−1, aparecen nuevamente los numeros de

Catalan.

6. Aproximaciones

Nos interesa, por ejemplo, hallar una buena aproximacion para n!. Primero consideremos:

lnn! =∑

1≤k≤n

ln k

≤∑

1≤k≤n

lnn

= n lnn

con lo que n! ≤ nn.Ahora demostraremos que n lnn no es tan mala aproximacion. Consideremos:

i(n− i+ 1) ≥ n si 1 ≤ i ≤ n

Para demostrar esto, buscamos el valor mınimo de esta expresion en este rango.

f(x) = x(n− x+ 1)

f ′(x) = n− 2x+ 1

f ′′(x) = −2

Como la raız de f ′(x) esta al medio del rango, y f ′′(x) = −2 el punto crıtico es un maximo. Por simetrıa se concluyeque los mınimos estan en los extremos:

f(1) = f(n) = n

En vista de lo anteriormente demostrado:

1≤i≤n

i(n− i+ 1) ≥ nn

(n!)2 ≥ nn

n! ≥ nn/2

En resumen:

nn/2 ≤ n! ≤ nn

La aproximacion lnn! = n lnn no es tan mala.Otra forma de obtener una aproximacion de una suma la da la figura 1. La idea es acotar la suma (representada

por el area bajo la escalera) mediante integrales (areas bajo curvas que pasan por los vertices de la escalera). Las

46

Page 47: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

0

0.5

1

1.5

2

2.5

1 2 3 4 5 6 7 8 9 10

log(floor(x))log(x)

log(x - 1)

Figura 1: Cotas para el logaritmo natural de n!

areas bajo las curvas nos permiten concluir la siguiente relacion:

∫ n+1

2

ln(x− 1) dx ≤ lnn! ≤∫ n+1

1

lnx dx

Calcular las integrales es rutina, y nos da las cotas:

e(ne

)n≤ n! ≤ e

(n+ 1

e

)n+1

Un analisis mas preciso usando la formula de Euler-Maclaurin para aproximar la diferencia entre la sumatoria y laintegral lleva a la formula de Stirling:

n! ≈√

2πn(ne

)n

7. Grafos

En matematicas, un grafo corresponde a una abstraccion de la situacion en la cual hay objetos (vertices), algunosde los cuales estan conectados entre sı (mediante arcos). El interes es razonar solo con el hecho que existen o noconexiones entre los vertices. Aplicaciones de grafos son circuitos electricos, donde interesa como estan conectadosentre sı los componentes (ver un ejemplo en la figura 2) y representaciones de redes de transporte. Muchas estructurasde datos, particularmente las enlazadas, pueden representarse mediante grafos, y muchos problemas de optimizacionimportantes se modelan mediante grafos. Tambien sirven como notacion grafica de algunos modelos de computacion.Una advertencia: A pesar de ser un area bastante antigua de las matematicas, aun no hay consenso en la notaciono la nomenclatura. En caso de duda, revise las definiciones dadas por el autor.

Formalmente:

Definicion Un grafo G = (V,E) consta de:

V: Conjunto finito de vertices. Por razones tecnicas se suele dejar fuera la posibilidad V = ∅.

47

Page 48: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Figura 2: Diagrama de circuito de un filtro de paso bajo de tercer orden [4]

E: Conjunto de arcos, pares de vertices pertenecientes a V . Un arco a, b ∈ E consta de a, b ∈ V .

Consideramos en esta definicion que un arco conecta un par de vertices diferentes (sin importar el orden), y nopueden haber varios arcos uniendo el mismo par de vertices.

Dos vertices contenidos en un arco se llaman adyacentes. Si de un grafo G = (V,E) se eliminan arcos o vertices(con los arcos que los contienen) el resultado G′ = (V ′, E′) es un subgrafo.

Para nuestros efectos no interesa el caso de conjuntos infinitos de vertices.Variantes de grafos son multigrafos, en los cuales se permiten varios arcos entre el mismo par de vertices, e

incluso arcos que comienzan y terminan en el mismo vertice. Muchas de nuestras conclusiones se aplican a ellostambien, pero no los trataremos explıcitamente.

Ejemplo Definicion de un grafo.G dado por:

V = a, b, c, d, zE = a, b, a, d, b, z, c, d, d, z

Graficamente esta dado por la figura 3. Notar que a conectado con b o b conectado con a, para el caso significa lo

d

z

a

c

b

Figura 3: Un grafo

mismo, sin importar la ruta o la distancia del arco. Solo el hecho que estan conectados importa.

7.1. Representacion de grafos

El dibujo es util para seres humanos, pero bastante inutil para razonar con el o para el uso en computadoras.Veremos algunas opciones adicionales.

48

Page 49: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

7.1.1. Lista de adyacencia

La lista de adyacencia es una tabla donde para cada vertice se listan los vertices adyacentes. Para el caso delgrafo de la figura 3 se tiene la lista de adyacencia en la tabla 1.

V Adya b, zb a, zc dd a, c, zz b, d

Cuadro 1: Lista de adyacencia para el grafo de la figura 3

7.1.2. Matriz de adyacencia

Representar un grafo mediante una matriz de adyacencia corresponde a definir una matriz con ındices los vertices,y los elementos son 1 o 0 dependiendo de si los vertices del caso estan conectados o no. El grafo de la figura 3 quedarepresentado en la tabla 2: Es claro que esta matriz es simetrica (vale decir, a[i, j] = a[j, i]), y los elementos en la

a b c d za 0 1 0 1 0b 1 0 0 0 0c 0 0 0 1 0d 1 0 1 0 1z 0 1 0 1 0

Cuadro 2: Matriz de adyacencia del grafo de la figura 3

diagonal son todos cero (porque no hay arcos que conectan vertices consigo mismos)).

7.1.3. Representacion enlazada

Una opcion natural es representar los vertices por nodos con punteros que lo conectan a sus vecinos. Como elnumero de vecinos no necesariamente es el mismo (o siquiera razonablemente acotado) una opcion es que cada nodotenga una lista de punteros a los vecinos (termina siendo algo similar a las listas de adyacencia).

7.1.4. Representacion implıcita

En muchas aplicaciones el grafo nunca existe como estructura de datos, se van generando (y descartando) losvertices vecinos conforme se requieren. Un ejemplo de esta situacion se da cuando un programa juega al ajedrez:Los nodos son posiciones de las piezas, y dos nodos son adyacentes si son posiciones relacionadas mediante unamovida. El grafo del caso es finito, pero tan grande que es totalmente impracticable generarlo completo (y aunmenos almacenarlo). Se van generando los vertices conforme los requiera el programa.

7.2. Isomorfismo entre grafos

Intuitivamente, si dos grafos pueden dibujarse de la misma forma, los consideraremos iguales. Sin embargo, comolos conjuntos de vertices (y en consecuencia, arcos) no seran los mismos, esta idea debe interpretarse de otra forma.

Definicion Si G1 = (V1, E1) y G2 = (V2, E2) son grafos se dice que son isomorfos si existe una biyeccion α : V1 → V2

tal que α(u), α(v) ∈ E2 siempre que u, v ∈ E1.

Algunas reglas simples que resultan de la definicion es que al buscar isomorfismos solo deben considerarse comocandidatos vertices del mismo grado, y que vertices adyacentes deberan mapear a vertices adyacentes. En todocaso, hallar un isomorfismo entre un par de grafos (o demostrar que no lo hay) es muy difıcil en el caso general, nose conocen (y se sospecha que no existen) algoritmos eficientes para ello.

49

Page 50: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Ejemplo Isomorfismo entre grafosLa figura 4 muestra un par de grafos isomorfos, indicando las correspondencias entre vertices.

a

b

c

d

e

f

e

c

a

f

d

b

Figura 4: Ejemplo de isomorfismo entre grafos

7.3. Algunos grafos especiales

Algunos grafos se repiten en aplicaciones, o son utiles para ejemplos y casos de estudio. Se les dan nombres ynotacion especiales.

Kn: Grafo completo de n vertices cada uno conectado con todos los demas. La figura 5 muestra algunosejemplos.

Figura 5: Algunos grafos Kn.

Cn: Ciclo de n vertices, donde el vertice i esta conectado con los vertices i− 1 e i+ 1 modulo n. Ver figura 6.

Figura 6: Algunos grafos Cn.

Wn: Rueda (“wheel”) de n vertices, que consiste en un grafo Cn mas un “centro” conectado a cada vertice.Algunas ruedas las muestra la figura 7.

Qn: Cubo de orden n. Donde:

Vertices: Strings de n sımbolos 0, 1.Arcos: Conectan a todos los pares de vertices que difieren en un sımbolo.

Ejemplo La lista de adyacencia de un cubo de orden 3 la muestra la tabla 3.

50

Page 51: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Figura 7: Algunos grafos Wn.

V Adyacentes000 001, 010, 100001 000, 011, 101010 011, 110, 000011 111, 010, 001100 110, 101, 000101 100, 111, 001110 111, 101, 010111 110, 011, 101

Cuadro 3: Lista de adyacencia del grafo Q3

7.4. Grado de un vertice

Definicion Sea G = (V,E) un grafo. El grado de un vertice es el numero de otros vertices conectados a el. Parav ∈ V es δ(v) = |e ∈ E : v ∈ e|.

Teorema 7.1. Sea G = (V,E) un grafo, entonces:

v∈Vδ(v) = 2 · |E|

Demostracion. Consideremos S ⊆ V × E tal que (v, e) ∈ S siempre que v ∈ e. Contando los elementos de S “porfilas” y “por columnas” tenemos:

Por filas: Cada vertice aparece una vez por cada arco en el cual participa:

|S| =∑

v∈Vδ(v)

Por columnas: Cada vertice aparece dos veces (una por cada extremo del arco):

|S| =∑

e∈E2 = 2 · |E|

Estas dos expresiones deben ser iguales, lo que corresponde precisamente a lo que se querıa demostrar.

Lema 7.2 (Handshaking). El numero de vertices de grado impar en un grafo es par.

Demostracion. Sean Vo los vertices de grado impar y Ve los vertices de grado par del grafo. Entonces:

v∈Vo

δ(v) +∑

v∈Ve

δ(v) = 2 · |E|

El lado derecho de esta ecuacion es par. El segundo termino del lado izquierdo es una suma de numeros pares, porlo que es par. Entonces el primer termino debe ser par, pero es la suma de numeros impares. La unica posibilidades que haya un numero par de estos, que es exactamente lo que se querıa demostrar.

Definicion Se le llama regular a un grafo en el cual δ(v) es el mismo para todos los vertices.

51

Page 52: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Ejemplo ¿Es posible tener grafos con vertices de grados como los de esta lista?

1. 2 2 2 3

2. 1 2 2 3 4

3. 2 2 4 4 4

4. 1 2 3 4

Respuesta:

1. Sabemos que∑v∈V δ(v) = 2 · |E|, aca

∑v∈V δ(v) = 9. Por lo tanto es imposible. Recordar que por el lema 7.2

el numero de vertices de grado impar siempre es par.

2. Es facil ver que es factible dibujar este grafo, ver figura 8.

3

2 4 2

1

Figura 8: Un grafo con grados 1, 2, 2, 3, 4

3. Hay 5 vertices, de los cuales 3 estan conectados con “todos los demas” δ(v) = 4. Ninguno de los otros verticespueden tener grado menor a 3. Por lo tanto es imposible este grafo.

4. Tenemos 4 vertices y uno conectado a 4 vertices, es decir, esta conectado al resto y a uno mas. Nos falta unvertice. Este grafo es imposible.

Definicion G = (V,E) es un grafo. Entonces se define:

Camino: Se llama camino a una secuencia de vertices 〈v1, v2, . . . , vn〉 tal que vi, vi+1 son adyacentes (walk eningles).

Camino simple: Es un camino en los que los vi son todos distintos (en ingles, path).

Ciclo: Es un camino 〈v1, v2, . . . , vn, v1〉, en el cual no se repite mas que el primer y ultimo vertice. Se llama r-ciclo(ciclo de largo r) si tiene r arcos y r vertices. Algunos distinguen ciclos (pueden repetirse vertices fuera delinicial, nosotros les llamamos circuitos) y ciclos simples (lo que nosotros llamamos ciclos).

Circuito: Un camino cerrado 〈v1, v2, . . . , vn, v1〉 (pueden repetirse vertices).

Definicion Sea G = (V,E) un grafo. Definimos la relacion ∼ entre vertices, tal que x ∼ y si x e y estan en uncamino de G, o sea x = v1, v2, . . . , vk = y es un camino.

Es facil notar que ∼ es una relacion de equivalencia:

(Reflexiva) x ∼ x. Un camino de 0 arcos cumple con la definicion.

(Simetrica) x ∼ y ⇒ y ∼ x: Esto es x = v1, . . . , vk = y ⇒ y = vk, . . . , v1 = x, que claramente es cierto.

(Transitiva) (x ∼ y) ∧ (y ∼ z)⇒ x ∼ y. Esto es decir:

x = v1, . . . , vk = y = u1, . . . , uk = z

O sea, x y z estan en un camino, y x ∼ z.

52

Page 53: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Definicion Sea G = (V,E) un grafo. Si V1 ∪ V2 · · · ∪ Vk son las clases de equivalencia de ∼, y E1, E2, . . . , Ek sonlos conjuntos de arcos tales que Ei contiene solo vertices de Vi, a los grafos Gi = (Vi, Ei) se les llama componentesde G. Si G tiene un unico componente es llamado conexo.

Ejemplo Grafo no conexoEn el grafo de la figura 9 se distinguen vertices a los cuales no se puede acceder desde algunos de los otros

vertices. Este grafo tiene dos componentes.

Figura 9: Un grafo con dos componentes.

Un resultado simple es la relacion entre el numero de vertices y arcos en grafos conexos.

Teorema 7.3. Todo grafo G = (V,E) tiene a lo menos |V | − |E| componentes conexos.

Demostracion. Usamos induccion sobre el numero de arcos.

Base: En un grafo con 0 arcos, cada vertice es un componente conexo por sı mismo, y hay exactamente |V |−0 = |V |componentes conexos.

Induccion: Suponemos que la hipotesis vale para todo grafo de n arcos, y demostramos que vale para todo grafo den+ 1 arcos, con n ≥ 0. Considerese un grafo G = (V,E) con n+ 1 arcos. Eliminamos un arco arbitrario a, bdel grafo, dejando el grafo G′ con n arcos. Por la hipotesis, G′ tiene a lo menos |V | −n componentes conexos.Reponemos el arco eliminado, con lo que tenemos de vuelta el grafo original G. Si a y b pertenecıan al mismocomponente conexo de G, G tiene el mismo numero de componentes conexos de G′, que es a lo menos |V | −npor hipotesis. Si a y b pertenecen a componentes distintos de G′, G tiene un componente conexo menos queG′, ya que el arco a, b une esos dos componentes de G′ en uno solo en G. Como G′ tenıa a lo menos |V | −ncomponentes conexos, G tiene entonces a lo menos uno menos que esto, vale decir |V | −n− 1 = |V | − (n+ 1).Esto demuestra el paso de induccion.

Algunos puntos se deben hacer notar de esta demostracion. Primeramente, usamos induccion sobre el numerode arcos. Esto es comun en demostraciones en grafos, al igual que induccion sobre el numero de vertices. Solo sininguna de estas dos estrategias sirve vale la pena considerar otras opciones.

Por otro lado, usamos la tactica de eliminar un arco y reponerlo en nuestra demostracion. Esta es la forma massencilla de evitar errores logicos comunes, ya que nos asegura que el arco que queremos agregar es posible y noslleva en la direccion correcta. Si se usa induccion en grafos (ya sea sobre arcos o vertices), siempre conviene usaresta idea de encoger-expandir.

Corolario 7.4. Todo grafo conexo de n vertices tiene a lo menos n− 1 arcos.

Demostracion. Como el grafo es conexo, sabemos por el teorema 7.3 que

|V | − |E| ≤ 1

|V | − 1 ≤ |E|

que es exactamente lo que se querıa probar.

Definicion Sea G = (V,E) un grafo. Entonces:

53

Page 54: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Un camino simple que visita todos los vertices es un camino hamiltoniano. Un ciclo que contiene todos losvertices del grafo es llamado ciclo hamiltoniano.

Un camino que pasa por todos los arcos es denominado camino de Euler. Un circuito que pasa por todos losarcos se llama circuito de Euler.

Determinar si hay un camino o ciclo hamiltoniano es difıcil. En cambio, un camino (o circuito) de Euler essencillo de hallar. Si consideramos vertices cualquiera hay dos opciones:

1. Comienzo en un vertice, termino en otro.

2. Comienzo en un vertice, termino en el mismo.

Si inicio y fin son diferentes (es un camino de Euler):

Inicio: Salgo una vez, paso por el (entro y salgo) varias veces, lo que significa que δ(inicio) es impar.

Fin: Llego una vez, paso por el (entro y salgo) varias veces, con lo que tambien δ(fin) es impar.

Otros vertices: Paso por el (entro y salgo) varias veces, por lo que δ(otras) es par.

Si inicio y fin son el mismo (es un circuito de Euler):

Inicio (y fin): Salgo una vez, paso por el (entro y salgo) varias veces, llego una vez, y δ(inicio) es par.

Otros vertices: Paso por el (entro y salgo) varias veces, con lo que δ(otras) es par.

Estas dos son las unicas posibilidades, y por tanto es condicion necesaria para la existencia de un camino de Euleren un grafo conexo el que o todos los vertices sean de grado par (en tal caso podemos comenzar en cualquierade ellos, terminamos en el mismo, es un circuito de Euler), o que hayan exactamente dos vertices de grado impar(comenzamos en uno de ellos, terminamos en el otro, es un camino de Euler). Mas adelante demostraremos queestas condiciones son suficientes, y daremos un algoritmo para encontrar un camino (o circuito) de Euler.

Ejemplo Puentes de KonigsbergSupongase que se desea dar un paseo por la ciudad de Konigsberg, pasando una unica vez por cada uno de los

siete puentes, situados segun la figura 10. ¿Es posible realizar esta tarea?La respuesta es no, como demostro Euler en 1735, dando inicio al estudio de lo que hoy es la teorıa de grafos.

Representando los sectores unidos por los puentes en un grafo como en la misma figura 10, se aprecia claramenteque hay un numero impar de vertices de grado impar. Debido a esto no es posible que exista un camino de Euler quepermita cumplir con la tarea requerida. Si bien la representacion no es un grafo propiamente tal – es un multigrafopues hay vertices que estan conectados por mas de un arco – aun ası los principios son aplicables.

(a) Konigsberg en tiempos de Euler (b) Konigsberg y sus puentes

5

3

3

3

(c) Puentes de Konigsbergcomo multigrafo

Figura 10: Puentes de Konigsberg[7]

Teorema 7.5 (Euler). Sea G un grafo conexo. Entonces hay un camino de Euler si y solo si hay exactamente dosvertices de grado impar (y todo camino de Euler comienza en uno de ellos y termina en el otro), y hay un circuitode Euler si y solo si todos los vertices son de grado par.

54

Page 55: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Demostracion. Demostramos implicancia en ambas direcciones. Que las condiciones son necesarias ya lo vimosantes, demostramos ahora que son suficientes por induccion fuerte sobre el numero de arcos de G.

Si G tiene un unico arco, la conclusion es trivial.Supongamos entonces que para todo grafo con a lo mas n arcos se cumple el teorema, y demostraremos que

vale tambien para n + 1. Sea entonces un grafo G con n + 1 arcos, todos cuyos vertices son de grado par o hayexactamente dos vertices de grado impar. La estrategia general es eliminar un arco, y analizar por separado lassituaciones en las cuales esta operacion divide el grafo en dos componentes y las en que sigue siendo conexo.

Consideremos primero el caso en que todos los vertices de G son de grado par. Elijamos un vertice x y un arcoe = x, y. Si eliminamos el arco e, obtenemos un nuevo grafo G′, en el cual ahora x e y son los unicos vertices degrado impar. Entonces G′ es conexo, ya que si no fuera conexo x e y en G′ pertenecerıan a componentes diferentes, yen G′ los vertices x e y serıan los unicos de grado impar en sus respectivos componentes. Esto es absurdo, contradiceal lema 7.2. Por induccion, como G′ es conexo y tiene n arcos, hay un camino de Euler que comienza en x y terminaen y; al reponer el arco x, y hay entonces un circuito de Euler (el camino anterior junto con este arco).

Supongamos ahora que G tiene exactamente dos vertices de grado impar, llamemosles x e y. Consideremosprimero el caso en que x e y son adyacentes. Eliminando el arco x, y tenemos un grafo G′ con n arcos, y todossus vertices son de grado par. Si G′ es conexo, tiene un circuito de Euler, y agregando el arco x, y a este tenemosun camino de Euler que comienza en x y termina en y. Si G′ no es conexo, tiene dos componentes, llamemosles G1

y G2. Pero tanto G1 como G2 tienen solo vertices de grado par, y tienen menos de n arcos, con lo que cada uno deellos tiene un circuito de Euler, que podemos suponer comienza y termina en x (respectivamente y). Conectandoestos dos circuitos mediante el arco x, y obtenemos un camino de Euler para G, que comienza en x y termina eny. Si no hay un arco que conecte a x e y, debe haber un arco x, z para algun vertice z. Eliminando este arco,tenemos un grafo G′ con n arcos en el cual hay exactamente dos vertices de grado impar, z e y. Por induccion, si G′

es conexo hay un camino de Euler que comienza en z y termina en y, reponiendo el arco x, z tenemos un caminode Euler que comienza en x y termina en y. Si G′ no es conexo, tendra componentes G1 (que contiene a x) y G2.Entonces z estara en G2 (en caso contrario, G′ serıa conexo), e y estara en G2 tambien (de otra forma, serıa el unicovertice de grado impar en G1). O sea, G1 tiene solo vertices de grado par, y G2 tiene exactamente dos vertices degrado impar (y y z). Por induccion, hay un circuito de Euler en G1, que podemos suponer comienza y termina enx, y un camino de Euler en G2, que comienza en z y termina en y. Reponiendo el arco x, z tenemos un caminode Euler que comienza en x, recorre G1 para volver a x, luego pasa a G2 por x, z y sigue el camino de Euler enG2 para terminar en y.

Esta demostracion no da muchas luces sobre como hallar el camino (circuito) de Euler. Esto lo da el algoritmode Fleury: Si hay vertices de grado impar, comience en uno de ellos, en caso contrario elija uno cualquiera. En cadapaso, elija un arco desde el vertice actual y atravieselo, luego lo elimina del grafo. Al hacer esto, debe tener cuidadoque el grafo resultante sea conexo (salvo que no tenga alternativa).

Ejemplo El juego del dibujo en el papel. Se pide dibujar la figura 11 en un papel, de manera que el lapiz no se

Figura 11: Dibuja una casita.

levante en ningun momento del papel y no dibuje dos veces el mismo trazo. ¿Es posible realizar esto?La respuesta es si. Esto debido a que hay exactamente dos vertices de grado impar. Debemos elegir uno de ellos

como punto de partida, y terminaremos en el otro.

Ejemplo Un cubo de queso cortado en 3× 3.Un raton comienza en una de las esquinas, come ese cubito y sigue con uno de los vecinos (no en diagonal).

¿Puede comerse todo el queso terminando con el cubo del centro?La respuesta a esto es No. Esto se debe a que no se cumple ninguno de estos casos:

55

Page 56: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Camino que visite todos los vertices comenzando con una esquina y finalizando en el centro (camino hamilto-niano).

Ciclo hamiltoniano en el grafo si se conecta la esquina con el centro.

7.5. Arboles

En muchas aplicaciones aparecen grafos conexos sin enlaces redundantes (sin ciclos). Esta idea es capturada porla definicion siguiente.

Definicion El grafo T = (V,E) en un arbol si:

T1: T es conexo.

T2: No hay ciclos en T .

Aclaramos que los arboles binarios vistos en el ramo Estructuras de Datos, no son arboles. Aca no hay hijos nidescendientes, y aun menos “hijos izquierdos” y “derechos,” solo vecinos.

Definicion En un arbol T = (V,E) un vertice v ∈ V se llama hoja si tiene grado uno. En caso contrario es unvertice interno.

Buena parte de la importancia de los arboles reside en que tienen una coleccion de propiedades interesantes,como las siguientes.

Teorema 7.6. Si T = (V,E) es un arbol entonces:

T3: Para cualquier par de vertices en V hay un unico camino simple entre ellos

T4: Al agregar un arco a T se forma un ciclo

T5: Al eliminar un arco de T , quedan dos componentes que son arboles.

T6: Un arbol con al menos dos vertices tiene al menos dos hojas

T7: |E| = |V | − 1.

Demostracion. Demostramos cada una de las aseveraciones por turno.

T3: Supongamos que T = (V,E) es un arbol y que hay dos vertices x, y con mas de un camino simple que losconecta, digamos:

x = v1, v2, . . . , vr = y

x = u1, u2, . . . , us = y

Ahora sea i el menor ındice tal que vi+1 6= ui+1; y sea j el mayor ındice tal que vj−1 6= uk−1, pero vj = ukpara algun k. Vease la figura 12. De aquı se nota que v1, vi+1, . . . , vj−1, vj , uk−1, uk−2, ui+1, ui son un ciclo,

xu1

v1

ui

vi

ui+1

vi+1

uj−1

vk−1

uj

vky

ur

vs

Figura 12: Esquema de vertices en la parte T3 el teorema 7.6

pero siendo T un arbol no tiene ciclos. Esta contradiccion completa la demostracion de esta parte.

T4: Al agregar un arco x, y al arbol, este junto con el camino entre x e y (que existe porque T es conexo) formanun ciclo.

56

Page 57: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

T5: Consideremos un arco x, y del arbol. Si lo eliminamos del grafo, ya no hay caminos entre x e y (por T3 hayun unico camino entre x e y, precisamente este arco). Luego el grafo resultante tiene dos componentes, cadauno conexo y sin ciclos. Ambos son arboles.

T6: Consideremos un camino de largo maximo en T , que contiene vertices v1, v2, . . . , vm. Entonces m ≥ 2, dadoque un arbol con al menos dos vertices tiene que tener al menos un arco. No pueden haber arcos v1, vi parai ≥ 2, ya que de otra forma tendrıamos un ciclo v1, . . . , vi, v1. Tampoco puede haber un arco u, v1, ya quede haberlo tendrıamos un camino mas largo u, v1, . . . , vm. O sea, v1 es una hoja. De forma similar, vm es unahoja, y hay al menos dos hojas.

T7: Usamos induccion sobre el numero de vertices. Queremos demostrar que |E| = |V | − 1, En un arbol con ununico vertice, la aseveracion se cumple. Supongamos ahora que la aseveracion se cumple para todos los arbolescon n vertices, (o sea, todos ellos tienen n−1 arcos), y consideremos un arbol con n+1 vertices. Elijamos unahoja x (por T6 sabemos que hay al menos dos hojas), hay un unico arco x, y que incluye a x. Al eliminarel vertice x de T junto con el arco x, y queda un arbol de n vertices, que por induccion tiene n − 1 arcos.Al reponer el vertice y el arco, el numero de arcos y de vertices aumenta en uno, y tenemos el resultado.

La parte T7 y el corolario 7.4 nos dicen que un arbol es el grafo conexo con mınimo numero de arcos para eseconjunto de vertices.

Ejemplo Se pide dibujar los arboles no isomorfos de 6 vertices.La mejor forma de solucionar esto es empezar a dibujar los grafos, partiendo por el caso en que se encuentre

un vertice de grado maximo, es decir, de grado 5. Vease la figura 13a. Luego consideramos los arboles con gradomaximo 4 (figura 13b), los de grado 3 (figura 13c), y finalmente los de grado maximo 2 (figura 13d). Estos son la

(a) Grado maximo 5 (b) Grado maximo 4

(c) Grado maximo 3

(d) Grado maximo 2

Figura 13: Los 6 arboles con 6 vertices

solucion a nuestro problema. Hay un total de 6 arboles no isomorfos de 6 vertices.

7.6. Arboles con raız

Veremos algunas aplicaciones de arbol con un vertice especial designado como raız. Esto aparece en aplicacionesen las cuales hay una jerarquıa, como al representar un organigrama. Ası no son iguales (isomorfos) los arbolescon raız (el vertice en blanco indica la raız) mostrados en la figura 14. Aparte de la raız distinguimos verticesinternos con δ(v) ≥ 2, y hojas con δ(v) = 1. Normalmente dibujaremos la raız y debajo de ella sus vecinos, yası sucesivamente hasta llegar a las hojas.

57

Page 58: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Figura 14: Ejemplos de arbol con raız

En muchas aplicaciones nos encontraremos que la raız y los vertices internos tienen el mismo grado. Si tienengrado m se habla de arboles m-arios.

Podemos enumerar los vertices de un arbol con raız, analizando su distancia desde la raız:

Nivel 0: La raız.

Nivel 1: Los vecinos de la raız.

Nivel 2: Los vecinos de vertices en el nivel 1, salvo los que estan en el nivel 0.

Nivel n: Los vecinos de los vertices en el nivel n− 1, salvo los que estan en nivel n− 2.

Esto motiva la siguiente definicion:

Definicion La altura del arbol con raız es el maximo k para el que el nivel k no es vacıo.

La interpretacion como una jerarquıa similar a una genealogıa sugiere:

Definicion Sea T un arbol con raız r. Si hay un camino de r a v que pasa por u, se dice que u es ancestro de v, yv es un descendiente de u. Si u y v son vecinos, se dice que u es el padre de v, y que v es hijo de u.

La enumeracion en niveles que da lugar a la definicion de altura sugiere el algoritmo 1 para recorrer un arbol

Algoritmo 1 Recorrer arboles con raız

procedure recorrer(v)

if v es hoja thenVisitar v

elseVisitar v en preordenfor hijo x de v dorecorrer(x)

end forVisitar v en postorden

end if

con raız. Se invoca el procedimiento recorrer inicialmente con la raız. En este algoritmo podemos considerar visitar(procesar de alguna forma) cada vertice la primera o a ultima vez que pasamos por el, dando lugar a recorridos enpreorden o en postorden. Como no hay orden definido entre los hijos de un vertice, en caso de haber varios elegimosuno arbitrariamente.

Teorema 7.7. Si el numero maximo de hijos de los vertices de un arbol con raız es d y su altura es h entonces elarbol tiene a lo mas dh hojas.

Demostracion. La demostracion es por induccion fuerte sobre h.Cuando h = 0 hay un unico vertice (raız = hoja) y hay 1 ≤ d0 = 1 hojas.Supongamos que todos los arboles de altura menor o igual a h tienen a lo mas dh hojas. Consideremos un arbol

de altura h+ 1. Este es la raız y a lo mas d arboles de altura a lo mas h, cada uno de los cuales aporta a lo mas dh

hojas, para un total de a lo mas d · dh = dh+1 hojas.

Corolario 7.8. Un arbol en el cual cada nodo tiene a lo mas d hijos y que tiene r hojas tiene altura a lo mas delogd r.

58

Page 59: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

7.6.1. Arboles de decision

Un arbol de decision representa una secuencia de decisiones y los resultados de estas. Se comienza en la raız,cada vertice interno representa una decision, y las hojas son resultados finales. Un camino entre la raız y una hojarepresenta una ejecucion del procedimiento, a traves de la secuencia de decisiones y sus resultados que el caminorepresenta.

Ejemplo Busqueda de monedas falsas.Tenemos una moneda O (la sabemos buena) y r otras monedas, una de las cuales puede ser falsa (puede que

sea mas pesada o mas liviana que la moneda O).¿Cual es el numero mınimo de pesadas (comparar el peso de dos colecciones de monedas) para determinar si

hay una falsa y saber exactamente cual es?Un nodo del arbol de decisiones puede representarse como en la figura 15, para cada pesada hay tres opciones:

a : b

< = >

Figura 15: Vertice del arbol de decision al pesar monedas

La izquierda es mas liviana, son iguales, la derecha es mas liviana.Las hojas que debemos obtener (resultados finales del proceso) son las siguientes:

Todas buenas.

#1 Pesada.

#1 Liviana.

(Muchas alternativas omitidas)

#r Pesada.

#r Liviana.

Hay 2r + 1 resultados, lo que se requieren a lo menos dlog3(2r + 1)e pesadas. Pueden ser mas que esto, solo hemosdemostrado que es imposible hacerlo con menos.

7.6.2. Analisis de algoritmos de ordenamiento

Supongamos un metodo de ordenamiento basado en comparaciones. Una pregunta obvia es: ¿Cuantas compa-raciones requiere ordenar n elementos?

El suponer que todos los elementos son diferentes hace mas duro resolver el problema, con lo que nos concen-tramos en ese caso. El ordenar n elementos involucra determinar en que orden estan (o, lo que es lo mismo, hande ubicarse). En nuestro caso, cada vertice representa el resultado de comparar dos elementos con las opciones<,>. No descartamos comparaciones redundantes en esto. Las hojas son ordenes de los n elementos de entrada(aunque tambien es posible que aparezcan entre las hojas situaciones imposibles, al especificar el camino desde laraız situaciones contradictorias).

Ejemplo Comparamos tres elementos a, b, c, todos distintos.Como se ve en la figura 16, el arbol tiene 6 hojas, que corresponden a las 3! formas de ordenar 3 objetos.

Esto nos muestra que la altura del arbol de decision (el numero de comparaciones requeridas en el peor caso) esdlog2 n!e. Acotamos esto en la seccion 6 a traves de n! ≤ nn. Por nuestro analisis el numero de comparacionesrequerido es entonces O(n log n).

59

Page 60: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

a : b

b : c

a, b, c a : c

a, c, b c, a, b

b : c

a : c

b, a, c c, b, a

b, c, a

Figura 16: Arbol de decision al ordenar 3 objetos

7.6.3. Generar codigo

Una aplicacion interesante de arboles con raız se da al representar expresiones aritmeticas para generar codigo.Considerando un modelo de maquina que tiene cierto numero de registros de proposito general, con operacionesaritmeticas tradicionales que toman sus argumentos de dos registros cualquiera y dejan el resultado en algunocualquiera. Lo que nos interesa ahora es generar codigo optimo para expresiones aritmeticas en esta clase demaquinas.

Por ejemplo, la expresion a ∗ x + b ∗ y + c ∗ (−(u + v)) queda representada por el arbol de la figura 17. Los

+3

∗2

a1 x1

+3

∗2

b1 y1

∗2

c1 −2

+2

u1 v1

Figura 17: Arbol sintactico de una expresion

numeros que adornan los vertices del arbol representan el numero de registros requeridos para calcular el valor deese vertice (se les llama numeros de Sethi, en honor al inventor del algoritmo que discutiremos).

Esta claro que al calcular una expresion vista de esta forma como un arbol nada puede ganarse calculando partede una subrama, seguir con otra, para luego volver a completar la primera. El caso mas simple es el de una variableo constante, basta cargar el valor en un registro libre. Consideremos ahora una operacion cualquiera dentro delarbol, suponiendo operaciones con dos argumentos (las ideas se pueden extender sin problemas a casos en que haymas de dos argumentos). Toma los valores de sus argumentos de dos registros. Para calcular estas expresiones mascomplejas, supongamos que evaluar los operandos requiere m y n registros respectivamente. Se dan dos casos:

m = n: De ser ası, la estrategia consiste en calcular el argumento izquierdo (se usan m registros en el proceso,queda el resultado en uno de ellos). Luego calculamos el argumento derecho, usando m registros mas, lo quehace un total de m+ 1 registros. Finalmente calculamos el valor buscado, sin usar registros adicionales.

m 6= n: Consideremos m < n, el otro caso es totalmente simetrico. En este caso calculamos primero aquel argumentoque requiere mas registros, (el derecho en nuestro caso), usando n registros, y dejando el resultado en unode ellos. Luego calculamos el otro argumento (el izquierdo en nuestro caso), para lo que se requieren m < nregistros, reusando los que quedaron libres del calculo anterior. En total, se requieren n registros.

El algoritmo para generar codigo optimo en este caso particular (este tipo de arquitecturas y expresiones sinsubexpresiones repetidas) resulta inmediato de la discusion anterior:

60

Page 61: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

1. Calcule los numeros de Sethi para los vertices del arbol en un recorrido en postorden.

2. Considere cada vertice en un recorrido en postorden. Si es una variable o constante, cargue su valor en algunregistro libre. Si es una operacion, calcule primero aquel argumento que requiere mas registros, luego el otro,y efectue la operacion.

Si faltan registros, la solucion es guardar en una variable temporal el contenido de aquel registro que no se usara pormas tiempo, para reponerlo cuando se necesite. Esto resulta optimo, ya que minimiza el numero de instruccionesadicionales (cada operacion requiere al menos una instruccion, y nuestro algoritmo usa exactamente una instruccionpor operacion si no quedamos cortos de registros). Notese tambien que basta con operaciones que trabajen entredos registros (origen y destino), no hacen falta operaciones con dos orıgenes y un destino para el resultado. Esosı pueden hacer falta operaciones simetricas, con efectos por ejemplo a← a−b y a← b−a (aunque pueden obtenersesus efectos con una secuencia de dos operaciones, por ejemplo calculando a← a− b y cambiando el signo).

Para el arbol de la figura 17 resulta el codigo del listado 1. El formato de las instrucciones da la operacionmisma, el resultado y sus dos argumentos. Por ejemplo, sub r0, r1 , r2 significa r0← r1− r2.

mov r0 , umov r1 , vmul r0 , r0 , r1mov r1 , cadd r0 , r0 , r1mov r1 , bmov r2 , ymul r1 , r1 , r2add r0 , r0 , r1mov r1 , amov r2 , xmul r1 , r1 , r2add r0 , r0 , r1

Listado 1: Codigo para la expresion ejemplo

Lamentablemente en situaciones mas realistas (registros de uso especıfico, instrucciones que no solo operan entreregistros, subexpresiones comunes, aplicar identidades algebraicas) la situacion es bastante mas compleja y no hayalgoritmos tan simples y eficientes.

7.7. Grafos planares

Ejemplo Tres servicios y tres casas.

1

B C

2

A

Figura 18: Dos casas conectadas a tres servicios.

Suponga que se tienen 3 casas 1, 2, 3 y 3 servicios A,B,C. ¿Pueden conectarse los servicios a las casas sinque estos se lleguen a cruzar?

Como se ve en la figura 18, es imposible ya que despues de ubicar dos casas no existen zonas libres en las cualescolocar la tercera sin que las lineas de servicios se crucen.

61

Page 62: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

7.8. Algoritmos de busqueda en grafos

En muchas aplicaciones se requiere recorrer un grafo en forma completa (visitar cada uno de sus vertices), oal menos encontrar algun vertice que cumpla ciertas condiciones especiales. Esto lleva a considerar algoritmos debusqueda en grafos (aunque tal vez un mejor nombre serıa algoritmos de recorrido).

7.8.1. Busqueda en profundidad

La idea de este algoritmo es partir de un vertice, visitar algun vecino de este y continuar de allı hasta llegara un vertice ya visitado o no poder continuar, para luego retornar al vertice anterior y continuar con su siguientevecino. Se le llama busqueda en profundidad porque la estrategia esbozada avanza a traves de grafo todo lo quepuede antes de considerar alternativas. En ingles se llama Depth First Search, abreviado DFS.

Sea G = (V,E) un grafo conexo. Apliquemos el siguiente algoritmo:

Elegir un vertice v ∈ V como punto de partida.

Marcar v como “visitado”, y considerar (recursivamente) los vecinos de v. La recursion termina al llegar a unvertice ya visitado o no poder continuar.

Esta tecnica es llamada en “profundidad” porque avanza todo lo que puede antes de considerar las demas alterna-tivas.

Ejemplo Busqueda en profundidadConsideremos el grafo de la figura 19. El grafo de la figura 20 fue recorrido siguiendo el algoritmo busqueda en

Figura 19: Grafo para ejemplos de recorrido

profundidad. Se partio desde el vertice 1, y desde allı se recorrio y enumero el resto de los vertices, eligiendo uno alazar como vecino a considerar luego. En rojo quedan registrados los arcos por lo cuales se paso.

Definicion Sea G = (V,E) un grafo conexo. Al arbol T = (V,E′), donde E′ ⊆ E se le llama un arbol recubridor(en ingles, spanning tree) de G.

Busqueda en profundidad recorre un arbol recubridor del grafo. En general entrega un componente del grafo,para encontrar todos los componentes basta con repetir la busqueda partiendo cada vez de un vertice aun no visitadohasta agotar los vertices. Ver el algoritmo 2 para una version recursiva, que se invoca como DFS(v) para un verticedel grafo. El algoritmo 3 es una version que usa un stack explıcitamente (resultado de eliminar la recursion).

7.8.2. Busqueda a lo ancho

Aca se visitan los vecinos del punto de partida, y recien cuando se han visitado todos ellos se avanza a los vecinosde estos. Por la forma en que avanza en el grafo se le llama busqueda a lo ancho, en ingles Breadth First Search,que se abrevia BFS.

Sea G = (V,E) un grafo conexo. Apliquemos el siguiente algoritmo:

62

Page 63: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

1

2

3

4

5

6

78

9

10

11

12

Figura 20: El grafo de la figura 19 recorrido en profundidad

Algoritmo 2 Busqueda en profundidad (Depth First Search), version recursiva

procedure DFS(x)

if x no visitado thenMarque x visitadowhile hay y no visitado adyacente a x doDFS(y)

end whileend if

Algoritmo 3 Busqueda en profundidad (Depth First Search), version no recursiva

procedure DFS(x)

variable S: Stack de vertices

push(S, x)while S no vacıo dox← pop(S)if x no visitado then

Marque x como visitadoif hay y no visitado adyacente a x then

push(S, y)end if

end ifend while

63

Page 64: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

1

2

3

4

5

6

7

89

10

11

12

Figura 21: El grafo de la figura 19 recorrido en a lo ancho

Elegir v ∈ V como punto de partida.

Marcar v como visitado, luego visitar cada uno de los vecinos no visitados de v, y recien entonces los vecinosde estos

Ejemplo Busqueda a lo anchoTomando el mismo grafo que en ejemplo de busqueda en profundidad (ver figura 21), ahora se enumeran los

vertices y se marcan los arcos recorridos, pero ahora con el metodo de busqueda a lo ancho. Vease la figura 21

Mas formalmente el algoritmo para buscar a lo ancho es el 4.

Algoritmo 4 Busqueda a lo ancho (Breadth First Search)

procedure BFS(x)

variable Q: Queue de vertices

enqueue(Q, x)while Q no vacıo dox← dequeue(Q)if x no ha sido visitado then

Marque x como visitadoif hay y no visitado adyacente a x then

enqueue(Q, y)end if

end ifend while

7.8.3. Busqueda a lo ancho v/s busqueda en profundidad

Si comparamos los dos procedimientos (algoritmos 3 y 4) se ve que la unica diferencia es el orden en que seprocesan los vertices. Podemos resumir las caracterısticas de ambos algoritmos como sigue:

Ambos llegan a todos los vertices del componente.

Los programas son similares, aunque busqueda en profundidad (recursivo) es un tanto mas simple de progra-mar.

64

Page 65: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Complejidad (equivalente a tiempo de ejecucion) similares.

La pregunta entonces es como elegir entre los dos.

Si interesa una solucion cualquiera: Usar busqueda en profundidad

Si interesa “la mejor” (por lo general referida a cercanıa de vertices): Usar busqueda a lo ancho

Pero un analisis mas profundo de los dos algoritmos muestra que tienen una estructura comun: Guardan verticespara considerarlos mas adelante en alguna estructura, la unica diferencia es si se procesan en orden de llegada (albuscar a lo ancho) o se atiende primero al ultimo en llegar (busqueda en profundidad). Claramente podemos usaralgun otro criterio para elegir el siguiente vertice a considerar, no solamente el momento en que nos encontramoscon el por primera vez. Esto da lugar a una gama de metodos de busqueda heurısticos.

7.9. Colorear vertices

Hay muchas situaciones en las cuales interesa encontrar una asignacion que respeta restricciones dadas. Unaforma de representar estas es haciendo que las entidades a recibir asignaciones se los modela como vertices, lasrestricciones como arcos entre esos vertices, y buscamos asignar colores a los vertices de forma que vertices vecinossiempre tengan colores diferentes.

Ejemplo Consideremos la situacion en que deseamos programar seis charlas, cada una de una hora. Hay interesadosen asistir a varias de ellas, en particular, hay interesados en las charlas 1 y 2, en las 1 y 4, en 1 y 6, en 2 y 6, en 3y 5, en 4 y 5, en 5 y 6. Nos interesa programar las charlas en el mınimo numero de horas.

Podemos modelar esto mediante un grafo, conectando las charlas que tienen asistentes en comun. Vease lafigura 22. Por ejemplo, podemos asignar las charlas v1 y v3 a la hora 1, v2 y v4 a la hora 2, v5 a la hora 3, y

v3

v2v1

v6

v5 v4

Figura 22: Grafo representando charlas

finalmente v6 a la hora 4. Si representamos la hora 1 con color azul, la 2 con rojo, la 3 con amarillo y la 4 con verde,se obtiene lo que muestra la figura 23.

v3

v2v1

v6

v5 v4

Figura 23: Asignacion de horas a charlas como colores

En terminos matematicos, hemos particionado los vertices del grafo en cuatro, de forma que no hayan verticesadyacentes en ninguna de las partes. Una forma de representar esta situacion usa la funcion c : V → [4] que acada vertice (charla) le asigna una hora. Generalmente hablamos de colores de los vertices, no de horas asignadas,aunque claramente la naturaleza exacta de los objetos 1, 2, 3, 4 es irrelevante. Podemos hablar de colores azul,rojo, amarillo, verde, o de hora 1, hora 2, hora 3, hora 4. Lo unico que importa es que vertices vecinos tienen coloresdiferentes.

65

Page 66: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Definicion Un coloreo de vertices de un grafo G = (V,E) es una funcion c : V → N tal que c(x) 6= c(y) siempreque x, y ∈ E.

Definicion El numero cromatico de un grafo G = (V,E), escrito χ(G), es el mınimo entero k tal que el grafo tieneun coloreo de k colores

Volviendo a nuestro ejemplo, la asignacion de horas de la figura 23 corresponde a un coloreo con 4 colores. Peroprobando un poco con 3 horas vemos que podemos asignar v1 y v5 a la hora 1, v2 y v3 a la hora 2, y dejar v4 y v6

para la hora 3. Ver la figura 24. Por lo demas, se requieren al menos 3 colores ya que v1, v2 y v6 estan conectados

v3

v2v1

v6

v5 v4

Figura 24: Otra asignacion de horas a charlas

entre sı. Hemos demostrado que el numero cromatico de este grafo es 3.En general, para demostrar que el numero cromatico de un grafo es k se requiere:

1. Encontrar un coloreo con k colores

2. Demostrar que es imposible hacerlo con menos de k colores

Ejemplo Numeros cromaticosAnalicemos cuantos colores se necesitan para colorear el grafo de la figura 25.

Figura 25: Grafo a colorear

Dado que el grafo presenta ciclos de largo impar (por ejemplo el en la figura 26), inmediatamente se desprendela necesidad de 3 colores o mas para colorear el grafo. La figura 27 muestra un coloreo con 3 colores, por lo que elnumero cromatico del grafo es precisamente 3.

Ejemplo Numeros cromaticos: Otro caso.Consideremos el grafo de la figura 28.Dado que son 6 vertices, el numero de colores es a lo mas 6. En la figura 29a se marca un ciclo impar en rojo,

lo que nos indica que necesitan a lo menos 3 colores. Pero se ve en azul en la figura 29b que el grafo tiene K4 comosubgrafo, lo que indica que el numero de colores tiene que ser a lo menos 4. La figura 30 muestra un coloreo con4 colores, y el numero cromatico es 4.

Como se comento antes, muchos problemas de asignacion de recursos pueden modelarse mediante coloreo degrafos. Por esta razon el encontrar soluciones optimas (coloreo usando χ(G) colores) o al menos buenas (pocos masque χ(G) colores) tienen inmensa importancia practica.

66

Page 67: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Figura 26: Un ciclo de largo impar en el grafo de la figura 25

Figura 27: Un coloreo con tres colores del grafo de la figura 25

7.9.1. El algoritmo voraz para colorear grafos

Encontrar el numero cromatico de un grafo es un problema difıcil. No se conoce ningun algoritmo que tometiempo polinomial, y se cree generalmente que tal algoritmo no existe. Sin embargo, hay una forma simple deconstruir un coloreo de vertices usando un numero “razonable” de colores. La idea es ir asignando colores a losvertices de forma de usar siempre el primer color que no produce conflictos. Por ejemplo, el coloreo de la figura 23resulta aplicando el algoritmo 5 a los vertices del grafo de la figura 22 en orden del numero del vertice. El coloreo dela figura 27 resulta de asignar colores azul, rojo, amarillo mediante el algoritmo voraz partiendo del vertice superiory avanzando en sentido contrareloj.

El algoritmo 5 es corto de vista, por lo que el coloreo que entrega no necesariamente es bueno. Sin embargo,puede producir el coloreo con el mınimo numero de colores, dependiendo del orden en que se consideren los vertices.Lo malo es que si hay n vertices son n! ordenes diferentes a considerar. A pesar de esto, el algoritmo es util enteorıa y en la practica. Demostraremos un teorema usando esta estrategia.

Teorema 7.9. Si G es un grafo de grado maximo k, entonces:

1. χ(G) ≤ k + 1

2. Si G no es regular, entonces χ(G) ≤ k

Figura 28: Otro grafo a colorear

67

Page 68: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

(a) Subgrafo C5 (b) Subgrafo K4

Figura 29: Subgrafos del grafo de la figura 28

Figura 30: Coloreo con 4 colores del grafo de la figura 28

Demostracion. Como el coloreo de cada componente es independiente del resto del grafo, basta discutir la situacionde un unico componente. Demostramos cada aseveracion por turno.

1. Sea v1, v2, . . . , vn un orden de los vertices de G. Si aplicamos el algoritmo de coloreo voraz, al considerar unvertice cualquiera tendra a lo mas k vecinos con colores ya asignados. Si contamos con k + 1 colores, siemprehabra uno que podamos asignarle.

2. Para este caso consideraremos los vertices en un orden especial. Como el grafo no es regular, habra al menosun vertice cuyo grado es menor a k. Llamemosle vn a uno de ellos. Numeremos los vecinos de vn como vn−1,vn−2, . . . (hay a lo mas k − 1 de estos). Una vez agotados los vecinos de vn, numeramos los vecinos de vn−1

distintos de vn; nuevamente habra a lo mas k − 1 de estos. Continuamos de esta forma, siempre dejandofuera de consideracion los que ya tienen numero asignado. Si ahora aplicamos el algoritmo voraz, siempre queconsidere un vertice tendra a lo mas k − 1 vecinos ya coloreados, y se requeriran a lo mas k colores.

Algoritmo 5 Coloreo voraz

c[v1]← 1for i = 2 to n doS ← ∅for j = 1 to i− 1 do

if vj es adyacente a vi thenS ← S ∪ c[vj ]

end ifend fork ← 1while k ∈ S dok = k + 1

end whilec[vj ]← k

end for

68

Page 69: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

7.10. Colorear arcos

Una situacion analoga al coloreo de vertices se produce si coloreamos arcos de forma que no hayan arcosadyacentes (que comparten vertices) del mismo color. Formalmente:

Definicion Dado un grafo G = (V,E) un coloreo de arcos es una funcion c : E → N tal que c(e1) 6= c(e2) sie1 ∩ e2 6= ∅.

Aca tenemos una particion de los arcos E1 ∪E2 ∪ · · · ∪En tal que los arcos en Ei no tienen vertices en comun.La nomenclatura difiere, hay autores que le llaman numero cromatico de arcos al mınimo numero de colores enun coloreo de arcos, otros le llaman el ındice cromatico del grafo. Se anota χ′(G) o χ1(G), aunque la nocion (y lanotacion) es mucho menos usada que el numero cromatico.

Esta claro que el ındice cromatico es 2 para un ciclo de orden par, y 3 para un ciclo de orden impar. Esto proveecotas para el ındice cromatico de grafos que contienen los anteriores. Y obviamente el ındice cromatico es a lo menosel grado maximo de un vertice.

Un bonito ejemplo es el coloreo de arcos del grafo de Frucht [2] dado en la figura 31. Como hay vertices de grado3, es imposible un coloreo con menos colores, y su ındice cromatico es 3.

Figura 31: Un coloreo de arcos del grafo de Frucht

Aplicaciones de esto ocurren en muchos problemas de asignar recursos y tareas de manera que no interfieran enel tiempo [9]. Por ejemplo, al programar la primera ronda de un torneo de futbol (donde compiten “todos contratodos”) debe hallarse un calendario de forma que a nadie se le solicite estar jugando dos partidos a la vez, pero quetambien use el mınimo de tiempo (si hay N equipos en competencia, son N(N − 1)/2 los partidos a jugar, con loque la solucion obvia de programar un partido por semana tomarıa demasiado tiempo). Esto se modela medianteun grafo en el que los vertices son los equipos participantes, mientras los arcos son partidos que deben jugarse. Elcoloreo de arcos entonces asigna fechas a los partidos, de forma que ningun equipo este jugando dos partidos lamisma fecha. Es de suponer que el problema real a resolver por la ANFP es mucho mas complejo, al tratar de lograrque todos los fines de semana haya un partido entretenido.

7.11. Grafos bipartitos

Un caso especial muy importante son los grafos para los cuales χ(G) = 2. En este caso, los vertices se dividen endos grupos V1 y V2 que corresponden a los coloreados con los colores 1 y 2, respectivamente, y los arcos unen unode cada grupo. En consecuencia, estos grafos se llaman bipartitos. Para representar un grafo bipartito escribiremosG = (V1∪V2, E), bajo el entendido que V1 y V2 son las particiones de los vertices segun color. Hay muchas situacionesque se pueden modelar de esta forma, veremos algunos ejemplos pronto. Un caso importante a tener en cuenta escuando cada vertice de V1 esta conectado con todos los vertices de V2. Si |V1| = m y |V2| = n, obtenemos el grafobipartito completo, que se anota Km,n. Algunos ejemplos los muestra la figura 32.

Para grafos bipartitos tenemos:

Teorema 7.10. Un grafo es bipartito si y solo si no tiene ciclos de largo impar.

Demostracion. Demostramos implicancias en ambas direcciones.

69

Page 70: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

(a) K2,2 (b) K2,3 (c) K3,3 (d) K3,4 (e) K3,5

Figura 32: Algunos grafos bipartitos completos

Si hay un ciclo de largo impar, se requieren tres colores solo para colorear ese ciclo, y χ(G) ≥ 3. Por el otrolado, si no hay ciclos de largo impar, construiremos un ordenamiento de los vertices que produce un coloreo con doscolores. Elijamos un vertice cualquiera, llamemosle v1, y le asignamos el nivel 0. A los vecinos de v1 les llamamosv2, . . . , vr, les asignamos el nivel 1. A los vecinos de los vertices de nivel 1 que no estan ya numerados les asignamosel nivel 2, . . . , a los vecinos no numerados de los vertices de nivel l − 1 les asignamos el nivel l. De esta formacompletamos un componente de G, y procesamos a los demas componentes de la misma forma. Lo crucial de esteorden es que un vertice del nivel l solo tiene vecinos en los niveles l− 1 y l+ 1. Para ver esto, supongamos que haydos vertices conectados en el mismo nivel. Siguiendo sus conexiones hacia atras a traves de los distintos niveles,encontraremos caminos simples hacia un vertice comun, que tendran el mismo largo, ver la figura 33. Pero estos

1

l l

Figura 33: Un ciclo de largo 2l + 1 si hay conexiones cruzadas

forman un ciclo de largo impar junto con el arco entre los vertices del mismo nivel que supusimos conectados.

Una manera tal vez mas simple de entender lo anterior (y, a la pasada, dar un algoritmo para determinar si ungrafo es bipartito y obtener las particiones) es tomar un vertice cualquiera y pintarlo de rojo, sus vecinos colorearlosde azul, y ası sucesivamente ir pintando vertices vecinos del color contrario (esto corresponde a busqueda a loancho). Si esto termina con todos los vertices coloreados (recomenzando con otro aun no coloreado si se acabaranlos vecinos) el grafo es bipartito, si encontramos conflictos (vecinos del mismo color) no lo es.

Lema 7.11. Sea G = (X ∪ Y,E) un grafo bipartito con arcos entre X e Y . Entonces:

x∈Xδ(x) =

y∈Yδ(y) = |E|

70

Page 71: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Demostracion. Cada arco tiene un vertice en X, y la primera suma es el numero total de arcos vistos desde X. Lomismo respecto a la segunda suma e Y .

7.11.1. Relaciones y grafos bipartitos

Habıamos definido una relacion R entre conjuntos X e Y como R ⊆ X×Y , y escribimos x R y cuando (x, y) ∈ R.Si bien no es mismo decir x R y que y R x para efectos presentes nos meteremos al bolsillo esta distincion.

Si consideramos X ∩ Y = ∅, podemos modelar R como un grafo bipartito, un ejemplo lo exhibe la figura 34.Esto lo anotamos como grafo mediante R = (X ∪ Y,E).

X Y

Figura 34: Un grafo bipartito representando una relacion R ⊆ X × Y

Teorema 7.12. Sea G = (V,E) un grafo bipartito. Entonces el ındice cromatico de G es el grado maximo de G.

Demostracion. Usamos induccion sobre el numero de arcos m = |E|.Cuando m = 1, hay un unico arco, y el grado maximo es 1. Claramente basta un color en este caso.Supongamos ahora que es cierto para todos los grafos bipartitos de m arcos y grado maximo k. Consideremos

un grafo bipartito G = (X ∪Y,E) con m+ 1 arcos y grado maximo k. Elegimos un arco x, y ∈ E, y consideramosel grafo G′ = (X ∪Y,E′) donde E′ = Er x, y. El grafo G′ tiene m arcos, y por induccion admite un coloreo dearcos con k colores. En G, tanto x como y tienen grado a lo mas k; y al eliminar el arco x, y, en G′ es δ(x) ≤ k−1,De la misma forma δ(y) ≤ k−1. Luego tanto x como y participan en a lo mas k−1 arcos y por tanto estan rodeadospor a lo mas k − 1 colores.

Ahora sea α un color no adyacente a x y β un color no adyacente a y (los llamaremos libres en x e y, respecti-vamente). Estos colores deben existir por lo anterior. Se pueden presentar dos casos:

Caso simple: Podemos elegir α = β. Tomamos ese color para el arco y asunto resuelto.

Caso complejo: No podemos elegir α = β. Entonces hay un arco x, y1 de color β (de caso contrario β estarıalibre en x y podrıa elegir α = β como en el caso anterior). Puede haber un arco x1, y1 de color α, un arcox1, y2 de color β y ası sucesivamente (vamos de X a Y mediante arcos de color β, y de Y a X a traves dearcos de color α). Este proceso de crear un camino debe terminar, ya que el grafo tiene un numero finito devertices, y no puede formar un ciclo ya que no hay arco de color α en x. Como ilustra la figura 35, luego deeste proceso podemos intercambiar los colores α y β, cayendo en el caso simple.

Esta tecnica de zig-zag e intercambio vale la pena tenerla presente, bastantes demostraciones se basan en ella.

71

Page 72: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

xn

x

yn

y1

y

xn

x

yn

y1

y

Figura 35: Como operar en el teorema 7.12

7.11.2. Matchings

Supongamos la situacion en que hay un conjunto X de personas y un conjunto Y de trabajos, Una preguntacon implicancias obvias es la siguiente: ¿Como asignamos personas a las tareas, de forma que el numero maximode personas queda asignada a una tarea para la que esta calificada? Esta pregunta la traduciremos al lenguaje degrafos bipartitos. La relacion “estar calificado” nos da un grafo bipartito G = (X ∪ Y,E): El arco x, y indica quela persona x esta calificada para la tarea y. Una asignacion de tareas a personas corresponde a un “matching” enel sentido tecnico que definiremos ahora. Otras aplicaciones de estas ideas ocurren en una gran variedad de areas,llegando a la economıa. Cabe hacer notar que los conjuntos X e Y no necesariamente son de la misma cardinalidad.Bajo nuestra interpretacion tiene perfecto sentido considerar situaciones en que hay mas (o menos) tareas a asignarque personas, tareas para las que no hay calificados, y personas que no estan calificadas para ninguna de las tareas.

Definicion Sea G = (V,E) un grafo. Un matching es un subconjunto M ⊆ E de arcos tal que no hay vertices encomun entre dos arcos. El tamano del matching es el numero de arcos en el.

El caso mas importante de lo anterior se da en grafos bipartitos, como se comento antes. Por ejemplo, la figura 36muestra dos matchings de un grafo, donde los arcos en M estan marcados. Esta claro que M2 es mayor, en el sentidoque contiene mas arcos. No puede haber uno mayor, ya que si consideramos el conjunto x1, x2, x5, en total soloestan capacitados para y3, y4, por lo que necesariamente quedara uno de los tres sin trabajo asignado. Esto motivalo siguiente.

Definicion Sea G = (X ∪ Y,E) un grafo bipartito. Un matching de G se dice maximal si no hay matchings conmas arcos. Un matching es completo si |M | = |X|.

Analicemos primero las condiciones bajo las cuales hay matchings completos. Supongamos un grafo bipartitoG = (X ∪ Y,E), y para todo A ⊆ X definimos el conjunto de vertices vecinos (neighbors en ingles) como:

N(A) = y : x, y ∈ E para algun x ∈ A

En un matching completo el conjunto de tareas asignadas a los integrantes de A es un subconjunto de N(A), porlo que debe ser |N(A)| ≥ |A| para todo A ⊆ X. En nuestro ejemplo previo, tenemos N(x1, x2, x3) = y2, y3, ycomo |N(x1, x2, x3)| < |x1, x2, x3| no hay matching completo posible.

Resulta que el que se cumpla esta condicion para todo subconjunto de X es necesario y suficiente para laexistencia de un matching maximo, como demostraremos a continuacion.

Teorema 7.13 (Hall). Sea G = (X ∪ Y,E) un grafo bipartito. Entonces hay un matching completo de G si y solosi para todo A ⊆ X tenemos |N(A)| ≥ |A|.

Demostracion. Demostramos implicancias en ambos sentidos. Para simplificar la discusion, seguiremos hablando detrabajos, calificacion para los mismos y trabajos asignados.

Si hay un matching completo, para cada subconjunto A ⊆ X tenemos en N(A) al menos los trabajos asignadospor el matching a los integrantes de A, o sea |N(A)| ≥ |A|.

72

Page 73: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

x6

x5

x4

x3

x2

x1

y1

y2

y3

y4

y5

y6

y7(a) M1

x6

x5

x4

x3

x2

x1

y1

y2

y3

y4

y5

y6

y7(b) M2

Figura 36: Matchings en un grafo bipartito

Al reves, supongamos que para todo A ⊆ X se cumple |N(A)| ≥ |A|, y consideremos un matching M cualquierade G. Si M no es completo, demostraremos como construir un nuevo matching M ′ tal que |M ′| = |M |+1. Repitiendoel proceso, finalmente obtenemos un matching completo.

Si M no es completo, hay algun x0 ∈ X que no participa en M . Dado que por hipotesis N(x0) ≥ 1, hay almenos un vertice y1 ∈ Y tal que x0, y1 ∈ E. Si y1 no participa en M , podemos agregar el arco x0, y1 a M , dandoel matching prometido M ′. Por otro lado, si y1 ya esta asignado, hay un arco x1, y1 ∈ M . Como por hipotesis|N(x0, x1) ≥ 2, habra al menos un trabajo y2 6= y1 para el que x0 o x1 estan calificados, y que no esta asignadoa ninguno de ellos en M . Estamos creando un zig-zag de arcos xi, yi+1 que no son parte de M y arcos yi, xique son parte de M . Como los conjuntos involucrados son finitos el proceso terminara y hallaremos un yk ∈ Y sinasignar. Intercambiado los arcos asignados con los sin asignar en nuestro zig-zag obtenemos un matching mayor,como prometido.

La demostracion del teorema de Hall motiva la siguiente:

Definicion Sea G = (X ∪ Y,E) un grafo bipartito, y M un matching de G. Un camino en G se llama alternantepara M si alterna arcos de M con arcos que no estan de M .

Nuestra discusion previa indicarıa que de A a lo mas |N(A)| podran encontrar trabajo. Esto lleva a:

Definicion Sea G = (X ∪ Y,E) un grafo bipartito. La deficiencia de G es:

d = maxA⊆X|A| − |N(A)|

Siempre podemos tomar A = ∅, para el cual obviamente |N(A)| = ∅, y en tal caso |A| − |N(A)| = 0, con lo que ladeficiencia es siempre no-negativa.

Con esto podemos demostrar:

Teorema 7.14. Sea G = (X ∪ Y,E) un grafo bipartito de deficiencia d. Entonces el matching maximal M de Gcumple |M | = |A| − d.

73

Page 74: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Demostracion. Primeramente, si A ⊆ X es un conjunto para el cual d = |A| − |N(A)|, a lo menos d elementosde A quedaran sin Y asignado, y ası ningun matching puede tener mas que el tamano indicado. Basta entoncesdemostrar que hay un matching de ese tamano.

Tomamos un conjunto D de nuevos vertices con |D| = d. Definimos el grafo bipartito G∗ = (X∗ ∪ Y ∗, E∗)mediante:

X∗ = X

Y ∗ = Y ∪DE∗ = E ∪ x, y : x ∈ X ∧ y ∈ D

Estamos agregando un nuevo conjunto de trabajos D para los que todos estan calificados. Entonces G∗ cumple conlas condiciones del teorema de Hall y tiene un matching completo M∗. Pero M∗ incluye todos los vertices de D, yaque si A es un conjunto para el cual d = |A| − |N(A)| es maximo, la unica forma de parear todos los elementos deA es incluir los elementos de D en el pareo. Eliminando los arcos que incluyen vertices de D de M∗ obtenemos unmatching de tamano |X| − d.

El teorema 7.14 no es particularmente util para encontrar un matching maximo, ni siquiera ayuda mucho a lahora de hallar su tamano ya que considera analizar los 2|X| subconjuntos de X para determinar la deficiencia. Unaforma practica de encontrar matchings maximos las da el siguiente teorema.

Teorema 7.15. Sea G = (X ∪ Y,E) un grafo bipartito, y M un matching de G. Si M no es maximo, G contieneun camino alternante para M .

Demostracion. Sea M∗ un matching maximo de G, y sea F el conjunto de arcos que estan en M∗ o M , pero noen ambos (esta es la diferencia simetrica entre estos conjuntos, que se anota F = M∗ M M). Los arcos en F y losvertices que contienen forman un grafo bipartito cuyos vertices tienen grado 1 o 2, por lo que sus componentes soncaminos y ciclos. Pero en todo camino o ciclo los arcos de M alternan con arcos no de M , por lo que en todo cicloel numero de arcos en M debe ser igual al numero de arcos no en M (al ser G bipartito, no tiene ciclos de largoimpar). Como |M∗| > |M |, hay mas arcos de M∗ que arcos de M en F . Por lo tanto, hay al menos un componentede F que es un camino con mas arcos en M∗ que en M , y este es un camino alternante para M .

Esto sugiere la siguiente estrategia para hallar un matching maximo:

1. Comience con un matching M cualquiera (un arco por sı solo sirve)

2. Busque un camino alternante para M

3. Si encontro un camino alternante, construya un matching M ′ mejor intercambiando arcos que pertenecen almatching con los que no de la forma usual, y vuelva al paso (2) con M ′ en vez de M

4. Si no hay camino alternante, M es maximo.

Para hallar un camino alternante, podemos usar busqueda a lo ancho. Comenzando con un vertice sin match x0

construimos un arbol de caminos alternantes “parciales” desde x0 como sigue:

1. En el nivel 1 inserte los vertices y1, y2, . . . , yk adyacentes a x0. Si alguno de estos vertices no tiene match,digamos yi, detengase. En este caso 〈x0, yi〉 es un camino alternante.

2. Si todos los vertices en el nivel 1 tienen match, inserte vertices x1, x2, . . . , xk que son los matches de y1, y2, . . . , yken el nivel 2.

3. En el nivel 3, inserte los vertices adyacentes a los de nivel 2 que no tienen match con ellos. Si alguno de ellosno tiene match, detengase: El camino desde x0 hasta el es un camino alternante.

4. Si todos los vertices de nivel 3 tienen match, inserte sus matches en el nivel 4, . . .

Claramente este proceso puede terminar porque no hay vertices a insertar en un nivel impar. En tal caso, no hemoshallado un camino alternante, y habra que intentar otro punto de partida. Si ninguno de los vertices sin matchresulta en un camino alternante, el match que tenemos es maximo.

Consideremos el matching inicial en el grafo bipartito que muestra la figura 37a. En ese matching el verticex2 no tiene match; la figura 37b muestra el “arbol” construido a partir de ese vertice segun la estrategia descrita,indicando un camino alternante identificado en el proceso; y finalmente la figura 37c da el matching resultante deintercambiar los arcos pertenecientes al matching inicial con los que no aparecen en el.

74

Page 75: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

x1

x2

x3

x4

x5

y1

y2

y3

y4

y5

y6(a) Matching inicial

x2

y1 y2 y3

x3 x4 x1

y5 y4y6

x5

(b) Busqueda de un alternating path

x1

x2

x3

x4

x5

y1

y2

y3

y4

y5

y6(c) Matching resultante

Figura 37: Aumentando un matching

7.11.3. Transversals de familias de conjuntos finitos

Ejemplo En la Universidad de Miskatonic todo lo resuelven mediante comites de sus academicos. Hay seis profesoresque participan en los distintos comites, los profesores Atwood, Dexter, Ellery, Freeborn, Halsey y Upham. Estanorganizados en los siguientes comites:

Academico: Atwood, UphamInvestigacion: Atwood, Dexter, UphamAdministracion: Dexter, UphamEstacionamientos: Ellery, Freeborn, Halsey

Se decide que cada comite debe enviar un representante al nuevo Comite de Comites de la Universidad, y cada unopuede representar solo a un comite. ¿Es posible crear este comite?

Dados los miembros de los distintos comites, esto se puede lograr de diferentes formas. Por ejemplo, podemoselegir a Atwood, Dexter, Ellery y Freeborn. Si embargo, si el comite de estacionamientos estuviera formado solopor Dexter y Ellery, no se puede formar el Comite de Comites.

La forma general de este problema se expresa mas claramente usando la nocion de familia de conjuntos. Tenemosla familia F = Si : i ∈ I de conjuntos (usamos I como el conjunto de los ındices, basicamente los nombres de losconjuntos), no necesariamente diferentes, y buscamos un representante si para cada i ∈ I, tales que cada si ∈ Siy son todos diferentes. Tal conjunto de representantes distintos se llama transversal de F . Nuestro problema esentonces hallar condiciones que aseguren que la familia F tenga un transversal. Esto tiene perfecto sentido inclusocuando I es infinito, pero aca nos restringimos a familias finitas. En nuestro ejemplo, el conjunto ındice I no es masque los nombres de los comites, y Si son los integrantes del comite i.

En realidad, esto no es mas que una forma disfrazada del problema de hallar un matching. Para ver esto,construimos un grafo bipartito cuyas partes corresponden a los conjuntos y a los elementos, y hay arcos que unena los elementos con los conjuntos a los que pertenecen. La figura 38 muestra la situacion de los comites de laUniversidad de Miskatonic.

Formalmente, definimos G = (X ∪ Y,E) mediante:

X = I (los nombres de los conjuntos)

Y =⋃

i∈ISi (todos los elementos de los conjuntos)

75

Page 76: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Atwood Dexter Ellery Freeborn Halsey Upham

Academico Administracion Investigacion Estacionamiento

Figura 38: Comites de la Universidad de Miskatonic

y el arco i, y esta en E si y ∈ Si. Entonces un transversal de F no es mas que un matching completo de G. Enestos terminos la condicion de Hall es facil de expresar. Un subconjunto H de I es una subfamilia de F , y N(H) essimplemente los miembros de todos esos conjuntos:

N(H) =⋃

i∈HSi

Usando esta interpretacion, el teorema de Hall es:

Teorema 7.16. (Hall, version original) La familia finita de conjuntos

F = Si : i ∈ I

tiene un transversal si y solo si

∣∣∣∣⋃

i∈HSi

∣∣∣∣ ≥∣∣H∣∣ para todo H ⊆ I

Una forma simple de expresar esto es decir que cualquier union de k de los conjuntos debe tener al menos kmiembros en total.

En realidad este es el teorema de Hall original, que tambien se conoce como “Hall’s Marriage Theorem,” porla interpretacion siguiente: I es un conjunto de mujeres, mientras Si corresponde al conjunto de hombres con loscuales i ∈ I estarıa dispuesta a casarse. Entonces hay forma de conseguirle pareja a todas las mujeres si y solosi para cada conjunto de mujeres el conjunto de hombres con los que estarıan dispuestas a casarse en total no esmenor al conjunto de mujeres.

7.12. Grafos rotulados

En muchas aplicaciones los arcos tienen asociados “pesos” (costos), definimos entonces un grafo rotulado comoun grafo G = (V,E) y una funcion p : E → C, con C algun conjunto (tıpicamente C es R) que asocia el rotulo(peso) p(e) al arco e.

Una situacion similar se da con rotulos en los vertices (una funcion r : V → C). Esto va mas alla de la identidaddel vertice, pueden haber varios vertices con el mismo rotulo. Hay aplicaciones en las cuales estan rotulados losarcos, los vertices, o ambos.

7.12.1. Algoritmo de Dijkstra

Nos interesa saber el costo (suma de los pesos de los arcos) para llegar a cada uno de los vertices de G partiendodesde el vertice v.

Una solucion es aplicar una variante de busqueda a lo ancho. Supongamos que tenemos establecido que el caminomas corto de v a x tiene largo l[x]. Supongamos que tenemos un vecino y, para el que tenemos la estimacion l[y].

76

Page 77: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

La ruta mas corta que tenemos de v a y pasando por x tiene costo l[x] + w(x, y), y si nuestra estimacion previal[y] > l[x] + w(x, y), debieramos actualizar l[y]

Informalmente, el algoritmo es el siguiente: Inicialmente sabemos que l[v] = 0. Podemos partir con l[p] = ∞para todos los demas vertices p, e ir actualizando los l[p] en busqueda a lo ancho partiendo de v con nuestra mejorestimacion hasta el momento del largo del camino de v a cada vertice. Una manera de entenderlo es considerar elgrafo como una coleccion de hilos de los largos de los arcos y los vertices nudos entre ellos, y ponemos esto sobrela mesa. Tomamos el nudo que representa el vertice inicial, y lo levantamos hasta que un primer nudo se separa dela mesa. Este nudo es el que esta mas cerca del inicial, y registramos su distancia desde este. Continuamos de lamisma forma, cada vez que un nudo se despega de la mesa es que hemos llegado a su distancia mınima del nudoinicial. En terminos de trabajar con el grafo, significa mantener una coleccion de vertices a los cuales ya conocemosla distancia mınima (inicialmente solo el vertice inicial), y luego ir agregando aquel vertice no incluido aun en lacoleccion que queda mas cerca de alguno cuya distancia mınima ya es definitiva.

Una version mas formal es el algoritmo 6. Lo que hacemos aca es ir calculando distancias tentativas, y las dejamosdefinitivas una vez que este claro que no cambiaran mas. El tiempo de ejecucion de este algoritmo depende de como se

Algoritmo 6 Costos mınimos desde el vertice v (Dijkstra)

variable Q: Conjunto de vertices

Q← V r vl[v]← 0Marque todos los vertices x ∈ Q con l[x] =∞while Q no vacıo do

Elija x ∈ Q con l[x] mınimoif l[x] =∞ then

break Los vertices restantes no son alcanzables desde vend ifQ← Qr xfor todo vecino y de x en Q dol[y]← mın(l[y], l[x] + w(x, y))

end forend while

implementen las operaciones con el conjunto Q, siendo O(|E| · 〈disminuir clave en Q〉+ |V | · 〈extraer mınimo de Q〉)Si lo implementamos simplemente como una lista con busqueda secuencial, esto es O(|V |2 + |E|) = O(|V |2). Usandouna estructura de datos mas sofisticada esto puede reducirse a O(|E|+ |V | log|V |).

7.12.2. Algoritmo de Bellman-Ford

Otro algoritmo que resuelve el mismo problema, pero que tiene la ventaja de poder manejar arcos con costonegativo (claro que no ciclos de costo negativo, en cuyo caso la distancia mınima no esta bien definida), es el deBellman-Ford (algoritmo 7). Que este algoritmo es correcto se demuestra por induccion sobre las ejecuciones delciclo for externo.

Teorema 7.17. Despues de i repeticiones del ciclo, si para un vertice u tenemos l[u] <∞ entonces es el largo dealgun camino desde v a u. Si hay un camino de v a u de a lo mas i arcos, entonces l[u] es a lo mas el largo delcamino mas corto con a lo mas i arcos de v a u.

Demostracion. Por induccion sobre el numero de iteraciones.

Base: Cuando i = 0, antes de ejecutar el ciclo por primera vez. En esta situacion l[v] = 0 y para los demas l[u] =∞,que corresponde a la situacion descrita.

Induccion: Primero lo primero. Cuando ajustamos l[y] ← mınl[y], l[x] + w(x, y), por induccion tenemos quel[x] es el largo de algun camino de v a x, y l[x] + w(x, y) es entonces el largo del camino que va de v a x yluego pasa por el arco x, y para llegar a y. Tambien l[y] es el largo de algun camino de v a y, y al ajustarestamos depositando en l[y] el largo de algun camino de v a y.

77

Page 78: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Algoritmo 7 Costos mınimos desde el vertice v (Bellman-Ford)

variable Q: Conjunto de vertices

Q← V r vl[v]← 0Marque todos los vertices x ∈ Q con l[x] =∞for i← 1 to |V | − 1 do

for x, y ∈ E dol[y]← mınl[y], l[x] + w(x, y)

end forend for

if hay un arco x, y con l[x] + w(x, y) < l[y] thenHay un ciclo de costo negativo

end if

Para lo segundo, consideremos el camino mas corto de v a y con a lo mas i arcos. Sea z el ultimo vertice antesde y en este camino. Por induccion, despues de i − 1 iteraciones tenemos que l[z] es a lo mas el largo de uncamino con a lo mas i − 1 arcos desde v a z, y l[y] el largo de un camino de a lo mas i − 1 arcos desde v ay. Agregando el arco z, y al camino de v a z tenemos un camino de i arcos, si resulta mas corto que el quetiene a lo mas i− 1 arcos actualizamos l[y]. El resultado final, luego de considerar todos los arcos que llegana y, es que tenemos el largo del camino mas corto con a lo mas i arcos.

Para completar la demostracion de que el algoritmo 7 es correcto, basta observar que luego de |V |−1 iteracioneshemos calculado los costos mınimos de los caminos de largo a lo mas |V | − 1, que es el largo maximo posible de uncamino en el grafo. Si aun pueden hacerse mejoras, es porque hay un ciclo de largo negativo.

El tiempo de ejecucion de este algoritmo es O(|V | · |E|)). Esto es mayor que la complejidad del algoritmo deDijkstra, pero como ya indicamos este algoritmo tiene la virtud de manejar arcos de largo negativo. Por lo demas, sien algun ciclo del for externo no hay cambios, ya no los habra mas y podemos terminar el algoritmo (basicamentehemos llegado al final del camino mas largo), por lo que esta complejidad es pesimista.

Una variante de este algoritmo se usa en redes de computadores (por ejemplo, es parte del protocolo RIP [5])para encontrar rutas optimas, ya que los computos pueden distribuirse a los nodos: Cada cual recoge informacionde rutas y distancias optimas estimadas desde sus vecinos, actualiza sus propias estimaciones de las mejores rutasy sus costos, y distribuye los resultados de vuelta a sus vecinos.

7.12.3. Algoritmo de Floyd-Warshall

A diferencia de los anteriores, este algoritmo calcula los costos de los caminos mınimos entre todos los paresde vertices del grafo. Tomamos como los vertices del grafo los numeros 1, 2, . . . , |V |, y actualizamos un arreglol[i, j] de forma que despues de la iteracion k el valor del elemento l[i, j] es el costo del camino mas corto entre losvertices i y j que visita unicamente los vertices 1, 2, . . . , k entremedio. Llamemos l(k)[i, j] a este valor. Claramentel(0)[i, j] = w(i, j), el costo de ir directamente de i a j, ya que no podemos pasar por ningun vertice intermedio.Para calcular el valor de l(k+1)[i, j], consideramos que el camino mas corto que pasa a lo mas por k + 1 tiene dosposibilidades: Nunca pasa por k + 1, solo llega hasta k, el costo es l(k)[i, j] en tal caso; o pasa por k + 1, lo quesignifica que de i va a k + 1 y luego de k + 1 va a j, en ambos casos pasando a lo mas por 1, 2, . . . , k, con costol(k)[i, k + 1] + l(k)[k + 1, j]. Calculamos

l(k+1)[i, j] = mınl(k)[i, j], l(k)[i, k + 1] + l(k)[k + 1, j]

Una vez alcanzado k = |V |, ya no hay restricciones sobre los vertices visitados en el camino y hemos calculado loscostos mınimos. Esto resulta en el algoritmo 8. No seguimos rigurosamente la descripcion anterior, a veces usamosvalores ya actualizados de l(k)[i, j]. Esto no afecta la correctitud. Lo notable de este algoritmo es que efectua soloO(|V |3) comparaciones, cuando pueden haber O(|V |2) arcos en cada camino, y debemos considerar O(|V |2) paresde vertices como inicio y fin.

78

Page 79: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Algoritmo 8 Costos mınimos entre todos los vertices (Floyd-Warshall)

for i← 1 to |V | dofor j ← 1 to |V | dol[i, j]← w(i, j)

end forend forfor k ← 1 to |V | do

for i← 1 to |V | dofor j ← 1 to |V | dol[i, j]← mınl[i, j], l[i, k] + l[k, j]

end forend for

end for

v

c

b

a

d

e

7

9

3

2

4

6

8

1

5

Figura 39: Ejemplo de grafo para arbol recubridor mınimo

7.12.4. Arbol recubridor mınimo

En muchas aplicaciones interesa encontrar el grafo de costo mınimo (el costo es simplemente la suma de lospesos de los arcos en el subgrafo) que conecta a un conjunto dado de vertices. Claramente tal grafo sera un arbolrecubridor, el arbol recubridor mınimo (minimal spanning tree en ingles, abreviado MST ). Veremos varios algoritmospara construirlo.

7.12.5. Algoritmo de Prim

Una estrategia es agregar a un arbol parcial aquel arco que conecta a un vertice al arbol de forma que el costosea mınimo. Comenzamos con un vertice cualquiera como arbol inicial. Esto se conoce como el algoritmo de Prim.

Un poco mas formalmente: Inicialmente T es solo un vertice cualquiera del grafo. Sea T el arbol actual, elegimosel vertice v ∈ V rT tal que el costo de llegar a el desde un vertice x ∈ T es mınimo. Luego agregamos el arco v, xa T . Esto se repite hasta que no queden vertices sin cubrir.

Aplicando el algoritmo al grafo de la figura 39, paso a paso se obtienen los arboles de la figura 40.

Teorema 7.18. El algoritmo de Prim obtiene un arbol recubridor mınimo.

Demostracion. Por contradiccion. Sea w(G) el costo total de los arcos en el grafo G. Sea T el arbol recubridorconstruido por el algoritmo, con e1, e2, . . . , en los arcos en el orden en que los elige el algoritmo. Entonces:

w(T ) = w(e1) + w(e2) + · · ·+ w(en)

Sea U un arbol recubridor mınimo de G, y supongamos que el arbol recubridor T que construye el algoritmo no esmınimo, vale decir w(U) < w(T ).

79

Page 80: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

v

c

b

a

d

e

7

9

3

2

4

68

1

5

(a) Paso 1

v

c

b

a

d

e

7

9

3

2

4

68

1

5

(b) Paso 2

v

c

b

a

d

e

7

9

3

2

4

68

1

5

(c) Paso 3

v

c

b

a

d

e

7

9

3

2

4

68

1

5

(d) Paso 4

v

c

b

a

d

e

7

9

3

2

4

68

1

5

(e) Paso 5

Figura 40: El algoritmo de Prim aplicado al grafo de la figura 39

Sea ek el primer arco en T (en el orden en que los elige el algoritmo) que no esta en U . Eliminando ek deT obtenemos dos componentes que son arboles. Habra algun arco e∗ ∈ U que conecta estos dos componentes. Siw(e∗) < w(ek) el algoritmo habrıa elegido e∗ en vez de ek, ası que w(e∗) ≥ w(ek).

Siguiendo este razonamiento, nuestro algoritmo siempre habrıa elegido un arco de costo no mayor que el incluidoen U , y w(T ) ≤ w(U). Por lo tanto T es un arbol recubridor mınimo.

En este caso, la estrategia voraz de elegir “el mejor ahora” sin considerar consecuencias futuras tiene exito.

7.12.6. Algoritmo de Kruskal

Otra idea es ordenar los arcos en orden de costo creciente, y agregar sucesivamente el siguiente arco que noforma un ciclo. Este es el algoritmo de Kruskal. Un ejemplo paso a paso para el grafo de la figura 39 se muestra enla figura 41.

Aplicando el algoritmo, vamos creando un bosque (“forest,” coleccion de arboles). Inicialmente el bosque es cadavertice por sı solo, luego en cada paso conectamos dos arboles. Se van agregando arcos con el menor coste posibleque no generen un ciclo. Como el grafo resultante es conexo y no tiene ciclos, es un arbol recubridor del grafo.En adicion, resulta un arbol recubridor mınimo, por un razonamiento similar al dado para el algoritmo de Prim.Nuevamente la estrategia voraz de tomar el mejor localmente tiene exito.

7.12.7. Arboles recubridores en redes de computadores

Las redes de area local actualmente en uso [11] son redes de difusion, vale decir, lo que una de las estacionesconectadas transmite lo pueden recibir todas las demas conectadas al mismo medio fısico. Suele ser de interesconectar entre sı redes de area local, lo que se hace a traves de equipos denominados bridges, que se encargande retransmitir solo el trafico de interes en la otra rama. Por razones de confiabilidad interesa tener conexionesredundantes, vale decir, varios caminos entre redes. Pero esto introduce la posibilidad de crear ciclos, y por tantotrafico que se retransmite indefinidamente. Un ejemplo se muestra en la figura 42. Esta situacion puede modelarsemediante un grafo, en el cual las redes son vertices y las conexiones entre redes son arcos. Para la red de la figura 42resulta el grafo de la figura 43, los arcos representan las conexiones entre redes. En estos terminos, lo que se busca eshallar un arbol recubridor del grafo (inhabilitando bridges que no participan en el). Para cumplir con redundancia

80

Page 81: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

v

c

b

a

d

e

7

9

3

2

4

68

1

5

(a) Paso 1

v

c

b

a

d

e

7

9

3

2

4

68

1

5

(b) Paso 2

v

c

b

a

d

e

7

9

3

2

4

68

1

5

(c) Paso 3

v

c

b

a

d

e

7

9

3

2

4

68

1

5

(d) Paso 4

v

c

b

a

d

e

7

9

3

2

4

68

1

5

(e) Paso 5

Figura 41: El algoritmo de Kruskal aplicado al grafo de la figura 39

y tolerancia a fallas (y evitar el siempre presente error humano) interesa que en caso de falla la red se reconfigureautomaticamente.

Para ello se han estandarizado algoritmos (conocidos como STP, Spanning Tree Protocol y RSTP, Rapid SpanningTree Protocol, definidos en [10]) mediante los cuales los bridges cooperan para configurar un arbol recubridorautomaticamente. La manera de hacer esto en resumen es que los bridges en la red intercambian una prioridadfijada por el administrador de la red junto con sus identificadores (fijados de fabrica, unicos en el mundo). Aquelbridge que tenga el mınimo par prioridad e identificador se elige de raız, y todos los demas calculan sus distanciashacia la raız a traves de cada una de sus interfases. Se habilitan unicamente las interfases que dan el camino mascorto hacia la raız. Este proceso se repite periodicamente, de forma de reaccionar frente a fallas y reconfiguraciones.

8. Digrafos, redes, flujos

Definicion Un digrafo (o grafo dirigido) consta de un conjunto finito V de vertices, y un subconjunto A de V ×V ,cuyos miembros se llaman arcos. Anotaremos D = (V,A) para el digrafo definido de esta forma.

Los digrafos se pueden representar graficamente de forma similar a los grafos, solo que aca un arco es un parordenado (x, y), mientras en el grafo es un par no ordenado x, y. Si (x, y) es un arco, lo indicamos mediante unaflecha de x a y, si hay un arco (x, x) lo indicamos mediante un ciclo, si hay arcos (x, y) e (y, x) los indicamos pordos flechas. La figura 44 muestra ejemplos. Nuestras representaciones de grafos para uso computacional se aplicancon cambios obvios a este caso. Igualmente, podemos aplicar los algoritmos de recorrido aca.

Formalmente, un digrafo es simplemente otra manera de representar una relacion R entre elementos del mismoconjunto (un grafo bipartito, por otro lado, representa una relacion entre elementos de conjuntos disjuntos). Laspropiedades de las relaciones pueden facilmente traducirse en propiedades del digrafo. Por ejemplo, si la relacion essimetrica los arcos aparecen en pares (salvo los bucles), (x, y) es un arco exactamente cuando lo es (y, x).

Las definiciones de camino, camino simple, circuito y ciclo son analogas a las de grafos. Ası, un camino dirigidoen D = (V,A) es una secuencia de vertices v1, v2, . . . , vk tal que (vi, vi+1) esta en A para 1 ≤ i ≤ k − 1, un caminodirigido simple es un camino dirigido en que todos los vertices son diferentes, un circuito dirigido es un caminocuyo inicio y fin coinciden, mientras un ciclo dirigido es un camino dirigido en que todos los vertices son distintos,solo que el inicial y el final coinciden.

81

Page 82: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

A

B

C

DE

B1

B2

B3

B4B5

B6

Figura 42: Esquema de redes interconectadas por bridges

D

A

C

E

B

Figura 43: La red de la figura 42 como grafo

En lo que sigue veremos dos aplicaciones diferentes que se pueden modelar mediante esto.

8.1. Redes y rutas crıticas

Hay muchas situaciones que se pueden modelar mediante digrafos, no mediante grafos. Un ejemplo tıpico es lared de calles, donde hay rutas de una sola vıa. Es comun que se asocien costos o distancias a los arcos. Con estaidea en mente, usaremos red para un digrafo D = (V,A) junto con una funcion w : A→ R.

Un caso tıpico de aplicaciones de redes son las redes de actividades. Suponiendo un gran proyecto de construccion,este se subdivide en actividades menores. Las actividades a su vez estan relacionadas, en el sentido que algunasno pueden iniciarse antes que terminen otras. Al planificar un proyecto de este tipo se suele usar una red deactividades, con arcos representando actividades y los vertices representando “eventos,” donde un evento es el finde una actividad. El peso de un arco es la duracion de la actividad, y se busca organizar las actividades de formade minimizar el tiempo total del proyecto.

Consideremos un ejemplo concreto. La tabla 4 da las duraciones de las actividades (en meses), y las dependenciasentre ellas (que actividades deben estar completas antes de comenzar la actividad indicada).

El primer paso es construir la red de actividades, ver figura 45. Los arcos representan actividades, y los verticessus inicios y finales. Es claro que resulta un digrafo sin ciclos. Para cada evento calcularemos E(v), el instantemas temprano en que ese evento puede tener lugar. Esto corresponde al momento mas temprano en que todas lasactividades previas a v han terminado. Iniciamos el proceso con E(1) = 0. Luego esta claro que E(2) = 5, yaque la unica actividad involucrada es A = (1, 2). Ahora, como 3 involucra a A = (1, 2) y a E = (2, 3), E(3) =maxE(1) + 1, E(2) + 2 = max0 + 1, 5 + 2 = 7.

Continuando de esta forma, obtenemos los instantes de termino dados en la tabla 5, con lo que el plazo mınimo

82

Page 83: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Figura 44: Ejemplos de digrafos

Act Descripcion Requisitos DurA Diseno del producto 5B Analisis de mercado 1C Analisis de produccion A 2D Prototipo del producto A 3E Diseno de folleto A 2F Analisis de costos C 3G Pruebas del producto D 4H Entrenamiento ventas B, E 2I Definicion de precios H 1J Reporte del proyecto F , G, I 1

Cuadro 4: Actividades y dependencias

para completar el proyecto es de 13 meses.Esto es basicamente una variante del algoritmo de Dijkstra (ver seccion 7.12.1), solo que estamos calculando el

camino mas largo a traves de la red. Este esta perfectamente definido en este caso, ya que no hay ciclos. Aca bastaun barrido a lo ancho, al no haber ciclos se obtiene el valor final directamente. En cada vertice visitado calculamosE(v) partiendo del el evento inicial s (el comienzo del proyecto) mediante la regla:

E(s) = 0 E(v) = maxxE(x) + w(x, v)

donde el maximo es sobre los vertices x predecesores de v.Este metodo de estudiar redes de actividades es parte de la tecnica que se conoce como analisis de camino

crıtico. El resto de la tecnica continua como sigue: Calculamos L(v), el ultimo instante en que puede ocurrir elevento v sin retrasar el proyecto completo de forma similar a como se calcularon los E(v), pero comenzando delevento final t y trabajando en reversa:

L(t) = E(t) L(v) = mınxL(x)− w(v, x)

donde el mınimo es sobre los vertices x sucesores de v. Aplicando esto al ejemplo de la figura 45, da la tabla 6.Podemos ademas calcular la holgura de cada actividad (u, v), que representa el maximo retraso que puede sufrir

el comienzo de la actividad sin retrasar el fin del proyecto:

F (u, v) = L(v)− E(u)− w(u, v)

Las actividades sin holgura se dice que son crıticas, cualquier retraso en estas se traduce en un retraso del proyectocompleto. Toda red de actividades tiene al menos un camino dirigido entre principio y fin formado unicamente poractividades crıticas, tal camino se llama ruta crıtica. Combinando los valores en las tablas 5 y 6 obtenemos lasholguras dadas en la tabla 7. Son actividades crıticas las que no tienen holgura, en nuestro caso A, D, G y J ; y seve en la figura 45 que forman un camino a traves del grafo.

8.2. Redes y flujos

En lo que sigue interpretaremos los arcos como “tuberıas” por las que puede fluir alguna mercaderıa. Los pesosnumericos representan la capacidad del arco. Ademas, habra un vertice s con la propiedad que todos los arcos que

83

Page 84: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

A

D

B

E

C

H

I

F

G

J

5

6

7 8

4

3

2

1

Actividad: A B C D E F G H I JArco: (1, 2) (1, 3) (2, 4) (2, 5) (2, 3) (4, 7) (5, 7) (3, 6) (6, 7) (7, 8)Duracion: 5 1 2 3 2 3 4 2 1 1

Figura 45: Una red de actividades

v: 1 2 3 4 5 6 7 8E(v): 0 5 7 7 8 9 12 13

Cuadro 5: Terminos mas tempranos por actividad para la red de la figura 45

contienen a s se alejan de el, y otro vertice t con la propiedad de que todos los arcos que lo contienen se dirigen a el.Al primero se le llama fuente (source), al segundo sumidero (sink). En resumen, trataremos con redes que incluyen:

(i) Un digrafo D = (V,A)

(ii) Una funcion de capacidad c : A→ R

(iii) Una fuente s y un sumidero t

Supongamos que algun material fluye por la red, y sea f(x, y) el flujo a lo largo del arco (x, y). Insistiremosque, salvo para la fuente y el sumidero, que el flujo que arriba a un vertice v debe ser el flujo que sale (no hayacumulacion de material en los vertices).

Definicion Un flujo en una red es una funcion que asigna un numero f(x, y) a cada arco (x, y), sujeto a lascondiciones:

Viabilidad: El flujo en cada enlace es a lo mas su capacidad, f(x, y) ≤ c(x, y) para todo arco (x, y) ∈ A

Skew symmetry: (“Simetrıa torcida”) es mas que nada una convencion de notacion: f(y, x) = −f(x, y) para todoarco (x, y) ∈ A

Conservacion: Para todo vertice que no sea la fuente ni el sumidero de la red requerimos que el flujo neto queentra en el sea cero:

y∈Vf(x, y) = 0

El valor del flujo es:

val(f) =∑

y∈Vf(s, y)

84

Page 85: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

v: 1 2 3 4 5 6 7 8L(v): 0 5 9 9 8 11 12 13

Cuadro 6: Inicio mas tardıo por actividad para la red 45

Actividad: A B C D E F G H I JArco: (1, 2) (1, 3) (2, 4) (2, 5) (2, 3) (4, 7) (5, 7) (3, 6) (6, 7) (7, 8)Holgura: 0 8 2 0 2 2 0 2 2 0

Cuadro 7: Holguras para las actividades de la figura 45

Exploremos un poco las propiedades de la definicion. La viabilidad indica unicamente que el flujo no puedeexceder la capacidad del enlace. Skew symmetry es simplemente una conveniencia notacional (basicamente, sivamos “contra corriente” contabilizamos el flujo como negativo). La conservacion indica que el flujo neto que salede un vertice es nulo, y por simetrıa el que entra tambien:

x∈Vf(x, y) =

x∈V−f(y, x) = −

x∈Vf(y, x) = 0

Si no hay arco (x, y), no puede haber flujo entre ellos, y f(x, y) = f(y, x) = 0. Como no se permite acumulacion enlos vertices intermedios, esta claro que el flujo que sale de s debiera ser el flujo que entra en t:

val(f) =∑

x∈Vf(x, t)

Esto lo demostraremos formalmente mas adelante.Un problema obvio es obtener el valor maximo del flujo en una red. Este problema nos ocupara de ahora en

adelante.Para conveniencia, definimos los flujos de entrada y salida de un vertice:

inflow(v) =∑

u ∈ Vf(u, v) > 0

f(u, v)

outflow(v) =∑

u ∈ Vf(v, u) > 0

f(v, u)

En estos terminos, conservacion se expresa simplemente como el flujo que entra a un vertice es igual al que sale siel vertice no es la fuente ni el sumidero:

inflow(v) = outflow(v)

Algunos autores usan la notacion v− para lo que llamamos inflow(v), y similarmente v+ para outflow(v).Un ejemplo de red de flujos se ve en la figura 46, donde se da tambien un flujo. Para verificar que es un flujo, debe

cumplir las condiciones. No hemos dado flujos considerados “contracorriente,” estamos suponiendo implıcitamenteque por ejemplo f(d, c) = −f(c, d) = −1. Las condiciones de capacidad se cumplen, ya que por ejemplo f(c, d) = 1mientras c(c, d) = 7. Tambien debemos verificar conservacion, por ejemplo que para el vertice d la suma de los flujosse anula:

f(a, d) + f(b, d) + f(c, d) + f(t, t) = 1 + 2 + 1− 4

= 0

El valor de este flujo es la suma de los flujos que salen de la fuente, vale decir:

val(f) = f(s, a) + f(s, b) + f(s, c)

= 8

85

Page 86: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

s

a

b

c

d

t

5

4 2

3

4

73 5

(x, y): (s, a) (s, b) (s, c) (a, d) (b, d) (c, d) (a, t) (c, t) (d, t)f(x, y): 3 2 3 1 2 1 2 2 4

Figura 46: Una red y un flujo en la red

Resulta tambien, como esperabamos, que el flujo hacia el sumidero es igual al flujo que sale de la fuente:

f(a, t) + f(d, t) + f(c, t) = 2 + 2 + 4

= 8

No contabilizamos flujos entre s y los demas vertices (respectivamente entre los otros vertices y t) ya que no hayconexiones directas entre ellos.

8.2.1. Trabajando con flujos

Para conveniencia, usaremos una convencion de suma implıcita, en que si mencionamos un conjunto de verticescomo argumento a f , estamos considerando la suma de los flujos sobre ese conjunto, y similarmente para c. Porejemplo, al anotar f(X,Y ), donde X e Y son conjuntos de vertices, entenderemos:

f(X,Y ) =∑

x ∈ Xy ∈ Y

f(x, y)

En estos terminos, la condicion de conservacion se reduce a f(x, V ) = 0 para todo x /∈ s, t (recuerdese que porconvencion s es la fuente y t el sumidero de la red). Ademas, omitiremos las llaves al restar conjuntos de un soloelemento. Ası, en f(s, V − s) = f(s, V ) la notacion V − s significa el conjunto V r s. Esto simplifica mucho lasecuaciones que involucran flujos. El lema siguiente recoge varias de las identidades mas comunes. La demostracionqueda como ejercicio.

Lema 8.1. Sea D = (V,A) una red, y sea f un flujo en D. Entonces:

1. Para todo X ⊆ V , se cumple f(X,X) = 0

2. Para todo X,Y ⊆ V se cumple f(X,Y ) = −f(Y,X)

3. Para todo X,Y, Z ⊆ V siempre que X ∩ Y = ∅ se cumplen

f(X ∪ Y, Z) = f(X,Z) + f(Y,Z)

f(Z,X ∪ Y ) = f(Z,X) + f(Z, Y )

Como ejemplo de uso de la notacion y del lema 8.1, demostraremos que val(f) = f(V, t). Intuitivamente, loque entra a la red por la fuente debe salir por el sumidero, ya que no se permiten acumulaciones entremedio.

86

Page 87: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Formalmente:

val(f) = f(s, V )

= f(V, V )− f(V − s, V )

= −f(V − s, V )

= f(V, V − s)= f(V, t) + f(V, V − s− t)= f(V, t)

En esto usamos el hecho

f(V, V − s− t) =∑

x∈Vrs,t

f(V, x)

= −∑

x∈Vrs,t

f(x, V )

= 0

que sigue de conservacion, ya que cada termino de la ultima suma se anula.

8.2.2. Metodo de Ford-Fulkerson

Presentaremos ahora una manera de obtener el flujo de maximo valor en una red. No lo llamaremos “algo-ritmo,” ya que la estrategia general puede implementarse de varias formas, con caracterısticas diferentes. En elproceso introduciremos varias ideas importantes en muchos problemas relacionados con flujos. Supondremos que lascapacidades son enteras, de otra forma puede ser que los metodos planteados no terminen nunca (aunque converjanhacia la solucion).

El metodo de Ford-Fulkerson es iterativo. Comenzamos con f(x, y) = 0 para todo arco (x, y), con un valor inicialcero. En cada iteracion aumentamos el valor del flujo a traves de identificar un “augmenting path” (un camino entres y t que no esta en su maxima capacidad) y aumentamos el flujo a lo largo de este camino. Continuamos hasta queno se pueda encontrar otro augmenting path. Por el teorema max-flow min-cut (teorema 8.7, que demostraremosmas adelante) al finalizar el valor del flujo es maximo. Si las capacidades (y los flujos) son numeros naturales, nopueden crecer indefinidamente y los algoritmos deben terminar.

Algoritmo 9 El metodo de Ford-Fulkerson

Inicialice f en 0while hay un augmenting path p do

Aumente el flujo f a lo largo de pend while

8.2.3. Redes residuales

Dada una red y un flujo f , habran arcos que admiten flujo adicional, y estos arcos con sus capacidades sin usara su vez constituyen una red. Intuititivamente esta nos dice cuales son las posibles mejoras del flujo, ası nos interesaanalizar la relacion entre esta red y la original.

Mas formalmente, supongamos una red D = (V,A), con capacidades c : A→ R+, fuente s y sumidero t. Sea f unflujo en D, y consideremos un par de vertices x e y. El flujo adicional que podemos enviar de x a y antes de sobrepasarla capacidad de ese enlace es la capacidad residual del enlace (x, y), en sımbolos cf (x, y) = c(x, y) − f(x, y). Porejemplo, si c(x, y) = 10 y f(x, y) = 7, podemos enviar un flujo adicional de 3 de x a y sin sobrepasar la capacidadde ese enlace. Cuando hay un flujo f(x, y) de x a y, podemos disminuir el flujo a lo largo de ese enlace en f(x, y), loque se representa mediante la capacidad residual del enlace (y, x) cf (y, x) = −f(x, y). La red residual Df = (V,Af )inducida por f es simplemente la red formada por los enlaces que no estan llenos y sus capacidades libres, o seaAf = (u, v) ∈ V × V : cf (u, v) > 0. En Df todos los arcos pueden admitir flujos mayores a cero, los arcos de Df

son ya sea arcos de D o sus reversos.

87

Page 88: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Conviene definir la suma de flujos f1 y f2:

(f1 + f2)(u, v) = f1(u, v) + f2(u, v)

Notese que esto no siempre es un flujo, ya que no necesariamente cumple las restricciones de nuestra definicion.El siguiente lema relaciona flujos en D con flujos en Df .

Lema 8.2. Sea D = (V,A) una red con fuente s y sumidero t, y f un flujo en D. Sea Df = (V,Af ) la red residualinducida por f , y f ′ un flujo en Df . Entonces la suma f+f ′ es un flujo en D, con valor val(f+f ′) = val(f)+val(f ′).

Demostracion. Primero, para verificar que es un flujo, debe cumplir las condiciones de la definicion. Para skewsymmetry tenemos:

(f + f ′)(x, y) = f(x, y) + f ′(x, y)

= −f(y, x)− f ′(y, x)

= −(f + f ′)(y, x)

Para las restricciones de capacidad, note que f ′(x, y) ≤ cf (x, y) para todo x, y ∈ V . Por tanto:

(f + f ′)(x, y) = f(x, y) + f ′(x, y)

≤ f(x, y) + (c(x, y)− f(x, y))

= c(x, y)

Para conservacion, como f y f ′ son flujos, para todo x 6= s, t se cumple f(x, V ) = f ′(x, V ) = 0, con lo que(f + f ′)(x, V ) = 0.

Finalmente:

val(f + f ′)) = (f + f ′)(s, V )

= f(s, V ) + f ′(s, V )

= val(f) + val(f ′)

Como cumple con nuestra definicion y nuestras convenciones, queda demostrado lo que perseguıamos.

8.2.4. Augmenting paths

Dada una red D = (V,A) y un flujo f , un augmenting path p es un camino dirigido entre s y t en la red residualDf . Por la definicion de red residual, cada arco (x, y) a lo largo de p admite flujo positivo de x a y sin violar larestriccion de capacidad. Esta claro que podemos aumentar el flujo a lo largo de p en

cf (p) = mın(x,y)∈p

cf (x, y)

sin violar las restricciones de capacidad. A esto se le llama la capacidad residual de p.

Lema 8.3. Sea D = (V,A) una red, sea f un flujo en D, y sea p un augmenting path en Df . Defina la funcionfp : V × V → R mediante:

fp(u, v) =

cf (p) si (x, y) esta en p

−cf (p) si (y, x) esta en p

0 caso contrario

Entonces fp es un flujo en Df con valor val(fp) = cf (p) > 0.

De lo anterior tenemos:

Corolario 8.4. Sea D = (V,A) una red, f un flujo en D y p un augmenting path en Df . Sea fp como definidoen el lema 8.3, y defina f ′ : V × V → R mediante f ′ = f + fp. Entonces f ′ es un flujo en D, y su valor esval(f ′) = val(f) + val(fp) > val(f).

88

Page 89: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

s t

a c

b d

10 49

12

14

7

16

13

20

4

Figura 47: Una red

s t

a c

b d

4/93/7

4/16

8/13 4/4

9/12

8/20

7/14

8/10 3/4

(a) Un flujo

s t

a c

b d

4

4

7

7

4

5

3

9

55

8

12

4 3

8

5

12

(b) La red residual

Figura 48: Flujo y red residual en la red de la figura 47

Demostracion. Inmediata por los lemas 8.2 y 8.3.

Para clarificar estas ideas, veanse las figuras 47 y 48. La figura 47 muestra una red, la figura 48a muestraun flujo en la red de la figura 47. La figura 48b muestra la red residual con ese flujo con un augmenting pathmarcado. Notese que en la red residual tenemos enlaces contracorriente cuyas capacidades son el flujo actual. Estosignifica que podemos enviar hasta ese flujo contracorriente (disminuyendo el flujo actual) a traves de ese enlace.Este augmenting path tiene capacidad residual 4, y 49 muestra el resultado de aumentar el flujo.

8.2.5. Cortes

La idea del metodo de Ford-Fulkerson es hallar un augmenting path y aumentar el flujo a lo largo de el. Cuandoeste proceso termina, tenemos un flujo de valor maximo. Al discutir estos metodos se restringen las capacidadesa numeros naturales. De partida, capacidades negativas no tienen sentido, y resulta que si las capacidades sonirracionales hay casos en que los algoritmos no terminan nunca (convergen hacia la solucion, pero nunca la alcanzan).

La correctitud de estos metodos la garantiza el teorema max-flow min-cut, que es nuestro proximo objetivo.Primeramente consideraremos el concepto de un corte (cut) en una red. Un corte (S, T ) corresponde simplementea una particion de los vertices de la red en conjuntos S y T = V r S tal que s ∈ S y t ∈ T , vease la figura 50. Sif es un flujo, el flujo neto a traves del corte (S, T ) se define como f(S, T ). En nuestro caso (figura 50) el flujo netoes 9 − 4 + 7 = 12. La capacidad del corte (S, T ) es c(S, T ), que en la misma figura corresponderıa a 12 + 14 = 26.Tambien se define un corte mınimo (minimum cut) como un corte de capacidad mınima. El flujo neto que cruzael corte incluye flujos de S a T (aportes positivos) y flujos de T a S (aportes negativos). Por otro lado, en lascapacidades se incluyen solo las de arcos de S a T . El lema siguiente relaciona los flujos con las capacidades a travesde cortes de la red.

89

Page 90: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

s t

a c

b d

8/10 3/40/9

9/12

3/7

4/16

12/13 4/4

12/20

7/14

Figura 49: El flujo aumentado segun el augmenting path de la figura 48b

s t

a c

b d

3/44/9

4/16

8/13 4/4

7/14

9/12

S T

8/10

8/20

3/7

Figura 50: Un corte en la red de la figura 47 con el flujo de la figura 48a

Lema 8.5. Sea f un flujo en la red D = (V,A) con fuente s y sumidero t, y sea (S, T ) un corte de la red. Entoncesel flujo neto a traves del corte es el valor del flujo.

Demostracion. Notando que por conservacion de flujo f(S − s, V ) = 0, y aplicando el lema 8.1, tenemos:

f(S, T ) = f(S, V )− f(S, S)

= f(S, V )

= f(s, V ) + f(S − s, V )

= f(s, V )

= val(f)

Un resultado inmediato del lema 8.5 es el resultado que demostramos antes, que el flujo al sumidero es el valordel flujo en la red: Basta tomar el corte (V − t, t) para ello.

Pero tambien podemos deducir:

Corolario 8.6. En una red D con un corte (S, T ), el valor de cualquier flujo esta acotado por la capacidad delcorte.

90

Page 91: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Demostracion. Sea (S, T ) un corte cualquiera de D y sea f un flujo. Por el lema 8.5 y las restricciones de capacidad:

val(f) = f(S, T )

=∑

x∈S

y∈Tf(x, y)

≤∑

x∈S

y∈Tc(x, y)

= c(S, T )

Una consecuencia inmediata del corolario 8.6 es que el valor de un flujo esta acotado por la capacidad de un cutmınimo. El teorema siguiente nos dice que el flujo maximo en realidad es esta cota.

Teorema 8.7 (Max-flow min-cut). Si f es un flujo en la red D = (V,A) con fuente s y sumidero t, entonces lassiguientes son equivalentes:

(1) f es un flujo maximo en D

(2) La red residual Df no contiene augmenting paths

(3) val(f) = c(S, T ) para algun corte (S, T ) de D

Demostracion. Demostramos la equivalencia a traves de un ciclo de implicancias.

(1)⇒ (2): Por contradiccion. Supongamos en contrario que f es maximo en D, pero que Df tiene un augmentingpath p. Por el corolario 8.4 la suma f + fp es un flujo, cuyo valor es mayor que val(f), lo que contradice lasuposicion de que f es maximo.

(2)⇒ (3): Nuevamente por contradiccion. Supongamos que Df no tiene augmenting path, es decir, no hay caminodirigido de s a t en Df . Definamos:

S = x ∈ V : hay un camino de s a x en DfT = V r T

Entonces (S, T ) es un corte de D, ya que obviamente s ∈ S y t /∈ S ya que no hay camino de s a ten Df por suposicion. Para cada par de vertices x ∈ S e y ∈ T tenemos f(x, y) = c(x, y), dado que delo contrario (x, y) ∈ Af y habrıa un camino s x → y y ası y estarıa en S. Por el lema 8.5 tenemosval(f) = f(S, T ) = c(S, T ).

(3)⇒ (1): Por el corolario 8.6 es val(f) ≤ c(S, T ) para todos los cortes (S, T ). La condicion val(f) = c(S, T )entonces asegura que el flujo es maximo.

Este teorema sirve para demostrar la validez del metodo de Ford-Fulkerson: Si en una iteracion no hay unaugmenting path, quiere decir que el flujo actual es maximo. Una manera razonable de buscar un augmenting pathes usar busqueda a lo ancho en la red residual. A esta forma de implementar el metodo de Ford-Fulkerson se leconoce como el algoritmo de Edmonds-Karp.

9. Permutaciones

Definicion Una permutacion de un conjunto finito X es una biyeccion de X a X.

Comunmente usaremos X = 1, 2, . . . , n. Por ejemplo, una permutacion tıpica de 1, 2, . . . , 5 es la funcion αdefinida por la tabla:

1 2 3 4 5α ↓ ↓ ↓ ↓ ↓

2 4 5 1 3

91

Page 92: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Esta claro que hay n! permutaciones de un conjunto de n elementos (el valor de π(1) puede elegirse de n maneras,una vez elegido este quedan solo n− 1 opciones para π(2), y ası sucesivamente, y finalmente queda solo una opcionpara π(n)).

Supongamos la permutacion β definida por la tabla

1 2 3 4 5β ↓ ↓ ↓ ↓ ↓

3 5 1 4 2

Entonces la composicion βα se obtiene de

1 2 3 4 5α ↓ ↓ ↓ ↓ ↓

2 4 5 1 3β ↓ ↓ ↓ ↓ ↓

5 4 2 3 1

En general βα 6= αβ:

1 2 3 4 5β ↓ ↓ ↓ ↓ ↓

3 5 1 4 2α ↓ ↓ ↓ ↓ ↓

5 3 2 1 4

Teorema 9.1. Las permutaciones Sn cumplen las siguientes:

(i) Si π y σ estan en Sn, lo esta tambien πσ

(ii) Para todas permutaciones π, σ, τ en Sn, se cumple:

(πσ)τ = π(στ)

(iii) La funcion identidad, que llamaremos id, definida por id(r) = r es una permutacion, y tenemos para todo σen Sn

idσ = σ id = σ

(iv) Para toda permutacion π en Sn hay una permutacion inversa π−1 en Sn tal que

ππ−1 = π−1π = id

Demostracion. La propiedad (i) sigue directamente de que la composicion de biyecciones es una biyeccion, (ii) esuna propiedad basica de la composicion de funciones, (iii) es obvio, y (iv) es simplemente que toda biyeccion tieneuna inversa.

El teorema 9.1 equivale a decir que las permutaciones forman un grupo con la operacion de composicion. Algrupo de permutaciones de n elementos se le llama el grupo simetrico de orden n, que se anota Sn.

Es conveniente tener una notacion compacta para permutaciones individuales. Consideremos nuevamente lapermutacion α, y notemos que α(1) = 2, α(2) = 4, α(4) = 1. Esto forma un ciclo (1 → 2 → 4 → 1) de largo 3.Similarmente, 3 y 5 forman un ciclo de largo 2, y podemos escribir α en notacion de ciclos como α = (1 2 4)(3 5).Toda permutacion π se puede escribir en notacion de ciclos mediante

Comience con algun sımbolo (digamos 1), y trace el efecto de π sobre el y sus sucesores hasta que nuevamenteencontremos 1, ası tenemos un ciclo

Tome un sımbolo cualquiera que no haya sido considerado aun, y construya el ciclo que lo contiene de lamisma forma

Continue de la misma forma hasta haber dado cuenta de todos los sımbolos

92

Page 93: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Esta claro que este proceso dara una representacion esencialmente unica. Podemos elegir cualquiera de los elementosde cada ciclo como primero — por ejemplo, (7 8 2 1 3) es lo mismo que (1 3 7 8 2). Por otro lado, podemos reordenarlos ciclos — por ejemplo, (1 2 4)(3 5) y (3 5)(1 2 4) corresponden a la misma permutacion, ya que al operar losciclos en esta representacion sobre elementos diferentes los ciclos conmutan. Lo importante son el numero de ciclos,sus largos, y la disposicion de sus elementos.

Por ejemplo, para la permutacion β dada anteriormente, la notacion de ciclos es β = (1 3)(2 5)(4) Aca 4 formaun ciclo “degenerado” por sı mismo, ya que β(4) = 4. Simplemente omitiremos estos ciclos de largo 1, ya quecorresponden a sımbolos que no son afectados por la permutacion. En todo caso, es mejor no omitirlos hasta queuno se haya familiarizado con la notacion.

Ejemplo Se tienen cartas numeradas 1 a 12, que se reparten en filas como muestra la figura 51a. Luego se tomanpor columnas y se vuelven a repartir por filas, dando 51b. Luego se toman las cartas por filas y se distribuyen en

1 2 34 5 67 8 9

10 11 12

(a) Original

1 4 710 2 58 11 36 9 12

(b) Columnas

Figura 51: Ordenamiento de cartas

columnas, quedando como lo muestra la figura 51b. ¿Cuantas veces hay que repetir esta operacion hasta obtenernuevamente el orden original?

Sea π la permutacion que corresponde a esta operacion, lo que buscamos es el orden de π en S12. Estamanera de verlo nos dice que el problema tiene solucion, cosa que no es obvia: Perfectamente podrıa ocurrirque saliendo de la configuracion inicial ya no haya manera de volver a ella. En notacion de ciclos tenemosπ = (1)(2 4 10 6 5)(3 7 8 11 9)(12). Las cartas 1 y 12 no cambian de posicion, las demas forman dos ciclosde largo 5. Al repetir esta operacion 5 veces todas las cartas quedan en sus posiciones originales.

9.1. Clasificacion de permutaciones

A cada permutacion π en Sn corresponde una particion de los n elementos en los elementos de sus ciclos. Alnumero de ciclos de cada largo de la permutacion le llamaremos su tipo. O sea, si π tiene αi ciclos de largo i(1 ≤ i ≤ n), el tipo de π lo anotamos [1α12α2 . . . nαn ].

Definicion Si hay una permutacion σ tal que σασ−1 = β se dice que β es conjugada de α.

El teorema siguiente es basico en la teorıa algebraica de permutaciones.

Teorema 9.2. Dos permutaciones α y β son conjugadas si y solo si tienen el mismo tipo.

Demostracion. Demostramos implicancias en ambas direcciones.Supongamos que α y β son conjugadas, de forma que podemos escribir σασ−1 = β. Si α(x1) = x2, definamos

y1 = σ(x1) e y2 = σ(x2); con x3 = α(x2) definimos y3 = σ(x3), y ası sucesivamente. Tenemos:

β(y1) = σασ−1(σ(x1)) = σα(x1) = σ(x2) = y2

De forma similar, β(y2) = y3, y ası sucesivamente. Esto es una biyeccion entre el ciclo de α que contiene a x1 y elciclo de β que contiene a y1, y habran biyecciones similares entre los demas ciclos de α y β, que ası tienen el mismotipo.

Por otro lado, supongamos que α y β tienen el mismo tipo. Como tienen el mismo numero de ciclos de cada unode los largos, podemos construir una biyeccion entre ciclos del mismo largo de α y β, digamos (x1, x2, . . . , xr) en αcorresponde a (y1, y2, . . . , yr) en β. Definiendo σ(xi) = yi para este ciclo, y de forma similar para los demas ciclos,tenemos σασ−1 = β ya que (considerando los ındices modulo el largo del ciclo) tenemos

σασ−1(yi) = σα(xi) = σ(xi+1) = yi+1 = β(yi)

93

Page 94: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Una manera fundamental de clasificar permutaciones viene de considerarlas como composicion de transposiciones,que son permutaciones que solo intercambian dos elementos. Una permutacion es una transposicion si es del tipo[1n−22] (tiene n−2 ciclos de largo 1 y un ciclo de largo 2). Ahora bien, el ciclo (x1 x2 . . . xr), transforma (x1 x2 . . . xr)en (x2 x3 . . . xr x1), y este mismo efecto se logra intercambiando x1 con x2, luego x2 (que ahora esta en la posicion x1)con x3, y ası sucesivamente. Ası podemos escribir (x1 x2 . . . xr) = (x1 xr) . . . (x1 x3)(x1 x2). Como toda permutacionse puede descomponer en ciclos, toda permutacion puede expresarse en terminos de transposiciones. Por ejemplo,aplicando la idea indicada arriba a cada uno de los ciclos:

(1 3 6)(2 4 5 7) = (1 6)(1 3)(2 7)(2 5)(2 4)

Las transposiciones se pueden traslapar, un elemento puede moverse mas de una vez. Esta representacion no esunica, ademas de reordenar las transposiciones podemos usar un conjunto completamente diferente de estas, como:

(1 3 6)(2 4 5 7) = (1 5)(3 5)(3 6)(5 7)(1 4)(2 7)(1 2)

Sin embargo, hay una caracterıstica en comun entre todas estas descomposiciones.Sea c(π) el numero total de ciclos de π. Si π tiene tipo [1α12α2 . . . nαn ] entonces c(π) = α1 + α2 + . . . + αn.

Si combinamos π con una transposicion τ , dando τπ, nos interesa determinar la relacion entre c(π) y c(τπ). Si τintercambia a con b, tenemos τ(a) = b, τ(b) = a y τ(k) = k si k 6= a, b. Cuando a y b estan en el mismo ciclo de π,podemos escribir:

π = (a x . . . y b . . . z) y otros ciclos

Consideremos entonces la permutacion τπ. Tenemos π(a) = x, . . . , π(y) = b, . . . , π(z) = a; y por otro ladoτπ(a) = τ(x) = x, . . . , τπ(y) = τ(b) = a; y tambien τπ(b) = π(b), . . . τπ(z) = τ(a) = b. Se corta el ciclo y resulta:

τπ = (a x . . . y)(b . . . z) y los otros ciclos

con lo que c(τπ) = c(π) + 1. Por otro lado, si a y b pertenecen a ciclos distintos, o sea podemos escribir

π = (a x . . . y)(b . . . z) y otros ciclos

vemos que τπ(y) = τ(a) = b y τπ(z) = τ(b) = a, los ciclos se funden:

τπ = (a x . . . y b . . . z) y los otros ciclos

con lo que c(τπ) = c(π)− 1. En resumen, seguir una permutacion por una transposicion cambia el numero de ciclosen 1, y tenemos:

Teorema 9.3. Supongase que la permutacion π de Sn puede escribirse como la composicion de r transposicionesy tambien como la composicion de r′ transposiciones. Entonces r y r′ son ambos pares o ambos impares.

Demostracion. Sea π = τrτr−1 . . . τ1, con τi (1 ≤ i ≤ r) una transposicion. Como τ1 esta formado por un ciclo delargo 2 y n− 2 ciclos de largo 1, resulta c(τ1) = 1 + (n− 2) = n− 1. Combinando τ1 con τ2, τ3, . . . , τr finalmentese obtiene π. En cada paso c aumenta o disminuye en 1. Sea g el numero de veces que aumenta y h el numero deveces que disminuye, El numero final de ciclos sera c(π) = (n− 1) + g − h. Pero tenemos g + h = r− 1, con lo que:

r = 1 + g + h

= 1 + g + (n− 1 + g − c(π))

= n− c(π) + 2g

De la misma forma, para cualquier otra manera de expresar π como producto de transposiciones hay un entero g′

tal que r′ = n− c(π) + 2g′, con lo que r − r′ = 2(g − g′), que es par.

En vista del teorema 9.3 podemos clasificar las permutaciones en pares o impares dependiendo del numero detransposiciones que las conforman. Definimos el signo de la permutacion ρ, escrito sgn ρ, como +1 si ρ es par, y −1si es impar:

sgn ρ = (−1)r

94

Page 95: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

donde ρ se puede escribir como la composicion de r transposiciones. En particular, sgn id = (−1)0 = +1. Claramente,si ρ se puede descomponer en r transposiciones y σ se puede descomponer en s transposiciones, entonces ρσ se puededescomponer en r + s transposiciones:

sgn(ρσ) = (−1)r+s

= (−1)r · (−1)s

= sgn ρ · sgnσ

En particular, como ρρ−1 = id, resulta sgn ρ = sgn ρ−1.

Teorema 9.4. Para todo entero n ≥ 2 exactamente la mitad de las permutaciones de Sn son pares y la otra mitadimpares.

Demostracion. Sea π1, π2, . . . , πk la lista de permutaciones pares en Sn. Esta lista no es vacıa, ya que id es par.Sea τ una transposicion cualquiera en Sn, por ejemplo τ = (1 2). Entonces τπ1, τπ2, . . . , τπk son todas distintas,

ya que si τπi = τπj por asociatividad e inverso en el grupo

πi = (τ−1τ)πi = τ−1(τπi) = τ−1(τπj) = (τ−1τ)πj = πj

Aun mas, todas estas permutaciones son impares, ya que

sgn(τπi) = sgn τ · sgnπi = (−1) · (+1) = −1

Finalmente, toda permutacion impar ρ es de una de las τπi (1 ≤ i ≤ k), ya que:

sgn(τ−1ρ) = sgn τ−1 · sgn ρ = (−1) · (−1) = +1

con lo que τ−1ρ es par, y debe ser πi para algun i en el rango 1 ≤ i ≤ k, y ası ρ = τπi. Con esto tenemos unabiyeccion entre las permutaciones pares e impares.

El conjunto de permutaciones pares es un subgrupo de Sn (Sn es finito, y este subconjunto es cerrado respectode la composicion), se le llama el grupo alternante y se anota An.

Esto tiene aplicacion en muchas areas, por ejemplo en “matematicas recreativas.”

Ejemplo Ocho bloques marcados 1 a 8 se disponen en un marco cuadrado como se indica en la figura 52a. Unamovida legal corresponde a deslizar un bloque al espacio vacıo. Determine si es posible lograr la configuracionde 52b.

1 2 34 5 67 8

(a) Inicial

8 5 27 4 16 3

(b) Final

Figura 52: ¿Puede hacerse?

Si anotamos el espacio en blanco por , la configuracion inicial puede escribirse 1 2 3 4 5 6 7 8 , y la finalsolicitada es 8 5 2 7 4 1 6 3 . Claramente toda movida legal es una transposicion, y si el espacio en blanco se mueveun numero impar de veces terminara en una posicion que no es la original. Luego la permutacion que lleva de laconfiguracion inicial a otra configuracion posible bajo las reglas en la que esta nuevamente en la esquina inferiorderecha esta conformada por un numero par de transposiciones, o sea es par. La permutacion entre la configuracionfinal solicitada y la inicial es (1 8 3 2 5 4 7 6)( ); el ciclo de largo 8 que aparece aca es impar, por lo que esto nopuede hacerse.

Notese que esto sirve para demostrar lo que no puede hacerse, no significa que todas las permutaciones parespuedan lograrse con estas restricciones.

95

Page 96: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

9.2. Numeros de Stirling de primera especie

Es simple contabilizar las permutaciones de un tipo particular. Supongamos, por ejemplo, que nos interesa sabercuantos elementos de S14 tienen tipo [22324]. Esto corresponde a poner los sımbolos 1, 2, . . . , 14 en el patron

(. .)(. .)(. . .)(. . .)(. . . .)

y hay 14! formas de distribuir los 14 sımbolos en las 14 posiciones. Sin embargo, muchas de estas dan la mismapermutacion. Considerando cada ciclo, podemos elegir el primer elemento de el y el resto quedara determinado porla permutacion. Hay 2 maneras de obtener cada 2-ciclo, 3 maneras de obtener cada 3-ciclo, y 4 maneras de obtenercada 4-ciclo. El ordenamiento interno se puede llevar a cabo de 22×32×4 formas en este caso. En general, si el tipoes [1α12α2 . . . nαn ], habran 1α1 × 2α2 × . . .×nαn ordenamientos internos equivalentes. Por otro lado, el orden de losciclos del mismo largo es arbitrario, por lo que el numero de reordenamientos en el caso general sera α1!α2! . . . αn!,y el numero de permutaciones de tipo [1α12α2 . . . nαn ] es

n!

1α12α2 . . . nαn α1!α2! . . . αn!

Una pregunta obvia es cuantas permutaciones de n elementos con k ciclos hay. A esto se le conoce como numerosde Stirling de primera especie, y se anota

[nk

]. Para derivar una recurrencia para ellos, consideremos como podemos

construir una permutacion de n objetos con k ciclos a partir de permutaciones de n−1 objetos. Al agregar el nuevoobjeto, podemos ponerlo en un ciclo por sı mismo, lo que puede hacer de una unica manera partiendo de cada unade las

[n−1k−1

]permutaciones de n − 1 elementos con k − 1 ciclos. La otra opcion es insertarlo en alguno de k ciclos

existentes. Si suponemos una permutacion de n− 1 elementos y k ciclos:

(a1 a2 . . . aj1)(aj1+1 aj1+2 . . . aj2). . .(ajk−1+1 ajk−1+2 . . . an−1)

Podemos insertar el nuevo elemento antes de cada elemento, agregandolo a ciclo al que este pertenece; insertar elelemento al final del ciclo es lo mismo que ubicarlo al comienzo. Esto da n− 1 permutaciones distintas:

[n

k

]= (n− 1)

[n− 1

k

]+

[n− 1

k − 1

]

Para condiciones de contorno, tenemos:[0

0

]= 1

[n

0

]= 0 si n > 0

[1

1

]= 1

Si ademas decretamos:

[n

k

]=

0 n < 0

0 k < 0

0 k > n

la recurrencia siempre se cumple.En forma de triangulo a la Pascal tenemos:

n = 0: 1

n = 1: 0 1

n = 2: 0 1 1

n = 3: 0 2 3 1

n = 4: 0 6 11 6 1

n = 5: 0 24 50 35 10 1

n = 6: 0 120 274 225 85 15 1

96

Page 97: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Si definimos los coeficientes s(n, k) mediante la expansion:

xn = x(x− 1) . . . (x− n+ 1)

=∑

k≥0

(−1)n−ks(n, k)xk

Tenemos condiciones de borde:

s(0, 0) = 1

s(n, 0) = 1 si n > 0

s(n, k) =

0 n < 0

0 k < 0

0 k > n

Si consideramos la recurrencia

xn+1 = x · xn − nxn

podemos escribir con n ≥ 0:∑

k≥0

(−1)n+1−ks(n+ 1, k)xk =∑

k≥0

((−1)n−ks(n, k)xk+1 − n(−1)n−ks(n, k)xk

)

=∑

k≥1

((−1)n−k+1s(n, k − 1)− n(−1)n−ks(n, k)

)xk − n(−1)ns(n, 0)

Comparando coeficientes a ambos lados resulta la recurrencia:

s(n+ 1, k) = s(n, k − 1) + ns(n, k)

que es la misma de los numeros de Stirling de primera especie y tienen las mismas condiciones de borde, por lo que:

xn =∑

k≥0

(−1)n−k[n

k

]xk

Definimos la funcion generatriz mixta:

H(z, u) =∑

n ≥ 0k ≥ 0

[n

k

]ukzn

n!

En vista de la relacion entre numeros de Stirling de primera especie y potencias factoriales podemos escribir:

H(z, u) =∑

n≥0

(−z)nn!

k≥0

(−1)n−k[n

k

](−u)k

=∑

n≥0

(−u)n

n!(−z)n

=∑

n≥0

(−un

)(−z)n

= (1− z)−u

Con esta funcion generatriz es simple derivar propiedades adicionales de los numeros de Stirling de primera especie.Por ejemplo:

H(z,−1) = 1− z

=∑

n≥0

zn

n!

k≥0

(−1)k[n

k

]

97

Page 98: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Comparando coeficientes, y recordando que[nk

]= 0 cuando k > n, resulta para n > 1:

0≤k≤n

(−1)k[n

k

]= 0

9.3. Grupos de permutaciones

Definicion Sea G un conjunto de permutaciones de un conjunto finito X. Si G es un grupo (con la composicionde permutaciones) decimos que G es un grupo de permutaciones de X.

Si tomamos X = 1, 2, . . . , n, entonces un grupo de permutaciones es simplemente un subgrupo de Sn. Por ejemplo,la tabla 8 muestra todos los subgrupos de S3. El grupo alternante A3 aparece como H5 en la tabla. Para ver si un

H1 = id H2 = id, (1 2) H3 = id, (1 3)H4 = id, (2 3) H5 = id, (1 2 3), (1 3 2) H6 = S3

Cuadro 8: Los subgrupos de S3

subconjunto de un grupo finito es un subgrupo, basta verificar si es cerrado por lo demostrado anteriormente paragrupos.

Muchos otros ejemplos se obtienen como grupos de simetrıa de objetos geometricos. Por ejemplo, si rotulamos losvertices de un cuadrado en orden de las manecillas del reloj (ver la figura 53), cada simetrıa induce una permutacion

1

23

4

Identidad idRotacion en 90 (1 2 3 4)Rotacion en 180 (1 3)(2 4)Rotacion en 270 (1 4 3 2)Reflexion en diagonal 1 3 (2 4)Reflexion en diagonal 2 4 (1 3)Reflexion en bisector perpendicular de 1 2 (1 2)(3 4)Reflexion en bisector perpendicular de 1 4 (1 4)(2 3)

Figura 53: Un cuadrado y sus simetrıas

del conjunto 1, 2, 3, 4, y obtenemos las simetrıas indicadas. Estas 8 permutaciones forman el llamado grupo dihedralde orden 8, D8. En general, las simetrıas de un n-agono regular forman un grupo de 2n elementos, el grupo dihedralde orden 2n que se anota D2n. En todo caso, debe tenerse cuidado: Esta es la notacion que se usa en algebra, engeometrıa este mismo grupo se llama Dn. Si solo se consideran las rotaciones de un polıgono regular de n lados,tenemos el grupo cıclico de orden n, anotado Cn, que es isomorfo a Zn con la suma.

Una situacion similar se produce cuando estudiamos grafos en vez de figuras geometricas, en donde las “simetrıas”son permutaciones de los vertices que transforman arcos en arcos. A una permutacion de este tipo se le llamaautomorfismo del grafo (viene a ser un isomorfismo del grafo consigo mismo).

Un ejemplo de grafo se ve en la figura 54, e interesa saber cuantos automorfismos tiene. Primero observamosque los vertices del grafo caen naturalmente en dos grupos: Los vertices 1, 3, 5 son de grado 4, mientras 2, 4, 6son de grado 2. Ningun automorfismo puede transformar un vertice del primer grupo en uno del segundo. Por otrolado, esta claro que podemos tomar cualquier permutacion de 1, 2, 3 y extenderla a un automorfismo del grafo.Por ejemplo, si (1 3 5) es parte de un automorfismo α, entonces α tiene que transformar 2 en 4, ya que 2 es el unicovertice adyacente a 1 y 3, y 4 es el unico vertice adyacente a sus imagenes 3 y 5. De la misma forma, α lleva 4 en6 y 6 en 2, por lo que α = (1 3 5)(2 4 6). En forma analoga, cada una de las seis permutaciones de 1, 2, 3 puede

98

Page 99: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

2

16

5

4 3

id se extiende a id (1 3) se extiende a (1 3)(4 6)(1 3 5) se extiende a (1 3 5)(2 4 6) (1 5) se extiende a (1 5)(2 4)(1 5 3) se extiende a (1 5 3)(2 6 4) (3 5) se extiende a (3 5)(2 6)

Figura 54: Un grafo de 6 vertices y sus automorfismos

extenderse de forma unica a un automorfismo del grafo, como muestra la misma figura 54. Hay exactamente seisautomorfismos, que son las permutaciones listadas arriba.

9.4. Orbitas y estabilizadores

Sea G un grupo de permutaciones de un conjunto X. Veremos que la estructura del grupo lleva naturalmentea una particion de X. Definamos la relacion ∼ sobre X mediante x ∼ y siempre que para algun γ ∈ G tenemosγ(x) = y. Verificamos que ∼ es una relacion de equivalencia de la forma usual:

(Reflexiva) Como id es parte de todo grupo, y id(x) = x para todo x ∈ X, tenemos x ∼ x(Simetrica) Supongamos x ∼ y, de forma que γ(x) = y para algun γ ∈ G. Como G es un grupo, γ−1 ∈ G, y como

γ−1(y) = x, tenemos y ∼ x(Transitiva) Si x ∼ y y y ∼ z debe ser γ1(x) = y y γ2(y) = z para γ1, γ2 ∈ G, y como G es un grupo, γ2γ1 ∈ G,

con lo que γ2γ1(x) = z y x ∼ zComo ∼ es una relacion de equivalencia, define una particion de X; x e y pertenecen a la misma clase si y solo sihay una permutacion en G que transforma x en y. A las clases de equivalencia se les conoce como orbitas de G enX. La orbita de x es la clase que contiene a x:

Gx = y ∈ X : y = γ(x) para algun γ ∈ G

Intuitivamente, la orbita Gx son los elementos de X que no se distinguen de x bajo operaciones de G. Porejemplo, en el grafo de la figura 55 los automorfismos se obtienen combinando las permutaciones de la figura 55.Hay un total de 2 × 2 × 6 = 24 permutaciones en este grupo. Son orbitas a, b, c, d, f, e, g, h, i, j,k, l,m, y se ve que “son parecidos” los elementos de cada una de ellas, en que las operaciones del grupo losintercambian.

Las orbitas presentan un par de problemas numericos obvios: ¿Cuantas orbitas hay? ¿Que tamanos tienen?Si G es un grupo de permutaciones, llamaremos G(x→ y) al conjunto de permutaciones que llevan x a y, o sea:

G(x→ y) = γ ∈ G : g(x) = y

En particular, G(x→ x) es el conjunto de permutaciones que tienen a x como punto fijo. Este conjunto se llama elestabilizador de x, y se anota Gx. Si γ1 y γ2 estan en Gx:

γ2γ1(x) = γ2(x) = x

por lo que γ2γ1 ∈ Gx, y Gx es un subgrupo de G. Tambien tenemos:

Teorema 9.5. Sea G un grupo de permutaciones, y sea γ ∈ G(x→ y). Entonces

G(x→ y) = γGx

el coset izquierdo de Gx respecto a γ.

99

Page 100: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

a

c

b

e

d

f

g

h

i

j

k

l

m

id id id(a b) (d f) (h i)(k l)

(h j)(k m)(i j)(l m)(h i j)(k l m)(h j i)(k m l)

Figura 55: Un ejemplo de grafo y los generadores de su grupo de automorfismos

Demostracion. Demostraremos que todo elemento de γGx pertenece a G(x → y) y viceversa, con lo que ambosconjuntos son iguales.

Si α pertenece al coset izquierdo γGx, tenemos α = γβ para algun β ∈ Gx. Vale decir, α(x) = γβ(x) = γ(x) = y,con lo que α pertenece a G(x → y). Al reves, si π ∈ G(x → y), entonces γ−1π(x) = γ−1(y) = x, de manera queγ−1π = δ, donde δ ∈ Gx, y ası π = γδ ∈ γGx. Ambos conjuntos son iguales.

De forma muy similar al teorema 9.5 se demuestra lo siguiente:

Teorema 9.6. Sea G un grupo de permutaciones de X, y sea γ ∈ G(x→ y). Entonces

G(x→ y) = Gyγ

el coset derecho de Gy respecto a γ.

Demostracion. Si α pertenece a Gyγ, entonces α = βγ para algun β ∈ Gy, vale decir α(y) = βγ(y) = β(x) = ycon lo que β ∈ G(x → y). Al reves, supongamos π ∈ G(x → y), y consideremos πγ−1(y) = π(x) = y y por tantoπγ−1 ∈ Gy, o π ∈ Gyγ, y se sigue el resultado.

De los anteriores teoremas obtenemos:

Corolario 9.7. Sea G un grupo de permutaciones de X, sea x ∈ X un elemento cualquiera, e y un elemento en laorbita de x. Entonces |Gx| = |Gy|.Demostracion. Inmediato, ya que el tamano de un coset es el orden del subgrupo; y por los teoremas 9.5 y 9.6tenemos |Gy| = |G(x→ y)| = |Gx|.

Teorema 9.8. Sea G un grupo de permutaciones de X, y sea x un elemento cualquiera de X. Entonces:

|Gx| × |Gx| = |G|

Demostracion. O sea, el tamano de la orbita de un elemento por el tamano de su estabilizador es el tamano delgrupo.

Usamos la idea de contar por filas y columnas. El conjunto de pares S = (γ, y) : γ(x) = y puede describirsemediante una tabla como la 9. Dado que γ es una permutacion, hay un unico y tal que γ(x) = y para cada γ,con lo que rγ(S) = 1. El total por columna cy(S) es el numero de permutaciones γ tales que γ(x) = y, vale decir|G(x → y)|. Si y esta en la orbita Gx, por el teorema 9.5 y el hecho que el coset de un subgrupo tiene el tamanodel subgrupo, tenemos |G(x→ y)| = |Gx|. Por otro lado, si y no esta en la orbita Gx, |G(x→ y)| = 0.

Las dos formas de contar los elementos de S dan:∑

y∈Xcy(S) =

γ∈Grγ(S)

100

Page 101: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

· · · y · · ·...γ Xsi (γ, y) esta en S rγ(S)...

cy(S)

Cuadro 9: Pares (γ, y) para demostracion del teorema 9.8

Al lado izquierdo hay |Gx| terminos que valen |Gx| cada uno, los demas valen 0; al lado derecho hay |G| terminosque valen 1 cada uno. Ası tenemos el resultado prometido.

Este teorema tambien permite calcular el tamano de un grupo si se conoce el tamano de una orbita y elestabilizador respectivo. Consideremos por ejemplo el grupo T de rotaciones en el espacio de un tetraedro, verla figura 56. Las rotaciones alrededor del eje marcado son las que mantienen fijo el vertice d, y hay 3 de estas,

a

b

cd

Figura 56: Rotaciones de un tetraedro

|Td| = 3. Por otro lado, girando el tetraedro en el espacio se puede colocar en la posicion d cualquiera de los 4vertices, y tenemos |Td| = 4. En consecuencia, el grupo de rotaciones en el espacio de un tetraedro es de orden|T | = |Td| × |Td| = 3× 4 = 12. Resulta que T no es mas que el grupo alternante A4.

Otro ejemplo mas complicado lo da el icosaedro truncado (el solido arquimedeano formado por 12 hexagonos y20 pentagonos, mas conocido como la forma basica de la pelota de futbol), que tiene 32 caras, 90 lados y 60 vertices.Si consideramos rotaciones en el espacio de este solido, como en cada vertice confluyen 1 pentagono y 2 hexagonos launica simetrıa que mantiene fijo un vertice es id. Vıa rotaciones podemos hacer coincidir ese vertice con cualquiera,por lo que tenemos que |G| = |Gx| · |Gx| = 1 · 60 = 60. Obtener el orden de este grupo manipulando el solido serıamucho mas complicado.

9.5. Numero de orbitas

Vamos ahora a contar el numero de orbitas de un grupo G de permutaciones de X. Cada orbita es un subconjuntode elementos indistinguibles bajo las operaciones de G, y el numero de orbitas nos dice cuantos tipos de elementosdistinguibles hay.

Como un ejemplo, supongase que se quieren fabricar tarjetas de identidad cuadradas, divididas en nueve cua-drados de los cuales se perforan dos. Vease la figura 57 para algunos ejemplos. Las primeras dos no se pueden

101

Page 102: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Figura 57: Ejemplos de tarjetas de identidad

distinguir, ya que se obtiene la segunda rotando la primera; en cambio, la tercera claramente es diferente de lasotras, independiente de si se gira o se da vuelta.

El grupo que esta actuando aca es el grupo D8 de ocho simetrıas de un cuadrado, pero nos interesa el efectoque tiene sobre las

(92

)= 36 configuraciones de dos agujeros en un cuadrado de 3 × 3, no solo su accion sobre los

cuatro vertices. El numero de orbitas es el numero de tarjetas distinguibles. Hacer esto por la vıa de dibujar las 36configuraciones, y analizar lo que ocurre con cada una de ellas con las 8 simetrıas es bastante trabajo. Por suertehay maneras mejores.

Dado un elemento γ del grupo de permutaciones G definimos:

F (γ) = x ∈ X : γ(x) = x

Vale decir, F (γ) es el numero de puntos fijos de γ. Nuestro teorema siguiente relaciona esto con el numero deorbitas.

Teorema 9.9 (Burnside). El numero de orbitas de G sobre X esta dado por:

1

|G|∑

γ∈G|F (γ)|

Demostracion. Nuevamente, contar por filas y columnas. Sea:

E = (γ, x) : γ(x) = x

Entonces el total por fila rγ(E) es el numero de x fijados por γ, o sea |F (γ)|. El total por columna cx(E) es elnumero de γ que tienen x como punto fijo, |Gx|. Contabilizando E de ambas formas nos da:

γ∈G|F (γ)| =

x∈X|Gx|

Supongamos que hay t orbitas, y elijamos z ∈ X. Por el teorema 9.6, si x pertenece a la orbita Gz entonces|Gx| = |Gz|. Cada orbita contribuye al lado derecho |Gz| terminos, cada uno de los cuales es |Gz|, y la contribuciontotal de la orbita es |Gz| × |Gz| = |G| por el teorema 9.8:

γ∈G|F (γ)| = t · |G|

que es equivalente a lo que querıamos demostrar.

Ahora estamos en condiciones de resolver nuestro problema de tarjetas de identidad. Necesitamos calcular elnumero de configuraciones fijas bajo cada una de las ocho permutaciones. Por ejemplo, cuando γ es la rotacion en180, hay 4 configuraciones fijas (ver la figura 58). La tabla 10 resume los valores. Con estos valores tenemos que elnumero de orbitas es:

1

8(36 + 0 + 4 + 0 + 6 + 6 + 6 + 6) = 8

En este caso serıa sencillo listar las 8 configuraciones por prueba y error, pero el resultado es aplicable en formamucho mas general.

102

Page 103: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Figura 58: Configuraciones fijas bajo rotacion en 180

Operacion FijosIdentidad 36Rotacion en 90 0Rotacion en 180 4Rotacion en 270 0Reflexion en diagonal 1 3 6Reflexion en diagonal 2 4 6Reflexion en perpendicular a 1 2 6Reflexion en perpendicular a 1 4 6

Cuadro 10: Numero de configuraciones de tarjetas respetadas por cada simetrıa del cuadrado

Ejemplo Se fabrican collares con 13 cuentas blancas y 3 negras cada uno. ¿Cuantos collares diferentes puedenhacerse?

Podemos pensar en las 16 cuentas ubicadas en los vertices de un polıgono regular de 16 lados. Una configuracionqueda definida por las posiciones de las 3 cuentas negras, de las que hay

(163

)= 560. Dos configuraciones son

equivalentes si se obtienen rotando el collar o dandolo vuelta (una reflexion corresponde a darlo vuelta). Este es elgrupo D32, con 32 simetrıas en total:

La identidad tiene las 560 configuraciones como fijas

Hay 15 rotaciones en angulos 2πn/16, para 1 ≤ n ≤ 15, ninguna de las cuales tiene configuraciones fijas

Hay 8 reflexiones en ejes que unen los puntos medios de lados opuestos, ninguna de ellas tiene configuracionesfijas

Hay 8 reflexiones en ejes que unen vertices opuestos. Las posiciones de las 3 cuentas negras se mantienen solosi una de ellas esta en uno de los vertices por los que pasa el eje, y las otras dos estan dispuestas en formasimetrica. Hay 7 posiciones para una de las cuentas negras (y su contraparte). Esto hace un total de 2×7 = 14configuraciones fijas.

Resumiendo, el numero de collares diferentes es:

1

32(560 + 8× 14) = 21

Obtener este resultado listando las configuraciones y verificado serıa bastante engorroso.

9.6. Indice de ciclos

Definimos el tipo de una permutacion como [1α1 2α2 . . . nαn ] si tiene αi ciclos de largo i para 1 ≤ i ≤ n. Unaexpresion afın asociada a la permutacion γ es:

ζγ(x1, x2, . . . , xn) = xα11 xα2

2 . . . xαnn

Para un grupo G de permutaciones definimos el ındice de ciclos:

ζG(x1, x2, . . . , xn) =1

|G|∑

γ∈Gζγ(x1, x2, . . . , xn)

103

Page 104: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Esto es esencialmente una funcion generatriz en la que xi marca los ciclos de largo i. Esta funcion tiene muchosusos, algunos los veremos mas adelante.

Interesa entonces calcular ζG para diversos grupos de manera de tenerlos a mano mas adelante. Por ejemplo,para las simetrıas del cuadrado como vistas antes:

ζD8(x1, x2, x3, x4) =1

8(x4

1 + 2x21x2 + 3x2

2 + 2x4)

9.7. Numero de coloreos distinguibles

Supongamos un grupo G de permutaciones de un conjunto X de n elementos, y a cada elemento se le puedeasignar uno de r colores. Si el conjunto de colores es K, un coloreo es una funcion ω : X → K. El numero total decoloreos es rn, a este conjunto le llamaremos Ω. Ahora bien, cada permutacion g en G induce una permutacion gde Ω: Para ω definimos g(ω) como el coloreo en el cual el color asignado a x es el que ω asigna a g(x), vale decir:

(g(ω))(x) = ωg−1(x)

La inversa aparece porque al aplicar la permutacion al coloreo estamos asignando a x el color que tiene su predecesorvıa g. La figura 59 muestra un ejemplo. La funcion que lleva g a g es una representacion del grupo G en un grupo

g

ω g(ω)

Figura 59: Efecto de la permutacion g sobre un coloreo ω

G de permutaciones de Ω. Dos coloreos son indistinguibles si uno puede transformarse en el otro mediante unapermutacion g; vale decir, si ambas pertenecen a la misma orbita de G en Ω. El numero de coloreos distinguibles(inequivalentes) entonces es el numero de orbitas de G. Antes de aplicar nuestro teorema para el numero de orbitas

debemos relacionar G y G. Supongamos que para dos permutaciones g1 y g2 tenemos g1 = g2, de forma que

(g1(ω))(x) = (g2(ω))(x)

y en consecuencia para todo ω ∈ Ω y todo x ∈ X debe ser

ω(g−11 (x)) = ω(g−1

2 (x))

Como esto es valido para todo ω, en particular vale para el coloreo que asigna el color especificado a g−11 (x) y otro

color a todos los demas miembros de X. En este caso particular la ecuacion nos dice que g−11 (x) = g−1

2 (x), con lo

que g1 = g2, y el grupo de permutaciones G de X y el grupo de permutaciones G de los coloreos Ω son isomorfos.Otra manera de entender esta situacion es considerar un coloreo que le asigna un color diferente a cada elemento

de X. Una permutacion de ese coloreo no es mas que una permutacion de nuevos “nombres” de los elementos deX, con lo que esta claro que ambos grupos de permutaciones estan muy relacionados.

Teorema 9.10. Si G es un grupo de permutaciones de X, y ζG(x1, . . . , xn) es su ındice de ciclos, el numero decoloreos inequivalentes de X con r colores es ζG(r, . . . , r), donde un coloreo de X es una funcion ω : X → K.

Demostracion. Interesa el numero de orbitas del grupo G operando sobre coloreos. Hemos demostrado que larepresentacion g → g es una biyeccion, de forma que |G| = |G|. Ademas, por el teorema de Burnside el numero de

orbitas de G en Ω es

1

|G|∑

g∈G

|F (g)| = 1

|G|∑

g∈G|F (g)|

104

Page 105: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

donde F (g) es el conjunto de coloreos fijados por g. Supongamos ahora que ω es un coloreo fijado por g, de formaque g(ω) = ω, y sea (x y z . . .) un ciclo cualquiera de g. Tenemos:

ω(x) = ω(g(y)) = (g(ω))(y) = ω(y)

de forma que ω asigna el mismo color a x e y. Aplicando el mismo razonamiento, este es el color asignado a todo elciclo. Esto ocurre con cada uno de los ciclos de g. Si g tiene k ciclos en total, el numero de coloreos posibles es rk,ya que podemos asignar uno de los r colores a cada uno de los k ciclos. De esta forma, si g tiene αi ciclos de largoi para (1 ≤ i ≤ n), tenemos α1 + α2 + . . .+ αn = k y

|F (g)| = rk = rα1+α2+...+αn = ζg(r, r, . . . , r)

y el resultado sigue de sumar esto.

Ejemplo Coloreos posibles.Consideremos el subgrupo de D8 formado unicamente por la reflexion en la vertical.

1 2

3 4

Esta es la permutacion γ = (1 2)(3 4), y a cada uno de sus ciclos se le puede asignar un color en forma independiente.Hay 2 ciclos, con 2 colores son 22 = 4 opciones, y F (γ) = 4 como se aprecia en la figura.

Con esto, para obtener el numero de coloreos inequivalentes basta calcular el ındice de ciclos del grupo. Porejemplo, el numero de coloreos de los vertices de un cuadrado con r colores se obtiene:

ζD8(x1, x2, x3, x4) =1

8(x4

1 + 2x21x2 + 3x2

2 + 2x4)

ζD8(r, r, r, r) =1

8(r4 + 2r3 + 3r2 + 2r)

Ejemplo Una tribu de hippies artesanos fabrica pulseras formadas alternadamente por tres arcos y tres cuentas,y tienen arcos y cuentas de cinco colores. Para efectos de simetrıa pueden considerarse las pulseras como triangulosequilateros en los cuales se colorean los vertices y las aristas. Por razones que solo ellos entienden las pulseras debensiempre usar tres colores. Interesa saber cuantas pulseras diferentes pueden crear.

Aca estamos frente a una aplicacion tıpica del principio de inclusion y exclusion, el teorema anterior nos da elnumero de coloreos con a lo mas el numero de colores dado. Los elementos del grupo son:

Operacion Terminoid x6

1

2 rotaciones (en 1/3 y 2/3) 2x23

3 reflexiones en cada eje 3x21x

22

El grupo es de orden 6, ası que:

ζG(x1, x2, x3, x4, x5, x6) =1

6

(x6

1 + 3x21x

22 + 2x2

3

)

Luego aplicamos nuestra receta del principio de inclusion y exclusion.

1. El universo Ω es el conjunto de coloreos con 5 colores. Un coloreo tiene la propiedad i si el color i noesta presente, y nos interesa el numero de los que tienen exactamente 2 propiedades (estan presentes los otros3 colores).

105

Page 106: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

2. Aca N(⊇ S) es el numero de coloreos que no consideran los colores en S, vale decir son coloreos tomando alo mas 5− |S| colores:

N(⊇ S) = ζG(5− |S|, 5− |S|, 5− |S|, 5− |S|, 5− |S|, 5− |S|)

3. Como los r colores a excluir se eligen de entre los 5, y en el numero de posibilidades solo influye el numero decolores restantes con los que se colorea:

Nr =

(5

r

)ζG(5− r, 5− r, 5− r, 5− r, 5− r, 5− r)

En este caso tenemos:

N0 =

(5

0

)ζG(5, 5, 5, 5, 5, 5) = 2 925

N1 =

(5

1

)ζG(4, 4, 4, 4, 4, 4) = 4 080

N2 =

(5

2

)ζG(3, 3, 3, 3, 3, 3) = 1 650

N3 =

(5

3

)ζG(2, 2, 2, 2, 2, 2) = 200

N4 =

(5

2

)ζG(1, 1, 1, 1, 1, 1) = 5

N5 =

(5

5

)ζG(0, 0, 0, 0, 0, 0) = 0

La funcion generatriz es

N(z) = 5z4 + 200z3 + 1 650z2 + 4 080z + 2 925

4. Nos interesa e2, que se obtiene de la funcion generatriz de los et, que sabemos es E(z) = N(z − 1):

E(z) = 5z4 + 180z3 + 1 080z2 + 1 360z + 300

Se pueden formar 1 080 brazaletes de tres colores.

Pero podemos hacer algo mas. Si hay r colores, podemos definir variables zi para 1 ≤ i ≤ r representando losdistintos colores. Entonces la funcion generatriz de los numeros de nodos de cada color que se pueden asignar a unciclo de largo k es simplemente:

zk1 + zk2 + . . . zkr

ya que serıan k nodos, todos del mismo color. Si hay αk ciclos de largo k, entonces corresponde el factor:

(zk1 + zk2 + . . . zkr )αk

La anterior discusion demuestra el siguiente resultado.

Teorema 9.11 (Enumeracion de Polya). Sea G un grupo de permutaciones de X, y ζG(x1, . . . , xn) su ındicede ciclos. La funcion generatriz del numero de coloreos inequivalentes de X en que hay ni nodos de color i para1 ≤ i ≤ r, llamemosle un1,n2,...,nr

, es:

U(z1, z2, . . . , zr) =∑

n1,n2,...,nr

un1,n2,...,nrzn11 zn2

2 . . . znrr

= ζG(z1 + z2 + . . .+ zr, z21 + z2

2 + . . .+ z2r , . . . , z

n1 + zn2 + . . .+ znr )

106

Page 107: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

H

H

H

H

H

H

(a) Benceno

CH3

CH3

H

H

H

H

(b) Xyleno

C H3

Cl

H

H

H

H

(c) Clorotolueno

Figura 60: Algunos compuestos aromaticos

CH3

CH3

H

H

H

H

(a) Orto-xyleno

CH3

CH3

H

H

H

H

(b) Para-xyleno

CH3

CH3

H

HH

H

(c) Meta-xyleno

Figura 61: Los tres isomeros del xyleno

La teorıa de enumeracion de Polya fue desarrollada en parte para aplicacion a la quımica. Algunos ejemplos deformulas quımicas se dan en la figura 60. Este tipo de compuestos, derivados del benceno (figura 60a) son hexagonosque pueden girar en el espacio (el grupo de simetrıa relevante es D12). Hay muchas posibilidades de grupos de atomosque pueden reemplazar los hidrogenos (H), como es radicales metilo (CH3) o atomos de cloro (Cl). Una preguntaobvia entonces es cuantos compuestos distintos pueden crearse con un conjunto de radicales, o cuantos son posiblescon un numero particular de cada uno de un conjunto de radicales dados. Por ejemplo, hay tres isomeros del xyleno,como muestra la figura 61.

Para responder a estas preguntas requerimos el ındice de ciclos del grupo del hexagono, como el mostrado en lafigura 62. Las simetrıas respectivas se listan en la tabla 11. En consecuencia, el ındice de ciclos del grupo es:

ζD12(x1, x2, x3, x4, x5, x6) =1

12(x6

1 + 3x21x

22 + 4x3

2 + 2x23 + 2x6)

Hecho el trabajo duro, calcular cuantos compuestos pueden crearse con hidrogenos (H) y metilos (CH3) es facil:Corresponden a colorear los vertices con dos colores, lo que nos da:

ζD12(2, 2, 2, 2, 2, 2) =1

12(26 + 3 · 22 · 22 + 4 · 23 + 2 · 2)

= 13

Para comprobar cuantos isomeros del xyleno hay, consideramos coloreo de los vertices del hexagono con doscolores (hidrogenos y metilos), y de los ultimos hay exactamente dos. Si consideramos que z marca metilo, lafuncion generatriz que corresponde a un ciclo de largo l es simplemente 1 + zl (hay 1 forma de tener 0 metilos enel, lo que aporta 1 · z0, y una forma de tener l metilos, lo que aporta 1 · zl), y al substituir xl = 1 + zl obtenemos:

ζD12(1 + z, 1 + z2, 1 + z3, 1 + z4, 1 + z5, 1 + z6) = z6 + z5 + 3z4 + 3z3 + 3z2 + z + 1

Esto confirma que hay tres isomeros en su coeficiente de z2.Si nos interesa determinar cuantos compuestos distintos tienen 2 radicales cloro (Cl), 2 metilos (CH3) y 2

hidrogenos (H), usamos las variables u, v y w para estas tres opciones, y el valor buscado es simplemente:

[u2v2w2]ζD6(u+ v + w, u2 + v2 + w2, u3 + v3 + w3, u4 + v4 + w4, u5 + v5 + w5, u6 + v6 + w6) = 11

Por otro lado, un atomo de carbono puede unirse con cuatro otros atomos, dispuestos en los vertices de untetraedro. Las operaciones de simetrıa de un tetraedro en el espacio (solo rotaciones, no reflexiones) son giros

107

Page 108: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

1

2

3

4

5

6

Figura 62: Hexagono

Operacion Ciclos TipoIdentidad (1)(2)(3)(4)(5)(6) [16]Rotacion 1/6 (1 2 3 4 5 6) [6]Rotacion 2/6 (1 3 5)(2 4 6) [32]Rotacion 3/6 (1 4)(2 5)(3 6) [23]Rotacion 4/6 (1 5 3)(2 6 4) [32]Rotacion 5/6 (1 6 5 4 3 2) [6]Reflexion en 1 4 (1)(2 6)(3 5)(4) [12 22]Reflexion en 2 5 (1 3)(2)(4 6)(5) [12 22]Reflexion en 3 6 (1 5)(2 4)(3)(6) [12 22]Reflexion entre 1 2 y 4 5 (1 2)(3 6)(4 5) [23]Reflexion entre 2 3 y 5 6 (1 4)(2 3)(5 6) [23]Reflexion entre 1 6 y 3 4 (1 6)(2 5)(3 4) [23]

Cuadro 11: Grupo de simetrıas del hexagono

alrededor de un eje que pasa por un vertice y el centroide de la cara opuesta (ver la figura 63a) y giros alrededorde un eje que pasa por el punto medio de una arista y el punto medio de la arista opuesta (ver la figura 63b).Las simetrıas son de los tipos dados en la tabla 12 (resulta que esto no es mas que el grupo alternante A4), y en

Operacion Ciclos Tipo NºIdentidad (1)(2)(3)(4) [14] 1Giro en vertice 4 en 1/3 (1 2 3)(4) [1 31] 4Giro en vertice 4 en 2/3 (1 3 2)(4) [1 31] 4Giro en arista 1 2 en 1/2 (1 2)(3 4) [22] 3

Cuadro 12: Rotaciones de un tetraedro

consecuencia el ındice de ciclos del grupo es

ζA4(x1, x2, x3, x4) =1

12(x4

1 + 8x1x3 + 3x22)

Ası, si tenemos dos radicales diferentes hay ζA4(2, 2, 2, 2) = 5 compuestos diferentes posibles, y ζA4(4, 4, 4, 4) = 36si hay 4. Si hay dos tipos de radicales, la funcion generatriz es:

ζA4(u+ v, u2 + v2, u3 + v3, u4 + v4) = u4 + u3v + u2v2 + uv3 + v4

Vale decir, hay un solo compuesto de cada una de las composiciones posibles.Otro ejemplo lo ponen arboles binarios Considere arboles binarios completos de altura 2, como en la figura 64,

que se consideran iguales al intercambiar izquierda y derecha (como 3 con 4; pero tambien 2 con 5, que lleva consigointercambiar 3 con 6 y 4 con 7). Interesa determinar cuantos arboles hay con 3 nodos azules, si los nodos se pintande azul rojo y amarillo.

Antes de entrar en el tema, es util hacerse una idea del grupo que buscamos. Para determinar el orden del grupo,

108

Page 109: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

1

2

3 4

(a) Eje a traves de un vertice

1

2

3 4

(b) Eje en el punto medio de aristas

Figura 63: Operaciones de simetrıa (rotaciones) de un tetraedro

3 4

2

6 7

5

1

Figura 64: Un arbol binario completo

tomamos algun elemento y analizamos su orbita y estabilizador. Tomando 3, su orbita es G3 = 3, 4, 6, 7, mientrassu estabilizador es G3 = id, (6 7), con lo que |G| = |G3| · |G3| = 4 · 2 = 8. Los elementos del grupo los da latabla 13, el ındice de ciclos del grupo resulta ser

ζG(x1, x2, x3, x4, x5, x6, x7) =1

8

(x7

1 + 2x51x2 + x3

1x22 + 2x1x

32 + x1x2x4

)

La manera mas simple de obtener el resultado buscado es reconocer que la funcion generatriz para el numero demaneras de formar orbitas de l nodos donde u marca el numero de nodos azules es simplemente 2 + ul (dos formasde ningun azul, vale decir solo rojos o solo amarillos; y una forma de l azules), y aplicando el teorema de Polya nosinteresa:

[u3]ζG(2 + u, 2 + u2, 2 + u3,2 + u4, 2 + u5, 2 + u6, 2 + u7)

= [u3](u7 + 6u6 + 25u5 + 68u4 + 120u3 + 146u2 + 105u+ 42

)

= 120

Obtener esto por prueba y error serıa impensable. Nuevamente agradecemos el apoyo algebraico de xmaxima.

Referencias

[1] Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. Introduction to Algorithms.MIT Press, third edition, 2009.

109

Page 110: Fundamentos de Inform atica II ILI-153Esta expansi on es f acil de demostrar por el teorema de Maclaurin. Si es un entero positivo, la serie se reduce a un polinomio y la relaci on

Operacion Terminoid x7

1

(3 4) x51x2

(6 7) x51x2

(3 4)(6 7) x31x

22

(2 5)(3 6)(4 7) x1x32

(2 5)(3 7)(4 6) x1x32

(2 5)(3 6 4 7) x1x2x4

(2 5)(3 7 4 6) x1x2x4

Cuadro 13: El grupo de operaciones del arbol

[2] Robert Frucht. Herstellung von Graphen mit vorgegebener abstrakter Gruppe. Compositio Mathematica,6:239–250, 1939.

[3] Ronald L. Graham, Donald E. Knuth, and Oren Patashnik. Concrete Mathematics: A Foundation for ComputerScience. Addison-Wesley Professional, second edition, 1994.

[4] Circuit diagram of a 3rd order low pass filter using passive components (2 resistors, 2 capacitors, 1 inductor).http://commons.wikimedia.org/wiki/File:LowPass3poleCauer.png, July 2006.

[5] G. Malkin. RIP version 2. IETF RFC 4822, November 1998.

[6] Maxima, a computer algebra system. http://maxima.sourceforge.net, 2009. Version 5.18.1.

[7] John O’Connor and Edmund F. Robertson. Konigsberg bridges. http://www-history.mcs.st-andrews.ac.uk/Extras/Konigsberg.html, March 2000.

[8] Victor Shoup. A Computational Introduction to Number Theory and Algebra. Cambridge University Press,second edition, 2009.

[9] Steven S. Skiena. The Algorithm Design Manual. Springer, second edition, 2008.

[10] IEEE Computer Society. IEEE Standard for Local and metropolitan area networks: Media access control(MAC) bridges. IEEE Std 802.1d-2004, 2004.

[11] Andrew S. Tannenbaum. Computer Networks. Prentice Hall PTR, fourth edition, 2003.

[12] Herbert S. Wilf. Generatingfunctionology. A. K. Peters, Ltd., third edition, 2006.

110