Académique Documents
Professionnel Documents
Culture Documents
Resúmenes de Teoría
7 de junio de 2004
II
Índice general
1. Combinatoria 1
1.1. Principios de la suma y el producto . . . . . . . . . . . . . . . . . . . 1
1.2. Muestras: permutaciones y combinaciones . . . . . . . . . . . . . . . 2
1.3. Teorema del binomio y coeficientes binomiales . . . . . . . . . . . . 5
1.4. Muestras con reemplazo . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5. Permutaciones con elementos identificados . . . . . . . . . . . . . . 12
1.6. Generación ordenada de muestras . . . . . . . . . . . . . . . . . . . 13
1.6.1. Permutaciones en orden lexicográfico . . . . . . . . . . . . . 14
1.6.2. Combinaciones en orden lexicográfico . . . . . . . . . . . . . 15
1.7. El principio de inclusión-exclusión . . . . . . . . . . . . . . . . . . . 15
2. Grafos 19
2.1. Conjuntos y relaciones . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.1. Producto cartesiano . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.2. Relaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.1.3. Propiedades de las relaciones . . . . . . . . . . . . . . . . . . 20
2.1.4. Clausura transitiva . . . . . . . . . . . . . . . . . . . . . . . 22
2.2. Grafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.1. Grafo dirigido y no dirigido . . . . . . . . . . . . . . . . . . 23
2.2.2. Incidencia y grado . . . . . . . . . . . . . . . . . . . . . . . 24
2.2.3. Representación como estructuras de datos . . . . . . . . . . . 25
2.2.4. Caminos y ciclos . . . . . . . . . . . . . . . . . . . . . . . . 26
2.3. Relaciones y grafos . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.4. Accesibilidad y conexión . . . . . . . . . . . . . . . . . . . . . . . . 28
2.4.1. Matrices de accesibilidad . . . . . . . . . . . . . . . . . . . . 30
2.5. Algunos grafos especiales . . . . . . . . . . . . . . . . . . . . . . . . 32
2.5.1. Grafos completos . . . . . . . . . . . . . . . . . . . . . . . . 32
2.5.2. Torneos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.5.3. Grafos bipartitos . . . . . . . . . . . . . . . . . . . . . . . . 34
2.5.4. Caminos y ciclos . . . . . . . . . . . . . . . . . . . . . . . . 34
2.5.5. Grafos cúbicos Q n . . . . . . . . . . . . . . . . . . . . . . . 34
2.6. Arboles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.6.1. Arboles enraizados . . . . . . . . . . . . . . . . . . . . . . . 38
2.6.2. Arboles binarios . . . . . . . . . . . . . . . . . . . . . . . . 40
2.7. Recorridos de grafos . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.7.1. Recorridos de árboles binarios . . . . . . . . . . . . . . . . . 41
2.7.2. Recorridos eulerianos . . . . . . . . . . . . . . . . . . . . . . 42
2.7.3. Caminos hamiltonianos . . . . . . . . . . . . . . . . . . . . . 47
III
2.7.4. Recorridos en anchura y profundidad . . . . . . . . . . . . . 49
2.7.5. Caminos mínimos, MST y demás . . . . . . . . . . . . . . . 52
2.8. Planaridad y coloreado . . . . . . . . . . . . . . . . . . . . . . . . . 53
IV
Capítulo 1
Combinatoria
Enunciados de esta forma, los dos principios tienen una apariencia sobrecogedora.
Sin embargo, expresan ideas muy simples que todos poseemos asimiladas de forma in-
consciente en nuestra intuición. Así pues, enunciaremos los mismos en forma intuitiva.
1
Teorema 3. (Principio de la suma, forma intuitiva) Si una elección puede realizarse
por varios caminos alternativos, excluyentes entre sí, el número de resultados posibles
es igual a la suma de las alternativas que cada uno de los caminos nos ofrece.
Teorema 4. (Principio del producto, forma intuitiva) Si una elección queda determina-
da por varias elecciones parciales independientes entre sí (es decir, cada una de ellas
puede realizarse sin afectar al resultado de las otras), el número de resultados posibles
es el producto de los números de posibilidades que ofrece cada elección parcial.
Una aplicación de ambos principios la encontramos en el siguiente
Ejemplo 1. Calcular cuántas palabras de hasta cuatro letras existen, suponiendo que
el alfabeto tiene 26 símbolos.
Para empezar, podemos construir palabras de uno, dos, tres y cuatro símbolos. Es
evidente que el número total de palabras será la suma total del número de palabras de
una letra, de dos, de tres y de cuatro letras. Esta es una simple aplicación del principio
de la suma:
P = P1 + P2 + P3 + P4
Calculamos cada cantidad por separado. Es evidente que hay 26 palabras de una
letra. Para construir una palabra de dos letras, tenemos que escoger la primera y la
segunda: ambos procesos son independientes, y cada uno ofrece 26 posibilidades. Por
lo tanto, el principio del producto nos dice que existen 26 × 26 = 262 palabras de dos
letras. Generalizando, el número de palabras de i letras será
Pi = 26
| × 26
{z · · · 26}
i veces
por lo que
P = 26 + 262 + 263 + 264 = 475254
2
es un DVD con materiales dudosos, pero sin duda estimulantes; el tercer premiado
recibe como castigo el último CD de David Bisbal. En este caso, el resultado del sorteo
consiste en la selección de tres alumnos entre los 50 dados. En este caso, n = 50 y
r = 3. Ahora bien, en este caso que los premiados sean Juan, David y Ana no es lo
mismo que tomar a David, Ana y Juan; en este último, Juan será castigado con el CD
fatal. Así, el orden de la muestra es relevante.
Definición 1. Sea X un conjunto finito de n elementos. Una selección de r elementos
distintos de X se denomina una r -combinación de X . El número de r -combinaciones
de un conjunto de n elementos se denota por C(n, r ).
En aplicación del ejemplo anterior, el número de posibles resultados de la lotería
primitiva es C(49, 6). Pronto aprenderemos a calcular el valor de este número. Para el
ejemplo de la rifa que incluye el fatídico CD, tenemos otra
Definición 2. Sea X un conjunto finito de n elementos. Una secuencia ordenada de r
elementos distintos {x 1 , x 2 , . . . , xr } ⊂ X se denomina una r -permutación de X . El
número de r -permutaciones de un conjunto de n elementos se denota por P(n, r ).
Si, en particular, r = n, hablamos simplemente de las permutaciones de los n
elementos dados.
En el ejemplo de la rifa, los posibles resultados son las 3-permutaciones de los 50
alumnos, y hay P(50, 3) de ellas.
¿Cuál es el valor de estos misteriosos C(n, r ), P(n, r ) para números n y r concre-
tos? La respuesta la dan los teoremas que siguen:
Teorema 5.
P(n, r ) = n(n − 1)(n − 2) · · · (n − r + 1) (1.1)
| {z }
r factores
n! = n (n − 1)! n≥1
Una ecuación como ésta, que define el valor de una función en términos de valores de
la misma para argumentos más pequeños, se denomina una relación de recurrencia;
estudiaremos algunas muy importantes en el tema 3. En particular, 1! = 1 · 0!, y de esta
3
n n!
0 1
1 1
2 2
3 6
4 24
5 120
6 720
7 5040
8 40320
9 362880
10 3628800
11 39916800
12 479001600
ecuación podemos deducir que el factorial de cero es la unidad, y no cero, como cabría
concebir intuitivamente.
Con el uso de factoriales, podemos escribir la fórmula 1.1 en la forma más com-
pacta
Teorema 6.
P(n, r )
C(n, r ) = (1.2)
r!
Demostración. Una r -permutación de n objetos queda determinada por dos cosas:
Está claro que la elección de los objetos puede hacerse de C(n, r ) maneras; cada elec-
ción determina r ! órdenes posibles, y cada una de estas selecciones de r objetos y un
orden particular de ellos determina una r -permutación y solamente una. Por lo tanto,
el número de r -permutaciones es, aplicando el principio del producto
4
El número C(n, r ) es tan importante que recibe una denominación especial; es el
número combinatorio o coeficiente binomial
µ ¶
n n(n − 1) · · · (n − r + 1)
= (1.4)
r r!
49 · 48 · 47 · 46 · 45 · 44
C(49, 6) = = 13983816
6!
es decir, casi 14 millones de combinaciones. Jugando una apuesta simple, a 52 sorteos
por año, el apostante medio emplea más de 260000 años en conseguir un boleto con
seis aciertos. Naturalmente, la vida del apostante medio es mucho más corta.
En cuanto a la rifa, el número de posibles tríos de seleccionados es de
P(50, 3) = 50 · 49 · 48 = 117600
Los casos particulares de esta fórmula para n = 0, 1, 2, 3, 4 son bien conocidos del
álgebra elemental (o deberían serlo):
(x + y)0 = 1
1
(x + y) = x+y
(x + y)2 = x 2 + 2x y + y 2
(x + y)3 = x 3 + 3x 2 y + 3x y 2 + y 3
(x + y)4 = x 4 + 4x 3 y + 6x 2 y 3 + 4x 1 y 3 + y 4
De manera general, la fórmula 1.5 nos dice que una potencia de un binomio se expande
en una suma de términos que se inician con x n y van conteniendo potencias decrecien-
tes del primer sumando y crecientes del segundoi (x e y en nuestro ejemplo). Dichos
términos van afectados de coeficientes que resultan ser números combinatorios: de ahí
5
el nombre de coeficientes binomiales que les dimos en la sección anterior. Los desa-
rrollos anteriores (cuadrado de un binomio, cubo y cuarta potencia) nos permiten ver
cuáles son los valores de los primeros coeficientes binomiales.
Por definición µ ¶
n n(n − 1) · · · (n − r + 1)
=
r r!
¡ ¢
y, en general, esta es la fórmula que recomendamos emplear para el cálculo de nr . Es
válida para cualquier r entero y cualquier n complejo, aunque nosotros nos restringire-
mos al caso 0 ≤ r ≤ n, donde n será un número entero. De la definición de arriba y de
la fórmula P(n, r ) = n!/(n − r )! se obtiene inmediatamente la expresión
µ ¶
n n!
=
r r !(n − r )!
que es muy patente en los desarrollos del cuadrado, cubo y cuarta potencia de un bi-
nomio: los coeficientes son simétricos. Empiezan valiendo 1, y luego crecen hasta un
máximo en el centro del desarrollo, para decrecer simétricamente hacia el último tér-
mino.
Para valores bajos del índice inferior tenemos
µ ¶ µ ¶
n n
=1 y =n
0 1
6
µ ¶ µ ¶ µ ¶ µ ¶ µ ¶ µ ¶ µ ¶ µ ¶ µ ¶ µ ¶ µ ¶
n n n n n n n n n n n
n
0 1 2 3 4 5 6 7 8 9 10
0 1
1 1 1
2 1 2 1
3 1 3 3 1
4 1 4 6 4 1
5 1 5 10 10 5 1
6 1 6 15 20 15 6 1
7 1 7 21 35 35 21 7 1
8 1 8 28 56 70 56 28 8 1
9 1 9 36 84 126 126 84 36 9 1
10 1 10 45 120 210 252 210 120 45 10 1
7
o, si lo queremos poner de otra manera
µ ¶ µ ¶ µ ¶ µ ¶ µ ¶ µ ¶
n n n n n n
+ + + ··· = + + + ...
0 2 4 1 3 5
es decir, en una fila del triángulo de Pascal, los coeficientes de índice inferior par suman
lo mismo que los de índice inferior impar. De lo que podemos deducir, a partir de la
fórmula 1.7, que
X µn ¶ X µn ¶
2n−1 = =
k k
k impar k par
Los coeficientes binomiales satisfacen identidades sin fin, y las que acabamos de
ver son solamente algunas de ellas. Podrían llenarse páginas y páginas de identida-
des interesantes en que intervienen. Sin embargo, nuestro interés fundamental no es
la manipulación de estos coeficientes, sino el cálculo de combinaciones, de forma que
lo dejaremos en este punto. Solamente citaremos, para cerrar este apartado, algunas
propiedades interesantes que pueden demostrarse por inducción o mediante un uso in-
genioso de la fórmula del binomio:
µ ¶µ ¶ µ ¶µ ¶ µ ¶µ ¶ µ ¶µ ¶
n m n m n m n m
+ + ... + +
k 0 k−1 1 1 k−1 0 k
µ ¶
n+m
= (Convolución de Vandermonde)
k
µ ¶ µ ¶ µ ¶ µ ¶ µ ¶
n+0 n+1 n+2 n +r n +r +1
+ + + =
0 1 2 r r
µ ¶ µ ¶ µ ¶ µ ¶ µ ¶
n+0 n+1 n+2 n +r n +r +1
+ + + =
n n n n r
26 · 26 · 26 · 26 · 26 · 26 = 266
8
de r elementos seleccionados a partir de un conjunto de n dados, teniendo en cuenta
ahora que un elemento puede utilizarse varias veces. El número de muestras de este
tipo se calcula de forma muy simple
Teorema 8. El número de r -permutaciones con reemplazo de un conjunto de n ele-
mentos es
PR(n, r ) = n r
Demostración. Es una consecuencia directa de la regla del producto y de que cada
miembro de la permutación puede escogerse de n formas distintas.
Ejemplo 3. En una urna tenemos una cantidad virtualmente ilimitada de bolas rojas,
blancas y negras. Si extraigo cinco bolas, ¿cuántos resultados son posibles?
Este problema es bastante más complicado. La “cantidad ilimitada” de bolas es un
dato que nos permite suponer que hay más de cinco bolas de cada color, de forma que
la extracción de cinco bolas rojas, o cinco negras, o cinco blancas, sea un resultado
posible. ¿Cuántas muestras distintas pueden salir?
Los métodos vistos hasta ahora no parecen aplicables de forma directa para encon-
trar esto. Vamos a enumerar todas las posibilidades:
BBBBB BBBBN BBBBR
BBBN N BBBN R BBBRR
BBN N N BBN N R BBN RR
BBRRR BN N N N BN N N R
BN N RR BN RRR BRRRR
NNNNN NNNNR N N N RR
N N RRR N RRRR RRRRR
Está claro que el resultado N N N R R es el mismo que N R N R N ; no nos importa
el orden en que las bolas salen, sino cuántas de cada color. Este tipo de muestras, en
que no nos importa el orden de los objetos escogidos y éstos se extraen de un con-
junto dado, pudiendo escogerse el mismo elemento repetidas veces, se denominan r -
combinaciones con reemplazo del conjunto de n elementos dado. En este ejemplo,
n = 3 y r = 5.
Una de estas combinaciones con reemplazo queda determinada por el número de
bolas rojas x R , bolas blancas x B , y bolas negras, x N , que constituyen la muestra. La
restricción es que las tres cantidades han de sumar cinco:
xR + xB + xN = 5 (1.8)
El número de muestras es el número de soluciones de la ecuación1.8 en números
enteros no negativos. Esto nos conduce aún a otra formulación del problema. Podría-
mos considerar que tenemos tres amigos, Rojo, Blanco y Negro, que se reparten entre
sí cinco monedas. ¿Cuántos repartos posibles hay?
En cualquier caso, podemos formular estos tres problemas como uno de combina-
ciones (muestras desordenadas), si permitimos que un objeto introducido en la muestra
pueda volver a seleccionarse. En efecto:
bolas Podemos imaginar que el saco contiene solamente tres bolas: una roja, una negra
y una blanca. Extraemos una bola, anotamos su color y la devolvemos al saco.
Volvemos a realizar la misma operación hasta completar cinco extracciones con
reemplazo. El resultado, prescindiendo del orden, es una 5-combinación de tres
elementos en que se permite el reemplazo de los objetos a muestrear
9
reparto de monedas Imaginemos que hay que repartir cinco monedas (idénticas) en-
tre los tres amigos Rojo, Blanco y Negro. Cogemos una moneda y escogemos
a cuál de los tres individuos se la vamos a dar, para lo cual podemos recurrir al
consabido bombo con tres bolas. Cada moneda implica escoger a uno de los tres
amigos, pudiendo resultar cualquiera de ellos elegido más de una vez.
ecuacion Está claro que el problema es idéntico a repartir cinco unidades entre las tres
variables.
Aunque no sepamos cómo calcular cuántas soluciones totales existen (hemos lle-
gado a las 21 enumeradas arriba por pura fuerza bruta), está claro que la estructura de
los tres problemas es idéntica. ¿Cómo encontrar el número de posibilidades en el caso
más general?
La respuesta nos la da el siguiente
10
0
Q1
Q2
Q3
Q4
Q5
Abad
Abascal
Álvarez
Bastardo
Cobas
Cazorla
Dehesa
González
Guzmán
Herrero
Lebrel
Zapatero
Zorrilla
A
B
C
D
Ea) 1 2 3 4 5 6 7 8 r
F
G
H
Ib) 1 2 3 4 5 6 7 r −1 r
J x1
3
+
∗c) 1 2 3 4 5 6 r −2 r −1 r
5 x1 x2
+
6
12d) 1 2 3 4 5 r −3 r −2 r −1 r
χ (K 5 ) = 5
x1 x2 x3
χ (K 3,3 ) = 2
χ (C7 ) = 3
χ (esto) = 4
χ (esto otro) = 4
x1 ≥ 6
x2 ≥ 8
x1 ≥ 6, x 2 ≥ 8e) 1 2 3 4 5 r −3 r −2 r −1 r
x1 < 6, x 2 < 8 x1 x2 x3 xn−2
A2
A1
A − A1 − A2f) 1 2 3 4 5 r −3 r −2 r −1 r
A12 x1 x2 x3 xn−2 xn−1 xn
11
1.5. Permutaciones con elementos identificados
Consideremos la palabra “ABRACADABRA”. Si reordenamos sus letras, podemos
obtener diversos conjuros, algunos de ellos no muy pronunciables:
AAARCRAADBB
AAARBDBCRAA
RDAARBABAAC
RDARABAACBA
¿Cuántos de ellos son posibles?
Si las letras de la palabra original fuesen todas diferentes, la respuesta sería muy
sencilla: P(11) = 11!. Pero al existir letras repetidas (cinco A’s, dos B’s, dos R’s, una
C y una D), la respuesta resulta ser mucho menor.
En efecto, si numeramos las letras originales con subíndices
A1 B2 R3 A4 C5 A6 D7 A8 B9 R10 A11
podemos observar que, de las 11! permutaciones existentes entre estos 11 símbolos
distintos, algunas resultan en idéntica palabra al identificar letras iguales:
A11 B2 R10 A8 C5 A4 D7 A6 B9 R3 A1 , A1 B9 R3 A4 C5 A8 D7 A6 B2 R10 A11
y muchas otras que siguen produciendo la palabra “ABRACADABRA”. ¿Cuántas en
total? Podemos permutar entre sí, sin que la palabra cambie su identidad, todas las
letras idénticas. Por lo tanto, en este ejemplo, “ABRACADABRA” puede escribirse
de 5!2!2!1!1! = 480 maneras distintas. Cualquier otra permutación diferente puede
escribirse también de 480 maneras que difieren solamente en la reordenación de letras
indistinguibles.
Generalizando estas observaciones obtenemos el siguiente
Teorema 10. El número de permutaciones de n objetos, de los cuales existen k clases
de objetos diferentes entre sí, cada una con n i miembros iguales, es
µ ¶
n n
=
n1, n2, . . . , nk n1! n2! . . . nk !
Al número anterior se lo denomina coeficiente multinomial de n sobre n 1 , n 2 , . . . , n k .
Además del cálculo del número de permutaciones de un multiconjunto, el coe-
ficiente multinomial aparece en otro problema combinatorio clásico: el reparto de n
objetos distinguibles en k clases distintas, con un número de n i objetos asignado a la
clase i-ésima.
Ejemplo 4. ¿De cuántas formas podemos repartir diez libros diferentes entre Alicia,
Bernardo y Carlos, si a Alicia hay que darle tres libros, a Bernardo cinco y a Carlos
dos?
Empezamos
¡ ¢ por Alicia: tenemos que escoger para ella tres libros, y eso puede ha-
cerse de 103 maneras. Después de esto quedan siete libros, de los que habrá que escoger
¡¢
cinco para Bernardo. Tendremos para ello 75 posibilidades. Finalmente, quedarán dos
¡¢
libros, que son los que habrá que dar a Carlos, cosa que podemos hacer de 22 maneras,
o sea, de una sola forma. En total
µ ¶µ ¶µ ¶ µ ¶
10 7 2 10! 7! 2! 10! 10
= = =
3 5 2 3! 7! 5! 2! 2! 0! 3! 7! 2! 3, 7, 2
12
1.6. Generación ordenada de muestras
En algunas ocasiones resulta conveniente enumerar todas las combinaciones o per-
mutaciones que representan la solución a un problema, y no solamente calcular su
número. Sería bueno disponer de un método que permitiese realizar esta tarea de for-
ma ordenada y sistemática. Así, evitaríamos cometer errores u omisiones. Además,
un procedimiento sistemático puede programarse, relegando al computador la tarea de
producir listas de combinaciones, que es siempre tediosa.
En esta sección estudiaremos dos algoritmos que permiten producir una lista or-
denada de todas las n-permutaciones y las r -combinaciones del conjunto de enteros
X n = {1, 2, 3, . . . , n}. En ambos casos, las muestras se representarán como “palabras”
formadas por los números del conjunto X n . El orden en que vamos a producirlas es su-
ficientemente importante como para merecer una denominación especial: se denomina
orden lexicográfico.
La mejor manera de entender el orden lexicográfico es mediante el ejemplo del dic-
cionario, del cual toma su nombre. Cuando buscamos una palabra en orden alfabético,
entendemos que .abonado"va después que .abeto", puesto que la primera discrepancia
entre ambas palabra ocurre en la tercera posición: en .abonado"hay una letra .o", y en
.abetoüna "e"; de forma que .abeto"debe ir antes, puesto que la "e"precede a la .o"en el
orden alfabético subyacente.
Si no hay ninguna discrepancia, y las palabras difieren simplemente en que una es
más larga que la otra, como entre "mano "manotazo", se clasifica como posterior la
2
palabra más larga. La ordenación del tipo string en la mayoría de los lenguajes de
programación sigue la misma regla.
A la luz de estos ejemplos, podemos definir el orden lexicográfico de de forma
general como sigue.
Definición 3. Sea (X, <) un conjunto ordenado, que denominaremos alfabeto. Sea X ∗
el conjunto formado por todas las palabras construíbles con símbolos de X .
Definimos entre las palabras de X ∗ una relación de orden que denominamos orden
lexicográfico, diciendo que a < b si podemos escribir a = a1 a2 . . . ak , b = b1 b2 . . . bl ,
y se da uno de estos casos:
o bien a es un prefijo de b, es decir,
|a| ≤ |b|
ai = bi para i = 1 . . . |a|
o bien
ai = bi para i = 1 . . . p − 1 < k, l
ap < bp
es decir, la primera discrepancia entre las dos palabras ocurre en la posición
p-ésima, y a tiene en esa posición un carácter anterior al que b posee (anterior
en el orden definido en el alfabeto X ).
La definición puede parecer confusa, pero es más fácil de entender que de enunciar.
Por ejemplo, en el orden habitual de los números enteros, 56874 <569, puesto que las
dos palabras coinciden en las primeras dos posiciones, y la primera discrepancia surge
en la tercera posición; como 56874 tiene allí un 8, y 569 tiene un 9, la primera palabra
va antes en orden lexicográfico. En cambio, 568<56874. Y puede verse fácilmente que
1355655 < 1357 < 13571 < 1423 < 6 < 64 < 9876 < 991111 < 999
13
Consideremos ahora el conjunto X n = {1, 2, . . . , n} con el orden natural. Vamos a
estudiar algoritmos que permitan generar, en el primer caso, las n-permutaciones de X n
en orden lexicográfico, y en el segundo, las r -combinaciones de X n .
¿Cómo podemos generar este listado? Es obvio que la primera permutación en orden
lexicográfico es 123 . . . n, y la última n . . . 321; de forma que será suficiente disponer
de un procedimiento que, dada cualquier permutación,
983126754 (1.9)
983127456 (1.10)
2. Comparamos el pivot con los números del sufijo que le siguen. De los que exce-
den al pivot, escogemos el menor. En nuestro ejemplo sería el 7.
14
1.6.2. Combinaciones en orden lexicográfico
La generación de combinaciones en orden lexicográfico es algo más sencilla. Basta
analizar un ejemplo para inducir de él la técnica general. Consideremos las 3-permuta-
ciones de un conjunto de cinco elementos X 5 , enumeradas, una vez más, por columnas:
123 145
124 234
125 235
134 245
135 345
1. Localizamos el sufijo más largo que termine en n que esté formado por núme-
ros consecutivos (obsérvese que podría ser el sufijo vacío). El elemento que lo
precede se denominará pivot.
Así, 12789 (una 5-combinación de los números del 1 al 9) tiene por sufijo detectado
en el primer paso a 789; el pivot será 2. Incrementamos dicho número y completamos
con los números que siguen al 3 para obtener 13456 como siguiente 5-combinación
en orden lexicográfico. Ahora, el sufijo que seleccionaríamos es vacío (puesto que el
número no acaba en n = 9); por lo tanto, el pivot es 6, y basta incrementarlo para
obtener la siguiente combinación en orden lexicográfico, 13457. Y así sucesivamente:
12789 13458
13456 13459
13456 13467
13457 13468
13458 13469
15
de conjuntos finitos, se verifica que
X X
|A1 ∪ A2 ∪ · · · ∪ An | = |Ai | − |Ai ∩ A j |
1≤i≤n 1≤i< j≤n
X
+ |Ai ∩ A j ∩ Ak | − · · · + (−1)n+1 |A1 ∩ A2 ∩ · · · ∩ An | (1.11)
1≤i< j<k≤n
16
es decir, cada conjunto de permutaciones que fija al menos k elementos contiene (n −
k)! permutaciones posibles.
Aplicando entonces la fórmula 1.11:
|A1 ∪ A2 ∪ · · · ∪ An | =
µ ¶ µ ¶ µ ¶
n n n+1 n
n(n − 1)! − (n − 2)! + (n − 3)! + · · · + (−1) (n − n)!
2 3 n
¡ ¢
puesto que el número de sumandos de cada término de (1.11) es nk . Ahora, la suma
anterior se simplifica considerablemente expandiendo los coeficientes binomiales por
medio de su forma factorial:
n! n! n!
(n − 1)! − (n − 2)! + (n − 3)!−
1!(n − 1)! 2!(n − 2)! 3!(n − 3)!
n! n!
− (n − 4)! + · · · + (−1)n+1 0! =
4!(n − 4)! n!0!
n! n! n! n!
= − + − · · · + (−1)n+1
1! 2! 3! n!
Esta es la expresión del número de permutaciones que fijan algún elemento. Como
queremos calcular exactamente lo contrario, obtenemos
µ ¶
1 1 1 1
|A − (A1 ∪ A2 ∪ · · · ∪ An )| = n! − + − · · · + (−1)n (1.12)
2! 3! 4! n!
Lo sorprendente de este resultado es que el factor entre paréntesis es, con una aproxi-
mación muy elevada, igual a 1/e = 0,3678, siendo e la base de los logaritmos neperia-
nos. La aproximación es tan buena que podemos escribir
n!
Dn ≈
e
siendo la fórmula exacta si redondeamos el cociente al entero más próximo. Por ejem-
plo, para n = 8, obtenemos 8!/e = 14832,899, siendo Dn = 14833. La letra D pro-
viene del término derangements, que es como se denomina en la literatura anglosajona
a este tipo de permutaciones que no dejan fijo ningún elemento.
Ejemplo 6. Encontrar el número de soluciones enteras no negativas de la ecuación
x1 + x 2 + x 3 = 12 (1.13)
de donde
17
F
G
H
I
J
3
+
∗
5
+
6 A
12
χ (K 5 ) = 5
χ (K 3,3 ) = 2 A − A1 − A2
x1 < 6, x 2 < 8
χ (C7 ) = 3
χ (esto) = 4
χ (esto otro) = 4 A1 A2
x1 ≥ 6 x2 ≥ 8
A12
x1 ≥ 6, x 2 ≥ 8
Como
µ ¶ µ ¶
14 14
|A| = CR(3, 12) = = = 91 (1.18)
12 2
µ ¶ µ ¶
8 8
|A1 | = CR(3, 12 − 6) = = = 28 (1.19)
6 2
µ ¶ µ ¶
10 10
|A2 | = CR(3, 12 − 4) = = = 45 (1.20)
8 2
µ ¶
4
|A12 | = CR(3, 12 − 6 − 4) = =6 (1.21)
2
tenemos finalmente
18
Capítulo 2
Grafos
A × B = {(a, b) | a ∈ A, b ∈ B}
19
Siguiendo con el ejemplo, el producto cartesiano A × B contiene todas las parejas
concebibles, no necesariamente las que existen en la realidad. Consideremos solamente
aquellas parejas hombre-mujer que constituyan un matrimonio. El conjunto R de pares
hombre-mujer (h, m) donde h es un hombre, m es una mujer y h está casado con m
es un subconjunto de A × B. Además, la inclusión R ⊂ A × B es casi seguramente
propia, excepto en una sociedad polígama y extremadamente promiscua. En cualquier
caso, R contiene toda la información que necesitamos sobre el matrimonio en general:
nos dice exactamente quién está casado con quién.
2.1.2. Relaciones
Definimos una relación entre dos conjuntos A y B como un subconjunto R del
producto cartesiano A × B; en símbolos, R ⊂ A × B. El hecho de que (a, b) ∈ R se
suele expresar diciendo que a está relacionado con b, y, de forma abreviada, se suele
escribir como a R b. La negación de a R b se escribe a 6 R b
Una relación binaria en un conjunto A se define como un subconjunto R del pro-
ducto A × A. El conjunto en el que se establece R suele denominarse dominio de la
relación.
Algunos ejemplos de relaciones binarias son los siguientes:
La relación “ser progenitor de” en el conjunto de los seres humanos. Esta relación
contendría todas las parejas ( p, h) de personas cuyo segundo elemento fuese hijo
del primero.
La relación “ser hijo de” en el conjunto de los seres humanos. Esta relación con-
tendría todas las parejas (h, p) de personas cuyo segundo elemento fuese padre
del primero. Es evidente que esta relación se obtiene de la anterior invirtiendo el
orden de todos los pares: se dice que son inversas.
La relación “ser divisor de” entre números naturales, que suele denotarse por el
símbolo |. Por ejemplo, 6 | 24, pero 6 6 | 31. La relación inversa de ésta también
tiene un nombre común: “ser múltiplo de”.
20
“x ama a y” (comoquiera que se defina) no es una relación simétrica: un amor no tiene
por qué ser correspondido (aunque puede serlo). Basta con que haya un solo amor no
correspondido para que esta relación deje de ser simétrica.
Tampoco es simétrica la paternidad entre seres humanos: x es padre de y no implica
que y sea padre de x (de hecho, en general, lo impide). Notemos la diferencia entre la
paternidad y el amor: mientras que “x ama a y” no implica el recíproco, no lo impide (y
puede amar a x). En cambio, la paternidad difícilmente puede ser recíproca en ningún
caso: si x es padre de y, no es posible que y sea padre de x. Decimos que una relación R
es antisimétrica si, para cualquier par de miembros a, b del dominio, a R b y b R a se
dan simultáneamente sólo cuando a = b.
Por último, otra propiedad muy importante es la transitividad. Decimos que R
es transitiva si para cualquier terna a, b, c de miembros del dominio, las relaciones
a R b y b R c obligan necesariamente a que a R c. Por ejemplo, si R es la relación
de amistad entre seres humanos, es bastante evidente que no es transitiva: a puede ser
amigo de b y b puede serlo de c, mientras que a puede considerar a c muy poco reco-
mendable. Si R fuese transitiva, sería cierto el refrán “los amigos de mis amigos son
mis amigos”.
Sí es transitiva, en cambio, la relación “ser antepasado de”: los antepasados de mis
antepasados son mis antepasados. En cambio, la paternidad no lo es: si x es el padre de
y e y es el padre de z, esto no obliga en absoluto a que x sea el padre de z.
Resumiendo, si R es una relación binaria en el conjunto A, decimos que R es
21
Por otro lado, sean [x] e [y] dos clases de equivalencia. Si no son disjuntas, existe
un elemento común a ∈ [x] ∩ [y]. Se deduce que
y se concluye que [x] ⊂ [y]. Se prueba del mismo modo que [y] ⊂ [x], y por tanto,
que [x] = [y].
para todo par de enteros a, b, se verifica que si a|b y b|a, entonces existen nú-
meros k y l con a = kb = kla y kl = 1, de forma que a = b (antisimetría)
para todo trío de enteros a, b, c, si se dan las relaciones a|b y b|c, existen ciertos
naturales k y l que cumplen c = kb = kla, de modo que a|c (transitividad)
22
La relación transitiva que se obtiene por repetición a partir de otra aparece con
frencuencia, lo que motiva la siguiente definición.
Sea R una relación en un conjunto A. Definimos la clausura transitiva de R (a
veces denotada por R ∗ ) como la menor relación transitiva que contiene a R. Más ex-
plícitamente,
b) R ∗ es transitiva.
Esta definición es muy poco intuitiva, y generalmente utilizaremos esta otra: dire-
mos que a R ∗ b si existe una sucesión {ai } de elementos de A que verifica
a R a1 R a2 R a3 R · · · R a n R b
es decir, si a está relacionado con un elemento, que está relacionado con otro, que. . . y
así sucesivamente hasta llegar a b. Por ejemplo, la clausura transitiva de la relación de
paternidad es “ser antepasado de”.
2.2. Grafos
2.2.1. Grafo dirigido y no dirigido
Definición 4. Un grafo (específicamente, grafo simple no dirigido) es un par G =
(V, E) = (V (G), V (E)), donde V es un conjunto finito no vacío de elementos llama-
dos vértices y E es un conjunto de pares desordenados de elementos distintos de V
llamados aristas. Es decir, una arista e ∈ E tiene la forma {u, v}, donde u, v ∈ V y
u 6= v.
Por ejemplo, en la figura 2.1(a) tenemos un grafo dirigido que, de acuerdo con
la definición, tiene seis vértices (V = {1, 2, 3, 4, 5, 6}) y ocho aristas (E = {(1, 2),
(2, 2), (2, 4), (2, 5), (4, 1), (4, 5), (5, 4), (3, 6)}). Las flechas apuntan del primer ele-
mento de cada par al segundo.
23
∗ ∗
5 5
+ +
6 6
12 12
χ (K 5 ) = 5 χ (K 5 ) = 5
χ (K 3,3 ) = 2 χ (K 3,3 ) = 2
χ (C7 ) = 3 χ (C7 ) = 3
χ (esto) = 4 χ (esto) = 4
χ (esto otro) = 4 χ (esto otro) = 4
x1 ≥ 6 x1 ≥ 6
x2 ≥ 8 x2 ≥ 8
x1 ≥ 6, x 2 ≥ 8 x1 ≥ 6, x 2 ≥ 8
1 2 3 1 2 3
x1 < 6, x 2 < 8 x1 < 6, x 2 < 8
A2 A2
A1 A1
A − A1 − A2 A − A1 − A2
A12 4 5 6 A12 4 5 6
(a) (b)
Obsérvese que es posible que una arista puede partir de un vértice y llegar a él de
nuevo. Una arista de esta clase, es decir, de la forma e = (v, v), recibe el nombre de
bucle o lazo.
Cuando el sentido de las flechas no nos interesa (o, dicho de forma más técnica, la
relación que el grafo representa es simétrica), es más conveniente el concepto de grafo
no dirigido.
Existen numerosas variantes de las definiciones que acabamos de dar. Por ejem-
plo, un multigrafo es un grafo no dirigido en el que permitimos la existencia de varias
aristas conectando los mismos vértices y la aparición de bucles. Específicamente, un
multigrafo queda definido por medio de una tríada G = (V, E, f ), donde V y E
son conjuntos y f : E → V × V asigna a cada arista e ∈ E un par desordena-
do f (e) = {u, v} de vértices diferentes de V (los vértices extremos de la arista e).
Un multigrafo dirigido se define de forma exactamente igual, excepto que el recorri-
do de f está formado por pares ordenados de vértices. Por último, si permitimos la
existencia de bucles o lazos en un grafo no dirigido, tenemos un pseudografo: se trata
de una terna G = (V, E, f ), donde f : E → V × V asigna a cada arista un par no
ordenado de vértices (posiblemente iguales).
Dado que esta terminología no es estándar, siempre es conveniente en cada caso
especificar claramente si el grafo objeto de nuestra consideración es dirigido o no; si se
admiten múltiples aristas entre un par cualquiera de vértices (es decir, si el grafo es o
no simple); y si se admiten bucles o lazos. En el cuadro resumen 2.1 se esquematizan
los valores de estos parámetros para las definiciones recién dadas.
24
su vértice final. Si estamos en un grafo no dirigido, decimos que (u, v) simplemente
incide en los vértices u y v, que serán sus vértices extremos.
Por ejemplo, en la figura 2.1(a), hay tres aristas que salen del vértice 2: son (2, 2),
(2, 4) y (2, 5). En el grafo no dirigido de la figura 2.1(b), la arista (3, 6) incide en los
vértices 3 y 6.
Si (u, v) es una arista de un grafo, decimos que el vértice v es adyacente al vérti-
ce u. En un grafo no dirigido, la relación de adyacencia es simétrica; no es así necesa-
riamente en un digrafo. Por ejemplo, en la figura 2.1(a), el vértice 5 es adyacente al 2
(pero el 2 no es adyacente al 5). En cambio, en el grafo de la figura 2.1(b), los vértices
1 y 2 son adyacentes entre sí.
El grado de un vértice en un grafo no dirigido es número de aristas incidentes con
él. Por ejemplo, el vértice 5 de la figura 2.1(b) tiene grado 2. En un digrafo, el grado
de salida de un vértice es el número de aristas que salen de él, y el grado de entrada
es el número de aristas que entran en él. El grado es la suma de los grados de salida
y entrada. En el grafo dirigido de la figura 2.1(a), el vértice 2 tiene grado de salida 3,
grado de entrada 2 y grado 5.
25
Vértice Adj(V )
0 1 0 0 0 0
0 1 1 {2}
0 1 1 0
0 0
2 {2, 4, 5}
0 0 0 0
M=
1 0
3 {}
0 0 1 0
0 0
4 {1, 5}
0 1 0 0
5 {4}
0 0 1 0 0 0
6 {3}
(a) (b)
Figura 2.2: Representación del grafo de la figura 2.1(a) por medio de a) matriz de
adyacencia b) listas de adyacencia
Esta representación es solamente válida para grafos no dirigidos, puesto que el sen-
tido de las aristas no puede ser representado de esta forma. Puede resultar útil para
representar multigrafos, pero su interés fundamental es más bien teórico.
26
G G
H H
I I
J J
3 3
+ +
∗ ∗
5 5
+ +
6 6
12 12
χ (K 5 ) = 5 36 χ (K 5 ) = 5
χ (K 3,3 ) = 2 χ (K 3,3 ) = 2
χ (C7 ) = 3 χ (C7 ) = 3
χ (esto) = 4 12 18χ (esto) = 4
χ (esto otro) = 4 χ (esto otro) = 4
x1 ≥ 6 x1 ≥ 6
x2 ≥ 8 4 6 9 x2 ≥ 8
x1 ≥ 6, x 2 ≥ 8 x1 ≥ 6, x 2 ≥ 8
x1 < 6, x 2 < 8 x1 < 6, x 2 < 8
A2 2 3 A2
A1 A1
A − A1 − A2 A − A1 − A2 3 4 6 9
A12 1 A12
(a) (b)
A = {a1 , a2 , a3 , . . . , an }
27
Un ejemplo de grafo que se vincula a una relación de manera algo diferente es
el diagrama de Hasse de una relación de orden. El diagrama de Hasse se obtiene
representando la relación por un grafo, y suprimiendo
todos los lazos
todas las aristas que se puedan deducir por transitividad de otras dos
En la figura 2.3(a) tenemos un ejemplo de un tal diagrama para la relación de divisibi-
lidad en el conjunto de los divisores de 36.
La matriz de adyacencia del grafo asociado a una relación R se denomina simple-
mente matriz de la relación; es una matriz cuadrada binaria M R , de dimensión igual al
cardinal del dominio de R. El elemento (M R )i j de la matriz vale uno o cero según que
los elementos ai y a j estén relacionados o no. En símbolos,
(
1 si ai R a j
(M R )i j =
0 en caso contrario
reflexividad R es reflexiva sii a R a para todo a ∈ A. Por lo tanto, si cada vértice del
grafo posee un lazo, R es reflexiva; si algún vértice carece de lazo, la relación no
es reflexiva. En términos de matrices, cada elemento de la diagonal principal
de M R debe ser un uno.
simetría R es simétrica sii a R b ⇒ b R a, para todo par de a, b ∈ A. Por lo tanto,
si hay una flecha de un vértice v a otro w, la flecha contraria también debe estar
presente; y si no la hay en un sentido, la contraria tampoco puede existir. En
términos matriciales, (M R )i j = (M R ) ji para todo par de índices i, j; o, más
brevemente, M R es simétrica: M Rt = M R
transitividad R es transitiva si y solamente si a R b junto con b R c implica necesa-
riamente que a R c. En términos de grafos, la existencia de una arista entre los
vértices a, b y otra entre b, c implica la existencia de la arista (a, c). El par de
aristas (a, b), (b, c) forma un camino de longitud dos entre los vértices a y c, de
modo que la condición de transitividad puede formularse así: la accesibilidad de
orden dos implica adyacencia. En términos matriciales, (M R )i2j = 1 implicará
siempre que (M R )i j = 1 o, abreviando, M R2 ⊂ M R : elevar al cuadrado la matriz
de la relación no introduce unos que no existieran ya en M R .
28
Cazorla
Bastardo Lebrel
Guzmán
Dehesa
Cobas
Zapatero
Herrero
González
Cazorla
Guzmán
DehesaZorrilla
Lebrel
Herrero A
Zapatero
González
Lebrel C
Zorrilla
Guzmán B
Zapatero
Herrero A D
Lebrel
Zorrilla B E
Zapatero CA F
Zorrilla DB G
E
C
A
F HI
D
B
CG
E
DF J3
H
GI +
E
FJ3 ∗
H
G+ I 5
H J∗ +
I3 6
+
+J5 12
χ (K 5 )3∗ 56= 5
χ (K 3,3 )12 ++ =2
)= ∗
χ (Kχ5(C 7 )55 6= 3
χ (Kχ3,3 ) =12
(esto) +2= 4
χχ(K )) =
(C57otro) =12653= 4
χχ(esto = 42
χχ(K 3,3 ) =
(esto) x153≥ 6
χ (esto (C57)) =
χ(K
otro) =
=x224≥ 8
χχ(K 3,3 ) =
=
xχ1(esto)
≥ 7x6,
(C ) 1= x 2 346≥ 8
≥
χ (esto otro)
< x6, =
x≥2 448< 8
x χx≥1(esto)
6, x221 = ≥ 68 A2
1
Propiedad Definición x1 < otro)
χ (esto 6, xx22 = <≥ 48 AGrafo
1 Matriz
x1 ≥A6,−x1A 2≥ 1≥A−6882 A2
x < 6, x 22 A ≥
< 8
x1A≥−6,Ax1 2−≥A8212A12
Reflexiva ∀a a R a 1 (M R )ii = 1 ∀i
Simétrica ∀a, b a R x
b ⇒ b R Aa − A −<
1 < 6, x 2 AA1281 M Rt= MR
1 AA22
Antisimétrica ∀a, b a R b y b R a ⇒ a = bAA12 1 (M R )i j 6= (M R ) ji ∀i 6= j
29
A − A1 − A2
Transitiva ∀a, b, c a R b y b R c ⇒ a R cA12 M R2 ⊂ MR
30
accesibilidad booleanas se obtienen a partir de las matrices enteras reemplazando por
unos los enteros positivos, y dejando los ceros donde están. El paso inverso (de matriz
booleana a entera) no es posible en general, puesto que al convertir a matriz booleana
se pierde información.
Es evidente que la matriz M1 coincide con la matriz de adyacencia que vimos en
la sección 2.2.3. Como la accesibilidad de orden cero solamente se da entre vértices
iguales, es también evidente que M0 = In , la matriz identidad n × n. En cuanto a otras
matrices de accesibilidad de orden superior, no parece haber una forma inmediata de
calcularlas. Para el grafo de la figura 2.1(a), puede comprobarse manualmente que
0 1 0 1 1 0 1 1 0 1 1 0
1 1 0 1 1 0 1 1 0 1 1 0
0 0 0 0 0 0 0 0 0 0 0 0
M2 = 0 1 0 1 0 0
M 3 =
1 1 0 1 1 0
1 0 0 0 1 0 0 1 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0
pero las comprobaciones se vuelven muy engorrosas para órdenes mayores. Por fortu-
na, hay una fórmula algebraica muy simple que nos permite calcular de forma directa
las matrices de accesibilidad de cualquier orden.
Teorema 13. Para k ≥ 0,
Mk = M k (2.2)
Demostración. Por inducción sobre el exponente k.
Para k = 0, hemos visto que M0 = In = M 0 , y no hay nada que demostrar. De la
misma forma, M1 = M = M 1 y se tiene el teorema trivialmente.
Supongamos, pues, que la identidad (2.2) es cierta para k < l; vamos a probarla
para k = l. Como tanto Ml como M l son matrices booleanas del mismo tamaño,
lo único que es preciso probar es que coinciden elemento a elemento, es decir, que
(Ml )i j = (M l )i j para cada 1 ≤ i, j ≤ n.
Ahora bien, tenemos que
n
X
(M l )i j = (M l−1 M)i j = (M l−1 )ik Mk j (2.3)
k=1
31
+
∗
5
+
6
12
χ (K 5 ) = 5
χ (K 3,3 ) = 2
χ (C7 ) = 3
χ (esto) = 4
χ (esto otro) = 4
x1 ≥ 6
x2 ≥ 8 K5
x1 ≥ 6, x 2 ≥ 8 K4 K6
x1 < 6, x 2 < 8
A2
A1
A − A1 − A2
A12
Con ayuyda del teorema recién probado, el cálculo de las diferentes matrices M k
se reduce a simple potenciación de la matriz de conexión o adyacencia. El teorema
siguiente nos da una forma sencilla de calcular Macc
Teorema 14. Si G es un grafo de n vértices,
Macc = I + M + M 2 + · · · + M n−1
Macc ⊇ I + M + M 2 + · · · + M n−1
es decir, que la matriz de la izquierda poseerá todos los unos que posee el lado derecho,
y posiblemente alguno más. Nos bastará, pues, probar la inclusión contraria:
Ahora bien, el lado izquierdo de la ecuación 2.5 implica que existe un camino de cierta
longitud m entre el vértice vi y el vértice v j . Sea dicho camino
C = {v0 , e1 , v1 , e2 , v2 , . . . , em , vm }
32
H
I
J
3
+
∗
5
+
6
12
χ (K 5 ) = 5
χ (K 3,3 ) = 2 1 2
χ (C7 ) = 3
χ (esto) = 4
χ (esto otro) = 4
x1 ≥ 6
x2 ≥ 8 3 4
x1 ≥ 6, x 2 ≥ 8
x1 < 6, x 2 < 8
A2
A1
A − A1 − A2
6 5
A12
(todos son isomorfos entre sí), que se designa por K n . Por ejemplo, en la figura 2.4
tenemos algunos grafos completos.
¡ ¢
Teorema 15. El grafo completo de n vértices K n tiene n2 = n(n − 1)/2 aristas.
Hay varias formas de demostrar esto:
1. El número de aristas de K n es el número de pares desordenados en un conjunto
de n objetos, es decir, el de combinaciones de n elementos tomados de dos en
dos.
2. Cada vértice del grafo está unido a los n − 1 restantes. Si contamos las aristas
incidentes en cada uno de los n vértices, obtenemos n(n − 1), pero, al obrar
así, estamos contando cada arista dos veces (puesto que tiene dos extremos). Por
tanto, el número total de aristas es exactamente la mitad, n(n − 1)/2.
3. Numeremos los vértices de 1 a n. En el vértice 1 inciden n − 1 aristas:
De este
¡ ¢teorema deducimos que un grafo simple no dirigido de n vértices tendrá, a
lo sumo, n2 aristas.
2.5.2. Torneos
Un torneo (tournament) es un grafo dirigido cuya versión no dirigida es un grafo
completo. Podemos decir que un torneo puede obtenerse a partir de un grafo completo
33
asignando orientaciones a cada una de las aristas. En la figura 2.5 podemos ver un
ejemplo de torneo con seis vértices.
En el torneo de la figura podemos ver que el camino simple (1, 2, 4, 6, 3, 5) pasa
por todos los vértices. Un camino así se denomina camino hamiltoniano. En el teore-
ma 21 veremos que siempre es posible encontrar uno en cualquier torneo.
34
C32 Abad
Zorrilla C2Abad
Zorrilla Zorrilla C2
+
C3 Abascal
A Abascal
C3 A A C3
C∗4 Álvarez
B Álvarez
C4 B B C4
C55 Bastardo
C Bastardo
C5 C C C5
+7
C Cobas
D CCobas
7D D C7
P66 Cazorla
E Cazorla
P6 E E P6
C
12m Dehesa
F CDehesa
mF F Cm
χ (K 5 ) =Q50 GonzálezG González
Q0 G G Q0
χ (K 3,3 ) =Q21 GuzmánH Guzmán
Q 1H H Q1
χ (C7 ) =Q32 HerreroI Herrero
Q 2 I I Q2
χ (esto) =Q43 Lebrel
J QLebrel
3 J J Q3
χ (esto otro) =Q44 Zapatero Zapatero
Q Q4
3 4 3 3 C5
x1 ≥Q65 Zorrilla
+ Zorrilla
Q 5+ + Q5
≥8
x2 Abad ∗ A Abad ∗ A ∗ Abad
x1 ≥ 6,Abascal
x2 ≥ 8 5B Abascal 5 B 5Abascal
x1 < 6, Álvarez
x2 < 8 +C Álvarez + C +Álvarez
A2
Bastardo 6D Bastardo 6 D Bastardo
6
A
Cobas 1 12 E Cobas12 E 12 Cobas
− A2P6χ (K 5 ) = 5 F
A − A1Cazorla χCazorla
(K 5 ) C =5F χ (K 5 ) = 5Cazorla
7
A χ
Dehesa 3,3
12 (K ) = 2 G χ (KDehesa
3,3 ) = 2 G χ (K 3,3 ) = 2Dehesa
González χ (C 7 ) = 3 H χ (C
González
7 ) = 3 H χ (C7 ) =González
3
Guzmán χ (esto) = 4 I χFigura
(esto)
Guzmán 2.6:
= 4 I
Camino Pχ6 y ciclos
(esto) = C4 7 y C5
Guzmán
χ (esto
Herrero otro) = 4 J χ (esto otro)
Herrero = 4 J χ (esto otro) = 4Herrero
Lebrel x1 ≥ 6 3 x1 ≥ 6 3
Lebrel x1 ≥ 6 Lebrel
Zapatero x2 ≥ 8 + x2 ≥ 8 +
Zapatero x2 ≥ Zapatero
8
x
Zorrilla
1 ≥ 6, x 2 ≥ 8 ∗ x 1 ≥ 6, x
Zorrilla
2 ≥ 8 ∗ x 1 ≥ 6, x 2 ≥ 8Zorrilla
x1A< 6, x 2 < 8 5 x1 < 6, x 2 < A 8 5 x 1 < 6, x 2 < 8 A
A2 + Q0
B BA2 + A2 B
C A1 6 CA1 6 Q1 A1 C Q2
A
D − A 1 − A 2
12 A − A −
1 D 2 A 12 A − A 1 − A2 D
χ (K 5A) = 5 χ (K 5A) = 5 A12
E 12 E 12 E
χ (K 3,3 ) = 2 χ (K 3,3 ) = 2
F F F
χ (C7 ) = 3 (a)
χ (C7 ) = 3 (b)
G G G (c)
χ (esto) = 4 χ (esto) = 4
H H H
χ (esto otro) = 4 χ (esto otro) = 4
I I I
x1 ≥ 6 x1 ≥ 6
J J J
x2 ≥ 8 x2 ≥ 8
3 3 3
+1x ≥ 6, x 2 ≥ 8 x 1 ≥ 6, +2 ≥ 8
x +
x < 6, x 2 < Q 83 x1 < 6, x 2 < 8
∗1 ∗ ∗
A2 A
5 5 2 5
+ A1 + A1 +
A − A1 − A2 A − A1 − A2
6 6 6
A12 A Q4
12 12
12 12
χ (K 5 ) = 5 χ (K 5 ) = 5 χ (K 5 ) = 5
χ (K 3,3 ) = 2 (d) ) = 2 (e)
χ (K 3,3 χ (K 3,3 ) = 2
χ (C7 ) = 3 χ (C7 ) = 3 χ (C7 ) = 3
χ (esto) = 4 Figura=2.7:
χ (esto) 4 Grafos Q n , para nχ= 0, . . =
(esto) .,4
χ (esto otro) = 4 χ (esto otro) = 4 χ (esto otro) = 4
x1 ≥ 6 x1 ≥ 6 x1 ≥ 6
x2 ≥ 8 x2 ≥ 8 x2 ≥ 8
x1 ≥ 6, x 2 ≥ 8 x1 ≥ 6, x 2 ≥ 8 x1 ≥ 6, x 2 ≥ 8
x1 < 6, x 2 < 8 x1 < 6, x 2 < 8 x1 < 6, x 2 < 8
A2 A2 A2
A1 A1 A1
A − A1 − A2 A − A1 − A2 A − A1 − A2
A12 A12 A12
Figura 2.8: (a) Un árbol. (b) Un bosque. (c) Un grafo que no es ni un árbol ni un bosque
35
2.6. Arboles
Definición 8. Un árbol es un grafo no dirigido, conexo y acíclico. Un grafo no dirigido
que es acíclico, pero posiblemente no conexo, se denomina bosque.
ei ≥ n i − 1 i = 1, 2, . . . m
El lema dual del recién probado cambia la conexión por la aciclicidad, con lo que
el sentido de la desigualdad se invierte.
36
F
G
H
I
J
3
+
∗
5
+
6
12 vd v1
χ (K 5 ) = 5 Cm
C1
χ (K 3,3 ) = 2
χ (C7 ) = 3 ..
. v2
χ (esto) = 4C
4
χ (esto otro) = 4
v v
x1 ≥ 6 6
x2 ≥ 8
x1 ≥ 6, x 2 ≥ 8
v3
x1 < 6, x 2 < 8
A2 C2
A1 v5
A − A1 − A2 v4
A12 C3
ei ≤ n i − 1 i = 1, 2, . . . m
Sumando à m !
m
X m
X X
ei ≤ (n i − 1) = ni −m
i=1 i=1 i=1
En el presente caso, rige la desigualdad m ≥ d y se tiene entonces
37
∗
5
+
6
12
χ (K 5 ) = 5
χ (K 3,3 ) = 2
χ (C7 ) = 3
χ (esto) = 4
χ (esto otro) = 4
x1 ≥ 6
p
x2 ≥ 8
x v
x1 ≥ 6, x 2 ≥ 8
x1 < 6, x 2 < 8 u w
A2 z
A1 y
A − A1 − A2
p0
A12
resultado, es posible construir un ciclo, contra la hipótesis. Por tanto, no pueden existir
dos caminos simples distintos entre u y v.
2 ⇒ 3) Evidentemente, G es conexo. Si se suprime la arista (u, v) de G, los vértices
u y v quedan desconectados, pues, por hipótesis, dicha arista era el único camino simple
que los conectaba.
3 ⇒ 4) Una vez más, la conexión de G es parte de la hipótesis. Por otro lado, G
es acíclico, puesto que si tuviese un ciclo, podría suprimírsele una arista sin perder la
conexión. Por tanto, de los lemas precedentes de deduce que |E| = |V | − 1.
4 ⇒ 5) Si suprimimos una arista de G, deja de verificarse la desigualdad |E| ≥
|V | − 1; por tanto, de la implicación anterior se sigue que G es acíclico. La igual-
dad |E| = |V | − 1 es parte de la hipótesis.
5 ⇒ 6) Al añadir una arista a G, se viola la desigualdad |E| ≤ |V | − 1 y el
contrarrecíproco del lema 2 implica que G deja de ser acíclico.
6 ⇒ 1) Sean u y v dos vértices distintos de G (si no los hay la implicación es
trivial). Si existe una arista (u, v), los dos vértices son mutuamente accesibles; si no,
la adición de (u, v) a E(G) provoca la aparición de un ciclo C del que dicha arista
es obviamente miembro. Suprimiendo (u, v) de C obtenemos un camino que conec-
ta u y v.
38
H
I
J
3
+
∗
5
+
6
Lebrel 12
χ (K 5 ) = 5
χ (K 3,3 ) = 2
7
χ (C7 ) = 3
A
χ (esto) = 4
B
χ (esto otro) = 4 6 8 9
C
x1 ≥ 6
D
x2 ≥ 8
E
x1 ≥ 6, x 2 ≥ 8
F 3 4 5 10 11 12
x < 6, x 2 < 8
G1
A2
H
A1
I
A − A1 − A2
J
A12 1 2
3
+
Figura 2.11: Arbol de doce nodos enraizado en el nodo 7
∗
5
+
Abad
6
12
χ (K 5 ) = 5
χ (K 3,3 ) = 2 Abascal Álvarez Zapatero Zorrilla
χ (C7 ) = 3
χ (esto) = 4
χ (esto otro) = 4
x1 ≥ 6 Bastardo González Guzmán
x2 ≥ 8
x1 ≥ 6, x 2 ≥ 8
x1 < 6, x 2 < 8
A2
A1
A − A1 − A2 Cazorla Cobas Dehesa Herrero
A12
el árbol es m-ario. Así, en un árbol ternario cada nodo tiene, a lo sumo, tres hijos;
posiblemente, menos.
Definimos la profundidad de un nodo v como la longitud del camino de la raíz a v.
La altura de un árbol es el máximo de las profundidades de sus nodos. El árbol de la
figura 2.11 tiene altura 3, puesto que los nodos 1 y 2 tienen ambos dicha profundidad.
El subárbol con raíz en el nodo 9 tiene altura uno.
Un árbol enraizado en el que los hijos de cada nodo tienen asignado un orden es
un árbol ordenado. Esto significa que si un nodo tiene k hijos, hay un primer, segundo,
. . . , k-ésimo hijo.
El interés de los árboles reside en su uso como estructuras de datos para clasificar
información. Por ejemplo, el árbol de la figura 2.6.1 codifica un índice de una base de
datos de abonados telefónicos. El árbol es ordenado y cuaternario; tiene, además, la
propiedad de que los datos residentes en una rama son siempre anteriores a los datos
que residen en ramas situadas a su derecha. Esto lo convierte en un árbol de búsqueda.
Para localizar al abonado Dehesa, es suficiente encontrar qué hijo del nodo raíz lo
39
contiene, lo que se determina de inmediato. Prosiguiendo recursivamente de esta forma,
llegamos a encontrar al abonado en un número de pasos igual, a lo sumo, a la altura del
árbol de búsqueda.
¿Cuál podría ser esa altura en el caso de tener un millón de abonados?
Teorema 18. Sea T un árbol m-ario de altura h. Entonces, el número de nodos n del
árbol satisface la desigualdad
m h+1 − 1
n≤
m−1
Dicho de otro modo, un árbol m-ario de n nodos tiene que tener altura mínima dada
por
h ≥ −1 + logm ((m − 1)n + 1)
En particular, un árbol binario satisface las desigualdades siguientes
n ≤ 2h+1 − 1
h ≥ −1 + log2 (n + 1)
m h+1 − 1
1 + m + m2 + m3 + · · · + mh =
m−1
que es lo que se quería demostrar. Las demás desigualdades se obtienen despejando la
altura y particularizando para m = 2.
Como ejemplo, en el caso de un millón de abonados, tendríamos un árbol de altura
mínima
h ≥ −1 + log4 (3·106 + 1) = 9,758
luego un árbol de altura h = 10 podría albergar nuestro millón de abonados, si está co-
rrectamente equilibrado. En esta hipótesis, nuestra búsqueda concluiría tras la lectura
de once registros de nuestra base de datos a lo sumo, lo que no está nada mal.
40
P REORDEN(T ) P OSTORDEN(T ) I NORDEN(T )
1 if T = NIL 1 if T = NIL 1 if T = NIL
2 then no hacer nada 2 then no hacer nada 2 then no hacer nada
3 else V ISITA(T ) 3 else P OSTORDEN(T.i z) 3 else I NORDEN(T.i z)
4 P REORDEN(T.i z) 4 P OSTORDEN(T.de) 4 V ISITA(T )
5 P REORDEN(T.de) 5 V ISITA(T ) 5 I NORDEN(T.de)
3 + 5 ∗ (6 + 12)
41
H
I
J
3
+
∗
5
+
6
12
χ (K 5 ) = 5
χ (K 3,3 ) = 2
e
χ (C7 ) = 3
χ (esto) = 4
χ (esto otro) = 4 a g
x1 ≥ 6
x2 ≥ 8
x1 ≥ 6, x 2 ≥ 8
c b j f
x1 < 6, x 2 < 8
A2
A1
A − A1 − A2
d
A12 h
Tipo Resultado
Inorden c a b e j g h f d
Preorden e a c b g j f h d
Postorden c b a j h d f g e
(b) Recorridos
(+ 3 (* 5 (+ 6 12)))
42
C4
C C5
D C7
E P6
F Cm
G Q0
H Q1
I Q2
J Q3
Q4
+
Q5
Abad
Abascal
Álvarez
Bastardo
χ (K 5 ) = 5 Cobas
χ (K 3,3 ) = 2 Cazorla
χ (C7 ) = 3 Dehesa +
χ (esto) = 4González
χ (esto otro) = 4 Guzmán Recorrido Expresión
x1 ≥ 6 Herrero
3 ∗ Inorden 3 + 5 ∗ 6 + 12
x2 ≥ 8 Lebrel Postorden 3 5 6 12 + ∗+
Zapatero
x1 ≥ 6, x 2 ≥ 8 Preorden +3 ∗ 5 + 6 12
x < 6, x < 8 Zorrilla
1 2
5 +
A2
A1
A − A1 − A2
A12 6 12
E
F (a) (b)
G
H
Figura 2.15:
I a) Árbol sintáctico y b) notaciones infija, prefija y postfija para la expresión
3 + 5 ∗J(6 + 12)
3
+
∗
5
+
6
12
χ (K 5 ) = 5
χ (K 3,3 ) = 2
χ (C7 ) = 3
χ (esto) = 4
χ (esto otro) = 4 B
x1 ≥ 6
x2 ≥ 8
x1 ≥ 6, x 2 ≥ 8
x1 < 6, x 2 < 8 A D
A2
A1
A − A1 − A2
A12 C
43
J
3
+
∗
5
+
6
12
χ (K 5 ) = 5
χ (K 3,3 ) = 2
χ (C7 ) = 3
χ (esto) = 4 A
χ (esto otro) = 4
x1 ≥ 6
x2 ≥ 8
x1 ≥ 6, x 2 ≥ 8 D
x1 < 6, x 2 < 8B
A2
A1
A − A1 − A2
A12 C
44
Teorema 19. Sea G un grafo conexo no dirigido. Entonces, G posee un circuito eule-
riano si y solamente si G carece de vértices impares.
45
Q2
Zorrilla Q3 Zorrilla
A Q4 A
B Q5 B
C C
Abad
D D
Abascal
E E
Álvarez
F F
Bastardo
G G
Cobas
H H
Cazorla
I I
Dehesa
J J
González
3 3
Guzmán
+ +
Herrero
∗ ∗
Lebrel
5 Zapatero 5
+ +
Zorrilla
6 6
A
12 12
χ (K 5 ) = 5 B χ (K 5 ) = 5
χ (K 3,3 ) = 2 C χ (K 3,3 ) = 2
v1 v1
χ (C7 ) = 3 vd D χ (C7 ) = 3 vd
χ (esto) = 4 E χ (esto) = 4
χ (esto otro) = 4 F
v2 otro) = 4
χ (esto v2
x1 ≥ 6 G x1 ≥ 6
x2 ≥ 8 .. v H x2 ≥ 8 .. v
. I .
x1 ≥ 6, x 2 ≥ 8 x1 ≥ 6, x 2 ≥ 8
x1 < 6, x 2 < 8 J x1 < 6, x 2 < 8
3 v3 v3
A2 A2
+
A1 A1
A − A1 − A2 v5 ∗ A − A1 − A2 v5
A12 v4 5 A12 v4
+
(a) 6 (b)
12
χ (K 5 ) = 5
χ (K 3,3 ) = 2 v1
χ (C7 ) = 3 vd
χ (esto) = 4
χ (esto otro) = 4 v2
x1 ≥ 6
x2 ≥ 8 .. v
x1 ≥ 6, x 2 ≥ 8 .
x1 < 6, x 2 < 8
v3
A2
A1
A − A 1 − A 2 v5
A12 v4
(c)
Figura 2.18: Demostración del teorema de Euler: (a) antes de suprimir v. (b) Suprimi-
do v y añadidas las aristas auxiliares, el grafo resultante posee un circuito euleriano.
(c) Construcción del circuito euleriano para G
46
un circuito euleriano. Forzosamente, el circuito para por la arista (v, w) exactamente
una vez. Suprimiéndola del circuito obtenemos un recorrido del grafo G. Recíproca-
mente, un recorrido euleriano de vértices extremos v y w se completa, añadiendo la
arista (v, w), obteniendo un circuito euleriano del multigrafo resultante. Por lo tanto,
éste tiene todos sus vértices pares, de lo que se deduce que los vértices v y w eran
impares al principio.
Ahora bien, esto significa que la suma de los grados de los vértices es par. Como la
suma de dos números impares es siempre par, el número de di0 s no puede ser impar,
puesto que el resultado de la suma sería impar en ese caso. Por tanto, hay un número
par de vértices impares.
Es decir, un grafo nunca podrá tener un solo vértice impar (ni tres, ni cinco. . . ). Este
teorema se conoce a veces como “lema del apretón de manos”, porque puede ponerse
en la siguiente forma: en una fiesta, el número de personas que estrechan la mano a una
cantidad impar de gente tiene que ser necesariamente par. Es una consecuencia directa
de que en un apretón siempre intervienen dos manos.
Definición 10. Sea G un grafo (dirigido o no). Un camino C en G se dice que es ha-
miltoniano si C pasa por cada vértices del grafo exactamente una vez. Un ciclo que
pasa exactamente una vez por cada vértice (excepto el vértice inicial, que aparece
también como final), se denomina ciclo hamiltoniano
Al contrario que en el caso euleriano, aquí no precisamos recorrer todas las aris-
tas; simplemente nos interesa visitar cada vértice exactamente una vez. Aunque no se
menciona explícitamente, los caminos hamiltonianos son siempre simples, lo que se
deduce directamente de la definición.
El nombre de este tipo de recorrido deriva de un puzzle ideado por Sir William
Rowan Hamilton (1805–1865). Básicamente, Hamilton pedía encontrar un ciclo ha-
miltoniano en un grafo isomorfo al retículo de vértices de un dodecaedro. La solución
47
J
Lebrel
Zapatero 3
+
Zorrilla
∗
A
5
B
+
C
6
D
12
χ (KE )=5
5
F
χ (K 3,3 ) = 2
G )=3
χ (C 7
H
χ (esto) = 4
I =4
χ (esto otro)
Jx ≥ 6
1
3x ≥ 8
2
+
x1 ≥ 6, x 2 ≥ 8
x1 < 6,∗x 2 < 8
5 A
2
+
A1
A − A61 − A2
12 A
12
χ (K 5 ) = 5
χ (K 3,3 ) = 2
Figura 2.19: El puzzle de Hamilton
χ (C7 ) = 3
χ (esto) = 4
χ (esto otro) = 4 v3 vm
vm+1
x 1 ≥ 6 v2
x2 ≥ 8
x1 ≥ 6, x 2 ≥ 8
x1 < 6, x 2 < 8
A2 vn
A1
A − A1 − A2
A12 v1
es bastante sencilla. Sin embargo, dado un grafo arbitrario, no resulta fácil determinar
si posee un ciclo hamiltoniano o no.
De hecho, no se conoce ninguna caracterización fácil de los grafos hamiltonianos, y
es probable que nunca se conozca ninguna. La razón de ello es que el problema del ciclo
hamiltoniano es NP-completo. No es sencillo definir esta propiedad; baste mencionar
que una solución eficiente del problema del ciclo hamiltoniano permitiría resolver de
golpe una vasta familia de problemas computacionales enormemente difíciles, y existen
sospechas muy fundadas de que tal solución eficaz no puede existir.
Esto no implica que, para determinados grafos de tipos muy particulares, no sea po-
sible determinar la existencia de caminos hamiltonianos (no necesariamente cerrados).
Un ejemplo de ello lo constituyen los torneos definidos en la sección 2.5.2.
48
1. El torneo posee una arista (v1 , v2 ). En ese caso, puede completarse el camino C
añadiéndole al principio esta arista y obteniéndose un camino hamiltoniano C 0 =
(v1 , v2 , . . . , vn ) para G, con lo que el teorema quedaría demostrado.
2. El torneo posee una arista (vn , v1 ). En ese caso, puede completarse el camino C
añadiéndole al final esta arista y obteniéndose un camino hamiltoniano C 0 =
(v2 , . . . , vn , v1 ) para G, con lo que el teorema quedaría demostrado.
49
C
D
E
F
G
H
I
J
+
∗
+ 1 2 3 Vértice Adyacentes
1 {2, 4}
12 2 {1, 3, 5}
χ (K 5 ) = 5 3 {2, 5}
χ (K 3,3 ) = 2 4 {1, 5, 7, 8}
χ (C7 ) = 3 4 5 6 5 {2, 3, 4, 6, 8, 9}
χ (esto) = 4 6 {5}
χ (esto otro) = 4 7 {4, 8, 10}
x1 ≥ 6 8 {4, 5, 7, 9, 10}
x2 ≥ 8 9 {5, 8}
x1 ≥ 6, x 2 ≥ 8 7 8 9
10 {7, 8}
x1 < 6, x 2 < 8
A2
A1
A − A1 − A2 10
A12
como visitado, y se examina su lista de adyacencia. Los vecinos que no hayan sido
ya visitados se añaden al final de la cola antes de proceder a la siguiente iteración.
Como resultado de este proceso, obtenemos que el recorrido construye un árbol como
el mostrado en 2.23(b). Cada nodo figura en este árbol como hijo del nodo “culpable”
de su ingreso en la cola Q. Un árbol de esta forma es un árbol abarcador (spanning
tree): cubre todos los vértices del grafo.
El recorrido de los vértices en profundidad es más difícil de visualizar al ser recur-
siva la formulación natural del algoritmo 2.22(a). La idea consiste en visitar en cada
paso cualquiera de los nodos vecinos aún no visitados, hasta que llegamos a un callejón
sin salida (es decir, no hay más vecinos inmediatos sin visitar). En ese caso es preciso
volver atrás y reiniciar nuestro paseo en el último punto en el que dejamos sin explorar
alguna posibilidad.
Una forma menos vaga de expresar este procedimiento es la forma no recursiva
del recorrido en profundidad que se esboza en el algoritmo de la figura 2.22(c). En
esta versión se emplea una pila S, en la que se almacenan los vértices pendientes de
ser recorridos. La operación de una pila es inversa a la de una cola: los elementos se
introducen en ella por delante (con la operación P USH) y se sacan de ella también del
principio (P OP).
Inicialmente introducimos en la pila sólo el vértice de partida. Mientras la pila no se
vacíe, tomamos el primer elemento de la pila (que es el último introducido, al revés que
en una cola); si no está marcado como visitado ya, lo visitamos; y finalmente apilamos
su lista de adyacentes (salvo los que estén marcados como visitados, que no se añaden).
Un ejemplo de ejecución de este proceso aparece en la tabla de la figura 2.24(a),
donde vamos viendo la historia de los contenidos de la pila y los elementos que van
visitándose en sucesión. Como resultado del proceso obtenemos también el diagra-
ma 2.24(b), que es otro árbol abarcador del grafo inicial. Una vez más, las aristas del
50
C4
C5
C7
P6
Cm
Q0
Q1
Q2
Q3
Q4
Q5
Abad
Abascal
B READTH -F IRST(G, v)
D EPTH -F IRST(G, v) 1 QÁlvarez
← [v]
1 V ISITA(v) 2 Bastardo
while Q 6= ∅
2 for each w in Ad j (v) 3 doCobasw ← S ACA P RIMERO(Q)
3 do D EPTH -F IRST(G, w) 4 CazorlaV ISITA(w)
5 Dehesa
E NCOLA(Ad j (w))
González
(a) En profundidad Guzmán
Herrero(b) En anchura
Lebrel
Zapatero
D EPTH -F IRST-NR(G, v)
1 S ← vacio Zorrilla
2 P USH(v) A
3 while S 6= ∅ B
4 do w ← P OP(S) C
5 if w no visitado D
6 then E
7 V ISITA(w) F
8 next ← Ad j (w) G
9 next ← next − V ISITADOS H (next)
10 P USH(next) I
11 J
3
+
(c) En profundidad, no recursivo∗
5
+
Figura 2.22: Recorridos en anchura (a) y en profundidad (b, c); pseudocódigos
6
12
χ (K 5 ) = 5
χ (K 3,3 ) = 2
Visitados Cola Q χ (C7 ) = 3
– 1 χ (esto) = 4 1 2 3
1 2 4 χ (esto otro) = 4
12 453 x1 ≥ 6
124 5378 x2 ≥ 8 6 5 4
1245 3 7 8 6 9x ≥ 6, x ≥ 8
1 2
12453 7 8 6 9 x < 6, x < 8
1 2
124537 8 6 9 10 A2 7 8 9
1245378 6 9 10 A1
12453786 9 10 A − A1 − A2
124537869 10 A12 10
1 2 4 5 3 7 8 6 9 10 –
(b) Arbol abarcador
(a) Traza
Figura 2.23: Funcionamiento del algoritmo B READTH -F IRST: (a) Traza del algoritmo,
con la historia de vértices visitados y el estadode la cola en cada iteración, (b) árbol
abarcador resultante del recorrido
51
E
F
G
H
I
J
3
+
∗
5
+
6
12
Pila Visitado χ (K 5 ) = 5
1 1 χ (K 3,3 ) = 2
24 4 χ (C7 ) = 3 1 2 3
2875 5 χ (esto) = 4
2872368 χ8(esto otro) = 4
2 8 7 2 3 6 9 7 10 10 x1 ≥ 6 4 5 6
287236977 7 x2 ≥ 8
28723697 – x1 ≥ 6, x 2 ≥ 8
2872369 9x1 < 6, x 2 < 8 7 8 9
287236 6 A2
28723 3 A1
2872 2 A − A1 − A2
10
287 – A12
28 –
2 – (b) Arbol abarcador
Figura 2.24: Funcionamiento del algoritmo D EPTH -F IRST: (a) Traza del algoritmo,
con la historia de vértices visitados y el estado de la pila en cada iteración, (b) árbol
abarcador resultante del recorrido. Las flechas grises indican los procesos de backtrac-
king.
52
H
I
J
+
∗
χ (K 5 ) = 5
χ (K 3,3 ) = 2 2 32
χ (C7 ) = 3 12 21 8
χ (esto) = 4
6 18
χ (esto otro) = 4 1
5
x1 ≥ 6 13 17
14
x2 ≥ 8 8
x1 ≥ 6, x 2 ≥ 8 3 3 15
x1 < 6, x 2 < 8 6 7
A2 24
A1 4 25
A − A1 − A2
A12 69 5
Figura 2.25: Una red con el camino más corto entre 1 y 8 y su MST
Las aristas marcadas con trazo grueso en la misma figura (de pesos 3, 6, 5, 13, 14,
17 y 25) constituyen un árbol abarcador mínimo (en inglés, minimum spanning tree
o MST. Se trata de un árbol que cubre todos los vértices del grafo teniendo el peso
menor posible. Existen dos algoritmos clásicos para encontrar tal MST, los algoritmos
de Kruskal y Prim; serán también objeto de estudio en el futuro.
V1 = {v ∈ V (G) | f (v) = 1}
V2 = {v ∈ V (G) | f (v) = 2}
53
A
B
C
D
E
F
G
H
I
J
2
2
+ 1 2 3 1
∗
1 3
2
+ 1 1
2
6
12 1 2
2 1
5 4
χ (K 5 ) = 5 χ (K 3,3 ) = 2 χ (C7 ) = 3
1 2 1 3
3 4
≥6
x1 1
2 3 2
4
≥ 81
x2
2
x1 ≥ 6, x 2
≥8 1
4
x1 < 6, x 2
<8 2
2 1 3
2 1
A2
A1 3
A − A1 − A2 3 1
ser f un 2-coloreado, vértices adyacentes tienen colores distintos: dicho de otro modo,
cada arista va de V1 a V2 , y el grafo es, por tanto, bipartito.
Si G es bipartito, con aristas entre dos conjuntos V1 y V2 exclusivamente, basta
asignar el primer color a los vértices de V1 y el segundo a los de V2 .
El caso de los grafos bipartitos es bastante especial. Un teorema algo más general,
aunque no demasiado potente, nos da una cota superior para el número de colores
preciso en un grafo cualquiera G.
Teorema 23. Si
1(G) = max {deg(v) | v ∈ V (G)}
es el mayor de los grados de los vértices de G, entonces
χ (G) ≤ 1(G)
χ (G) = 1 ≤ 1 = 1(G) + 1
54
por hipótesis de inducción. Ahora bien, si consideramos un (1(G) + 1)-coloreado de
G 0 , podemos extenderlo a un coloreado de G asignando algún color a v. Como el grado
de v es 1(G), alguno de los 1(G) + 1 colores no se ha utilizado en teñir a los vecinos
de v, y ese color podrá utilizarse para teñir a v, con lo que también G será (1(G) + 1)-
coloreable.
Obsérvese que este teorema proporciona un número de colores suficiente, pero pue-
de ser bastante mayor que el mínimo necesario. Por ejemplo, para K 3,3 (véase la figu-
ra 2.26) el teorema dice que cuatro colores bastan, y es así, porque de hecho bastan
dos. El caso del último grafo de la misma figura es especialmente significativo: hay un
vértice de grado 8, luego el teorema garantiza que nueve colores bastan. Sin embargo,
en la práctica vemos que con cuatro es posible colorear el grafo.
El último teorema sobre coloreado que veremos no se demostrará: sería realmente
difícil, por las razones que después veremos.
Definimos un grafo plano como uno que es factible representar en el plano de forma
que sus aristas no tengan intersecciones (salvo en los extremos, claro). Por ejemplo, la
figura 2.26 representa tres grafos planos. Los dos primeros no lo son: aunque no es
obvio, K 5 y K 3,3 son imposibles de dibujar en un plano sin que alguna arista se cruce
con otra.
Una propiedad curiosa de los grafos planos es la siguiente, que enunciamos sin
demostrar:
C− A+V =2
Teorema 25. (de los cuatro colores) Todo grafo plano es 4-coloreable
La interpretación geométrica de este enunciado es que cualquier mapa puede co-
lorearse con cuatro colores de forma que países fronterizos se distingan por el color.
Por complejo que sea el mapa, cuatro colores serán siempre suficientes. El teorema
de los cuatro colores se demostró en 1976, tras más de un siglo de intentos fallidos y
la comprobación exhaustiva por computador de miles de configuraciones a las que la
demostración se reduce.
55
56
Capítulo 3
Recurrencias y notación
asintótica
3.1. Objetivo
En el presente apartado nos plantearemos dos clases de problemas: la resolución en
forma cerrada de recurrencias lineales homogéneas, y la estimación del crecimiento de
recurrencias divide y vencerás.
Un ejemplo del primer tipo de problema es la sucesión de Fibonacci, definida por
las fórmulas
F1 = F2 = 1 (3.1)
Fn = Fn−1 + Fn−2 (3.2)
Los dos primeros términos están dados explícitamente por (3.1) (los valores iniciales),
y el tercero y siguientes pueden calcularse aplicando reiteradamente la ecuación de
recurrencia (3.2). Así, la sucesión queda perfectamente determinada y sus primeros
términos son
n 1 2 3 4 5 6 7 8 9 10 11 12 ...
Fn 1 1 2 3 5 8 13 21 34 55 89 144 ...
L1 = 2
L2 = 1
Ln = L n−1 + L n−2
n 1 2 3 4 5 6 7 8 9 10 11 12 ...
Ln 2 1 3 4 7 11 18 29 47 76 123 199 ...
57
todos los términos intermedios? Resulta que sí, y para la sucesión de Fibonacci una tal
fómula es à √ !n à √ !n
1 1+ 5 1 1− 5
Fn = √ −√ (3.3)
5 2 5 2
Por qué la fórmula tiene este aspecto, y cómo se obtiene, será el primer problema
que resolveremos. Además, es interesante observar que, cuando n es muy grande y
consideramos términos muy avanzados de Fn , el segundo término de (3.3) tiende a
cero (puesto que
¯ 1 − √5 ¯ √ !n
¯ ¯ Ã
¯ ¯ 1− 5
¯ ¯<1 ⇒ → 0 cuando n → ∞)
¯ 2 ¯ 2
Entonces, el crecimiento de Fn √
se debe exclusivamente al primer sumando y se escribe
Fn = O(φ n ), donde φ = (1 + 5)/2, para expresar que los números de Fibonacci se
comportan, asintóticamente, como una exponencial de base φ.
Otro tipo de relación de recurrencia algo diferente es la siguiente
Q n = Q n/2 + cn (3.4)
que aparece en el análisis del tiempo de ejecución de Quicksort, el algoritmo más rápi-
do conocido para la ordenación de un vector de números. En este caso, no es factible
encontrar una fórmula explícita para Q n , pero nos interesa saber cómo aumenta cuan-
do n se hace muy grande, puesto que eso mide el coste del algoritmo para ordenar
vectores de dimensión cualquiera. Una estimación aproximada es lo máximo que po-
demos obtener en estos casos, y demostraremos un teorema que nos permite obtener
esa estimación. En este caso particular, se obtiene que
Q n = O(n log n)
lo que significa que el tiempo de ejecución del Quicksort crece algo más deprisa que
el tamaño del vector a ordenar (pero infinitamente más despacio que el cuadrado de su
tamaño, por ejemplo).
para todo k ≥ n, siendo los coeficientes ci constantes (independientes del índice k).
En el caso particular de la sucesión de Fibonacci, la recurrencia Fn = Fn−1 + Fn−2
es de segundo orden, al igual que sucede con la sucesión de Lucas.
Nos gustaría encontrar una fórmula explícita para los valores de una sucesión que
satisface (3.5). Supongamos que existe una fórmula del tipo siguiente
z k = λk
58
es decir
P(λ) = λn − c1 λn−1 − c2 λn−2 − · · · − cn = 0 (3.6)
El polinomio P(λ) es el polinomio característico de la recurrencia (3.5), y la ecua-
ción (3.6) es su ecuación característica. Los ceros de P(λ) son los valores propios o
raíces características de la relación de recurrencia, y juegan un papel importantísi-
mo en su resolución. De hecho, la construcción recién escrita nos garantiza que cual-
quier raíz característica λ origina una sucesión que satisface la recurrencia planteada:
z k = λk .
De hecho, las raíces características proporcionan aún más soluciones si tienen mul-
tiplicidad superior a la unidad. Aunque no lo demostraremos, si λ es un cero de multi-
plicidad m de P(λ), cada una de las sucesiones
λk , kλk , k 2 λk , . . . k m−1 λk
satisface la recurrencia (3.5). Y las combinaciones lineales de soluciones son también
soluciones. Todo lo cual podemos sintetizar en el siguiente
Teorema 1. Si P(λ) es el polinomio característico de la recurrencia lineal homogé-
nea (3.5), y λ1 , λ2 , . . . , λ p son los distintos ceros de P(λ), con multiplicidades respec-
tivas m 1 , m 2 , . . . , m p respectivamente, cualquier sucesión que satisface la recurrencia
tiene la forma
zk = c10 λk1 + c11 kλk1 + c12 k 2 λk1 + . . . c1,m 1 −1 k m 1 −1 λk1
+ c20 λk2 + c21 kλk2 + c22 k 2 λk2 + . . . c2,m 2 −1 k m 2 −1 λk2
...
+ c p0 λkp + c p1 kλkp + c p2 k 2 λkp + . . . c p,m p −1 k m p −1 λkp
Más simplemente, la terrible fórmula anterior puede escribirse
z k = P1 (k)λk1 + P2 (k)λk2 + Pp (k)λkp
donde cada Pi es un polinomio en la variable k, de grado menor que m i . En términos
coloquiales, cada cero λ del polinomio característico nos da tantas soluciones indepen-
dientes de la recurrencia original como multiplicidad m tenga: dichas soluciones son
λk , kλk , k 2 λk , . . . k m−1 λk . Las combinaciones lineales que podamos formar con todas
estas funciones del índice k cubren todas las posibilidades.
Aunque completamente general, el contenido del teorema se entiende mejor con un
ejemplo concreto.
Ejemplo 7. Obtener una fórmula para la sucesión de Lucas.
El polinomio característico de la recurrencia L n = L n−1 + L n−2 es λ2 − λ − 1. Los
ceros son √ √
1+ 5 1− 5
φ= φ̄ =
2 2
Del teorema 1 se deduce que
L n = Aφ n + B φ̄ n
donde A y B son coeficientes a determinar. Ahora bien, los valores iniciales de la
sucesión proporcionan
L1 = 2 = Aφ + B φ̄
L2 = 1 = Aφ 2 + B φ̄ 2
59
Tenemos dos ecuaciones y dos incógnitas. Resolviendo el sistema lineal obtenemos
√
2 1+ 5
A= √ B=−
1+ 5 2
y por tanto à √ !n √ à √ !n
2 1+ 5 1+ 5 1− 5
Ln = √ −
1+ 5 2 2 2
dados a1 = 1, a2 = 2, a3 = 3, a4 = 6.
En este caso, el polinomio característico es
Si tiene ceros racionales, éstos deben ser divisores del término independiente, así que
probamos con ±1 y ±3. Se obtiene la descomposición factorial
i.e., 1 es una raíz triple y 3 una raíz simple de la ecuación característica. Por tanto, la
solución de la recurrencia tendrá la forma
an = 3n A + B + Cn + Dn 2
a1 = 1 = 3A + B + C + D
a2 = 2 = 9A + B + 2C + 4D
a3 = 3 = 27A + B + 3C + 9D
a4 = 6 = 81A + B + 4C + 16D
an = 3n /12 − 3/4 + 2n − n 2 /2
60
requerido para n 2 sumas y n 3 − n 2 multiplicaciones. La multiplicación suele dominar
en coste a la suma, y está claro que, para matrices de un tamaño moderado, el suman-
do n 2 es despreciable respecto a n 3 . De esta forma, adquiere sentido la afirmación “el
producto de matrices consume un tiempo proporcional a n 3 ”.
Este tipo de valoración en que despreciamos todos los términos involucrados en un
cálculo salvo aquéllos cuyo crecimiento domina al de todos los restantes, es lo que se
denomina asintótica. La notación más habitual para expresar estas manipulaciones es
la notación O (léase “O mayúscula” u “O grande”).
Definición 11. Sean f (n), g(n) funciones reales de argumento entero. Decimos que f
es O grande de g, y escribimos f (n) = O(g(n)), si existen c > 0 y N entero tales que
Es decir, salvo una constante multiplicativa, la función f está dominada por g desde
cierto valor en adelante.
Ejemplo 9. Son válidas las siguientes notaciones asintóticas:
Si f (n) = O(1), la función f está acotada.
n 2 = O(n e ) para e ≥ 2, pero no si e < 2.
n 3 − n + 3 = O(n 3 )
2n + 3n = O(3n )
1/n = O(1)
n + 1/n = O(n)
log n = O(n)√
log n = O( n)
Las propiedades más usuales de la notación O son las siguientes:
Teorema 2. Se verifican las siguientes propiedades
Si | f (n)| ≤ |g(n)|, entonces f (n) = O(g(n)). En particular, f (n) = O( f (n)).
Si lim f (n)/g(n) < ∞, f (n) = O(g(n)).
n a = O(n b ) si y solamente si a ≤ b.
a n = O(bn ) si y solamente si a ≤ b.
log n = O(n e ) para todo e > 0.
O( f (n)) + O(g(n)) = O(max{| f (n)|, |g(n)|})
O( f (n))O(g(n)) = O( f (n)g(n))
De lo anterior podemos deducir que, si P(n) = c0 n k + c1 n k−1 · · · + ck es un
polinomio en n, el término dominante (de mayor grado) es el que define su crecimiento
asintótico: P(n) = O(n k ).
Ejemplo 10. Estimar el crecimiento de los términos de la sucesión de Lucas.
Según lo calculado en la sección 3.2, tenemos la fórmula
à √ !n √ à √ !n
2 1+ 5 1+ 5 1− 5
Ln = √ −
1+ 5 2 2 2
Ahora bien, el segundo paréntesis tiene un valor absoluto menor que la unidad, de
forma que à √ !n
1− 5
= O(1)
2
61
√
y como (1 +5)/2 O(1) = O(1), obtenemos
µ √ ¶n µ √ ¶n µ √ ¶n
2 1+ 5 1+ 5 1+ 5
Ln = √ − O(1) = O + O(1) = O + O(1)
1+ 5 2 2 2
pues que el término izquierdo domina asintóticamente al derecho. En otras palabras, el
crecimiento de los números de Lucas es exponencial.
La notación asintótica permite realizar con mucha comodidad cálculos difíciles,
eliminando la obligación de arrastrar cantidades irrelevantes que podemos despreciar.
Esto nos resultará útil en la sección siguiente, donde estudiaremos el crecimiento de
funciones definidas por recurrencias que no podemos resolver de forma explícita.
62
siempre que a/bd 6= 1. Tenemos entonces
f (n) =
(a/bd )logb n − 1
= a logb n O(1) + cn d
(a/bd ) − 1
n logb a /n d − 1
= n logb a O(1) + cn d
(a/bd ) − 1
n b − nd
log a
= O(n logb a ) + c
(a/bd ) − 1
= O(n logb a ) + O(n d )
63