Uploaded by carlos.barreira95

cap9-oct18 GRAFOS

advertisement
Versión preliminar, 28 de octubre de 2018
Capı́tulo 9
El lenguaje de los grafos
Los grafos, los objetos y el lenguaje cuyo estudio iniciamos aquı́, son extremadamente
útiles para representar primero, y luego analizar, problemas muy diversos. Informalmente,
un grafo es una colección de vértices, a la que acompaña un conjunto de aristas que relacionan
estos vértices. Cuando argumentamos con grafos es habitual dibujar los vértices como puntos
(o pequeños cı́rculos) sobre el plano, y representar las aristas como lı́neas que unen estos
puntos. Adelantándonos a las definiciones formales, y para que el lector vaya comprobando
la amplia capacidad de representación del lenguaje de los grafos, exhibimos algunos ejemplos
que analizaremos con detalle más adelante.
1) Un problema de horarios. El plan de estudios de una cierta licenciatura universitaria consta de ocho asignaturas. Para programar los horarios en los que se cursan estas
asignaturas, queremos excluir la posibilidad de que dos asignaturas que tengan alumnos
matriculados en ambas se emplacen en el mismo horario. Queremos, además, minimizar el
número de horas necesario para programar todas las asignaturas, teniendo en cuenta la restricción anterior.
A1 A2
Representamos primero la información con un grafo: cada asignatura es un vértice, y si dos asignaturas presentan la incompatibilidad
A8
A3
descrita antes, dibujamos una arista entre los vértices correspondienA7
A4 tes. Digamos, por ejemplo, que el grafo resultante es el de la izquierda.
El diseño de un horario equivale a asignar a cada vértice un sı́mbolo
A6 A5
(la hora a la que se imparte la asignatura) de manera que vértices que
vayan unidos por una arista no lleven el mismo sı́mbolo. Pero además nos interesará hacerlo
empleando el mı́nimo número posible de sı́mbolos. Abordaremos este tipo de cuestiones en
la sección 10.2, utilizando un peculiar lenguaje que daremos en llamar coloreado de grafos.
2) Asignación de tareas. Formamos parte del departamento de estajanovismo a destajo
de un empresa1 . Contamos con un conjunto de trabajadores y otro de tareas, ası́ como de la
información sobre para qué tareas está capacitado cada trabajador. Buscamos una asignación
de tareas (a cada trabajador, una tarea distinta para la que esté preparado) de forma que
consigamos ocupar al mayor número de trabajadores posible.
1
A veces conocido como departamento de recursos humanos.
1
Versión preliminar, 28 de octubre de 2018
2
Capı́tulo 9. El lenguaje de los grafos
Digamos que en la empresa hay cinco trabajadores, T1 , . . . , T5 , y
t1
T1
ocho tareas, t1 , . . . , t8 . El grafo va a tener 13 vértices en total, tantos
t2
como trabajadores y tareas, pero dibujamos, pues ası́ resulta convet3
T2
t4
niente, los de los trabajadores a un lado, y los de las tareas a otro.
T3
t5
Además, trazamos una arista entre un vértice que represente a un trat6
bajador y otro que represente a una tarea si efectivamente el trabajador
T4
t7
está preparado para realizar esa tarea (véase el dibujo de la derecha).
t8
T5
La asignación de tareas, en estos términos, consiste en seleccionar cinco
aristas de manera que de cada vértice de la izquierda parta una y sólo una. En la sección 11.1
revisaremos condiciones necesarias para que este tipo de asignaciones exista, además de presentar algoritmos que permiten obtenerlas.
3) Construcción de redes. Se busca conectar una serie de ciudades mediante, por
ejemplo, tramos de oleoducto. Un estudio de ingenierı́a previo nos permite conocer qué tramos
se pueden construir, y quizás el coste de cada uno de ellos.
Las ciudades serán los vértices y las conexiones, las
3
aristas.
Cada arista lleva asociado un número (su “pe6
1
3
1
2
4
so”),
que
indica el coste de construcción de cada tramo
4
10
5
1
(véase el dibujo de la izquierda). Buscamos, por ejem5
7
1
plo, unir todos los vértices del grafo utilizando el menor
8
8
4
1
número posible de aristas. O en la versión con pesos, en11
contrar conexiones lo más baratas posibles. Vea el lector
los apartados 9.2.2 y 11.2.1. Alternativamente, podrı́amos interpretar el dibujo anterior como un red de transporte ya construida, en la que los pesos representan las capacidades de
cada tramo (por ejemplo, para canalizar agua, petróleo, número de vehı́culos, etc.), quizás
con el añadido de que los tramos estén orientados (es decir, que el flujo sólo pueda recorrer
cada tramo en un cierto sentido), y con el objetivo de calcular el máximo flujo que puede
transportar la red. Vea el lector el apartado 11.3.
4) Coloreado de mapas. El de la derecha
es el mapa del estado norteamericano de Iowa,
dividido en sus 99 condados2 . Repare, lector,
en que cada condado lleva un color que se ha
elegido, con ánimo clarificador, de manera que
condados colindantes lleven distinto color. Por
cierto, sólo se utilizan cuatro colores. Nos preguntamos si se trata de una situación general,
es decir, si todo mapa se puede colorear utilizando únicamente cuatro colores, o si los habrá
que requieran más. Ésta es también una cuestión de coloreado de grafos, como la cuestión 1,
aunque aquı́ los grafos asociados a la cuestión son un tanto especiales; grafos planos, diremos.
En la sección 10.4 trataremos esta cuestión, junto con otras muchas relacionadas con estos
grafos planos, alguna de las cuales, como comprobará el lector, tienen conexiones fascinantes.
2
¡Ah!, ¿que no sabı́a que Iowa. . . ? ¡Qué vasta cultura general proporciona la lectura de este libro!
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
3
Versión preliminar, 28 de octubre de 2018
9.1. Grafos
El lector atento habrá reparado sin duda en el permanente uso de expresiones como
“minimizar el número de. . . ”, “conseguir la máxima asignación. . . ”, “determinar la red más
barata que. . . ”, “colorear con el mı́nimo número de colores”, etc., en las cuestiones anteriores. El lenguaje de los grafos, que primero permite representar adecuadamente y de forma
manejable la información de un cierto sistema, resulta además estar especialmente adaptado
al planteamiento (y resolución) de problemas de optimización como los anteriores.
Dedicaremos tres capı́tulos a introducir y sacar3 partido de este lenguaje, con el siguiente
plan. El capı́tulo que ahora comienza servirá para presentar las nociones y el lenguaje básico
de grafos; un lenguaje un tanto peculiar, en el que tienen cabida desde expresiones tan
pictóricas como coloreado y número cromático, hasta términos tan botánicos como árboles
y bosques. Los dos siguientes capı́tulos contienen variadas aplicaciones de este lenguaje:
agruparemos las que consideramos más de corte matemático en el capı́tulo 10, y las que
tienen connotaciones más algorı́tmicas en el capı́tulo 11.
9.1.
Grafos
Empecemos, como corresponde4 , con la definición matemática formal.
Definición 9.1.1 Un grafo G = (V, A) está conformado por un conjunto no vacı́o V de
vértices y un conjunto A de aristas extraı́do de la colección de subconjuntos de dos elementos de V . Cada arista de G es, pues, un subconjunto {u, v}, con u, v ∈ V , u = v.
Las aristas son pares (no ordenados) de vértices, y escribiremos indistintamente {u, v} ó
{v, u} para referirnos a la arista que une o conecta los vértices u y v.
En ocasiones, sobre todo cuando en ciertos argumentos manejemos varios grafos a la
vez, utilizaremos sı́mbolos como V (G) y A(G) para recordar a qué grafo corresponden los
conjuntos de vértices y aristas a los que nos estamos refiriendo.
La definición anterior se refiere a los llamados grafos simples. En la sección 9.1.1 presentaremos algunas generalizaciones de esta noción inicial de grafo. Pero, en lo que sigue, y
salvo mención explı́cita en sentido contrario, cuando hablemos de un grafo siempre estaremos
refiriéndonos a este caso.
Diremos que dos grafos son iguales si tienen el mismo conjunto de vértices y la misma
colección de aristas.
Ejemplo 9.1.1 Consideremos un conjunto de vértices V = {1, 2, 3}. Construyamos algunos
grafos distintos con ese conjunto de vértices.
1
G1
3
1
G2
3
3
4
2
2
Como el conjunto de vértices está fijo, determinar aquı́ el grafo
exige únicamente decidir el conjunto de aristas. Los subconjuntos de
dos elementos de V son {1, 2}, {1, 3} y {2, 3}. De ellos, deberemos
escoger unos cuantos (o quizás ninguno) para formar el conjunto de
aristas. Las elecciones A1 = {{1, 2}, {2, 3}} y A2 = {{1, 2}} dan lugar
a los grafos G1 = (V, A1 ) y G2 = (V, A2 ) dibujados a la izquierda. ♣
Un mete saca.
No olviden que éste es un libro de matemáticas. Tampoco olviden supervitaminarse y mineralizarse.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
4
Capı́tulo 9. El lenguaje de los grafos
Versión preliminar, 28 de octubre de 2018
A. Recuento del número de grafos distintos. Si fijamos el conjunto de vértices, por
ejemplo {1, 2, 3}, hay ocho grafos distintos, pues hay tres “candidatos” a ser aristas y, por
tanto, 23 = 8 posibles elecciones de conjuntos de aristas (incluyendo el conjunto vacı́o). En
general, si el conjunto de vértices tiene n elementos, por ejemplo V = {1, 2, . . . , n}, entonces
tendremos
n
# subconjuntos de tamaño 2 extraı́dos de {1, . . . , n} =
2
“candidatos” para ser aristas. Y, por tanto,
n
# número de grafos distintos con vértices {1, 2, . . . , n} = 2( 2 ) ,
tantos como subconjuntos se pueden seleccionar de {1, . . . , n2 }. El número anterior, por
cierto, es enorme, en cuanto n sea grande. Por ejemplo, para un modesto n = 7 hay ya
221 = 2 097 152 grafos distintos, más de dos millones.
El número de grafos
con vértices {1, . . . , n} y con un número fijo, digamos k, de aristas
n
(donde 0 ≤ k ≤ 2 ) es
n
2
k
pues basta elegir k de entre las n2 posibles.
n
Agrupamos ahora los 2( 2 ) grafos distintos con vértices
ndel
número
n {1, . . . , n} en función
1 n
de aristas que tengan. Habrá uno sin arista alguna, 2 con una arista, 2 2 ( 2 − 1) con
dos, etc., hasta terminar en el único grafo con todas las aristas posibles. Nos preguntamos
por el número medio de aristas que tiene un grafo con n vértices. El resultado, siguiendo un
cálculo con el teorema del binomio análogo al del ejemplo 5.1.2, que convendrá que el lector
revise, es que
(n2 ) n
1 n
1
2
,
k
=
número medio de aristas = n
2 2
k
2( 2 ) k=0
de manera que, en media, los grafos tienen la mitad de las aristas posibles.
Ası́ que, en cuanto n sea moderadamente grande, hay muchı́simos grafos distintos, incluso
si prefijamos el número de aristas, y un grafo elegido al azar tiene, en media, bastantes aristas.
Lo que indica que realizar cálculos sobre la colección completa de grafos será exigente desde
el punto de vista computacional, y que estrategias del tipo “vamos a comprobar, uno a uno,
si cierta propiedad se verifica para cada grafo” serán, como mı́nimo, aventuradas.
B. Grafos con y sin etiquetas. Habitualmente representaremos los vértices con los sı́mbolos {1, . . . , n}, o con los sı́mbolos como u, v, w . . . , o quizás con v1 , v2 , v3 . . . . Para las aristas
utilizaremos los sı́mbolos a (por arista) o quizás e (del inglés edge).
La cuestión de “etiquetar” o no los vértices de un grafo es un tanto sutil. Por ejemplo,
siguiendo la definición anterior, los grafos G1 = (V1 , A1 ), donde V1 = {1, 2, 3} y A1 =
{{1, 2}, {2, 3}}, y G2 = (V2 , A2 ), con V2 = {a, b, c} y A1 = {{a, b}, {b, c}} son claramente
distintos, pues primero no tienen el mismo conjunto de vértices, y además tampoco tienen el
mismo conjunto de aristas.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
5
9.1. Grafos
Versión preliminar, 28 de octubre de 2018
Sin embargo, salvo por el nombre de los vérti2
b
G2
ces, ambos contienen la misma “información” G1
a
c
3
(en cierto sentido que convendrá precisar). Vea 1
el lector los dibujos de la derecha y confirme, a la vista de ellos, si está o no de acuerdo. Más
aún, reconozca que siente la tentación de quedarse, simplemente, con el esquema desnudo,
sin etiquetas, que aparece más a la derecha. Confiamos en que la discusión de la sección 9.1.2
arroje luz sobre esta cuestión.
C. Subgrafos. En muchas ocasiones, conviene considerar grafos que están incluidos “dentro”
de otros. Dado un grafo G = (V, A), formamos un subgrafo H = (V , A ) de G seleccionando
primero algunos de los vértices de G (esto es, V ⊆ V ) para después, de las aristas que unieran
vértices del conjunto V en el grafo original G, quedarnos con algunas de ellas (o todas)5 .
Un caso especialmente relevante es aquél en el que el subgrafo incluye todos los vértices del
grafo original. Un subgrafo H (de G) con V (H) = V (G) se llamará un subgrafo abarcador.
Algunos de los ejemplos que expusimos al principio del capı́tulo requieren hallar subgrafos
abarcadores (en realidad, “árboles” abarcadores; esto lo veremos en la sección 9.2.2).
Consideremos, por ejemplo, el grafo G dibujado a la izquierda. El
conjunto
de vértices es V (G) = {1, 2, 3, 4, 5}, y el de aristas A(G) =
1
3
{{1, 2}, {2, 3}, {2, 4}, {2, 5}, {3, 4}, {4, 5}}. De los seis grafos que representamos debajo de estas lı́neas, sólo los cuatro primeros son subgrafos de G.
5
4
Porque H5 contiene una arista (la {1, 5}) que no estaba en el original,
mientras que H6 tiene un vértice (y alguna arista) de más.
2
G
2
H1
1
3
5
2
H2
4
1
2
H3
3
5
4
H4
2
3
5
4
2
H5
3
4
1
3
5
4
H6
2
1
6
5
3
4
Los grafos H1 y H2 son, además, subgrafos abarcadores de G, porque incluyen a todos
los vértices de G. Los subgrafos H3 y H4 son también especiales: son los subgrafos que se
obtienen considerando sólo los conjuntos de vértices {2, 3, 4, 5} y {2, 3, 4}, respectivamente, y
quedándonos con todas las aristas que unieran esos vértices en G. A estos últimos subgrafos
nos referiremos como los subgrafos inducidos por esos conjuntos de vértices.
9.1.1.
Representación matricial de un grafo
La definición 9.1.1 oficial de grafo habla de conjuntos de vértices y conjuntos de aristas,
que se seleccionan de entre las parejas de vértices. Pero en los ejemplos que hemos visto hasta
ahora, y en muchas de las ilustraciones y argumentos que desarrollaremos en lo que sigue, el
grafo es ese dibujo en el papel en el que vamos ubicamos cı́rculos para representar vértices,
y lı́neas, curvas o rectas, dependiendo de las pulsiones estéticas de cada uno, uniéndolos
entre sı́.
5
Si sólo exigiéramos que H contuviera algunos de los vértices y algunas de las aristas de G, podrı́amos llegar
a situaciones sin sentido como incluir una arista pero no alguno de sus vértices.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
Versión preliminar, 28 de octubre de 2018
6
Capı́tulo 9. El lenguaje de los grafos
Vale, bien, de acuerdo. Pero si lo que pretendemos es utilizar grafos para representar
sistemas de puntos conectados y para resolver en ellos cuestiones algorı́tmicas, ordenador
mediante, necesitamos una manera eficaz de codificar la información contenida en el grafo.
La representación más habitual6 de un grafo G = (V, A) utiliza su matriz de vecindades, o matriz de adyacencia. Se construye como sigue. Digamos que el conjunto de vértices
es V = {v1 , . . . , vn }. Ordenamos esos vértices de cierta manera, por ejemplo (v1 , . . . , vn ). Y
ahora construimos la matriz n × n, cuyas filas y columnas van etiquetadas con esos vértices,
y cuyas entradas, para cada 1 ≤ i, j ≤ n, llevan un 1 en la posición (vi , vj ) si {vi , vj } ∈ A, y
un 0 en caso contrario.
La matriz tendrá ceros en la diagonal y será simétrica: si en la posición (vi , vj ) aparece
un 1 es porque {vi , vj } ∈ A; por tanto, en la posición (vj , vi ) deberá aparecer también un 1.
Véase la siguiente ilustración:
v2
v1
v3
v5
v4
v1
v2
v3
v4
v5
v1
0
0
0
0
1
v2
0
0
0
1
1
v3
0
0
0
1
1
v4
0
1
1
0
1
v5
1
1
1
1
0
Por ejemplo, el 1 que aparece en la fila tercera, columna cuarta, y el 1 de la correspondiente
posición simétrica, fila cuarta, columna tercera, significan que el grafo contiene la arista entre
los vértices v3 y v4 .
(Observe el lector que la matriz depende de la ordenación de los vértices elegida. Más
sobre esto, en el apartado 9.1.2).
Ası́ que un grafo G simple con vértices {v1 , . . . , vn } es exactamente lo mismo que una
matriz n × n de ceros y unos, simétrica, y con ceros en la diagonal, cuyas filas y columnas
van etiquetadas con los sı́mbolos {v1 , . . . , vn }.
Hacemos notar que esta representación matricial abre la posibilidad de utilizar técnicas
de álgebra lineal para analizar cuestiones relacionadas con grafos. La matriz de vecindades de
un grafo verifica algunas propiedades, como ser simétrica, o que sus entradas son números no
negativos (ceros y unos, de hecho). Podrı́a ocurrir, y de hecho ası́ ocurre, que algunas de las
caracterı́sticas del grafo se reflejaran en ciertos invariantes de la matriz, como por ejemplo sus
autovalores y autovectores. Esta lı́nea de análisis, conocida como teorı́a espectral de grafos,
es extremadamente útil en ocasiones, aunque aquı́ sólo la utilizaremos en contadas ocasiones.
Véase al respecto la sección 9.1.5.
El lector que revise la discusión sobre relaciones binarias de la sección 5.5 se percatará
también de que un grafo G = (V, A) se corresponde con una relación definida en el conjunto V ,
sin más que interpretar que dos elementos de V están relacionados si hay una arista que
conecta los correspondientes vértices. Para el caso de los grafos simples, se tratará de una
relación simétrica, desde luego no reflexiva y que, en algún caso, será además transitiva.
Véase la discusión más general al respecto en la sección 9.3.
6
No es la única. Vea por ejemplo, en la demostración de la proposición 9.1.3, una representación alternativa,
conocida como la “matriz de incidencias”.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
7
9.1. Grafos
Versión preliminar, 28 de octubre de 2018
A. Grafos dirigidos, aristas múltiples, lazos y pesos
Algunas cuestiones que trataremos en este texto exigen generalizar el concepto de grafo.
Presentamos ahora algunas de estas variaciones sobre la definición 9.1.1, atendiendo también
a las representaciones matriciales a que dan lugar. Algunas propiedades adicionales de estas
generalizaciones serán analizadas con más detalle cuando el problema de interés lo exija.
La primera generalización consiste en perv1 v2 v3 v4 v5
mitir la presencia de lazos, esto es, de aristas
v1 1
0
0
0
1
v2
v1
cuyos dos vértices sean el mismo. Sobre la dev2 0
1
0
1
1
v
0
0
0
1
1
finición 9.1.1, esto supone admitir aristas del v
3
v3
5
v4 0
1
1
1
1
tipo {v, v}; y sobre la matriz de vecindades, la
v4
v5 1
1
1
1
0
eventual presencia de unos en la diagonal. A la
derecha mostramos un ejemplo.
Conviene también a veces permitir aristas múltiples, esto es, que algunos pares de
v1
v2
v1
vértices estén conectados por dos o más arisv2
tas. En este caso, al que nos referiremos cov3
v3
v5
mo multigrafos, la definición 9.1.1 se amv4
pliarı́a permitiendo aristas repetidas, y en
v5
v4
la matriz de vecindades las entradas serı́an
ceros o números naturales (incluyendo la diagonal, si es que quisiéramos permitir lazos múltiples). A la izquierda exhibimos un ejemplo, en el que se pueden apreciar aristas dobles y
triples, y hasta lazos dobles7 .
v1 v2 v3 v4 v5
Otra posibilidad, que estudiaremos con
v1
v1 0
0
0
0
1
detalle en la sección 9.3, es la de dar orienta- v2
7
v2 0
0
0
1
0
ción a las aristas. En los grafos dirigidos
?
v
0
0
0
0
1
3
v
v5 I
o digrafos (con lazos o sin ellos), las aris> 3
v4 0
0
1
0
1
?
tas se definen como pares ordenados, y la
v4
v5 1
1
0
0
0
matriz, cuyas entradas siguen siendo ceros
y unos, ya no será necesariamente simétrica. Véase el ejemplo de la derecha. Hacemos notar,
por cierto, que en la matriz leemos las aristas de filas a columnas; véase, por ejemplo, el 1 en
la fila v4 y columna v3 . En el dibujo, además, cada arco ha sido decorado con una “flecha”.
La última generalización consiste en asociar, en cualquiera de los esquemas anteriores
(grafos simples, multigrafos o grafos dirigidos), un número real a cada arista a, su peso p(a).
En este caso, hablaremos de un grafo con pesos (o grafo ponderado8 , o incluso grafo
pesado9 ). La matriz de un grafo (simple y sin lazos, por ejemplo) ponderado es simétrica y sus
entradas son los pesos de cada arista. La matriz de un grafo dirigido con pesos (que tendrán
papel destacado en la sección 11.3) apenas tiene propiedades más allá de ser cuadrada.
v1
2
0
0
0
2
v2
0
1
0
2
1
v3
0
0
0
3
1
v4
0
2
3
1
1
v5
1
2
1
1
0
7
Esta representación matricial sólo tiene en cuenta cuántas aristas hay entre cada par de vértices. Eso es
todo lo que necesitaremos aquı́. Pero es concebible que quisiéramos distinguir entre, por ejemplo, dos aristas
que unan el mismo par de vértices (por ejemplo, dos carreteras distintas que unieran las mismas ciudades)
¿Cómo se le ocurre al lector representar matricialmente esta situación?
8
Dı́cese del grafo sobre el que se piensa mucho, y muy detenidamente.
9
Sin comentarios.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
Versión preliminar, 28 de octubre de 2018
8
Capı́tulo 9. El lenguaje de los grafos
Esperen, no se vayan todavı́a, que queda una última generalización. Todas las definiciones
anteriores, cada una con sus particularidades, parten de que las aristas conectan parejas de
vértices (ordenadas o no). En otros términos, nos hemos restringido a relaciones binarias. Los
llamados hipergrafos constan del habitual conjunto de vértices, V , y además de un conjunto
A de hiperaristas, que son subconjuntos de vértices, no necesariamente de tamaño 2. Es decir,
A ⊆ P(V ), la colección de todos los subconjuntos de V . En ocasiones conviene restringirse a
que las aristas sean todas del mismo tamaño, por ejemplo parejas (el caso del grafo habitual), o
trı́os, o cuartetos, etc, de vértices. Aunque estos hipergrafos resultan útiles para representar
cierta cuestiones, no los utilizaremos en estos capı́tulos. Por otra parte, intente el lector
representar sobre el papel un hipergrafo que por ejemplo involucre trı́os.
Pero, ¡insistimos!, en lo sucesivo, mientras no se diga lo contrario, todos los grafos a los
que nos referiremos serán. . . simples (y sin lazos).
B. Vértices vecinos, grado de los vértices y sucesión de grados
En lo que sigue utilizaremos en repetidas ocasiones las siguientes nociones, que tienen
que ver con relaciones de vecindad en un grafo.
Definición 9.1.2 Dado un grafo G = (V, A), diremos que dos vértices v, w ∈ V son vecinos
si {v, w} ∈ A. El grado de un vértice es el número de vecinos que tiene en el grafo:
grado(v) = #{w ∈ V : {v, w} ∈ A(G)} .
Si los vértices de G son {v1 , . . . , vn }, la sucesión de grados del grafo G es la lista
(grado(v1 ), grado(v2 ), . . . , grado(vn )) .
El grado de un vértice es un número entre 0 y n − 1, si es que el grafo tiene n vértices.
Si el grado de un vértice es 0, es decir, si no tiene vecinos en el grafo, diremos que el vértice
es aislado. Con la matriz de vecindades, el grado de un vértice se determina sumando las
entradas (los unos) que aparezcan en su fila10 .
Por convenio (o costumbre), en la sucesión de grados éstos se escriben en orden de tamaño,
bien de menor a mayor, bien de mayor a menor11 .
Las relaciones de vecindad se codifican con la matriz de vecindades; la sucesión de grados se obtiene sumando sus filas, de manera que se trata sólo de un resumen parcial de la
información que contiene la matriz. Ası́ que habrá grafos que tengan la misma sucesión de
grados, pero cuyas relaciones de vecindad sean bien distintas. Vea el lector algún ejemplo en
el apartado siguiente.
Además, no toda lista de n enteros, todos ellos entre 0 y n − 1, se corresponde con la
sucesión de grados de un grafo con n vértices. Por ejemplo, se tiene la siguiente restricción
que nos dice, en particular, que la suma de los grados de un grafo es siempre un número par.
10
Un lazo, si los permitiéramos y los hubiere, debe contribuir con un 2 al grado del vértice. Pero como en
la matriz de vecindades hemos representado los lazos con unos en la posición de la diagonal correspondiente,
para este caso tendremos que la suma de las entradas de la fila (o columna) de un vértice v es el grado de v
menos el número de lazos. Pequeña inconveniencia que confiamos el lector sepa disculpar.
11
Sobre gustos. . . El nuestro será: de menor a mayor.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
9
9.1. Grafos
Proposición 9.1.3 En cualquier grafo G = (V, A) se tiene que
grado(v) = 2|A|.
Versión preliminar, 28 de octubre de 2018
v∈V
Hacemos notar, no obstante, que la condición anterior no caracteriza las sucesiones de
grados de un grafo. Es decir, hay sucesiones de enteros no negativos 0 ≤ d1 ≤ d2 ≤ · · · ≤ dn ≤
n−1, con d1 +· · ·+dn par, que no se corresponden con la sucesión de grados de un grafo simple.
Por ejemplo, la sucesión (1, 1, 3, 3) de números entre 0 y 4 cumple las condiciones de paridad,
pero no se corresponde con ningún grafo con cuatro vértices, como podrá comprobar el lector
que se afane en tratar de dibujar un tal grafo. Vea el lector interesado el ejercicio 9.1.11.
Demostración (véase también el lema de
v1 v2 v3 v4 v5
v1
los saludos, ejemplo 2.1.4). Vamos a argua
1
0
0
0
1
1
v2
a
0
1
0
0
1
2
mentar sobre otra manera de registrar la
a
2
a1
a
a
0
1
0
1
0
3
3
información contenida en el grafo, conocia4
v
a
0
0
1
0
1
4
3
v
da como “matriz de incidencias”: sus co- 5 a6
a5
a5 0
0
1
1
0
lumnas están etiquetadas con los vértices
a6 0
0
0
1
1
v4
{v1 , . . . , vn }, pero ahora, como etiquetas de
las filas, situamos las aristas {a1 , . . . , am }. En la posición (ai , vj ) colocaremos un 1 si el
vértice vj es extremo de la arista ai ; y un 0 en caso contrario. Véase el ejemplo de la figura.
En la fila etiquetada con la arista a1 aparecerán sólo dos unos (sus dos extremos); lo
mismo ocurre con el resto de las filas. Ası́ que, sumando por filas, obtenemos 2|A|. La columna correspondiente al vértice vj contendrá tantos unos como vecinos tenga: su suma valdrá
justamente gr(vj ). Sumando los resultados de todas las columnas, y por doble conteo, obtenemos la conclusión. Piense el lector si el resultado sigue siendo válido si permitimos lazos
y/o aristas múltiples (ejercicio 9.1.7; recomendamos también el ejercicio 9.1.8).
Finalizamos la sección presentando unas cuantas nociones adicionales asociadas a los
grados de los vértices de un grafo:
Definición 9.1.4 Dado un grafo G = (V, A), su mı́nimo grado y su máximo grado
vienen dados por
y
Δ(G) = máx grado(v) .
δ(G) = mı́n grado(v)
v∈V (G)
v∈V (G)
Si los dos números anteriores coinciden, digamos que ambos valen k, entonces todos los
vértices del grafo tendrán grado k, y hablaremos de un grafo k -regular.
Llamaremos grado medio de los vértices del grafo G a la cantidad
grado(G) =
1
|V |
grado(v)
v∈V
Obsérvese que 0 ≤ δ(G) ≤ Δ(G) ≤ n − 1, si el grafo tiene n vértices. El grado medio, que
cumple que δ(G) ≤ grado(G) ≤ Δ(G) , es una medida del número de aristas que hay en el
grafo G por cada vértice. De hecho, a la vista de la proposición 9.1.3, se tiene que
grado(G) = 2
el discreto encanto de la matemática
|A(G)|
.
|V (G)|
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
10
Capı́tulo 9. El lenguaje de los grafos
Versión preliminar, 28 de octubre de 2018
9.1.2.
Grafos en cuerpo y alma: isomorfı́a de grafos
Los grafos, como hemos visto, tienen como objeto representar relaciones (binarias) entre
los elementos de una colección de vértices. La verdadera naturaleza de esta relación variará
según el problema considerado; por ejemplo, pueden ser personas que se conozcan o no,
ciudades conectadas o no mediante carreteras, asignaturas con incompatibilidades, etc. Pero
sea cual sea su carácter, nos gusta interpretar esta relación en términos genéricos de vecindad:
ası́, “estar relacionados” lo entendamos como “ser vecinos” en el grafo.
Para que dos grafos sean iguales han de tener primeG
G
a
c
ro, los mismos vértices, exactamente, y después, las mismas
1
2
aristas, exactamente. Los dos grafos de la derecha tienen
4
vértices distintos: los del de la izquierda son {a, b, c, d} y los
3
b
d
del de la derecha, {1, 2, 3, 4}, y cada uno tiene una única
arista. Son grafos distintos, simplemente porque tienen vértices distintos.
Pero el lector condescendiente admitirá que, en realidad, los dos grafos se corresponden
con la misma relación de vecindad, que, de hecho, podemos describir en palabras que no hacen
referencia ni a los vértices concretos ni a las aristas concretas; a saber, se trata de una relación
en un conjunto de 4 elementos en la que hay exactamente un par de ellos relacionados.
El lector convendrá con nosotros en que resultará provechoso disponer de un concepto que
capture el hecho de que esos dos grafos, en realidad, dicen lo mismo. Vamos, que son iguales
aunque sean formalmente distintos, sensu stricto 12 . Ese concepto es el de grafos isomorfos.
Isomorfo significa, filológicamente hablando, con la misma forma.
Definición 9.1.5 Decimos que dos grafos G = (V, A) y G = (V , A ) son isomorfos si
existe una aplicación biyectiva entre los conjuntos de vértices, φ : V → V , de manera que
{v, w} ∈ A si y solamente si {φ(v), φ(w)} ∈ A .
La aplicación φ es un diccionario que traduce la información del primer grafo en la del
segundo (o viceversa). Si dos vértices son vecinos en el primer grafo, entonces los vértices
correspondientes en el segundo también son vecinos, y recı́procamente. Ası́ queda exactamente
trasladada la relación de vecindad: es, a todos los efectos, la misma. Nótese que el isomorfismo
se define con una biyección entre los vértices, pero induce automáticamente otra entre las
aristas: basta asociar a una arista con vértices v y w la arista con vértices φ(v) y φ(w).
Por ejemplo, la aplicación φ de {a, b, c, d} en {1, 2, 3, 4} definida por φ(a) = 3, φ(b) = 4,
φ(c) = 1 y φ(d) = 2 es un isomorfismo entre los grafos que considerábamos antes, pues
justamente hace corresponder la única arista, {a, b}, de G, con la única arista, {3, 4}, de G .
Muchas de las nociones y propiedades de grafos que iremos introduciendo en las páginas
que siguen serán invariantes por isomorfı́a. Es decir, que si un grafo G tiene una tal
propiedad, los grafos isomorfos a él gozarán asimismo de esa propiedad. En cierto sentido,
sólo las propiedades invariantes por isomorfı́a son importantes, porque sólo ellas refieren
exclusivamente a lo esencial de la estructura de vecindad. Por ejemplo, el número de vértices
y el número de aristas son invariantes por isomorfı́a. También la lista de grados de los vertices
12
Disculpe el amable lector el tono escolástico, y es que tanta disquisición quintaesencial. . .
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
11
Versión preliminar, 28 de octubre de 2018
9.1. Grafos
es invariante por isomorfı́a; de hecho, si φ define un isomorfismo entre G y G , entonces
grado(v) = grado(φ(v)) para cada vértice v de G.
No suele resultar fácil decidir si dos grafos dados son isomorfos o no. De hecho no se
dispone de ningún procedimiento efectivo y general para ello, y la cuestión es considerada un
problema computacionalmente difı́cil.
Para comprobar que dos grafos son isomorfos bastará con exhibir un isomorfismo. Encontrarlo puede no ser fácil, pero comprobar que el supuesto isomorfismo es tal es un asunto
directo. Para buscar un isomorfismo entre dos grafos (o, si es el caso, comprobar que no hay
tal) con n vértices – si no tuvieran igual número de vértices ya estarı́a claro que no son isomorfos – podrı́amos analizar las n! biyecciones del primer conjunto de vértices en el segundo,
y comprobar una a una si lleva aristas en aristas. Pero n! es, a poco que n no sea pequeño,
un número desorbitadamente grande.
En sentido contrario, para comprobar que dos grafos no son isomorfos habrá que argumentar que no existe ningún isomorfismo entre ellos, lo que no es tarea fácil. Piense en
abstracto el aplicado lector: cuán difı́cil es demostrar que algo (por ejemplo, la isla de San
Borondón13 ) no existe. Pero las matemáticas, como ciencia de lo abstracto – ésta es la clave –,
están cabalmente pertrechadas para este fin.
Una posible estrategia pasa por comprobar si ambos grafos comparten o no las diversas
propiedades invariantes por isomorfı́a que iremos descubriendo en estas páginas: el número
de vértices, la sucesión de grados, etc. Pues si comprobamos que uno de los grafos en cuestión
tiene una tal propiedad y el otro no, entonces no pueden ser isomorfos. Pero no se conoce una
lista (completa y razonable) de invariantes cuya comprobación resolviera la cuestión, bien en
negativo (los grafos no son isomorfos), si alguna de las propiedades no se compartiera, bien
en positivo (los grafos son isomorofos) si todas ellas fueran comunes a los dos grafos.
Por cierto, la interpretación de la noción de isomorfı́a en términos de matrices de vecindades es directa. Sean M y M las respectivas matrices de vecindades de los grafos G y G . (Las
matrices en sı́ dependen de las ordenaciones de los dos conjuntos de vértices). Entonces G
y G serán isomorfos si existe una forma común de reordenar las filas y las columnas de M
que nos dé la matriz M . La receta para esa reordenación común es simple: si el vértice v
de G etiqueta, por ejemplo, la tercera fila (y tercera columna) de M y el vértice φ(v) etiqueta,
por ejemplo, la sexta fila (y sexta columna) de M , entonces en la reordenación la fila 3 pasa
a ser la fila 6, y la columna 3 pasa a ser la columna 6. Nótese el significado del término
“reordenación común”, que en términos más formales supone lo siguiente.
Definición 9.1.6 Dos grafos G = (V, A) y G = (V , A ), representados por sendas matrices
de vecindades M y M , son isomorfos si existe una matriz de permutaciones P tal que
M = P M P −1 .
Una matriz (cuadrada) P con ceros y unos se dice de permutaciones si tiene un único 1
por fila, y un único 1 por columna. Revise el lector el ejercicio 5.2.10. Estas matrices son
ortogonales, es decir, P −1 = P . En la identidad de arriba, multiplicar por P por la izquierda
intercambia las filas, y multiplicar por P −1 (o mejor, por P ) por la derecha, las columnas.
13
O Saint Brendan, si no tiene usted la suerte de ser canario.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
12
Capı́tulo 9. El lenguaje de los grafos
Para cercioranos de la equivalencia entre las definiciones 9.1.5 y 9.1.6, y comprobar cómo
la matriz de permutaciones P se corresponde exactamente con la biyección φ entre vértices,
veamos el ejemplo que abrı́a este apartado: si tomamos
Versión preliminar, 28 de octubre de 2018
a
⎛
a 0
b ⎜1
M= ⎜
c ⎝0
d 0
b
1
0
0
0
c d
⎞
0 0
0 0⎟
⎟
0 0⎠
0 0
y
entonces
1
⎛
1 0
2⎜0
M = ⎜
3⎝0
4 0
⎛
M = P · M · P ,
donde
0
⎜0
P =⎜
⎝1
0
2
0
0
0
0
0
0
0
1
3
0
0
0
1
1
0
0
0
4
⎞
0
0⎟
⎟
1⎠
0
⎞
0
1⎟
⎟.
0⎠
0
Obsérvese cómo P se corresponde con la aplicación φ descrita anteriormente.
A. Almas de grafos
Lo común de los dos grafos que tratába- G a c
G
mos antes queda recogido por la representa1
2
ción que aparece en el último esquema de la
4
3
derecha, que es una una suerte de grafo desb
d
nudo, sin etiquetas en los nodos que representan vértices, al que nos referiremos como el alma del grafo14 . En las almas no hablamos
de vértices sino de nodos, y no hablamos de aristas, sino de conexiones entre nodos, simplemente para resaltar que las almas de los grafos son entes15 de naturaleza distinta a la de los
grafos en sı́. Usaremos almas de grafos, y no los grafos en sı́, en las discusiones en las que los
nombres de los vértices no aportan información relevante.
Obsérvese que los grafos en sı́ guardan, respecto de sus almas, la misma relación que la
matriz de vecindades (con sus filas y columnas etiquetadas) respecto de esa misma matriz
pero sin etiquetas ni nombres en filas o columnas.
A un alma se le puede dar cuerpo 16 de grafo asignándole nombres a los nodos para
transformarlos en vértices. Nótese que dos grafos son isomorfos si tienen la misma alma, o
recı́procamente, si se obtienen de la misma alma asignando nombres a los nodos del alma.
B. Almas en acción17
Las almas son muy útiles (como paso intermedio) cuando intentamos exhibir todos los
grafos que cumplen determinadas caracterı́sticas. Veamos aquı́ un ejemplo para ilustrar esta
idea, aunque más adelante la usaremos con denuedo. Supongamos que queremos exhibir todos
los grafos con los cuatro vértices {1, 2, 3, 4} que tienen 3 aristas. En total hay
4
2
= 20 de ellos.
3
14
¡Ah!, pero, ¿los grafos tienen alma? Y cuerpo, sı́ señor. Un alma es un grafo desnudo: metafı́sica escolástica.
¿Entelequias? Esta discusión empieza a exigir, como música ambiental, canto gregoriano.
16
Reencarnaciones. Quizás ahora música de tambores, crótalos y cuencos tibetanos.
17
No, no es una ONG.
15
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
13
9.1. Grafos
A la vista de la proposición 9.1.3, las posibles sucesiones de grados son cuatro números
g1 ≤ g2 ≤ g3 ≤ g4 , todos ellos entre 0 y 3, de manera que g1 + g2 + g3 + g4 = 6. Toca ser
metódico y analizar la consiguiente casuı́stica. Vamos con ello.
Versión preliminar, 28 de octubre de 2018
Si hay un vértice de grado 3, ya se usan las 3 aristas y los
otros vértices habrán de ser de grado 1. La sucesión de grados es
(1, 1, 1, 3), que se corresponde con el alma de la derecha.
alma número 1
Suponemos ya que no hay vértices de grado 3.
Ha de haber al menos dos vértices de grado 2, porque si no la suma de los cuatro grados no llegarı́a
a 6. Por tanto, restan dos posibilidades para la sucesión de grados: (0, 2, 2, 2) y (1, 1, 2, 2), que dan
alma número 3
alma número 2
lugar a las dos almas que dibujamos a la derecha.
Puesto que las sucesiones de grados en estas almas son distintas, no hay posibles isomorfismos entre los grafos que tengan distintas almas, y, por tanto, a mayor abundamiento, grafos
con distintas almas serán distintos. Por tanto, he ahı́ nuestro enfoque: para cada una de las
tres almas buscaremos todos los grafos distintos que podemos tener con ese alma concreta, es
decir, asignaremos nombres de entre {1, 2, 3, 4} a los nodos (para transformarlos en vértices).
El alma es como una plantilla en la que al poner nombres damos cuerpo al grafo.
A primera vista, sin pensar, podı́amos decir que, como hay cuatro posiciones en el alma
y cuatro sı́mbolos posibles, entonces cada alma da lugar a 4! grafos: cierto, pero no son todos
distintos. Procedamos con cuidado.
Consideremos el alma numero 1. Observará el lector atento que aquı́ basta con decidir
cuál es el nombre del nodo de grado 3. De manera que sólo hay 4 grafos distintos con vértices
de {1, 2, 3, 4} con este alma. Por ejemplo, si decidimos que el nodo de grado 3 recibe el nombre
de 2, entonces el grafo tiene aristas: A = {{2, 1}, {2, 3}, {2, 4}}.
Vamos con el alma 2. De nuevo, hay sólo 4 grafos distintos: aquı́ basta con decidir el
nombre del nodo de grado 0. Si, por ejemplo, el nodo de grado 0 recibe el nombre de 2,
entonces el grafo tiene aristas: A = {{1, 3}, {3, 4}, {4, 1}}.
Finalmente, analicemos el alma 3, que es sin duda la que más trabajo da de las tres.
Elegimos nombre para uno de los nodos de grado 1, después nombre para el vecino de grado 2,
y luego, por último, de los dos nombres restantes elegimos el que asignamos al nodo de grado 1,
y el grafo queda determinado. Este proceso se puede llevar a cabo de 4 × 3 × 2 = 24 maneras.
Por ejemplo, si en este proceso elegimos, por orden, el nombre “2” para el nodo de grado 1,
el nombre “4” para el nodo vecino de grado 2 y el nombre “1” para el otro nodo de grado 1,
tendremos las aristas A = {{2, 4}, {4, 3}, {3, 1}}.
Pero – tenı́a que haber un pero – hemos impuesto un orden espurio en los nodos de grado 1
y no hay tal. Por ejemplo, si en este proceso elegimos por orden el nombre “1” para un nodo
de grado 1, el “3” para el nodo vecino de grado 2 y el “2” para el otro nodo de grado 1,
obtenemos las mismas aristas. Como consecuencia del orden impuesto en los nodos de grado 1,
cada grafo aparece 2 veces. De manera que tenemos que dividir por 2, para obtener finalmente
que con este alma tenemos 24/2 = 12 grafos distintos.
Reuniendo las consideraciones sobre las tres almas, vemos que tenemos un total de 20 =
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
14
Capı́tulo 9. El lenguaje de los grafos
Versión preliminar, 28 de octubre de 2018
4 + 4 + 12 grafos distintos con vértices {1, 2, 3, 4} y 3 aristas. Los que tienen alma 1 son todos
isomorfos entre sı́, y lo mismo ocurre para los que tienen alma 2 o los que tienen alma 3. De
manera que distintos hay 20, y no isomorfos sólo tenemos 3, tantos como almas.
No quisiéramos que el ejemplo anterior pudiera inducir al lector a creer que la sucesión de
grados determina el alma de un grafo. Si ası́ fuera tendrı́amos un discriminador de isomorfı́a.
Pero no, qué pena18 . Las dos almas que siguen,
tienen la misma sucesión de grados, a saber, (1, 1, 1, 2, 2, 3), pero no son la misma. Para argumentar por qué estos dos grafos (almas) no son isomorfos conviene darles cuerpo nombrando
los vértices; usaremos números para el de la izquierda y letras para el de la derecha19 :
f
6
1
2
3
4
5
a
b
c
d
e
Si hubiera un isomorfismo φ entre los conjuntos de vértices {1, 2, 3, 4, 5, 6} y {a, b, c, d, e, f },
los respectivos vértices de grado tres deberı́an corresponderse, ası́ que necesariamente tendrı́amos que φ(2) = c. El vértice 3 tiene grado dos y es vecino del vértice 2, ası́ que su imagen
φ(3) ha de tener grado dos y ser vecino de φ(2) = c. Hay dos posibilidades para φ(3), puede
ser b ó d. Supongamos que fuera b (el argumento si fuera d es análogo, como puede comprobar el lector), esto es, que φ(3) = b. Seguimos. Nos fijamos ahora en el vértice 4, que tiene
grado dos y es vecino del vértice 3. Ası́ que φ(4) ha de ser un vértice de grado dos, vecino de
φ(3) = b, pero, ¡b no tiene vecinos de grado dos!. Concluimos que no hay tal isomorfismo φ.
Más expeditivamente, para ver que estos grafos no son isomorfos basta con observar que
el grafo de la izquierda tiene un par de vértices de grado 2 que son vecinos entre sı́ (propiedad
invariante por isomorfismos), pero el de la derecha no.
Puede sorprender lo sencillo que resulta contar el número de grafos que hay con n vértices
y k aristas, en comparación con lo laborioso que resulta clasificarlos (en función de las distintas
almas) y luego contar los posibles etiquetados. El recuento del número de grafos no isomorfos
con n vértices y k aristas es complicado. Remitimos al lector al capı́tulo 28, en el que,
aplicando la combinación de funciones generatrices y teorı́a de grupos que se conoce como
teorı́a de Pólya (¡alta tecnologı́a!), exhibiremos un método para enumerar grafos no isomorfos.
C. Sobre cuerpos y almas20
El meticuloso lector, quizás abrumado por tanta disquisición de tinte escolástico sobre
cuerpos y almas de grafos, echará en falta una definición formal de alma de un grafo.
Parece, y ası́ es en realidad, a qué negarlo, que hemos argumentado con la representación
pictórica de un grafo como puntos (vértices) etiquetados en el plano y arcos entre ellos. Que
el alma no es sino ese mismo dibujo, en el que eliminamos las etiquetas de los vértices (para
18
Alma en pena: dı́cese del lector que se ha perdido en la contabilidad anterior. No, usted no, el otro.
No atribuya el suspicaz lector, por favor, connotación polı́tica o cultural alguna a esta asignación. Nada
más lejos de nuestra intención.
20
Corps et âmes, que dirı́a Van der Meersch.
19
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
15
9.1. Grafos
que queden en simples nodos). Y que dar cuerpo no es sino la operación de nombrar nodos.
La definición formal casi puede sonar a una argumentación ad divinitatem:
Versión preliminar, 28 de octubre de 2018
Definición 9.1.7 El alma de un grafo es su clase de equivalencia por isomorfı́a.
Es decir, el alma de un grafo es la colección completa de grafos que son isomorfos a él.
El lector interesado deberı́a comprobar que la relación de isomorfı́a entre grafos define una
relación de equivalencia en la colección de todos los grafos21 .
La crı́ptica y económica frase de que, por ejemplo, los grafos que se exhiben a continuación
son todos los grafos con 3 vértices, salvo isomorfismos, quiere decir que son un sistema de
representantes de las clases de isomorfı́a de los grafos con 3 vértices. Es decir, que no son
isomorfos entre sı́, y que cualquier grafo con 3 vértices es isomorfo a uno de ellos. O, finalmente
(nótese que, en realidad, se trata de almas de grafos), que cualquier grafo de 3 vértices se
obtiene dando cuerpo (asignando nombre a los nodos) a uno (y sólo uno) de ellos.
Por cierto, a las almas de grafos se les suele denominar (en definición negativa) grafos
no etiquetados, y a la operación de dar cuerpo, etiquetar.
Nuestra última precisión en este contexto concierne a las matrices de vencindades. Las
almas y los grafos no etiquetados con n vértices (nodos) pueden también entenderse como
clases de equivalencia en el conjunto M de matrices cuadradas n × n simétricas, con entradas
que son ceros y unos, y con ceros en la diagonal. En esta relación de equivalencia (el lector
comprobará sin dificultad que es tal), dos matrices de M se dicen equivalentes si una se
obtiene de la otra aplicando una misma permutación a las filas y a las columnas.
9.1.3.
Algunas familias de grafos
En muchas de las cuestiones que trataremos en estas páginas aparecerán repetidamente
algunos grafos particulares, para los que conviene disponer de nombres y notaciones especı́ficas. Enumeramos a continuación, y describimos someramente, algunos de los más relevantes.
Hablaremos aquı́ de grafos salvo isomorfı́a, por lo que no haremos explı́citas las etiquetas de
los vértices. Nos estaremos refiriendo, pues, a almas de grafos22 .
Diremos que un grafo es un Ln , un grafo lineal con n vértices (n ≥ 2) si tiene n vértices,
de los que dos son de grado 1 y el resto, si los hay, de grado 2. Por lo tanto, es isomorfo a:
Los grafos circulares Cn tienen n vértices, n ≥ 3, y todos de grado 2. De hecho, es el
único grafo conexo con estas propiedades (ejercicio 9.1.21). Los siguientes dibujos representan
21
Como ya sabemos que la isomorfı́a entre grafos requiere tener un mismo número de vértices, el lector que
se pudiera sentir (lógicamente) cohibido ante la inmensidad de la colección de todos los grafos concebibles
n
quizás prefiera restringirse a los de n vértices, de los que “sólo” hay 2( 2 ) , y comprobar que en ese conjunto
de grafos la isomorfı́a es relación de equivalencia.
22
Almas gemelas, podrı́amos decir, que en lugar de vagar eternamente se reúnen, por afinidades, en familias.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
16
Capı́tulo 9. El lenguaje de los grafos
los primeros casos:
···
C3
C4
C5
Versión preliminar, 28 de octubre de 2018
Un grafo con n vértices con todas las
vértices; en sı́mbolo, Kn :
n
2
C10
posibles aristas será un grafo completo con n
···
K3
K4
K5
K10
En el otro extremo encontramos los grafos vacı́os Nn , con n vértices y ninguna arista
(son los grafos complementarios de los completos, véase el ejercicio 9.1.6).
En diversas ocasiones utilizaremos una clase de grafos conocidos como grafos bipartitos,
en los que el conjunto de vértices se parte en dos clases, de manera que no hay aristas entre
vértices de la misma clase. Dentro de esta familia habitan los grafos bipartitos completos,
a los que nos referiremos con el sı́mbolo Kr,s , donde los subı́ndices indican los tamaños de
los dos conjuntos de vértices.
El grafo Kr,s tiene, pues r + s vértices, divididos en dos clases, una con r
vértices, y la otra con s; e incluye (todas) las r × s posibles aristas que van de
los vértices de un tipo a los del otro (de ahı́ el apelativo de “completo”, y la
letra K usada en su descripción). En el dibujo de la derecha aparece un K4,6 .
Un grafo bipartito con r vértices de un tipo y s de otro se puede obtener
del Kr,s sin más que seleccionar un cierto subconjunto de sus aristas.
Estos grafos bipartitos aparecerán a menudo, y en particular en la descripción del problema de “asignación de tareas” que presentamos al comienzo de este capı́tulo, y que analizaremos en detalle en el apartado 11.1. Más adelante, cuando dispongamos de más lenguaje,
veremos un par de caracterizaciones alternativas de los grafos bipartitos: en términos de la
ausencia de “ciclos” de orden impar (lema 9.1.12), de autovalores de su matriz de vecindades
(lema 9.1.19), y de coloreado (lema 10.2.3). Con estas herramientas será directo comprobar,
por ejemplo, que los grafos Ln , o los grafos circulares Cn con n par (pero no si n es impar), son
grafos bipartitos; aunque quizás el lector quiera hacerlo apelando a la definición, separando
los vértices en dos clases y comprobando que. . .
La definición de la siguiente familia de grafos es abstracta: en el grafo del cubo, Qn ,
n ≥ 1, sus vértices van etiquetados con las listas de longitud n que podemos formar con ceros
y unos. En total, pues, tiene 2n vértices. Dos vértices de Qn serán vecinos si las listas de
ceros y unos que los identifican difieren en una única posición.
Mostramos a continuación los dibujos de Q1 , Q2 y Q3 en los retı́culos de una, dos y tres
dimensiones, que nos ayudan a entender su estructura (y justifican su nombre). Obsérvese
que Q1 es isomorfo a L2 , y Q2 , a C4 . Quizás el lector quiera intentar23 dibujar el grafo Q4 .
23
Allá él.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
17
9.1. Grafos
Q1
(0)
(1)
z
Q3
y
(0, 0, 1)
(0, 1)
(1, 1)
Versión preliminar, 28 de octubre de 2018
x
(0, 0)
(0, 1, 1)
...
...
(1, 0, 1)
... (1, 1, 1)
.
(0, 0,....0)
y
.
.. .........................(0, 1, 0)
.
.
.
....
Q2
x
(1, 0)
(1, 0, 0)
(1, 1, 0)
Como hay n distintas maneras de variar una posición en una n-lista, todos los vértices
de Qn tienen grado n (por lo que Qn es un grafo n-regular). De lo que deducimos que el
número de aristas de un Qn es
2n
2 |A(Qn )| =
n = n 2n
grado(v) =
v∈V (Qn )
=⇒
|A(Qn )| = n 2n−1 .
j=1
Los grafos Qn son también bipartitos. Veamos: la mitad de los vértices de Qn están
etiquetados con n-listas con número par de ceros, y la otra mitad, con un número impar.
Pero dos listas que tienen un número par de ceros no pueden ser vecinas en este grafo, y
lo mismo ocurre para las impares. Quizás el lector se anime a dibujar Q3 de manera que se
haga evidente ese carácter bipartito, situando a la izquierda los cuatro vértices etiquetados
con listas con un número par (o cero) de ceros, y a la derecha los otros cuatro, para luego
trazar las aristas correspondientes.
El grafo del cubo (tridimensional) Q3 , por cierto, es uno de los cinco grafos conocidos como
grafos platónicos, que están asociados a los conocidos y casi mágicos sólidos platónicos, y
que aparecerán, con luz y brillo propios, en la discusión sobre planaridad de la sección 10.4.
Debajo de estas lı́neas puede contemplar el lector su elegante aspecto.
tetraedro
cubo
octaedro
dodecaedro
icosaedro
Hay, por supuesto, otros muchos grafos interesantes que no pertenecen a
ninguna de las familias anteriores: algunos son parte de familias más exóticas, otros son casi huérfanos. . . En el dibujo de la izquierda se representa
el grafo de Petersen24 , que consta de 10 vértices, todos ellos de grado 3.
24
Bautizado ası́ en honor de su “diseñador”, el matemático danés Julius Peter Christian Petersen (1839–
1910). Las portadas de dos afamadas revistas de investigación en cuestiones relacionadas con la teorı́a de
grafos, como son Journal of Graph Theory y Discrete Mathematics, ilustran sus portadas con él.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
18
9.1.4.
Capı́tulo 9. El lenguaje de los grafos
De paseo por un grafo. Conexión
Versión preliminar, 28 de octubre de 2018
Si el lector observa con detenimiento los dos
G1
G2
grafos que dibujamos a la derecha, se percatará de
que en el grafo G2 las aristas del grafo permiten
“llegar” de un vértice a cualquier otro, algo que no
ocurre en G1 . Ası́ que G1 es “conexo”, mientras que G2 no lo es. Para introducir formalmente
esta noción, necesitamos algo de lenguaje previo.
A. Paseos
La siguiente noción define formalmente la acción de “moverse” por un grafo: ir pasando
de vértice a vértice siguiendo siempre las aristas del grafo.
Definición 9.1.8 Un paseo en un grafo G = (V, A) es una sucesión finita de vértices
x0 , x1 , x2 , . . . , xl
(pueden repetirse vértices)
de forma que {xi , xi+1 } es una arista de G, para cada i = 0, 1, . . . , l − 1.
Sitúese el lector en un vértice del grafo: ya tiene x0 . Decida entonces, a la vista de las
aristas que inciden en x0 , a qué vértice puede trasladarse, escoja uno de ellos y ya tendrá x1
(podrı́a ser el mismo vértice, si es que hubiera un lazo y lo eligiéramos). Ahora observe
detenidamente las aristas que parten de x1 y vuelva a elegir. Cuando haya terminado este
entretenido recorrido, le rogamos que anote los vértices que haya ido visitando (en riguroso
orden). Ya tendrá un paseo.
Diremos que el primer vértice de un paseo es el vértice inicial, que el último es el vértice
final, y que el paseo conecta estos dos vértices. Si ambos extremos coinciden, esto es, si el
paseo comienza y termina en el mismo vértice, hablaremos de un paseo cerrado.
Hay quien escribe los paseos añadiendo las aristas que se usan, en la forma
x0 , (a1 ), x1 , (a2 ), x2 , (a3 ), . . . , xl−1 , (al ), xl
donde cada arista aj une los vértices xj−1 y xj ; aunque esta lista tiene la misma información
que la anterior25 . La longitud del paseo es el número de aristas que se recorren (l, en el
ejemplo anterior). Note el lector que no nos referimos al número de aristas distintas utilizadas,
pues éstas se pueden repetir, sino al número de “pasos” por arista que efectuamos durante
el paseo. Por conveniencia, incluiremos la posibilidad de tener paseos de longitud 0, “paseos
vacı́os” en los que no se sale del vértice inicial.
B. Paseos eficientes
Muchos de los algoritmos y procedimientos que veremos en las páginas siguientes buscan
maneras de recorrer las aristas o los vértices de un grafo de manera “económica”. Si los
25
No ası́ en el caso de un multigrafo, pues entre dos vértices puede haber más de una arista, y quizás sea
necesario registrar cuál se usa realmente.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
19
Versión preliminar, 28 de octubre de 2018
9.1. Grafos
vértices del grafo representan ciudades y las aristas carreteras entre ellas, puede interesar
conectarlos con paseos que no repitan aristas; o más aún, con paseos en los que no se repitan
vértices (lo que, en particular, impide que se repitan aristas). Aunque a veces, al tiempo que
pretendemos ser económicos, también seremos ambiciosos, y nos interesará recorrer todas las
aristas, o quizás visitar todos los vértices.
Estos diversos objetivos dan lugar, en la literatura de grafos, a un amplio repertorio de
términos para describir distintos tipos de paseos adaptados a cada situación particular: los
que no repiten aristas, los que no repiten vértices, los que visitan todos los vértices, etc.
Desafortunadamente, no hay nomenclaturas bien establecidas, y el lector podrá encontrar
en otros textos nombres como caminos, caminos simples, circuitos, ciclos, sendas, etc., y no
en todos ellos con el mismo significado26 . Ası́ que, en alarde de continencia, no nos dejaremos
llevar por la tentación taxonómica, y en lugar de bautizar cada tipo de paseo con un nombre
especial, algo que despista, se olvida y obliga a repasar las definiciones en cada ocasión,
optaremos27 por utilizar circunloquios como “paseos que no repiten vértices”, “paseos que
no repiten aristas”, “paseos que visitan todos los vértices sin repetir aristas”, etc. Confiamos
en que el lector sepa disculpar estos excesos perifrásticos.
La siguiente observación, que habla de cómo extraer paseos “económicos” a partir de un
paseo dado, será usada repetidamente en lo que sigue:
Lema 9.1.9 Supongamos que en un grafo G con n vértices existe un paseo que conecta dos
vértices u y v distintos. Entonces
a) existe un paseo entre u y v que no repite vértices;
b) existe un paseo entre u y v de longitud a lo sumo n − 1.
Demostración. Supongamos que el paseo que conecta u con v tiene longitud l y es de la
forma (x0 , x1 , . . . , xl−1 , xl ), donde x0 = u y xl = v. Si en esa lista no hay vértices repetidos,
no hay nada que probar. En caso contrario, existirán xi y xj , con 0 ≤ i < j ≤ l, tales que
xi = xj . De la lista original podremos “cortar” el tramo entre xi+1 y xj de manera que el paseo
resultante siga conectando u con v. Si en este nuevo paseo no se repiten vértices, habremos
terminado, y en caso contrario repetimos la cirugı́a. En cada ocasión, la lista pierde al menos
un vértice (y la longitud del paseo se reduce en al menos en dos unidades), de manera que,
tras un número finito de iteraciones tendremos un paseo entre u y v que no repite vértices.
La segunda parte se sigue de la primera, pues el peor caso serı́a que el paseo incluyera,
sin repetirlos, los n vértices del grafo.
De entre los múltiples tipos de paseos que podemos considerar, los siguientes reciben un
nombre que, éste sı́, es de uso frecuente y bien establecido:
Definición 9.1.10 Un ciclo en un grafo G es un paseo x0 , x1 , . . . , xl , con l ≥ 3, donde
x0 = xl (esto es, el paseo es cerrado) y tal que los vértices son todos distintos (excepto el
primero y el último, claro). La longitud del ciclo x0 , x1 , . . . , xl (con x0 = xl ) es justamente l.
26
Tampoco la literatura anglosajona es unánime, y se pueden encontrar términos como walk, path, trail,
circuit, cycle, etc., (o chemin, boucle, cheminement, etc., en la literatura francesa) con diversos significados.
27
Con dos salvedades: en la sección 10.1 elevaremos la categorı́a de ciertos paseos honrándolos con los ilustres
nombres de Euler y Hamilton (lo que no es mala distinción).
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
20
Capı́tulo 9. El lenguaje de los grafos
Recalcamos que un ciclo contiene al menos tres vértices. Además, si tenemos un paseo
cerrado con al menos tres vértices, siempre podemos extraer de él un ciclo, sin más que seguir
la misma estrategia usada en el lema 9.1.9. Por cierto, decir que un grafo G contiene un ciclo
de longitud l es lo mismo que afirmar que contiene un grafo tipo Cl como subgrafo.
Versión preliminar, 28 de octubre de 2018
Definición 9.1.11 Llamaremos cuello de un grafo G, en sı́mbolo cuello(G), al mı́nimo de
las longitudes de los ciclos de G. En el caso en el que G no contenga ciclos, convenimos que
cuello(G) = +∞.
Un ciclo es una estructura invariante por isomorfismos. Y el cuello de
un grafo también lo es. Esta observación permite, en ocasiones, decidir
que dos grafos no son isomorfos. Véanse, por ejemplo, los que dibujamos
a la izquierda, que tienen iguales número de vértices y de aristas, y todos
G
los vértices son de grado 3. Parece difı́cil determinar si son o no isomorfos
sin recurrir a la comprobación de las 6! = 720 posibles biyecciones. Pero
como cuello(G) = 3 y cuello(G ) = 4, no pueden ser isomorfos.
Los ciclos que pueda (o no) contener un grafo dan mucha información sobre su estructura.
Por ejemplo, dedicaremos la sección 9.2 al estudio de los “árboles”, los grafos conexos que no
contienen ciclos. También los grafos bipartitos se pueden caracterizar en términos de ciclos.
G
Lema 9.1.12 Un grafo G es bipartito si y sólo si no contiene ciclos de longitud impar.
Demostración. a) Sea V (G) = A ∪ B el conjunto de vértices del grafo bipartito G. Si no
tiene ciclos, no hay nada que probar. Supongamos que contiene un ciclo (v0 , v1 , . . . , vk−1 , v0 )
de longitud k. Podemos suponer que v0 ∈ A. Entonces v1 ∈ B, luego v2 ∈ A, etc. Si k fuera
impar, entonces vk−1 estarı́a en A. Pero la arista (v0 , vk−1 ) no puede pertenecer al grafo.
b) Supongamos, en el otro sentido, que G es un grafo sin ciclos impares. Podemos suponer
que G es conexo, pues de lo contrario argumentarı́amos sobre cada una de sus componentes.
Fijamos un vértice v0 y dividimos los vértices de G en dos clases: en A ubicamos aquellos
vértices v de V (G) tales que el paseo más corto desde v0 hasta v tiene longitud par, mientras
que en B irı́an aquellos con paseos más cortos desde v0 de longitud impar. Claramente A y B
forman una partición de V (G), y además v0 ∈ A. Queda comprobar que no hay aristas entre
los vértices de A (ni entre los de B). Supongamos que hubiera una arista entre dos vértices
v1 y v2 de A. Obsérvese que ni v1 ni v2 pueden ser v0 . Entonces, el paseo de v0 a v1 , esa
arista entre v1 y v2 , y luego el paseo de v2 hasta v0 , conformarı́an un ciclo de orden longitud
impar en el grafo. El argumento para los vértices de B es análogo.
C. Conexión y componentes conexas
Definición 9.1.13 Un grafo G = (V, A) se dice conexo si, dados cualesquiera dos vértices
v, w ∈ V , existe un paseo que los conecta.
Por convenio28 , diremos que un grafo con un único vértice es también conexo (estará
conectado consigo mismo por un “paseo vacı́o”, de longitud 0).
28
Más bien por comodidad, para que todo cuadre; poderoso estı́mulo a la hora de diseñar definiciones.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
21
Versión preliminar, 28 de octubre de 2018
9.1. Grafos
¿Cómo se comprueba que un grafo es conexo? Lector, no nos referimos a los pequeños
ejemplos dibujados en este libro, en los que la conexión se verifica por simple inspección visual.
Si por ejemplo el grafo constara de 1000 vértices, siguiendo fielmente la definición anterior,
y su (altamente inquietante) exigencia “dados cualesquiera
dos vértices. . . ”, tendrı́amos que
parejas
posibles. Pero como veremos
comprobar la existencia (o no) de paseos para las 1000
2
más adelante, hay métodos bastante más eficaces para dirimir la cuestión; vea el lector
interesado el apartado C de esta misma sección, o los algoritmos de la sección 9.2.2.
Si el grafo no es conexo, es decir, si contiene vértices que no pueden ser conectados por
paseos, es natural esperar que el grafo esté formado por diversos “bloques” de vértices, cada
uno de los cuales será un grafo conexo. Para formalizar esta intuición introducimos ahora
cierto lenguaje, confiando en que el lector no se desconecte por el camino.
En el conjunto de los vértices de G definimos la siguiente relación R: uRv si y sólo si u
es “conectable” en G con v (esto es, existe un paseo en G que conecta u con v). Vamos a
comprobar que esta relación es de equivalencia.
La reflexividad es evidente, gracias al ardid de admitir paseos de longitud 0. Para la
simetrı́a, observemos que si dos vértices (distintos) u y v cumplen que uRv, será porque
existe un paseo conectando u con v. Ese mismo paseo, “leı́do” al revés, conecta v con u, ası́
que vRu. Finalmente, para la transitividad, digamos que tres vértices u, v, w, con u = v y
v = w, cumplen que uRv y vRw. Como uRv, hay un paseo que conecta u con v. Y como
vRw, habrá otro conectando v con w. “Uniendo” ambos, es decir, siguiendo el paseo de u
a v y luego el de v a w, hallamos un paseo que conecta u con w. Ası́ que uRw.
Esta relación de equivalencia parte el conjunto de vértices de G en unas clases de equivalencia. Las componentes conexas, o simplemente componentes, de G son29 los subgrafos
inducidos por cada uno de estos conjuntos de vértices (los subgrafos formado por esos vértices
y todas las aristas que los unieran en G).
v1 v2 v4 v3 v5
Las componentes conexas (que podrı́an
v2
v1 0 1 1 0 0
constar de un único vértice, si es que éste
v3
v2 1 0 1 0 0
v1
era aislado) son grafos conexos. Un grafo G
v4 1 1 0 0 0
v3 0 0 0 0 1
es la unión de sus componentes conexas.
v5
v5 0 0 0 1 0
v
4
El lector podrá comprobar que la matriz de
vecindades de un grafo con varias componentes conexas se puede escribir, quizás permutando
adecuada y simultáneamente las filas y las columnas, como una matriz por cajas (en el sentido
habitual del álgebra lineal). Véanse, en el ejemplo de grafo con dos componentes conexas que
mostramos a la derecha, las correspondientes cajas con ceros.
En ocasiones, como en la figura, un grafo conexo deja de serlo
al quitarle una arista particular (la arista a, en la figura). Una
a
arista a de un grafo G es un puente si el grafo G \ {a} que se
obtiene de G al quitar la arista a (y dejar los mismos vértices)
tiene más componentes conexas que G. El lector puede comprobar que, en realidad, tendrá
exactamente una componente conexa más que G. Ası́ que si G es conexo y a es una arista
puente, G \ {a} consta de exactamente dos componentes conexas (véase el ejercicio 9.1.23).
29
Definición alternativa y visual: imagine a cada vértice como un botón sobre la mesa, y a cada arista como
un hilo que une dos botones. Tome uno de ellos y levántelo: lo que cuelgue de él será una componente conexa.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
22
Capı́tulo 9. El lenguaje de los grafos
Parece razonable suponer que un grafo conexo, es decir, en el que todos los vértices
son conectables, deba contener un número “suficiente grande” de aristas. Pinte el lector n
vértices e intente luego ubicar aristas, lo más económicamente posible, de manera que el grafo
resultante sea conexo. ¿Cuántas ha usado? Al menos n − 1, seguro. El siguiente resultado
certifica esta intuición (véase también la generalización del ejercicio 9.1.22):
Versión preliminar, 28 de octubre de 2018
Proposición 9.1.14 Si G es un grafo conexo, entonces |A(G)| ≥ |V (G)| − 1.
Demostración (por inducción en |A|, el número de aristas). Si |A| = 0, esto es, si no
tenemos aristas, para que el grafo sea conexo, sólo puede haber un vértice. Si |A| = 1 y el
grafo ha de ser conexo, sólo cabe la posibilidad de que sea el grafo L2 , que tiene dos vértices.
Supongamos cierto que si tenemos un grafo conexo con k aristas, para cualquier k ≤ m,
entonces |V | ≤ k + 1. Y consideremos un grafo conexo G con |A(G)| = m + 1 y una arista a
de G cualquiera. Llamemos H = G \ {a} al grafo que se obtiene de G quitando la arista a.
El grafo H tiene los mismos vértices y una arista menos que G. Caben dos posibilidades:
1) Si H sigue siendo conexo (es decir, si a no era arista puente en G), por hipótesis de
inducción (tiene m aristas), como |A(H)| = |A(G)| − 1 y V (G) = V (H), tendremos que
|A(H)| ≥ |V (H)| − 1
=⇒
|A(G)| ≥ |V (G)| .
2) Pero si a era puente en G, H ya no es conexo, sino que tiene dos componentes conexas;
llamémoslas H1 y H2 . Ambas son grafos conexos y tienen menos aristas que G (podrı́a incluso
ocurrir que estos subgrafos constaran de un único vértice). Teniendo en cuenta que
|A(H1 )| + |A(H2 )| = |A(H)| = |A(G)| − 1
y
|V (H1 )| + |V (H2 )| = |V (H)|,
y con la hipótesis de inducción, terminamos la demostración:
|A(H1 )| ≥ |V (H1 )| − 1
=⇒ |A(G)| − 1 ≥ |V (G)| − 2 ⇒ |A(G)| ≥ |V (G)| − 1 .
|A(H2 )| ≥ |V (H2 )| − 1
Note el lector que la mera condición |A| ≥ |V | − 1 no garantiza
que el grafo sea conexo. Véase a la derecha el dibujo de un grafo
con 7 aristas y 6 vértices que claramente no es conexo. Los grafos
conexos en los que se alcanza la igualdad |A| = |V | − 1 son conocidos como árboles; a ellos
dedicaremos atención especial en la sección 9.2.
D. Número de paseos, matriz de vecindades y conexión
Llamemos mij a las entradas de la matriz M de vecindades de un grafo G con vértices
(ya ordenados) (v1 , . . . , vn ). Los números mii son 0 para cada i = 1, . . . , n. Y si i = j, mij
será 1 si vi es vecino de vj y 0 en caso contrario. Obsérvese que, por tanto, cada mij cuenta
el número de paseos de longitud 1 que hay entre el vértice vi y el vértice vj . Pero, ¿cómo
contar el número de paseos de longitud mayor entre cada par (vi , vj )? El siguiente resultado
proporciona un método de cálculo a través de las sucesivas potencias de M .
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
23
9.1. Grafos
Versión preliminar, 28 de octubre de 2018
Teorema 9.1.15 Si M es la matriz de vecindades de un grafo G, la entrada (i, j) de la
a veces
(a)
matriz M a = M × · · · ×M , que denotamos como mij , cuenta el número de paseos de
longitud a entre los vértices vi y vj .
Demostración (por inducción en l). El caso a = 1 ha sido mencionado hace un momento.
Consideremos todos los paseos de longitud a entre vi y vj cuyo penúltimo vértice visitado
(a−1)
cuenta el número de paseos de longitud a−1 entre vi
es vk . Por hipótesis de inducción, mik
y vk . Por otro lado, mkj = 0 si es que vk no es vecino de vj y es un 1 en caso contrario.
(a−1)
mkj paseos de longitud a entre vi y vj
Ası́ que, aplicando la regla del producto, hay mik
cuyo penúltimo vértice visitado es vk . Por la regla de la suma, el número total de caminos
de longitud a entre vi y vj es
n
(a−1)
mik
mkj .
k=1
Para completar la demostración, sólo queda observar que, como M a = M a−1 M , las reglas de
(a)
multiplicación de matrices nos dicen que mij coincide con la suma anterior.
(2)
Obsérvese, como caso particular, que mii = grado(vi ) para cada i = 1, . . . , n, pues cada
paseo de longitud 2 de un vértice a sı́ mismo se corresponde con una arista que incide en ese
vértice. Esto es, la diagonal de la matriz M 2 contiene la sucesión de grados del grafo.
Ejemplo 9.1.2 Consideremos el grafo G de la figura de la derecha,
que consta de cinco vértices y seis aristas, y sobre el que queremos
calcular, por ejemplo, el número de paseos de longitud tres que hay
entre los vértices 1 y 2.
1
2
3
5
4
La matriz de vecindades del grafo G, que denotamos por M , aparece debajo de estas
lı́neas, junto con sus primeras potencias:
⎛
⎜
⎜
M =⎜
⎜
⎝
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
⎞
⎟
⎟
⎟,
⎟
⎠
⎛
⎜
⎜
M2 = ⎜
⎜
⎝
3
1
2
1
0
1
3
1
2
1
2
1
2
1
0
1
2
1
3
1
0
1
0
1
1
⎞
⎛
⎟
⎟
⎟
⎟
⎠
⎜
⎜
y M3 = ⎜
⎜
⎝
2
6
2
6
3
6
4
5
5
1
2
5
2
5
2
6
5
5
4
1
3
1
2
1
0
⎞
⎟
⎟
⎟.
⎟
⎠
De la matriz M 3 deducimos que hay seis paseos distintos de longitud tres entre los vértices
1 y 2. Verifique el lector, sobre el dibujo del grafo, que son los siguientes: (1, 5, 1, 2), (1, 4, 1, 2),
(1, 2, 1, 2), (1, 2, 3, 2), (1, 2, 4, 2) y (1, 4, 3, 2).
♣
El teorema 9.1.15 proporciona, adicionalmente, una manera de comprobar si un grafo G
con n vértices y matriz de vecindades M es o no conexo. Ya sabemos (lema 9.1.9) que si
dos vértices se pueden conectar en un grafo con n vértices, es seguro que lo podrán hacer
utilizando un paseo cuya longitud sea a lo sumo n − 1. Como la entrada (i, j) de la matriz
= In + M + M 2 + · · · + M n−1
M
(donde In es la matriz identidad n × n) cuenta el número de paseos de longitud a lo sumo
n − 1 que existen entre los vértices vi y vj , tenemos que:
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
24
Capı́tulo 9. El lenguaje de los grafos
Teorema 9.1.16 Si todas las entradas de la matriz
= In + M + M 2 + · · · + M n−1
M
contiene algún 0.
son positivas, entonces G es conexo. Y viceversa, G no será conexo si M
Para el grafo del ejemplo 9.1.2, que consta de 5 vértices,
Versión preliminar, 28 de octubre de 2018
⎛
⎜
⎜
I5 + M + M 2 = ⎜
⎜
⎝
4
2
2
2
1
2
4
2
3
1
2
2
3
2
0
2
3
2
4
1
1
1
0
1
2
⎞
⎛
⎟
⎟
⎟,
⎟
⎠
⎜
⎜
pero I5 + M + M 2 + M 3 = ⎜
⎜
⎝
6
8
4
8
4
8
8
7
8
2
4
7
5
7
2
8
8
7
8
2
4
2
2
2
2
⎞
⎟
⎟
⎟,
⎟
⎠
lo que nos dice que el grafo es conexo, pero además que todos sus vértices se pueden conectar
con paseos de longitud a lo sumo tres, en lugar del cuatro que darı́a en este caso la cota
general del lema 9.1.9. Compruébelo, lector, sobre el propio dibujo.
del teorema 9.1.16 permite establecer las distinSi el grafo no es conexo, la matriz M
tas componentes conexas. Para comprobarlo, viene al caso la siguiente caracterización (en
negativo) de conectividad en un grafo.
Proposición 9.1.17 Un grafo G con matriz M no es conexo si y sólo si existe una matriz
de permutaciones P tal que
M1 0
,
PMP =
0 M2
donde M1 y M2 son matrices cuadradas no nulas.
Recuerde el lector, de la discusión del apartado 9.1.2, que una matriz de permutaciones
solo tiene un 1 por fila y por columna, y que el resto de sus entradas son ceros. El producto
de arriba (por P por la izquierda y por P por la derecha) significa una reordenación común
de filas y columnas de la matriz M . De manera que la matriz de vecindades de un grafo
disconexo tiene (tras quizás una oportuna reordenación de los vértices) una estructura en
cajas, que se corresponden con los vértices de cada componente, y esa estructura se conserva
con las sucesivas potencias que sugiere calcular el teorema 9.1.16. Y al revés, si el grafo es
conexo, no hay tal estructura en cajas, y (la suma de) las sucesivas potencias de la matriz
termina por hacer desaparecer los posibles ceros de la matriz de partida.
La proposición 9.1.17 tiene un limitado interés práctico para determinar la conectividad
de un grafo, pues requiere encontrar una matriz de permutaciones para la que la matriz
resultante tenga una estructura en cajas, o en sentido contrario, descartar su existencia. El
método del teorema 9.1.16, que requiere calcular potencias, sumarlas, e inspeccionar los elementos de la matriz resultante, es también un costoso desde el punto de vista computacional,
sobre todo para matrices grandes (recuerde el lector los análisis del apartado 6.2.2). En la
sección 9.2.2 veremos métodos más eficaces para decidir si un grafo es o no conexo.
del teorema 9.1.16
Volviendo al caso de un grafo no conexo, veamos cómo la matriz M
permite determinar componentes conexas. Tomemos, por ejemplo, la primera fila de la matriz,
etiquetada con el vértice v1 : las posiciones que no contengan ceros determinan los vértices
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
25
9.1. Grafos
de la componente conexa a la que pertenece v1 . El procedimiento se repetirı́a para la fila
correspondiente al primer vértice no incluido en la componente anterior. Y ası́ sucesivamente,
hasta determinar todas las componentes conexas del grafo.
1
2
Consideremos, por ejemplo, el grafo de cinco vértices dibujado
a la derecha, que consta de dos componentes conexas, una formada
3
por los vértices 1 y 5, y la otra por los vértices 2, 3 y 4. Las matrices
5
4
correspondientes serı́an
Versión preliminar, 28 de octubre de 2018
⎛
M=
⎜
⎜
⎜
⎜
⎝
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
⎞
⎛
⎟
⎟
⎟
⎟
⎠
= I5 +M +M 2 +M 3 +M 4 = ⎜
⎜
M
⎜
⎜
y
⎝
3
0
0
0
2
0
11
10
10
0
0
10
11
10
0
0
10
10
11
0
2
0
0
0
3
⎞
⎟
⎟
⎟,
⎟
⎠
y esta última matriz informa sobre la composición de las dos componentes conexas del grafo:
los vértices 1 y 5 por un lado, los restantes por otro. Por cierto, si hubiéramos partido de la
matriz de vecindades con los vertices ordenados (1, 5, 2, 3, 4), entonces ocurrirı́a que
⎛
M =
0
⎜ 1
⎜
⎜ 0
⎜
⎝ 0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
⎞
⎟
⎟
⎟
⎟
⎠
⎛
y
= I5 +M +M 2 +M 3 +M 4 =
M
3
⎜ 2
⎜
⎜ 0
⎜
⎝ 0
0
2
3
0
0
0
0
0
11
10
10
0
0
10
11
10
0
0
10
10
11
⎞
⎟
⎟
⎟.
⎟
⎠
En este caso, la estructura en cajas es ya evidente desde la matriz M .
E. Distancias en un grafo
Consideremos el grafo que dibujamos a la izquierda,
que representa las posibles rutas existentes entre las ciudades v1 , . . . , v9 . Un conductor tiene que elegir una ruta
v1
v5
v7
v9 que conecte las ciudades v1 y v9 . Hay muchos paseos que
conectan los dos vértices. Nuestro conductor, que no siente
v4
v6
especiales inclinaciones peripatéticas, desea hallar la ruta
más corta, en términos del número de aristas recorridas.
Por simple inspección del grafo, concluimos que el paseo más corto emplea exactamente
tres aristas. No hay un único “paseo más corto”: por ejemplo, los paseos (v1 , v3 , v8 , v9 ) y
(v1 , v5 , v7 , v9 ) recorren, ambos, tres aristas. Pero aunque disponga de varias posibilidades, y
sea cual sea el paseo corto elegido, nuestro conductor concluirá sin duda que la “distancia”
entre los vértices v1 y v9 es 3. Formalizamos ahora esta noción de distancia en un grafo.
v2
v3
v8
Definición 9.1.18 En un grafo G conexo30 , la distancia entre dos vértices cualesquiera
u, v ∈ V (G) es
dG (u, v) = ı́nf { longitud(γ)} ,
γ
donde el ı́nfimo se calcula sobre todos los paseos γ que conectan los vértices u y v en G.
30
Esta definición se restringe a grafos conexos. Si no fuera conexo, podemos definir como +∞ la distancia
entre dos vértices no conectables en un grafo (es decir, que estén en distintas componentes conexas).
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
Versión preliminar, 28 de octubre de 2018
26
Capı́tulo 9. El lenguaje de los grafos
Como ejemplos de aplicación inmediata de esta definición, dos vértices u y v de un grafo G
son vecinos si (y sólo si) dG (u, v) = 1; y dG (v, v) = 0, para cada vértice v ∈ V (G).
Lector: la definición anterior incluye un ı́nfimo. Es natural, pues el conjunto de paseos que
unen dos vértices u y v es infinito, dado que estos paseos pueden tener una longitud arbitraria.
Quizás usted prefiera, por comodidad de espı́ritu y a la vista del lema 9.1.9, pergeñar una
definición alternativa, en la que sólo se consideren paseos que no repitan vértices (que es un
conjunto finito), para ası́ poder sustituir el ı́nfimo por un más manejable mı́nimo.
Puede que también quiera aprovechar la ocasión para revisar la discusión de las inmediaciones del teorema 9.1.16, y concluir que la distancia entre u y v se puede calcular como
el primer valor de j para el que la entrada de la fila correspondiente a u y la columna
correspondiente a v en la matriz In + M + · · · + M j se hace no nula.
Consideremos un grafo conexo G = (V, A) cualquiera. Tomemos cada par de vértices suyos
y calculemos, con el procedimiento que el lector prefiera, la distancia entre ellos. Cuando lo
hayamos hecho para todos los pares de vértices, tendremos definida una función de V × V
(los pares de vértices) en el conjunto de los enteros no negativos.
Esta función cumple unas determinadas propiedades (por ejemplo, la desigualdad triangular) que hacen que podamos referirnos a ella como una distancia, en el sentido matemático
del término. Dejamos al lector que se ejercite con la comprobación (véase el ejercicio 9.1.27).
Una vez que lo haya hecho, ¡vivan los conceptos matemáticos abstractos!, estará autorizado a establecer analogı́as mentales entre distancias en grafos y, por ejemplo, distancias
euclı́deas en el plano, sobre las que tendrá intuiciones más arraigadas; a trasladar a este
contexto nociones como la de geodésicas entre u a v (paseos entre u y v de longitud31 exactamente dG (u, v)); o a construir la geometrı́a de bolas32 , por analogı́a con las bolas euclı́deas.
La noción de “paseo más corto” que aquı́ hemos considerado se refiere a un grafo (conexo)
sin pesos. En muchas ocasiones conviene asociar a cada arista un peso que refleje, por ejemplo, la distancia en kilómetros que separa sus dos extremos. El objetivo del conductor serı́a
establecer una ruta cuya longitud total (en kilómetros) fuera lo más corta posible. Ahora
podrı́a ocurrir que el paseo “más corto”, en este nuevo sentido, no fuera necesariamente el
que menos aristas empleara. Véase la sección 11.2.2.
9.1.5.
El álgebra (lineal) de los grafos
Iniciamos ahora una breve excursión por la disciplina que se ocupa de establecer conexiones entre ciertas propiedades de un grafo G y algunas caracterı́sticas de las diversas matrices
que asociamos con G, lo que en los mentideros se conoce como teorı́a espectral de grafos.
Es ésta una teorı́a extraordinariamente rica, que no desarrollaremos aquı́ en extenso: para
empezar, restringiremos nuestro análisis al caso de grafos simples y sin lazos, aunque se puede
extender a contextos más generales, como grafos dirigidos y/o grafos con pesos; y para este
caso de los grafos habituales, mostraremos sólo algunos de nuestros resultados favoritos, para
que el lector pueda hacerse una idea cabal de su elegancia y utilidad.
31
En principio, puede haber varias geodésicas entre un par de vértices, y sólo en ciertas circunstancias la
geodésica será única (véase, por ejemplo, el ejercicio 9.1.29).
32
Una bola de radio r contendrı́a los vértices a distancia ≤ r.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
27
Versión preliminar, 28 de octubre de 2018
9.1. Grafos
¿Qué significa exactamente ligar propiedades del grafo G y de, por ejemplo, su matriz M
de vecindades? Si son (casi) lo mismo, dirá el lector que haya revisado las páginas anteriores.
Sı́, casi: está el detalle de la ordenación de los vértices, del que depende la matriz en sı́, pero
salvo eso. . . Significa que intentaremos extraer información sobre el grafo, sobre alguna de sus
propiedades intrı́nsecas, propiedades que de otro modo podrı́a ser harto difı́cil establecer, en
términos de caracterı́sticas de las matrices asociadas, por ejemplo sus autovalores, y utilizando
la tecnologı́a del álgebra lineal.
En realidad ya hemos analizado en un par de ocasiones determinadas propiedades del
grafo G a través de su matriz de vecindades M . Por ejemplo, en el teorema 9.1.15, cuando
obtenı́amos el número de paseos de cierta longitud entre dos vértices del grafo en términos de
las entradas de una potencia de M ; o en el subsiguiente teorema 9.1.16, en el que se establecı́a
la conectividad del grafo mirando, también, potencias sucesivas de la matriz M .
La matriz de vecindades de un grafo (simple, sin lazos) G es una matriz simétrica cuyas
entradas son ceros y unos (con ceros en la diagonal). En esta sección nos concentraremos en
analizar propiedades ligadas a la simetrı́a de la matriz. El lector interesado puede consultar,
en la sección 9.3, apartado C, cómo se puede extraer información de que las entradas de la
matriz son no negativas, aunque ya en un contexto más general de grafos dirigidos.
Iniciamos, pues, la prometida excursión,
no sin antes avisar de que supondremos al lector cómodo y familiarizado con ciertas nociones de álgebra lineal que usaremos sin remilgos. Véase a la derecha la oportuna adaptación del lema del frontispicio de la Academia
de Atenas. Prestaremos especial atención a los
autovalores de las matrices asociadas, describiendo, por un lado, cómo son esos autovalores
para algunas clases generales de grafos, pero
también, lo que resulta aún más interesante,
veremos algún ejemplo de cómo se pueden deducir propiedades del grafo a partir de información sobre esos autovalores.
A. Sobre la matriz de vecindades
Sea G un grafo con n vértices (simple y sin lazos), y sea M la matriz n × n de vecindades
correspondiente a una cierta ordenación de esos vértices. Como la matriz es real y simétrica,
se puede diagonalizar, de manera que los autovectores forman una base ortonormal de Rn .
Es decir, existe una matriz P ortogonal, cuyas columnas son los autovectores, tal que
M = P ΛP ,
y donde Λ es una matriz diagonal cuyas entradas son los autovalores, que en este caso son
todos números reales. Nombrémoslos como
λ1 ≥ λ2 ≥ · · · ≥ λn ,
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
28
Capı́tulo 9. El lenguaje de los grafos
ya ordenados de mayor a menor. Estos autovalores pueden repetirse, y en lo que sigue los
contaremos con sus respectivas multiplicidades.
Registramos, para futuras referencias, que si u es un autovector de M y λ es su autovalor
asociado, entonces M u = λu (aquı́, u representa un vector columna de dimensiones n × 1).
Y que los autovalores son las soluciones de la ecuación de grado n en λ
Versión preliminar, 28 de octubre de 2018
pA (λ) = det(A − λIn ) = 0 ,
donde In es la matriz identidad n × n.
Observe el lector que, como la matriz M tiene ceros en la diagonal, su traza es 0, y por
tanto la suma de autovalores es también 0. Ası́ que entre esos autovalores los hay positivos
y negativos33 , y de hecho λ1 > 0 y λn < 0. A este conjunto de autovalores nos referiremos
como el espectro de la matriz de vecindades del grafo G, o simplemente el espectro de G.
La matriz M depende de la ordenación de los vértices del grafo, pero el espectro del
grafo no. Esto es ası́ porque cualquier otra matriz de vecindades M del grafo obtenida por
reordenación de los vértices se obtiene (definición 9.1.6) de la M original como M = QM Q ,
donde Q es una matriz de permutaciones, y esta operación preserva los autovalores, sin más
que observar que si M = P ΛP , entonces
M = QM Q = QP ΛP Q = (QP ) Λ (QP ) .
En particular, esto nos dice que el espectro de un grafo es un invariante por isomorfı́a. De
manera que si G1 y G2 son dos grafos isomorfos, sus espectros coincidirán. El recı́proco, sin
embargo, no es cierto. Si lo fuera, observe, lector, tendrı́amos un discriminador de isomorfı́a,
cuya existencia descartamos en la discusión del apartado 9.1.2. Es decir, dos grafos no isomorfos pueden tener el mismo espectro. Como ejemplo, consideremos el grafo G1 = K1,4 y
el grafo G2 que está formado por un vértice aislado y un C4 . Claramente, G1 y G2 no son
isomorfos, pero resultan tener, ambos, autovalores (2, 0, 0, 0, −2), como podrá comprobar el
lector tras la lectura de los ejemplos que mostramos más adelante.
Por otro lado, si el grafo G no fuera conexo, entonces el espectro de G serı́a la unión
(con sus multiplicidades) de los espectros de cada componente. La razón es que, por la
proposición 9.1.17, un grafo G con matriz M no es conexo si y sólo si existe una matriz de
permutaciones Q tal que
M1 0
,
QM Q =
0 M2
donde M1 y M2 son matrices cuadradas no nulas. Digamos, por ejemplo, que M1 tiene
dimensiones m × m y que M1 u = λu, donde u es un vector columna m × 1. Entonces se
= λ
es el vector columna de dimensiones 1 × n que se obtiene
cumplirá que M u
u, donde u
de u añadiéndole n − m ceros. Ası́ que cada autovalor de M1 es también autovalor de M , y
lo mismo ocurre para los de M2 Esta observación permite restringir la discusión al caso de
los grafos conexos, como ası́ haremos en lo que sigue.
33
El único caso en el que todos los autovalores serı́an nulos se corresponde con el grafo vacı́o, de escaso
interés. Esto no ocurre, sin embargo, para grafos dirigidos.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
29
9.1. Grafos
Entramos ya en faena. Empecemos calculando el espectro correspondiente a un par de
familias de grafos: los completos.
Versión preliminar, 28 de octubre de 2018
Ejemplo 9.1.3 Los espectros de los grafos Kn y Kr,s .
En el caso del grafo completo con n vértices, la matriz de vecindades, sea cual sea la
ordenación de los vértices, se puede escribir como M = 1n − In , donde 1n es la matriz n × n
que consta únicamente de unos, e In es la matriz identidad n × n.
Por un lado, la matriz 1n tiene rango 1, de manera que λ = 0 es un autovalor con
multiplicidad n − 1. Además, como las filas de 1n contienen n unos, (1, 1, . . . , 1) es un
autovector, asociado al autovalor λ = n.
Observe el lector que si 1n · u = 0, entonces M u = −u. Y que si 1n · u = nu, entonces
M u = (n − 1)u.
La conclusión es que M tiene, como autovalores, a λ = n − 1 con multiplicidad 1 (y
a λ = −1 con multiplicidad n − 1 (con autovectores asociados de
autovector (1, 1, . . . , 1) ), y la forma (u1 , . . . , un ) , con ni=1 ui = 0).
En realidad, este espectro (n − 1, −1, . . . , −1), donde hay n − 1 autovalores −1, sólo puede
aparecer en el caso del grafo completo con n vértices, como podrá comprobar el lector que
revise el ejercicio 9.1.30.
Como alternativa al argumento anterior, puede el lector
calcular directamente el determinante de la derecha, aplicando por ejemplo las habituales reglas de eliminación gaussiana (busque inspiración en el ejercicio 9.2.9), y concluir
que det(M − λIn ) = (−1)n (λ + 1)n−1 (λ − n + 1), de donde
se deduce de inmediato el espectro. Vea el lector también,
si lo desea, el ejercicio 9.1.33.
−λ 1
1
1 −λ 1
1
1 −λ
..
..
..
.
.
.
1
1
1
1
1
1
· · · −λ 1 · · · 1 −λ ···
···
···
..
.
1
1
1
..
.
1
1
1
..
.
Para el grafo bipartito completo Kr,s , podemos ordenar sus vértices (primero los r de un
tipo, luego los s de otro) de manera que M tenga la forma
0r×r 1r×s
,
M=
1s×r 0s×s
donde 0 y 1 representan cajas con todo ceros y todos unos, respectivamente, y los subı́ndices
indican sus dimensiones. Como la matriz tiene rango 2, el 0 es autovalor con multiplicidad n − 2. Los dos autovalores no nulos deben ser uno el opuesto del otro (por la condición
de suma 0 de los autovalores), es decir, ±λ. Por la simetrı́a de la matriz, los autovectores
deben ser de la forma u = (x1 , x2 ), donde x1 es un vector fila de longitud r con un valor
fijo, digamos α, en todas sus posiciones, y x2 es un vector fila de longitud s con valor fijo β.
Pero entonces
s x2
λ x1
x1
=
=
,
M·
x2
r x1
λ x2
√
lo que nos da que λα = sβ y que λβ = rα, sistema de ecuaciones cuya solución es λ = ± rs.
Como ejemplo particular, K1,4 tiene autovalores 0, 0, 0, ±2, como se afirmaba más arriba. ♣
Un análisis similar al del ejemplo anterior nos da la siguiente caracterización de los grafos
bipartitos, que se suma a la del lema 9.1.12.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
30
Capı́tulo 9. El lenguaje de los grafos
Lema 9.1.19 Un grafo G es bipartito si y sólo si los autovalores son simétricos respecto al
cero (esto es, si λ es autovalor, entonces −λ también lo es).
Versión preliminar, 28 de octubre de 2018
Demostración. Supongamos que G es bipartito, con r vértices de un tipo y s del otro.
Entonces, con la adecuada reordenación de los vértices, la matriz M se puede escribir como
A
0r×r
,
M=
A 0s×s
donde A es una matriz de dimensiones r × s. Si λ es un autovalor de M , entonces, escribiendo
un autovector asociado como en el ejemplo 9.1.3, u = (x1 , x2 ), tendremos que
A x2
λ x1
x1
=
=
.
M·
x2
A x1
λ x2
Pero entonces
M·
−x1
x2
=
A x2
−A x1
=
λ x1
−λ x2
= −λ ·
−x1
x2
,
lo que nos dice que −λ es también autovalor.
En el otro sentido, si los autovalores son simétricos respecto del 0, entonces
n
λ2k+1
=0
i
traza(M 2k+1 ) =
para todo k ≥ 0
i=1
(recuérdese que la traza de una matriz es también invariante por reordenación simultánea de
filas y columnas). Ası́ que las entradas de la diagonal de la matriz M 2k+1 suman 0, y como
son todas no negativas, cada una de ellas ha de ser 0. El teorema 9.1.15 descarta entonces
que G pueda contener paseos cerrados de longitud impar, y en particular ciclos de longitud
impar, lo que, en combinación con el lema 9.1.12, demuestra que G ha de ser bipartito. Observe el lector que una de sus implicaciones del lema 9.1.19 es un ejemplo de cómo deducir propiedades del grafo (en este caso, ser bipartito) a partir del análisis de los autovalores
de la matriz de vecindades. El siguiente resultado relaciona el tamaño de los autovalores con
los grados máximo y mı́nimo del grafo.
Proposición 9.1.20 Sea G un grafo conexo. Sea λ1 su mayor autovalor.
a) Los autovalores λ cumplen que |λ| ≤ Δ(G), donde Δ(G) es el máximo grado del grafo.
b) Se cumple que
δ(G) ≤ λ1 ≤ Δ(G), donde δ(G) es el mı́nimo grado del grafo. De hecho,
se tiene que λ1 ≥ n1 ni=1 grado(vi ), el “grado medio” del grafo
Demostración. a) Supongamos que λ es un autovalor de M = (mij ), y llamemos u =
(u1 , . . . , un ) a un autovector asociado. Supongamos que el máximo de los valores absolutos de
los ui se alcanza para us . Reescalando y cambiando de signo al autovector, si fuera necesario,
podemos suponer que us = 1, y que |ui | ≤ 1 para todo i = 1, . . . , n. Ahora, como
M u = λu,
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
31
9.1. Grafos
y mirando a la fila s de la matriz, tenemos que
|λ| = |λus | = n
msj uj ≤
j=1
n
n
msj |uj | ≤
j=1
msj ≤ Δ(G),
j=1
pues en la fila s de M hay, a lo sumo, Δ(G) unos.
Versión preliminar, 28 de octubre de 2018
b) El que λ1 ≤ Δ(G) sale del apartado a). Por otro lado, se tiene que
λ1 = sup u M u.
u=1
Tomando u =
√1 (1, . . . , 1) ,
n
se obtiene que
λ1 ≥
1
n
grado(v) ≥ δ(G).
v∈V
El siguiente resultado, el último de este apartado, analiza el caso de la igualdad en el
teorema 9.1.20: es decir, en qué condiciones λ1 coincide con Δ(G).
Proposición 9.1.21 Sea G un grafo conexo.
a) G es regular si y sólo si Δ(G) es autovalor.
b) Si G es regular y bipartito, entonces −Δ(G) es un autovalor.
Los grafos Kn , Kr,r , Cn y Qn son regulares. Compruebe, querido lector, en el ya visto
ejemplo 9.1.3, y en los venideros ejemplos 9.1.4 y 9.1.5, que en todos los casos el grado común
(y por tanto máximo) es el mayor autovalor. Compruebe también que los grafos Qn , Cn para n
par y Kr,r , que además de regulares son bipartitos, verifican la propiedad b).
Demostración. a) Si el grafo es k-regular, es decir, si δ(G) = k = Δ(G), entonces cada fila
de M contiene exactamente k unos, y por tanto u = (1, 1, . . . , 1) es un autovector, asociado
al autovalor k = Δ(G).
Supongamos ahora que Δ(G) es un autovalor de la matriz M de un grafo conexo (cuyas
filas y columnas suponemos etiquetadas con los vértices (v1 , . . . , vn ), en ese orden). Llamemos u = (u1 , . . . , un ) a un autovector asociado a ese autovalor. Como en la demostración del
teorema 9.1.20, podemos suponer que, para cierto s, us = 1, y que |ui | ≤ 1 para i = 1, . . . , n.
De manera que, mirando a la fila s obtenemos
Δ(G) = |Δ(G)us | = msj uj ≤
n
j=1
n
n
msj |uj | ≤
j=1
msj = grado(vs ) ≤ Δ(G),
j=1
lo que nos da que grado(vs ) = Δ(G). Pero hay más. Como
n
Δ(G) = Δ(G) us =
msj uj
j=1
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
32
Capı́tulo 9. El lenguaje de los grafos
Versión preliminar, 28 de octubre de 2018
y los msj valen 1 para los vértices vj vecinos de vs , de los que hay Δ(G), concluimos que
uj = 1 para todos los ı́ndices j que se correspondan con vértices vj vecinos de vs . Con el
mismo argumento usado antes para vs , concluirı́amos que todos los vértices vecinos de vs
han de tener grado Δ(G). Aprovechando que el grafo es conexo, podemos ir extendiendo esa
conclusión para los restantes vértices, para deducir finalmente que el grafo es Δ(G)-regular.
El apartado b) sale de combinar el apartado b) con el lema 9.1.19.
Terminamos este apartado calculando los espectros de los grafos lineales, los circulares y
el grafo del cubo. Como verá el lector, en estos cálculos de autovalores suele ser más eficaz
analizar primero los autovectores (un análisis, por cierto, habitualmente ingenioso), para
luego deducir los autovalores, como en realidad ya hicimos en ejemplo 9.1.3 y en algunos de
los resultados anteriores.
Ejemplo 9.1.4 Los espectros de los grafos Cn y Ln y Qn .
Antes de comenzar el análisis, y para ilustrar la estructura general que obtendremos luego,
exhibimos los espectros para valores pequeños de n:
3π
C3 → (2, −1, −1), C4 → (2, 0, 0, −2), C5 → (2, 2 cos( π5 ), 2 cos( π5 ), 2 cos( 3π
5 ), 2 cos( 5 )),
√
√
L2 → (−1, −1), L3 → ( 2, 0, − 2), L4 → (2 cos( π5 ), 2 cos( π5 ), −2 cos( π5 ), −2 cos( π5 ))
(los casos del C3 = K3 y del L2 = K2 salen del análisis de los grafos completos del ejemplo 9.1.3). Los espectros tienen un aire parecido34 . . . pero no del todo.
Analicemos ya el caso general, considerando las matrices de vecindades de un Cn y de
un Ln , que tienen un aspecto como el que se muestra (para el caso n = 7) a continuación:
⎛
ML7 =
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎝
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
⎞
⎛
⎟
⎟
⎟
⎟
⎟,
⎟
⎟
⎟
⎠
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎝
MC7 =
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
⎞
⎟
⎟
⎟
⎟
⎟.
⎟
⎟
⎟
⎠
Pues eso: parecidas, pero no exactamente iguales, con ese par de unos que aparecen en las
esquinas en el caso del Cn , y no en el del Ln . Diferencia a primera vista baladı́, pero que nos
exigirá un análisis distinto para cada caso.
La estructura de las matrices, con tantos ceros, parece prestarse a un análisis como los
que hicimos en la sección 8.1, desarrollando determinantes por filas (véase en particular el
ejercicio 8.1.11 y compárese con el caso de la matriz del Ln ) para establecer una regla de
recurrencia y luego. . . Inténtelo el lector, aunque ya le advertimos que es camino espinoso.
Entonces, ¿cómo podemos calcular los autovalores? Observe el lector que, a la vista de las
proposiciones 9.1.20 y 9.1.21, los autovalores han de ser (en los dos casos) menores o iguales
en valor absoluto que 2. De hecho, |λ| < 2 para el Ln , mientras que λ = 2 es autovalor del Cn
(pues el segundo es grafo regular y el primero no).
34
Por cierto, como el lector recordará de la sección 8.3.10, 2 cos(π/5) = τ . El espectro de C5 resulta ser
entonces (2, τ, τ, 1 − τ, 1 − τ ), mientras que el de L4 es (τ, τ − 1, 1 − τ, −τ ). ¡Vaya!, la razón áurea por aquı́ de
nuevo. La esperarı́amos (y la saludarı́amos efusivamente) en el C5 , el pentágono. . . ¿pero en el L4 ?
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
33
9.1. Grafos
La matriz del Cn tiene una estructura peculiar, con esa pareja de unos que van “circulando” cı́clicamente por las filas de la matriz, y que sugieren que los autovectores pueden
tener (y de hecho tienen) que ver con raı́ces n-ésimas de la unidad. Consulte el lector el
ejercicio 9.1.33 y deduzca de él que los autovalores del Cn son
Versión preliminar, 28 de octubre de 2018
λk = 2 cos(2π k/n)
para k = 0, . . . , n − 1.
En esta enumeración de los autovalores hay repeticiones. El autovalor λ0 = 2 tiene multiplicidad 1, y también tendrá multiplicidad 1 el −2, cuando efectivamente sea autovalor35 . Los
restantes autovalores tienen multiplicidad 2.
Para el caso del Ln procedemos de manera distinta. Supongamos que u = (u1 , . . . , un ) es
un autovector asociado al autovalor λ. Esto nos dice que se cumplen las siguientes ecuaciones:
u2 = λu1 ,
u1 + u3 = λu2 ,
u2 + u4 = λu3 ,
...,
un−2 + un = λun−1 ,
un−1 = λun .
Si ahora “añadimos” unos valores u0 = un+1 = 0 como condiciones de borde, resulta que las
coordenadas del autovector cumplen la regla de recurrencia
ui+1 + ui−1 = λui
para 1 ≤ i ≤ n.
Una recurrencia lineal de segundo grado cuya ecuación caracterı́stica es r 2 − λr + 1 = 0.
Digamos que las dos raı́ces son α y β, que son números complejos, uno el conjugado del otro,
como podrá comprobar el lector usando que |λ| < 2. Además, α · β = 1 y α + β = λ (fórmulas
de Vieta, sección 7.2.4).
De manera que la solución general de la recurrencia es ui = Aαi + B β i , y al imponer
las condiciones u0 = 0 = un+1 obtenemos que αn+1 = β n+1 , lo que unido a que αβ = 1 nos
dice que α2n+2 = 1, es decir, que α es una raı́z (2n + 2)-ésima de la unidad. Digamos que
α = e2πik/(2n+2) = eπik/(n+1) . Pero entonces
πk .
λ = α + β = α + α = eπik/(n+1) + e−πik/(n+1) = 2 cos
n+1
El parámetro k podrı́a tomar, en principio, valores entre 0 y 2n + 1. Pero por periodicidad
descubrimos que basta considerar k entre 0 y n + 1. El caso k = 0 se corresponderı́a con
λ = 2, que ya hemos descartado como autovalor; y el caso k = n + 1 se corresponderı́a con
λ = −2, que tampoco es posible. Concluimos ası́ que los autovalores de Ln son
πk para k = 1, . . . , n,
λk = 2 cos
n+1
♣
todos con multiplicidad 1.
Ejemplo 9.1.5 El espectro del grafo Qn .
Recuérdese que el grafo del cubo Qn es bipartito, por lo que su espectro ha de ser simétrico
con respecto al 0 (lema 9.1.19). Los dos primeros casos ya han sido calculados: como Q1 = K2 ,
sus autovalores son (1, −1); y como Q2 = C4 , el espectro es (2, 0, 0, −2). Es instructivo reseñar,
35
El −2 es autovalor para n par por el lema 9.1.19, pues en ese caso Cn es bipartito (no tiene ciclos impares).
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
34
Capı́tulo 9. El lenguaje de los grafos
para el análisis general que haremos a continuación, que en el caso del Q2 los autovalores
tienen los siguientes autovectores asociados:
Versión preliminar, 28 de octubre de 2018
2 → (1, 1, 1, 1) ,
0 → (1, 1, −1, −1) y (1, −1, 1, −1) ,
−2 → (1, −1, −1, 1).
Nótese que todos los autovectores están formados, salvo cambios de escala, por +1 y −1.
El grafo Qn tiene 2n vértices, que van etiquetados con listas de ceros y unos, o alternativamente, con subconjuntos de {1, . . . , n}; utilizaremos en la descripción que sigue los
dos lenguajes, el de listas y el de subconjuntos. Digamos que ordenamos los vértices de la
siguiente manera: J1 , J2 , . . . , J2n , donde cada Ji representa un subconjunto de {1, . . . , n}, y
consideremos la matriz de vecindades M asociada, de dimensiones 2n × 2n .
Fijamos ahora un subconjunto I ⊆ {1, . . . , n} y construimos el vector uI = (u1 , . . . , u2n )
cuyas coordenadas son
( )
ui = (−1)|I∩Ji | ,
para cada i = 1, . . . , 2n .
Afirmamos que este vector es un autovector de M , asociado al autovalor n − 2|I|.
Veamos. Multipliquemos M uI y fijémonos, por ejemplo, en la primera entrada del vector
resultante (el argumento para las otras entradas es análogo). Esa entrada viene dada por
(−1)|I∩Jj | ,
Jj vecinos de J1
una suma con n términos. Digamos, a modo de ejemplo, que I y J1 se representan con las
listas
I→ 1 0 0 0 1 1 1 0 1 0 1 0
J1 → 1 1 1 0 0 0 1 1 1 1 1 0
Hemos marcado en negrita las posiciones con unos simultáneos, tres en este caso, lo que nos
dice que (−1)|I∩J1 | = (−1)3 = −1.
Consideremos ahora los vértices Jj , los n vecinos de J1 que aparecen en la suma de antes,
en la que los sumandos son (−1)|I∩Jj | . La lista de un Jj determinado difiere de la de J1 en
una única posición; digamos que esa posición es k. Caben dos posibilidades:
si k ∈ I, es decir, si la lista de I tiene un 1 en la posición k, entonces |I ∩Jj | = |I ∩J1 |+1
si la lista de J1 tiene un 0 en la posición k, mientras que |I ∩ Jj | = |I ∩ J1 | − 1 si en la
posición k de J1 habı́a un 1. En cualquier caso, (−1)|I∩Jj | = −(−1)|I∩J1 | .
si k ∈ I, es decir, si la lista de I tiene un 0 en la posición k, entonces |I ∩ Jj | = |I ∩ J1 |,
y por tanto (−1)|I∩Jj | = (−1)|I∩J1 | . En esta segunda situación, obsérvese, hay n − |I|
listas.
Por lo tanto, la suma de arriba resulta ser
(−1)|I∩Jj | = (n − |I|) (−1)|I∩J1 | − |I| (−1)|I∩J1 | = (n − 2|I|) (−1)|I∩J1 | .
Jj vecinos de J1
Repitiendo el argumento para el resto de las entradas del vector uI , concluimos que uI es un
autovector de M asociado al autovalor n − 2|I|.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
35
9.1. Grafos
De manera que cada I ⊆ {1, . . . , n} genera un autovector distinto, asociado al autovalor n − 2|I| (que solo depende del tamaño de I), y tras la contabilidad pertinente, agrupando
por tamaños, concluimos que los autovalores
n de Qn son, para cada k = 0, . . . , n, de la forma
n − 2k con multiplicidades respectivas k . Es decir,
Versión preliminar, 28 de octubre de 2018
n n − 2 n−4 · · · 4−n 2 − n −n
autovalor
n
n
multiplicidad 1
n
···
n
1
2
2
Compruebe el lector, usando la definición ( ) para el caso n = 2, cómo I = ∅ (o bien la
lista (0, 0)) da lugar al autovector (1, 1, 1, 1), asociado a λ = 2, los subconjuntos I = {1} e
I = {2} (esto es, las listas (0, 1) y (1, 0)) generan los autovectores (1, 1, −1, −1) y (1, −1, 1, −1)
(para el autovalor 0) y, finalmente, I = {1, 2}, esto es, la lista (1, 1), da lugar al autovector
(1, −1, −1, 1), correspondiente a autovalor −2.
♣
B. Sobre la matriz laplaciana
Para diversos análisis, en lugar de utilizar la matriz M de vecindades del grafo, resulta
más conveniente considerar la matriz
L = D − M,
donde D es la matriz diagonal cuyos registros son los grados de los vértices. La matriz L es
conocida como la matriz laplaciana de G. Por ejemplo, para G = C4 ,
⎛
M=
0
⎜ 1
⎜
⎝ 0
1
1
0
1
0
0
1
0
1
⎞
1
0 ⎟
⎟,
1 ⎠
0
⎛
mientras que
L=
2
⎜ −1
⎜
⎝ 0
−1
−1
2
−1
0
0
−1
2
−1
⎞
−1
0 ⎟
⎟.
−1 ⎠
2
La matriz L tiene entradas positivas y negativas, pero a cambio tiene ciertas propiedades
bien interesantes. Para empezar, sus filas suman siempre 0, por lo que λ = 0 es siempre un
autovalor de L (con autovector asociado u = (1, . . . , 1)).
La matriz L sigue siendo simétrica y teniendo entradas reales (aunque ahora hay números
negativos), se diagonaliza de manera que sus autovalores son reales. Ya hemos visto que el 0
es uno de ellos. Pero además, es semidefinida positiva. Esto supone que sus autovalores son
no negativos. Llamémoslos, para diferenciarlos de los de M ,
0 = μ1 ≤ μ2 ≤ · · · ≤ μn ,
que aquı́ ordenamos, por conveniencia, de menor a mayor.
Para comprobar que L es semidefinida positiva, consideremos la matriz B, que es una
versión ligeramente retocada que la matriz de incidencias que apareció fugazmente en la
demostración de la proposición 9.1.3. Digamos que el grafo tiene n vértices y m aristas.
Como allı́, la matriz B tiene n columnas, etiquetadas con los vértices (v1 , . . . , vn ), y m filas,
que van etiquetadas con las aristas (a1 , . . . , am ). En la fila correspondiente a la arista ai sólo
hay dos entradas no nulas, que están en las posiciones marcadas por los vértices que son
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
36
Capı́tulo 9. El lenguaje de los grafos
extremo de esa arista. Digamos que éstos son vj y vk , con j < k. Entonces ponemos un +1
en la posición (ai , vj ) y un −1 en la posición (ai , vk ). Recuérdese que la citada demostración
de la proposición 9.1.3 situábamos un +1 en ambas posiciones36 .
Dejamos que el lector compruebe, multiplicando matrices, que entonces
L = B B.
Versión preliminar, 28 de octubre de 2018
( )
Obsérvese que B no es en general una matriz cuadrada, sino de dimensiones m × n. La
identidad ( ) nos dice que, para cualquier vector fila u de dimensiones 1 × n,
( )
u Lu = u B Bu = Bu2 ≥ 0,
lo que certifica que, efectivamente, L es semidefinida positiva.
Como ilustración numérica de la identidad ( ), consideremos el grafo C4 , para el que
1 a 2
1
a4
⎛
a2
4
a3
L=
3
2
⎜ −1
⎜
⎝ 0
−1
−1
2
−1
0
0
−1
2
−1
⎞
−1
0 ⎟
⎟
−1 ⎠
2
⎛
y
B=
+1
⎜ 0
⎜
⎝ 0
+1
−1
+1
0
0
0
−1
+1
0
⎞
0
0 ⎟
⎟,
−1 ⎠
−1
de manera que
⎛
B B =
+1
⎜ −1
⎜
⎝ 0
0
0
+1
−1
0
0
0
+1
−1
⎞⎛
+1
⎜
0 ⎟
⎟⎜
0 ⎠⎝
−1
+1
0
0
+1
−1
+1
0
0
0
−1
+1
0
⎞
0
0 ⎟
⎟
−1 ⎠
−1
⎛
=
2
⎜ −1
⎜
⎝ 0
−1
−1
2
−1
0
0
−1
2
−1
⎞
−1
0 ⎟
⎟
−1 ⎠
2
= L.
El análisis de la matriz laplaciana del grafo permite también obtener información valiosa
sobre el grafo. Por ejemplo, se tiene el siguiente criterio sobre la conectividad de un grafo.
Proposición 9.1.22 a) El número de componentes conexas de un grafo G coincide con la
multiplicidad del autovalor μ1 = 0 de su matriz laplaciana.
b) En particular, si G es un grafo conexo, la multiplicidad del autovalor μ1 = 0 de la
matriz laplaciana de G es 1.
Demostración. En realidad, los dos apartados son equivalentes: el apartado b) es un caso
particular del a), pero vamos a probar b) para de ahı́ deducir el apartado a).
b) Sea G un grafo conexo con n vértices y m aristas, y sea L su matriz laplaciana. Como
hemos visto antes, podemos escribir L = B B, donde B es una matriz m × n.
Sabemos que el 0 es un autovalor de L. Sea u = (u : 1, . . . , un ) un autovector asociado.
Obsérvese que, como Lu = 0, la relación ( ) nos dice que Bu = 0, lo que a su vez supone
que Bu = 0.
Recuerde ahora el lector la definición de B. Si hay una arista que conecta los vértices vi
y vj , entonces la condición Bu = 0 nos dice que ui = uj . Si otra arista conectara, por
ejemplo, vj con vk , concluirı́amos que ui = uj = uk . Como el grafo G es conexo, podemos
36
En realidad da igual cómo situemos los ±1 en cada fila. Si el grafo fuera dirigido, entonces el +1 corresponderı́a al vértice de salida de la arista, y el −1 al de entrada. Véase la sección 9.3.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
37
9.1. Grafos
Versión preliminar, 28 de octubre de 2018
extender este argumento hasta concluir que u ha de tener todas sus coordenadas iguales, de
lo que se deduce que la multiplicidad de μ1 = 0 es 1.
a) Se sigue de b) usando la observación, análoga a la que vimos para la matriz de vecindades, de que si G tiene l componentes conexas, el espectro de su matriz laplaciana es
la unión (contando multiplicidades) de los espectros de las l matrices laplacianas de cada
componente.
En realidad, el análisis de la matriz laplaciana es muy anterior al desarrollo de la teorı́a
espectral que aquı́ hemos esbozado. Kirchhoff, allá por mediados del siglo XIX, utilizó esta
matriz para contar el número de árboles abarcadores distintos de un grafo G en términos de
los cofactores de L, o alternativamente, en términos del producto de los autovalores no nulos
de L. Consulte el lector la noción de árbol abarcador de un grafo en la sección 9.2.2, y luego
visite el teorema 9.2.10 de Kirchhoff, que es una auténtica perla.
Cerramos esta discusión recopilando los espectros de la matriz laplaciana para unos cuantos tipos especiales de grafos:
Kn
Kr,s
Ln
Cn
Qn
−→
−→
−→
−→
−→
(0, n, . . . , n) (n tiene multiplicidad n − 1);
(0, r, . . . , r, s, . . . , s, r + s) (r aparece s − 1 veces, y s aparece r − 1 veces);
2 − 2 cos(πj/n) para j = 0, 1, . . . , n − 1;
2 − 2 cos(2πj/n) para
nj = 0, 1, . . . , n − 1;
2j, con multiplicidad j , para j = 0, . . . , n,
En general no está claro cómo relacionar los espectros de la matriz de vecindades M y
de la matriz laplaciana L, ası́ que animamos al lector a que intente obtener por su cuenta
estos espectros, inspirándose quizás en los cálculos y argumentos que hemos desarrollado en
sus análogos para la matriz de vecindades en los ejemplos 9.1.3, 9.1.4 y 9.1.5.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
38
Capı́tulo 9. El lenguaje de los grafos
EJERCICIOS DE LA SECCIÓN 9.1
Versión preliminar, 28 de octubre de 2018
Grafos
9.1.1 Una tarde de verano, alguien nos propone completar la siguiente (sı́, apasionante) tarea: dibujar
todos los grafos (simples) con ocho vértices que hay. Para ello nos proporciona “innumerables hojas”,
en cada una de las cuales están ya pintados los vértices de un octógono regular.
a) Digamos, por ejemplo, que tardamos un segundo en dibujar cada grafo. ¿cuánto tardarı́amos
en dibujarlos todos?
b) Digamos, en una version más realista, que tardamos un segundo en trazar una arista. ¿Cuánto
se tardarı́a ahora?
9.1.2 Compruébese que se pueden formar hasta 2n(n+1)/2 grafos distintos, simples y con lazos, con
los vértices {v1 , . . . , vn }
9.1.3 Consideremos un conjunto de vértices {v1 , v2 , . . . , vn }.
a) ¿Cuántos grafos simples distintos con m aristas se pueden formar? ¿Y si permitimos lazos?
b) ¿Cuántos grafos dirigidos distintos con m aristas se pueden formar? ¿Y si permitimos lazos?
c) Para todas las cuestiones de los dos apartados anteriores, ¿cuál es la respuesta si la condición
es que los grafos contengan no más de m aristas?
9.1.4 a) ¿Cuántos multigrafos distintos con exactamente m aristas se pueden formar con n vértices?
b) ¿Y si permitimos (multi )lazos?
9.1.5 Sea G un grafo con V (G) ⊆ {1, . . . , n} con |V (G)| = v y |A(G)| = a. ¿Cuántos grafos distintos
con vértices en {1, . . . , n} contienen a G como subgrafo?
9.1.6 Sea G = (V, A) un grafo. El grafo complementario Gc de G es el grafo cuyos vértices son
los de V y cuyas aristas unen pares de vértices que no están unidas en G. Si G tiene n vértices, de
grados g1 , g2 , . . . , gn , ¿qué grados tienen los vértices de Gc ? ¿Cuánto vale la suma de los grados de
los vértices de Gc ?
9.1.7 Compruébese si en un multigrafo con lazos G se cumple que la suma de los grados coincide
con el doble del número de aristas.
9.1.8 Sea G un grafo con al menos dos vértices. a) Compruébese que hay un número par (o cero) de
vértices con grado impar. b) Verifı́quese que en G hay, al menos, dos vértices con el mismo grado.
9.1.9 En una reunión de 20 personas hay en total 48 pares de personas que se conocen.
a) Justifı́quese por qué hay al menos una persona que a lo sumo conoce a cuatro personas.
b) Supongamos que hay exactamente una persona X que conoce a lo sumo a cuatro; y supongamos
que esta X conoce al menos a una. Verifı́quese que las otras 19 conocen exactamente a cinco cada
una. ¿A cuántos conoce X?
9.1.10 Cuatro parejas celebran una fiesta. Al terminar, uno de los ocho preguntó a los demás a
cuántas habı́an saludado al llegar, recibiendo una respuesta diferente de cada uno. ¿A cuántos habı́a
saludado la persona que hizo la pregunta? ¿Y su pareja?
9.1.11 En este ejercicio analizamos cuándo una sucesión de números no negativos se corresponde
con la sucesión de grados de un cierto grafo. Se trata de un teorema de Erdős y Gallai, que dice
ası́: una sucesión de enteros no negativos (d1 , . . . , dn ), que aquı́ supondremos ordenados de mayor a
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
39
9.1. Grafos
menor, es decir, d1 ≥ d2 ≥ · · · dn ≥ 0, es la sucesión de grados de un grafo con n vértices si y sólo si
la suma d1 + · · · + dn es un número par y, además, se verifica el siguiente conjunto de condiciones:
k
i=1
Versión preliminar, 28 de octubre de 2018
n
di ≤ k(k − 1) +
( )
mı́n(di , k)
i=k+1
para cada 1 ≤ k ≤ n.
a) Compruébese, por ejemplo, que la lista (3, 3, 1, 1) no puede ser la sucesión de grados de un grafo
con 4 vértices.
b) Pedimos ahora probar la necesidad de estas condiciones (la prueba de la suficiencia es otro
cantar). Tomemos una sucesión d1 ≥ d2 ≥ · · · dn ≥ 0 y supongamos que un grafo simple G = (V, A)
con n vértices tiene a esa lista como sucesión de grados, es decir, grado(vi ) = di para cada i = 1, . . . , n.
El que los di deben sumar una cantidad par es el contenido de la Proposición 9.1.3.
Fijemos un k entre 1 y n y llamemos U al conjunto de vértices
k de G cuyos grados son los números
d1 , . . . , dk (los k de mayor grado). Obsérvese que la suma S = i=1 di se puede escribir como S1 + S2 ,
donde S1 es la contribución a S de las aristas que unen vértices de U (donde cada arista contribuye
con un 2 a la suma), y S2 es la contribución proveniente de las aristas que unen vértices de U con
vértices de V \ U (que contribuyen con un 1 a la suma). Dedúzcase ( ).
9.1.12 En este ejercicio analizamos grafos G cuyos grado mı́nimo δ = δ(G) y cuello c = cuello(G) <
+∞ son, simultáneamente, grandes. Si todos los vértices tienen muchos vecinos y si los ciclos son
muy largos, entonces el grafo G deberı́a tener muchos vértices.
(La exigencia simultánea es crucial: un grafo como el K11 tiene δ = 10, y sólo tiene 11 vértices,
mientras que un C10 tiene c = 10 y sólo 10 vértices.)
Cuantifiquemos esta impresión.
a) Pruébese que si c es un número impar, digamos c = 2m + 1, entonces
|V (G)| ≥ 1 + δ + δ(δ − 1) + δ(δ − 1)2 + · · · + δ(δ − 1)m−1 .
b) Pruébese que si c es un número par, digamos c = 2m, entonces
|V (G)| ≥ 2 + 2(δ − 1) + 2(δ − 1)2 + · · · + 2(δ − 1)m−1 .
c) Compruébese que se tiene siempre que |V (G)| ≥ (δ −1)(c−1)/2 . OJO Por ejemplo, si δ = c = 10,
entonces el grafo tiene al menos 19 683 vértices.
d) De un cierto grafo sabemos que no tiene triángulos C3 ni cuadrados C4 , y que tiene menos de
100 vértices. ¿Podemos deducir la existencia de al menos un vértice con grado “pequeño”?
9.1.13 Demuéstrese que si G es un grafo con n vértices y al menos (k − 1)n − k2 + 1 aristas, donde
0 < k < n, entonces hay un subgrafo H de G con mı́nimo grado δ(H) ≥ k.
Grafos e isomorfı́a
9.1.14 Constrúyanse cinco grafos con 8 vértices, todos de grado 3, de forma que cada dos de esos
grafos no sean isomorfos.
9.1.15 a) ¿Cuántos grafos de tres vértices pueden construirse de manera que cada dos no sean isomorfos? b) ¿Y cuántos con cuatro? c) ¿Y con cinco?
9.1.16 Demuestra que los dos siguientes grafos son isomorfos. ¿Cuántos isomorfismos distintos hay
entre ellos?
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
40
Capı́tulo 9. El lenguaje de los grafos
a
1
2
3
f
b
g
7
e
4
5
c
6
d
9.1.17 Estudia si son isomorfos los siguientes grafos:
G1
G2
Versión preliminar, 28 de octubre de 2018
a)
G3
G4
b)
9.1.18 Fijemos los vértices {1, . . . , n} y sea G el grafo completo con esos vértices.
a) ¿Cuántos grafos isomorfos a un C3 distintos se pueden formar que sean subgrafos de G?
b) ¿Cuántos grafos isomorfos a un Ck distintos se pueden formar que sean subgrafos de G?
c) ¿Cuántos grafos isomorfos a un Kr se pueden formar con los vértices {1, . . . , n}? Obsérvese
que el apartado a) es un caso particular de b) y c).
d) La misma pregunta, pero para un Kr,s .
9.1.19 Sea G = (V, A) un grafo con n vértices. Sea Gc su grafo complementario, definido en el
ejercicio 9.1.6.
a) Pruébese que G = (V, A) y G = (V , A ) son isomorfos si y sólo si sus complementarios son
isomorfos.
b) Encuéntrese un grafo con cinco vértices que sea isomorfo a su complementario.
c) ¿Existe un grafo con tres vértices que sea isomorfo a su complementario? ¿Y con seis vértices?
Grafos y conexión
9.1.20 Describe (es decir, nombra, dibuja. . . ) o explica por qué no puede existir:
a) un grafo con 7 vértices, todos de grado 3;
b) un grafo con 15 vértices y 105 aristas;
c) dos grafos no isomorfos, cada uno con 6 vértices, todos de grado 2;
d) un grafo conexo con 8 vértices y cuya sucesión de grados sea (1, 1, 1, 2, 3, 4, 5, 7).
e) un grafo con 20 vértices y sucesión de grados
(1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4 , 5 );
3
9
5
2
1
e) un grafo conexo con 25 vértices y sucesión de grados
(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3 , 4, 4 ).
12
el discreto encanto de la matemática
9
– 28 de octubre de 2018 –
2
2
pablo fernández y jose l. fernández
41
9.1. Grafos
9.1.21 Compruébese que Cn es el único grafo conexo (salvo isomorfismos) con n vértices de forma
que el grado de todos sus vértices es 2.
9.1.22 Sea G = (V, A) un grafo con p componentes conexas. Compruébese que
|V | − p + 1
|V | − p ≤ |A| ≤
.
2
Versión preliminar, 28 de octubre de 2018
9.1.23 Compruébese que si G es un grafo conexo y a es una arista puente de G, entonces G \ {a}
tiene exactamente dos componentes conexas.
9.1.24 Sea G un grafo con n vértices y dos componentes conexas. a) ¿Cuál es el número mı́nimo de
aristas que G puede tener en esas condiciones? b) Supongamos además que cada componente de G es
un grafo completo. ¿Cuál es el número mı́nimo de aristas que G puede tener?
9.1.25 Sea G = (V, A) un grafo con n vértices. Demuéstrese que si grado(v) ≥ (n − 1)/2 para todo
vértice v ∈ V , entonces la distancia entre cualesquiera dos vértices es ≤ 2. En particular, G es conexo.
9.1.26 Sea G un grafo con matriz de vecindades M . Demuéstrese que G contiene un K3 si y sólo si
para algún par (i, j), las entradas (i, j) de las matrices M y M 2 son no nulas.
9.1.27 Sea G = (V, A) un grafo conexo. Pruébese que la función distancia en G, dG : V × V → R,
descrita en la definición 9.1.18 es una distancia, en el sentido matemático del término. Es decir, que
verifica las siguientes propiedades:
1) Para cada par de vértices u, v ∈ V , dG (u, v) ≥ 0. Además, dG (u, v) = 0 si y sólo si u = v.
2) (Simetrı́a) : dG (u, v) = dG (v, u) para cada par u, v ∈ V .
3) (Desigualdad triangular) : dG (u, v) ≤ dG (u, w) + dG (w, v) para cualesquiera u, v, w ∈ V .
9.1.28 Sea G un grafo conexo con matriz de vecindades M correspondiente a la ordenación de los
(k)
vértices (v1 , v2 , . . . , vn ). Llamemos ai,j a la entrada (i, j) de la matriz M k . Compruébese que
(k)
dG (vi , vj ) = mı́n{k ≥ 1 : ai,j = 0}, .
9.1.29 A los paseos entre u y v cuya longitud coincida con dG (u, v) se les llama geodésicas entre
u y v. Puede haber varias geodésicas distintas entre dos vértices. Comprúebese, sin embargo, que si G
es un grafo conexo con cuello c(G) y d(u, v) ≤ c(G)/2, entonces hay una única geodésica de u a v,
para cada u, v ∈ V (G).
Grafos, matrices y autovalores
9.1.30 Sea G un grafo con n vértices cuya matriz de vecindades tiene a −1 como autovalor con
multiplicidad n − 1. En este ejercicio comprobamos que, entonces, G = Kn .
a) Obsérvese primero que n − 1 ha de ser el autovalor restante, con multiplicidad 1.
b) Nótese que la matriz M +In tiene rango 1, esto es, todas sus filas son múltiplos de, por ejemplo,
la primera. Copruébese que ese múltiplo solo puede ser 0 ó 1, y luego descártese el caso 0 mirando
las entradas de la diagonal. Finalmente, argumentando con la simetrı́a de la matriz, compruébese que
M + In es la matriz que sólo contiene unos y que, por tanto, G = Kn .
9.1.31 Sea G un grafo regular con n vértices, y sea λ1 ≥ · · · ≥ λn su espectro. ¿Cuál es el espectro del
grafo complementario Gc , aquel que tiene los mismos vértices que G, y cuyas aristas son justamente
aquellas que no incluye G?
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
42
Capı́tulo 9. El lenguaje de los grafos
9.1.32
n Sea G = (V, A) un grafo conexo con n vértices, y sea λ1 ≥ · · · ≥ λn su espectro. Ya sabemos
que i=1 λi = 0. Pruébese que
n
λ2i = 2|A|
Versión preliminar, 28 de octubre de 2018
i=1
n
y que
λ3i = 6 · #triángulos en el grafo.
i=1
9.1.33 a) Consideremos una matriz n × n circulante como la
que se muestra a la derecha: su primera fila es (c0 , c1 , . . . , cn−1 ), y
las restantes se obtienen rotando cı́clicamente la primera. Llamemos
ω = e2πi/n . Las sucesivas potencias ω j , con j = 0, . . . , n − 1 generan las raı́ces n-ésimas de la unidad. Compruébese que, para cada l
entre 0 y n − 1,
n−1
λl =
⎛
c0
⎜ cn−1
⎜
⎜ cn−2
⎜
⎜ .
⎝ ..
c1
c1
c0
cn−1
..
.
c2
c2
c1
c0
..
.
c3
···
···
···
..
.
···
cn−1
cn−2
cn−3
..
.
c0
⎞
⎟
⎟
⎟
⎟
⎟
⎠
cj ω lj = c0 + c1 ω l + c2 ω 2l + · · · + cn−1 ω (n−1)l
j=0
es un autovalor de la matriz, con autovector asociado vl = (1, ω l , ω 2l , . . . , ω (n−1)l ).
b) Obsérvese que la matriz de vecindades de un Cn (ejemplo 9.1.4) es circulante con primera fila
(0, 1, 0 . . . , 0, 1), es decir, c1 = cn−1 = 1, y resto de entradas nulas. Dedúzcase el espectro de Cn .
c) Hágase el cálculo análogo para la matriz del grafo completo Kn del ejemplo 9.1.3.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
43
9.2. Árboles
9.2.
Árboles
La de los Bernoulli de Basilea es, quizás, la familia más famosa de la historia de las
Matemáticas.
Nicolaus (1623-1708)
Versión preliminar, 28 de octubre de 2018
Nicolaus (1662-1716)
Jacob (1654-1705)
Johann (1667-1748)
Nicolaus I (1687-1759) Nicolaus II (1695-1726)
Johann II (1710-1790)
Daniel (1700-1782)
Johann III (1744-1807)
Daniel II (1751-1834)
Jacob II (1759-1789)
Famosa por la cantidad de excelentes matemáticos que entre ellos se contaban (hasta nueve, en negrita en el esquema anterior, en tres generaciones distintas) y, también, por qué no decirlo, por sus peculiares personalidades. Vea el lector interesado en alguna de sus grescas familiares las reseñas biográficas
de los patriarcas del clan, Jacob y Johann, en la sección 12.2.4, y la de Daniel, el heredero de la saga, en
el apartado 15.4.4. A la derecha los vemos a los tres,
coronando el espléndido cartel anunciador del Primer
Congreso Internacional de Matemáticos37 , celebrado
en Zurich, en 1897. En la parte de abajo del cartel,
completando el Olimpo de matemáticos suizos38 encontramos a Euler y a Steiner (de quien hablaremos
en el capı́tulo 29). Pero no son estas consideraciones
histórico-geográficas las que aquı́ nos interesan, sino,
precisamente, la manera en que hemos exhibido arriba la información sobre la familia Bernoulli, su árbol
genealógico. Se trata de un grafo cuyos vértices, que
van etiquetados con los nombres de los Bernoulli, se
disponen en una estructura jerárquica que, en este caso, refleja las sucesivas generaciones de
la familia.
37
Los matemáticos se reúnen cada cuatro años en un congreso en el que se exponen los últimos avances de
las diversas disciplinas que integran el edificio de las Matemáticas. En cada congreso se anuncian los ganadores
de las medallas Fields, el equivalente de los Nobel para las Matemáticas (con permiso de los más recientes
Premios Abel). El Congreso Internacional de Matemáticos del 2006 se celebró en Madrid.
38
Por cierto, los Bernoulli, Euler. . . , ¿quién dijo lo de que los suizos sólo habı́an inventado el reloj de cuco?
Se cuenta que, tras el estreno de El tercer hombre, los suizos, eso sı́, muy educadamente, le hicieron notar a
Orson Welles que el reloj de cuco era un invento alemán.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
44
Capı́tulo 9. El lenguaje de los grafos
Versión preliminar, 28 de octubre de 2018
Este tipo particular de grafos aparece muy a menudo, y resulta extremadamente útil para
representar un buen numero de cuestiones: algoritmos, estructura en carpetas y subcarpetas
de archivos en el ordenador, representación de juegos, etc.
Quizás recuerde también el lector la descripción de la regla del producto, allá por la sección 2.2, con estas estructuras arbóreas. Merece la pena dedicarles una sección propia; más
adelante (secciones 10.3 y 11.2) nos ocuparemos de algunas de sus aplicaciones.
A. Definición de árbol y caracterizaciones
La primera definición de la noción de árbol (de las varias que daremos) viene sugerida
por el “aspecto” del grafo genealógico de la página anterior:
Definición 9.2.1 Un árbol es un grafo conexo y sin ciclos.
En el mismo tono botánico, se define un bosque como un grafo sin ciclos. Si un bosque
es conexo, es un árbol, y si no lo es, sus componentes conexas son árboles.
Por ejemplo, los grafos lineales Ln son árboles, mientras que los circulares Cn o los completos Kn no lo son en cuanto n ≥ 3. Los bipartitos completos Kr,s , que son siempre conexos,
sólo son árboles si s = 1 ó r = 1, puesto que si r ≥ 2 y s ≥ 2, hay al menos un ciclo de orden
cuatro, como comprobará inmediatamente el lector.
Obsérvese que ser conexo exige tener “bastantes” aristas, para ası́ poder conectar todos
los vértices, mientras que no tener ciclos supone, en principio, que haya “pocas” aristas, para
que no se formen ciclos. Los árboles están justo en el punto de equilibrio.
El siguiente resultado formaliza esta idea. Tiene dos apartados. El primero de ellos nos
dice que los árboles son los conexos “más económicos”, en el sentido de que tienen el número
mı́nimo de aristas que permiten la conexión; en otros términos, un árbol es un grafo minimalmente conectado. El segundo apartado nos dice que los árboles son los más “eficientes”
en cuanto a no tener ciclos; en otros términos, un árbol es un grafo maximalmente sin ciclos.
Proposición 9.2.2 Sea G un grafo.
i) El grafo G es un árbol si y solamente si es conexo y tiene la propiedad de que al eliminar
una arista cualquiera el grafo deja de ser conexo.
ii) El grafo G es un árbol si y solamente si no tiene ciclos y, si le añadiéramos una arista
cualquiera, se formarı́a un ciclo.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
45
Versión preliminar, 28 de octubre de 2018
9.2. Árboles
Demostración. i) Supongamos primero que tenemos un grafo G conexo y sin ciclos. Queremos probar que se desconecta al quitar una arista cualquiera.
Dada una arista a de G, formamos el grafo G \ {a} eliminándola. Si G \ {a} fuera conexo,
podrı́amos conectar en G \ {a} los vértices de la arista a, y añadiendo la arista a tendrı́amos
un ciclo en G: contradicción. Ası́ que G \ {a} no es conexo (sea cual sea la arista a elegida).
En el otro sentido, supongamos que G es un grafo conexo que se desconecta si quitamos
cualquier arista. Si el grafo contuviera un ciclo, siempre podrı́amos quitar una arista de ese
hipotético ciclo sin que el grafo dejara de ser conexo, lo que supone una contradicción. Luego
ese tal ciclo no puede existir.
ii) Supongamos primero que G es un grafo conexo y sin ciclos, es decir, un árbol. Consideremos dos vértices cualesquiera que no sean vecinos en G. Por estar en un grafo conexo,
existirá un paseo que los conecte en G. Al añadir una arista entre los vértices, tendremos un
paseo cerrado (con al menos tres vértices), del que podremos extraer un ciclo.
En el otro sentido, sea G un grafo sin ciclos para el que añadir una arista cualquiera
supone la formación de un ciclo. Supongamos que no fuera conexo. En este caso, al menos
existirı́an dos vértices que no podrı́amos conectar en G. Pero entonces todavı́a podrı́amos
añadir la arista que los une sin que se nos formara un ciclo, de nuevo una contradicción. Recordemos que si de un grafo conexo quitamos una arista y éste se desconecta, lo hace
en exactamente dos componentes conexas (ejercicio 9.1.23). En el caso de un árbol, al quitar
una arista cualquiera se forma un bosque con dos componentes conexas. La parte a) de la
proposición 9.2.2 afirma que toda arista de un árbol es un puente.
Sigamos adelante. Sabemos, por la proposición 9.1.14, que en un grafo conexo se tiene
que |A(G)| ≥ |V (G)| − 1. La igualdad se alcanza justamente para los árboles, como proclama
la siguiente caracterización alternativa:
Proposición 9.2.3 Un grafo G es un árbol si y solo si es conexo y |A(G)| = |V (G)| − 1.
Demostración. ⇒) Procedemos por inducción sobre el número de aristas |A|: la inducción
es en sentido fuerte, es decir, la hipótesis de inducción para d aristas es que el resultado es
cierto para grafos con un número de aristas ≤ d.
1) Si G es un árbol con una arista, |A(G)| = 1, sólo cabe la posibilidad de que sea un L2 ,
para el que |V (G)| = 2.
2) Supongamos cierto que para todo árbol con |A(G)| ≤ d se tiene que |A(G)| = |V (G)|−1.
Consideremos un árbol cualquiera G con |A(G)| = d + 1 y tomamos una arista a cualquiera
de G. El grafo G\{a} que se forma quitando de G la arista a no es conexo (proposición 9.2.2).
De hecho,
G \ {a} = G1 ∪ G2 ,
donde G1 y G2 son árboles con no más de d aristas (pues |A(G1 )| + |A(G2 )| = d). Aplicamos
a G1 y G2 la hipótesis de inducción, para obtener que |A(G1 )| = |V (G1 )| − 1 y |A(G2 )| =
|V (G2 )| − 1. Sumando estas dos igualdades, obtenemos que |A(G)| − 1 = |V (G)| − 2, que es
lo que querı́amos demostrar.
⇐) En el otro sentido, tomemos un grafo conexo G tal que |A(G)| = |V (G)| − 1. Si
contuviera un ciclo, podrı́amos quitar una arista a de ese ciclo sin que el grafo se desconectara.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
46
Capı́tulo 9. El lenguaje de los grafos
Pero habrı́amos llegado a un grafo, G \ {a}, conexo con
|A(G \ {a})| = |A(G)| − 1
|V (G \ {a})| = |V (G)| .
y
Utilizando que |A(G)| = |V (G)| − 1,
|A(G \ {a})| = |V (G)| − 2 = |V (G \ {a})| − 2 ;
Versión preliminar, 28 de octubre de 2018
y esto contradice (¡nos faltan aristas!) el que G \ {a} sea conexo.
El perspicaz lector echará en falta una caracterización similar en términos de la igualdad
|A| = |V | − 1 y la ausencia de ciclos. Podrá satisfacer su curiosidad al respecto en el ejercicio 9.2.1. Y si aún con eso se muestra insaciado, consulte alguna otra caracterización en el
ejercicio 9.2.2.
Resumamos las caracterı́sticas que hacen de un grafo G un árbol: es conexo, sin ciclos,
tiene |A(G)| = |V (G)| − 1 aristas; si quitamos una arista cualquiera, se desconecta; y si
añadimos una arista cualquiera, se forma un ciclo. Es decir, como ya adelantábamos, es el
grafo conexo más “económico” (en el sentido de que no sobra ni falta arista alguna) posible.
B. Sucesión de grados de un árbol
Como el lector habrá ya apreciado, un árbol es un tipo de grafo muy especial, que cumple
un buen número de condiciones. No le extrañará, pues, que la sucesión de grados de un árbol
sea bastante particular. Ya sabemos que en cualquier grafo G = (V, A) se tiene que
grado(v) = 2 |A| .
v∈V
Pero si además G es un árbol, como |A| = |V | − 1, se tendrá:
Proposición 9.2.4 En cualquier árbol G = (V, A) se tiene que
grado(v) = 2|V | − 2.
v∈V
Obsérvese que ahora sólo tenemos un “grado de libertad”, el número de vértices |V |, pues
el de aristas ya queda fijado. De esta igualdad podemos deducir, por ejemplo, el siguiente
resultado.
Proposición 9.2.5 Todo árbol con |V | ≥ 2 tiene, al menos, dos vértices de grado 1.
Demostración. Supongamos que no hay vértices de grado 1, es decir, que grado(v) ≥ 2,
para todo v ∈ V . Entonces,
grado(v) ≥
2|V | − 2 =
v∈V
2 = 2 |V | ,
v∈V
lo que resulta imposible. Pero tampoco puede ocurrir que haya un único vértice w de grado 1,
porque tendrı́amos que
2|V | − 2 =
grado(v) ≥ 1 + 2 (|V | − 1) = 2|V | − 1
grado(v) = grado(w) +
v∈V
v=w
Ası́ que al menos ha de haber dos de grado 1.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
47
9.2. Árboles
Ejemplo 9.2.1 ¿Cómo son los árboles con n vértices que tienen el menor y el mayor número
posible de vértices de grado 1?
Sabemos que el mı́nimo número de vértices de grado 1 es 2. Ası́ que, si un árbol con n
vértices tiene exactamente dos vértices, digamos w y u, de grado 1, se cumplirá que
2n − 2 =
grado(v) = 1 + 1 +
Versión preliminar, 28 de octubre de 2018
v∈V
grado(v).
v=u,w
En la suma final tenemos n−2 términos, todos ellos mayores o iguales que 2; la única forma de
conseguir la igualdad será que grado(v) = 2 para todo v ∈ V , v = u, w. Y esta configuración
de grados es la del grafo lineal con n vértices, Ln .
En el otro extremo, es imposible que todos los vértices tengan grado 1, pues no se cumplirı́a
la fórmula de los grados. Pero sı́ podrı́a ocurrir que el árbol contuviera n−1 vértices de grado 1.
Llamemos w al vértice restante. Aplicando de nuevo la fórmula de los grados,
grado(v) = (n − 1) + grado(w) ,
2n − 2 =
v∈V
de donde se deduce que grado(w) = n − 1 , que, por cierto, es el máximo
grado que puede tener un vértice en un grafo con n vértices. En este caso,
♣
tenemos el grafo estrellado de la izquierda.
C. Árboles con raı́z
En muchas ocasiones conviene señalar un vértice especial en un
árbol, bien porque corresponda al punto de arranque de un cierto
algoritmo, bien porque represente al fundador de una saga familiar,
bien porque. . . A un árbol en el que se haya señalado un vértice
distinguido nos referiremos como un árbol con raı́z, donde la raı́z,
por supuesto, es ese vértice especial, que habitualmente sirve de
origen de coordenadas. Sı́, querido lector, hablamos de árboles, pero los representamos boca
arriba, boca abajo, o apuntando en las direcciones más inverosı́miles. Y ahora añadimos
raı́ces, que en muchos casos situaremos en la parte superior de los esquemas (o, como en
el dibujo, a la izquierda del todo). Curiosa fidelidad a la Botánica. Por supuesto, cualquier
árbol se convierte en uno con raı́z en cuanto decidamos qué vértice actúa como tal.
En un árbol con raı́z los vértices se agrupan por generaciones: la primera contiene sólo a
la raı́z, la segunda está formada por todos los vértices vecinos de la raı́z (sus “descendientes”);
la tercera, por los vecinos de estos últimos (salvo la raı́z); la cuarta, por los vecinos de los de
la tercera generación (excepto los que ya estaban en la segunda). . . y ası́ sucesivamente, de
manera que los vértices de la generación k son aquéllos que están a distancia exactamente k−1
de la raı́z. Cada vértice de un generación sólo puede estar unido a vértices de las generaciones
anterior y posterior, pues de lo contrario aparecerı́an ciclos. Esta estructura jerarquizada y
ordenada en capas explica el frecuente uso que haremos de estas estructuras. Los vértices
“terminales” del árbol, aquellos que no tienen descendientes, se denominan hojas.
En la sección 10.3.1 estudiaremos con detalle la jerga propia de estas estructuras, algunas
de sus propiedades y diversas aplicaciones.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
48
Capı́tulo 9. El lenguaje de los grafos
9.2.1.
Contando el número de árboles distintos
Versión preliminar, 28 de octubre de 2018
Cayley y Sylvester39 se interesaron, allá por el siglo XIX, por contar y enumerar ciertos compuestos
orgánicos, uno de los primeros escarceos con la caracterización de estructuras quı́micas en términos matemáticos. Vean al respecto, por cierto, lo que decı́a
el filósofo positivista Auguste Comte allá por 1830:
[. . . ] cualquier intento de emplear métodos
matemáticos en el estudio de la Quı́mica ha ser
considerado como profundamente irracional y
contrario al propio espı́ritu de la Quı́mica.
Figura 9.1: Cayley y Sylvester
Nuestros dos protagonistas trataron, por ejemplo,
de enumerar los isómeros de hidrocarburos saturados,
de fórmula Ck H2k+2 : los átomos de carbono tienen valencia 4, mientras que los hidrógenos
tienen valencia 1.
Se trata de grafos (conexos) con 3k + 2 vértices,
cuya suma de grados es 4k + (2k + 2) = 6k + 2, de
manera que tienen 3k + 1 aristas; una menos que
vértices: ¡árboles! A la izquierda representamos, en
orden, las estructuras arbóreas del metano, etano,
butano y propano, por si despertaran en el lector
tiernos recuerdos de los tiempos de su Bachillerato.
Enumerar los grafos con ciertas propiedades (ser
árboles, tener determinada sucesión de grados, etc.)
es, en general, una cuestión muy complicada. El lector que haya revisado (entregado en cuerpo y alma,
claro) la discusión de la sección 9.1.2 tendrá ya una
idea cabal de esa dificultad. Pero en ocasiones, sobre todo si etiquetamos los vértices, las cosas se simplifican. Un caso ilustrativo es el de los
39
Las vidas de los ingleses Arthur Cayley (1821-1895) y James Joseph Sylvester (1814-1897) corren paralelas. Estudiaron ambos en Cambridge pero, por diversas razones, durante muchos años no ejercieron como
matemáticos. Cayley fue abogado durante 14 años, aunque durante ese periodo de “matemático aficionado”
llegó a publicar más de 200 artı́culos de investigación. En esa labor coincidió con Sylvester, que no habı́a llegado a graduarse por negarse a realizar juramento de fidelidad a la Iglesia de Inglaterra (Sylvester era judı́o).
Juntos gustaban de discutir sobre casos judiciales y teoremas (incluyendo algunos de teorı́a de grafos). A
partir de 1863, Cayley se dedicó en exclusiva a las Matemáticas, desde su puesto en Cambridge. Sylvester, por
su parte, fue matemático, abogado. . . y poeta. A los 27 años fue contratado por la Universidad de Virginia. Se
cuenta que allı́, durante una lección, tuvo un serio incidente con un alumno que estaba leyendo un periódico
en clase, al que Sylvester (a quien se describe como un hombre de fuerte carácter) golpeó. Creyéndolo muerto,
tomó el primer barco de regreso a Inglaterra. En 1877 volvió a cruzar el charco, contratado por la Universidad
John Hopkins. Un año después fundarı́a la primera revista norteamericana de matemáticas: American Journal
of Mathematics. De vuelta a Inglaterra (sin más incidentes por medio, que se sepa), enseñó en Oxford hasta
su muerte. Gran parte de los trabajos de Sylvester sobre invariantes algebraicos, matrices y determinantes
fueron realizados en colaboración con Cayley, quien es considerado uno de los padres de la teorı́a de grupos.
También son fundamentales sus aportaciones a la geometrı́a no euclı́dea y la geometrı́a proyectiva.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
49
9.2. Árboles
grafos distintos (esto es, etiquetados) que se pueden formar con un conjunto dado de n vértin
ces, de los ya sabemos que hay 2( 2 ) . En el caso de los árboles con n vértices dados también
tenemos, como vamos a ver a continuación, una fórmula (sorprendentemente) sencilla.
Empecemos nuestra investigación, como parece prudente y razonable, analizando ejemplos
de árboles con pocos vértices.
Versión preliminar, 28 de octubre de 2018
Ejemplo 9.2.2 Contemos el número de árboles distintos con 2, 3, 4 y 5 vértices.
Como en la sección 9.1.2, determinaremos primero las distintas almas, para luego, para
cada una de esas almas, contar los posibles etiquetados. Para ser sistemáticos, nos iremos
guiando por las distintas sucesiones de grados posibles. En un grafo G con n vértices, el grado
de un vértice no puede ser mayor que n − 1. Si además G es un árbol, no podrá haber vértices
de grado 0 (pues es conexo) y la sucesión de grados debe cumplir que
grado(v) = 2|V (G)| − 2 ,
donde 1 ≤ grado(v) ≤ |V (G)| − 1 para todo v ∈ V (G).
v∈V (G)
En el caso de dos vértices sólo cabe la posibilidad de que el árbol sea isomorfo a un L2 . Si el
conjunto de vértices es {1, 2}, hay también un único árbol (los dos “posibles” etiquetados de
los vértices dan el mismo resultado).
Si tenemos tres vértices, sólo tenemos un alma posible, la que corresponde al grafo lineal L3 . Para etiquetarlo con el conjunto {1, 2, 3}, basta con decidir qué sı́mbolo va, por
ejemplo, en la posición central (cuál es el vértice de grado 2). Esto se puede hacer de tres
formas distintas, ası́ que hay 3 árboles distintos con vértices {1, 2, 3}.
Vamos con el caso de cuatro vértices. El grado máximo es ahora 3. Tras
un somero análisis, que recomendamos haga el lector, concluimos que sólo
hay dos sucesiones de grados admisibles, (1, 1, 1, 3) y (1, 1, 2, 2). La primera
de ellas se corresponde con el (alma del) grafo que dibujamos a la izquierda
y arriba, mientras que la segunda se traduce en el de debajo.
Para etiquetar el primer grafo con {1, 2, 3, 4}, basta con decidir el sı́mbolo que va en la
posición central; ası́ que hay 4 maneras distintas de hacerlo. El etiquetado del otro es más
delicado: elegimos primero las etiquetas de los dos vértices de grado 2 (se puede hacer de 42
formas); y para cada elección de éstas, hay luego dos posibilidades para nombrar los vecinos.
En total, 12 maneras distintas. En resumen, con cuatro vértices hay 2 árboles no isomorfos
y 12 + 4 = 16 árboles distintos con vértices {1, 2, 3, 4}.
Para el caso de cinco vértices, el grado de los vértices es a lo sumo 4.
Si hay alguno de grado 4, la sucesión de grados debe ser (1, 1, 1, 1, 4), a
la que le corresponde un único árbol salvo isomorfismos, el que aparece a
la derecha. Etiquetarlo con {1, 2, 3, 4, 5} es directo, pues basta decidir qué
etiqueta asignamos al vértice central: en total, 5 posibilidades.
Si no hay de grado 4, pero sı́ de grado 3, la única sucesión de grados
posible es (1, 1, 1, 2, 3) (alma de la derecha). Para etiquetarla, fijamos el
sı́mbolo del vértice de grado 3 (5 posibilidades), luego el del de grado 2
(4 posibilidades) y, finalmente, elegimos (3 posibilidades) el vecino de grado 1 del vértice de
grado 2 (o bien los dos vecinos de grado 1 del vértice de grado 3). En total, 60 posibilidades.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
50
Capı́tulo 9. El lenguaje de los grafos
Por último, si no hay vértices de grado 3, entonces sólo podremos
tener la sucesión de grados (1, 1, 2, 2, 2), que corresponde a un L5 . Para
etiquetarlo,
4 elegimos el sı́mbolo del vértice central (5 posibilidades), luego los otros dos de
grado 2 ( 2 = 6 posibilidades) y ya sólo quedan dos posibilidades para etiquetar los vértices
finales. En total, 5 × 6 × 2 = 60 formas distintas. Resumiendo – casi agotados –, con 5 vértices
hay tres árboles no isomorfos y 125 árboles distintos con vértices {1, 2, 3, 4, 5}.
♣
Versión preliminar, 28 de octubre de 2018
Ejemplo 9.2.3 Un poco más difı́cil: árboles con seis vértices {v1 , . . . , v6 }.
Los grados son ahora seis números entre 1 y 5 que suman 10. Si hay vértices de grado 5,
sólo podrá haber uno, y la sucesión de grados será (1, 1, 1, 1, 1, 5). El único grafo con estas
caracterı́sticas es el que aparece debajo de estas lı́neas como alma 1. El etiquetado de los
vértices con {v1 , . . . , v6 } sólo requiere decidir el sı́mbolo del vértice central: seis posibilidades.
Si no hay vértices de grado 5, pero sı́ de grado 4, tenemos la sucesión (1, 1, 1, 1, 2, 4)
(véase el alma 2). Hay 6 × 5 × 4 = 120 árboles distintos asociados a esta estructura, pues
basta etiquetar el de grado 4, luego el de grado 2 y, finamente, elegir el vértice de grado 1
que va unido al de grado 2.
Si no hay vértices de grado 4, pero sı́ de grado 3, las cosas se ponen más interesantes.
Por un lado,lasucesión
de grados (1, 1, 1, 1, 3, 3) está asociada al alma 3. Convénzase, lector,
de que hay 62 42 = 90 formas distintas de etiquetar sus vértices, pues basta elegir los dos
vértices “centrales”, y luego seleccionar qué otros dos vértices (de los 4 disponibles) van a
unirse a uno de los dos seleccionados antes.
Pero, por otro lado, y como ya vimos en la sección 9.1.2, hay dos árboles no isomorfos
(almas 4 y 5) asociados a la sucesión de grados (1, 1, 1, 2, 2, 3). Dejamos que el lector se
convenza por sı́ mismo de que hay 180 etiquetados distintos para la primera y 360 para
segunda.
alma 1
alma 2
alma 3
Alma 4
alma 5
alma 6
Por último, si no hay vértices de grado 3, entonces la sucesión de grados es (1, 1, 2, 2, 2, 2)
(véase el alma 6, un L6 ), que tiene 360 distintos etiquetados de sus vértices. En resumen, hay
seis árboles no isomorfos con 6 vértices y 1296 árboles distintos con vértices {1, . . . , 6}. ♣
Cayley40 , en 1889, probó que el patrón que se observa en los resultados obtenidos en el
laborioso y meticuloso análisis hecho hasta aquı́,
n
árboles distintos
2
1 = 20
3
3 = 31
4
16 = 42
5
125 = 53
6
1296 = 64
es completamente general.
40
Parece ser que fue Sylvester el primero que propuso este resultado, en 1857, y que la primera demostración
fue de Borchardt, en 1860. Los trabajos de Cayley en este campo son de 1889, y en ellos enumeró grafos con
diversas propiedades. Años después, Pólya desarrolları́a una teorı́a enumerativa general (véase el capı́tulo 28)
para abordar estas cuestiones.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
51
9.2. Árboles
Versión preliminar, 28 de octubre de 2018
Teorema 9.2.6 (Cayley) Hay nn−2 árboles distintos con el conjunto de vértices {1, . . . , n}.
A la derecha mostramos las primeras lı́neas del artı́culo de Cayley.
Quizás el lector pueda hasta entrever
en él las dos estructuras arbóreas que
dibujamos, y la subsecuente numerologı́a, en el análisis del caso n = 4 del
ejemplo 9.2.2.
Lector: no se deje cegar por la
aparente magnitud del número nn−2 ;
sı́, es un número enorme en cuanto n
sea moderadamente grande. Pero palidece si lo comparamos con, por ejemplo, el número total de grafos con n
n
vértices, que es 2( 2 ) . Convénzase por usted mismo, mirando ambas cantidades, por ejemplo,
en escala logarı́tmica. Por ejemplo, para n = 5 vértices, un 12 % de los grafos resultan ser
árboles, pero con n = 8 vértices ya sólo hay un 0.1 % de árboles.
Quizás el lector considere que serı́a más justo comparar el número de árboles con n vértices
(que tienen todos n − 1 aristas) con el número de grafos con exactamente n − 1 aristas. Es
decir, si escogemos al azar n − 1 aristas para unir los n vértices, ¿cuán probable es que el
grafo resultante sea conexo? Pues bien poco probable; en concreto, esa probabilidad es
nn−2
n(n−1)/2 ,
n−1
que para n = 5 es de casi un 60 %, pero para n = 20 es ya apenas del 0.4 %.
Vamos, que ser un árbol es casi un milagro.
Por cierto, como para cada árbol con vértices {1, . . . , n} hay n árboles con raı́z distintos
con esos mismos vértices, tenemos la siguiente reescritura del teorema de Cayley:
Corolario 9.2.7 (Cayley) Hay nn−1 árboles con raı́z distintos con vértices {1, . . . , n}.
Como comentario final, antes de entrar en la demostración del teorema de Cayley, avisamos al lector de que la misma cuestión, el recuento de árboles, pero ahora sin etiquetas
(árboles no isomorfos), es asunto mucho más complicado. Contar cuántas almas de árboles
hay con n vértices, como hicimos como parte del argumento de recuento de los árboles distintos con n ≤ 6 vértices en los ejemplos 9.2.2 y 9.2.3, requiere una tecnologı́a mucho más
avanzada, de funciones generatrices, como veremos en el capitulo 13.
De este elegante resultado de Cayley existen un buen número de demostraciones, de caracterı́sticas muy diversas. A continuación exhibimos dos de ellas. La primera es de corte
algorı́tmico, y se basa en una codificación de árboles conocida como códigos de Prüfer. Daremos luego una prueba alternativa, de corte más combinatorio, debida a Zeilberger. En el
ejercicio 9.2.8 esbozaremos una tercera demostración. Si con esto el lector no se queda satisfecho, le recomendamos revisar el argumento algebraico del ejemplo 9.2.7, e incluso embarcarse,
provisto ya del lenguaje de las funciones generatrices, en la lectura del capı́tulo 13.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
Versión preliminar, 28 de octubre de 2018
52
Capı́tulo 9. El lenguaje de los grafos
Códigos de Prüfer. Vamos a ver ahora cómo resumir la información sobre un árbol con
vértices {1, . . . , n} en una lista de longitud n − 2, con posible repetición, formadas con los
sı́mbolos {1, . . . , n}. Esa tal lista se conoce como el código de Prüfer 41 del árbol. El que hay
una biyección entre los dos conjuntos de objetos, el de los árboles y el de las listas, da como
conclusión el teorema 9.2.6 de Cayley.
El algoritmo que describimos a continuación toma un árbol T con n vértices etiquetados
con los números {1, . . . , n}, y las correspondientes n−1 aristas, y da lugar a una lista de n−2
números (entre 1 y n) que nombraremos como (α1 , . . . , αn−2 ).
En el primer paso, localizamos el vértice de grado 1 con menor etiqueta, que llamamos β1 ,
y anotamos quién es su único vecino, que será α1 . Borramos entonces β1 y su arista.
En el segundo paso, tomamos el nuevo árbol y repetimos el procedimiento: localizamos el
vértice de grado 1 con menor etiqueta, β2 , anotamos quién es su vecino, α2 , y borramos β2
y su arista. Y ası́, sucesivamente.
Observe, lector, que cada paso arranca con un árbol, lo que garantiza que haya vértices
de grado 1; y que en cada paso eliminamos una arista (y un vértice): en el paso j se empieza
con un árbol con n − j aristas, y sale uno con una arista menos. De forma que, en principio,
el algoritmo da n − 1 pasos.
Pero prestemos atención al último paso, en el que sólo queda una arista (y sus dos
vértices), y del que se obtendrı́an los valores βn−1 y αn−1 . De esos dos vértices, uno de
ellos necesariamente ha de tener la etiqueta n, pues esa etiqueta no ha podido ser eliminada
en pasos anteriores; de forma que αn−1 = n, y no es necesario reseñar este valor.
La lista α = (α1 , . . . , αn−2 ) es el código de Prüfer del árbol T (la lista β = (β1 , . . . , βn−2 )
es auxiliar). Convénzase el lector, analizando con detalle el algoritmo, que en esa lista α
el número de apariciones de cada vértice i es justamente gr(i) − 1. Ası́ que, por ejemplo,
los etiquetas de las hojas de T no aparecen nunca en α; y recı́procamente, si un vértice no
aparece en α, entonces es hoja en el árbol T .
Sugerimos al lector que se entrene en este procedimiento de codificación con los dos
ejemplos que dibujamos debajo de estas lı́neas: prepare un papel, pinte los dos grafos, vaya
tachando aristas siguiendo el procedimiento descrito arriba, y cerciórese de que obtiene los
códigos de Prüfer que aparecen reseñados en la figura.
6
2
3
5
4
7
1
2
7
3
8
4
8
5
?
β
α
3
5
4
8
5
1
6
1
?
6
2
2
7
7
1
β
α
2
1
3
1
4
1
5
1
6
1
7
1
41
Ernst Paul Heinz Prüfer (1896-1934) fue un matemático alemán, especialista en teorı́a de grupos y álgebra.
Muerto prematuramente de un cáncer de pulmón, la prueba del teorema de Cayley que aquı́ nos ocupa fue
publicada en 1918, cuando Prüfer era todavı́a estudiante en la Universidad de Berlin.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
53
Versión preliminar, 28 de octubre de 2018
9.2. Árboles
En cuanto al camino de vuelta, la reconstrucción del
árbol T a partir de su código de Prüfer, procedemos como
β 3 4 5 6
sigue: tenemos la lista α = (α1 , . . . , αn−2 ) y el conjunto
α 5 8 1 2 7 1
de etiquetas V = {1, 2, . . . , n}. En el primer paso, declaramos que β1 es el menor elemento de V que no esté en la
6
3
2
5
lista α, y formamos la arista {α1 , β1 }. Eliminamos ahora el sı́mbolo β1 de V , recortamos la lista α quitándole
4
su primer elemento, y repetimos el proceso para obte7
1
8
ner β2 (el menor elemento de V \ {β1 } que no esté en
la lista recortada en el paso anterior), y formar la arista {α2 , β2 }. Y ası́ sucesivamente. En fórmula, si lo prefiere el lector, cada βj viene dado
/ {β1 , . . . , βj−1 , αj , . . . , αn−2 } , y las aristas son siempre de la forma
por βj = mı́n k : k ∈
{αj , βj }. En la figura de la derecha representamos la reconstrucción tras cuatro pasos del
procedimiento para la lista del ejemplo de arriba. Observe, lector, que se van añadiendo aristas y que sólo en el último paso queda garantizado que sea un árbol. Por cierto, en ese último
paso, en V sólo quedarán n y otra etiqueta, que uniremos como arista final.
Dejamos al lector que complete los detalles que prueban que hay
una biyección entre los árboles con etiquetas {1, . . . , n} y las listas con
esos sı́mbolos, y repetición permitida, de longitud n − 2. Una ojeada al
ejercicio 9.2.8 puede venirle bien.
Damos a continuación una prueba alternativa del resultado de Cayley que nos parece especialmente sugerente. Se debe a Zeilberger42 .
Demostración del teorema 9.2.6 de Cayley. En una cierta empresa hay m jefes y k empleados, con sus respectivos nombres y apellidos43 . Los queremos organizar de manera que cada empleado tenga un
Figura 9.2: Zeilberger único supervisor, que pudiera ser otro empleado o quizás un jefe. Los jefes no tienen supervisor (lo que quizás sea una tautologı́a), y podrı́an no
tener subordinados (principio de Peter, seguro44 ). Llamaremos P (m, k)
al número de formas distintas de organizar la empresa con m jefes y k empleados.
En el lenguaje de los grafos45 , P (m, k)
j1
j2
j3
jm
cuenta el número de bosques (con m + k
vértices) formados por m árboles con raı́z,
donde las raı́ces van etiquetadas con los nombres de los jefes. Nos interesará en especial
el caso m = 1 y k = n − 1, que se corresponde con árboles con raı́z con n vértices en total,
con la raı́z ya etiquetada con el nombre del (único) jefe.
42
La página web del matemático israelı́ Doron Zeilberger (1950-), www.math.rutgers.edu/∼zeilberg/, es
una auténtica delicia que recomendamos al lector.
43
¿Éstos de qué van?, ¿qué pasó con los árboles?
44
Principio de Peter: en una jerarquı́a, todo empleado tiende a ascender hasta su nivel de incompetencia.
Corolario: con el tiempo, todo puesto tiende a ser ocupado por un empleado que es incompetente para
desempeñar sus obligaciones.
45
¡Ah!, menos mal, han vuelto al redil.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
54
Capı́tulo 9. El lenguaje de los grafos
Versión preliminar, 28 de octubre de 2018
El rango de interés para los parámetros es m ≥ 1 y k ≥ 0. Vamos a obtener ahora una
regla (recurrente) de cálculo para P (n, k). Para empezar, es claro que, para cada m ≥ 1,
P (m, 0) = 1. Para analizar el resto de los casos, argumentamos como sigue:
1) Distinguimos a los empleados cuyos supervisores son jefes. A estos empleados, de los
que habrá un cierto número s, con 1 ≤ s ≤ k, se les asigna, desde este momento, el
papel de jefecillos 46 .
2) Decidimos qué s empleados son jefecillos, lo que se puede hacer de ks maneras.
3) Y ahora asignamos el jefe ante el que responde cada jefecillo: ms maneras.
4) Queda organizar a los restantes k − s empleados. Pero, para éstos, los s jefecillos actúan
como jefes. Ası́ que los podremos organizar de tantas maneras como nos diga P (s, k−s).
En total,
k
( )
P (m, k) =
s=1
k
ms P (s, k − s) .
s
El argumento anterior, en el lenguaje de grafos, consiste en decidir qué vértices van en la
segunda generación (por debajo de las raı́ces), asociarlos con los vértices superiores, y luego
distribuir los restantes vértices en generaciones siguientes.
La regla de recurrencia ( ) es un tanto peculiar. Vamos a comprobar cómo esta regla de
recurrencia, junto con los valores iniciales P (m, 0) = 1, determina de manera única el valor
de los P (m, k).
Para k = 1, tenemos que, para cada m ≥ 1,
k−1 k
k=0 k=1 k=2
m=1
1
P (m, 1) =
mP (1, 0) = m,
m=2
1
usando que P (1, 0) = 1, mientras que el caso k =
2 de ( ) nos da, para cada m ≥ 1,
2
2
P (m, 2) =
mP (1, 1) +
m2 P (2, 0)
1
2
m=3
j
= 2m + m2 ,
donde hemos usado, además de que P (2, 0) = 1,
el que P (1, 1) = 1, por el paso anterior. Y, en
general, todos los valores de P (m, k), para k fijo (situados en una columna), se generan a
partir de los valores situados en la diagonal que se aprecia en el dibujo de la derecha.
Considere ahora el lector la función
f (m, k) = m(m + k)k−1 ,
definida para cada m ≥ 1 y k ≥ 0. Obsérvese que f (m, 0) = m/m = 1. Usando el teorema
del binomio de Newton, es un ejercicio casi rutinario (para aquel lector que haya batallado
46
Se lo merecen.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
55
9.2. Árboles
con las cuentas del binomio de la sección 5.1.2; por si acaso, lo dejamos como ejercicio 9.2.7)
comprobar que f (m, k) cumple la misma recurrencia que P (m, k), de lo que se deduce que
Versión preliminar, 28 de octubre de 2018
P (m, k) = m(m + k)k−1
, para cada m ≥ 1 y k ≥ 0;
y en particular, para el caso que nos incumbe, que P (1, n − 1) = nn−2 .
Ya casi hemos terminado. Con P (1, n − 1) contamos el número de árboles con raı́z con n
vértices, con la raı́z ya etiquetada con el nombre del jefe. Preste ahora atención, querido lector,
al ida y vuelta. Nos ponemos revolucionarios y cooperativistas47 : permitimos a cualquiera
de los n miembros de la empresa ser el jefe. Esto nos da n · nn−2 = nn−1 organizaciones
empresariales distintas, o mejor, nn−1 árboles con raı́z y n vértices.
Esto prueba la versión del resultado de Cayley recogida en el corolario 9.2.7, y argumentando como allı́, pero ahora dividiendo por n para diluir el papel de la raı́z, concluimos que
el número de árboles con n vértices es nn−2 .
9.2.2.
Árboles abarcadores de un grafo
En la introducción del capı́tulo planteamos la siguiente cuestión: construir una red que conecte una serie de puntos (por ejemplo, un sistemas de oleoductos, una red de ordenadores) de la forma
más barata (en cuanto a número de conexiones) a partir de un diseño previo, como el de la figura. El objetivo es eliminar el mayor
número posible de aristas de manera que el grafo siga siendo conexo. O, dicho de otra manera,
quedarnos con el número mı́nimo de aristas que garantizan la conexión del grafo. Estamos
buscando, en definitiva, un subgrafo que sea árbol y que incluya a todos los vértices.
Definición 9.2.8 Un árbol H es árbol abarcador48 de un grafo G = (V, A) si V (H) =
V (G) y A(H) ⊆ A(G).
Un árbol abarcador de G tiene los mismos vértices que G, y algunas de – o todas – sus
aristas. Conviene asegurarse primero de que tales árboles existen si, como es razonable,
partimos de un grafo conexo.
Proposición 9.2.9 Un grafo G es conexo si y sólo si tiene, al menos, un árbol abarcador.
Demostración. En un sentido, si un grafo tiene un árbol abarcador, que por definición es
conexo, es obvio que G también lo será.
En el otro: consideremos un grafo G conexo. Si es un árbol, hemos acabado: G es su propio
árbol abarcador. Si no es árbol, como es conexo, podemos todavı́a quitar una cierta arista a
sin que se desconecte (recordemos, de la proposición 9.2.2, el carácter extremal de los árboles
en este sentido). Ası́ que el grafo G \ {a} sigue siendo conexo. Si fuera un árbol, habrı́amos
acabado; pero si no lo fuera, podrı́amos quitar una arista b de forma que (G \ {a}) \ {b}
siguiera siendo conexo. Y ası́, sucesivamente. En cada paso, los sucesivos grafos son conexos;
cuando el número de aristas llegue a |V (G)| − 1, tendremos un árbol abarcador.
47
¡Vivan los años 60!
Spanning tree, en inglés, arbre de recouvrement en francés. En castellano se utilizan términos como “árbol
generador” o “árbol recubridor”. Nos gusta más “árbol abarcador’.
48
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
Versión preliminar, 28 de octubre de 2018
56
Capı́tulo 9. El lenguaje de los grafos
De la demostración anterior, además, deducimos que si el grafo G es conexo y |A(G)| =
|V (G)| − 1 + k, con k ≥ 0, entonces podemos quitar k aristas (convenientemente escogidas
para no perder la conexión) y quedarnos con un árbol abarcador. Se tratarı́a de ir “eliminando aristas” hasta quedarnos con el número adecuado de ellas, siguiendo, como criterio de
eliminación, ir identificando y “rompiendo” los ciclos del grafo.
Existen procedimientos alternativos, y de hecho más eficaces, para construir un árbol
abarcador en un grafo (o para concluir que no los hay), que consisten en ir “haciendo crecer”
el árbol en pasos sucesivos, como vamos a ver a continuación. Se trata de algoritmos diseñados,
en principio, para buscar y etiquetar vértices de un grafo49 . Piense por ejemplo el lector en
el grafo de internet, en el que cada página se representa con un vértice, y cada arista es
un hipervı́nculo50 . Los motores de búsqueda en internet requieren programas que primero
exploren la red (web crawlers) y que localicen las diferentes páginas, para luego crear los
correspondientes ı́ndices y almacenar contenidos.
A. Algoritmos de búsqueda en grafos y (su conexión con) conexión
Los dos procedimientos que vamos a describir, aunque siguen estrategias distintas, dan
ambos como resultado árboles (con raı́z) que incluyen unos cuantos vértices del grafo de
partida (o quizás todos). Los traemos a colación en esta sección, adelantándonos al capı́tulo 11
dedicado a los algoritmos en árboles, porque en particular permiten resolver, de manera
computacionalmente eficiente, cuestiones como la de decidir si un grafo es conexo (o, en caso
contrario, identificar componentes conexas), localizar ciclos o aristas puente, etc.
Advertimos al lector, no obstante, de que la descripción que ahora iniciamos será somera,
casi filosófica. Dejamos al lector con especiales inclinaciones algorı́tmicas que se entretenga
en traducir estas pinceladas en un código detallado.
A1. Algoritmo de búsqueda a lo ancho (BA)51 .
El procedimiento parte de un grafo G = (V, A) y construye un árbol (con raı́z) cuyos
vértices están agrupados por generaciones en función de su distancia a la raı́z.
Marcamos un cierto vértice inicial, digamos v1 . Localizamos todos sus vecinos y los etiquetamos. Las aristas correspondientes quedan incorporadas al árbol. Una vez numerados
los vértices vecinos del inicial, pasamos al que sea primero en esa ordenación y repetimos
el proceso: localizamos todos sus vecinos nuevos y los añadimos al árbol (obsérvese que no
se forman ciclos en el proceso). Y ası́ sucesivamente, hasta que no podamos incorporar más
vértices (ni aristas) al árbol.
En el proceso de “localización” de vértices nuevos, cada arista es examinada como mucho
dos veces (una por cada uno de sus extremos), ası́ que el número de pasos en este algoritmo
es52 O(|A|). Si G tiene n vértices, el número de pasos será O(n2 ).
Si el grafo es conexo, el resultado final es un árbol abarcador (con raı́z) de G. Si no lo
49
Muchos de los algoritmos que veremos en la sección 11.2 son variaciones de éstos adaptadas a distintos
problemas (paseos más cortos, árboles abarcadores de peso mı́nimo, etc.).
50
Aunque este grafo serı́a, en realidad, dirigido, véase la sección 9.3.
51
Breadth-First Search (BFS), en la terminologı́a anglosajona.
52
Para ser más precisos, es O(|V | + |A|).
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
57
9.2. Árboles
fuera, se detendrı́a al completar un árbol abarcador de la componente conexa de G en la que
estuviera emplazado el vértice inicial v1 .
Versión preliminar, 28 de octubre de 2018
A2. Algoritmo de búsqueda en profundidad (BP)53
Ahora procedemos de la siguiente manera: empezamos de nuevo con un cierto vértice v1
y localizamos sus vecinos. Se toma uno de ellos como v2 e incorporamos la arista {v1 , v2 }
al árbol. Entonces avanzamos a v2 y buscamos vecinos que no hayan sido ya visitados;
tomamos cualquiera de ellos como v3 , y ası́ sucesivamente. Cuando lleguemos a un vértice
que no tenga vecinos nuevos que añadir, digamos vk , retrocedemos al vértice anterior, vk−1 ,
y ahı́ repetimos el proceso (buscamos nuevos vecinos que añadir al árbol).
Si en algún momento del proceso nos encontramos en v1 sin sitios nuevos a donde ir
(quizás hayamos pasado antes varias veces por v1 , pero pudiendo añadir nuevos vértices), se
termina el algoritmo. El árbol T ası́ generado es un árbol abarcador de la componente conexa
que incluye al vértice v1 . Como cada arista del grafo se utiliza, como mucho, dos veces en el
algoritmo (una en el “avance”, otra en el “retroceso”), el número de pasos del algoritmo será
O(|A|) (o quizás O(|V | + |A|)), lo que nos da de nuevo O(n2 ) si el grafo tiene n vértices.
Ilustramos las diferencias entres los dos algoritmos en el siguiente ejemplo.
Ejemplo 9.2.4 Apliquemos los algoritmos BA y BP al siguiente grafo.
1
2
3
10
9
4
8
5
7
6
11
12
13
v2
v3
v4
v5
v6
Empecemos, por ejemplo, con el algoritmo BP, v1
1
2
4
3
9
13
digamos partiendo del vértice 1 (que serı́a el v1 ).
De él pasamos al 2, al 4, al 3, al 9 y al 13. Una vez en el vértice 13 (que es v6 ) vemos que
todos sus vecinos ya han sido visitados, ası́ que retrocedemos a v5 (el vértice 9).
v7
v8
v9
Desde allı́ podemos visitar nuevos vecinos (obser- 10
- 12
- 11
9
vemos que la arista entre 9 y 13 la recorremos en los
dos sentidos, de ida y de vuelta). Por ejemplo, con el camino que mostramos a la derecha. Al
no poder añadir vecinos desde el vértice 11 (v9 ), retrocedemos a v8 , el vértice 12. Desde allı́
podemos incluir al vértice 8 como v10 . Y una vez en éste, nos vemos obligados a retroceder
a v9 , v8 , etc., hasta volver a v1 .
Como ya no podemos añadir nuevos vértices, el algoritmo termina. A la derecha dibujamos el árbol resultante, que no incluye a todos los vértices del grafo (el
grafo original no era conexo), sólo a los de la componente conexa del vértice 1. Nótese que en el proceso hemos
recorrido cada arista del árbol en ambos sentidos.
53
1
2
3
10
9
4
8
5
7
6
11
12
13
Depth-First Search (DFS), en la terminologı́a anglosajona.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
58
Capı́tulo 9. El lenguaje de los grafos
Vamos ahora con el algoritmo BA. De nuevo etiquetarı́amos el vértice 1 como v1 , y a sus vecinos 2, 10
y 11 como v2 , v3 y v4 , respectivamente. Una vez con10
9
8
1
siderados todos los posibles vecinos de v1 (y añadidas
7
6 sus correspondientes aristas al árbol), nos movemos a
v2 , el vértice 2; ahı́ añadimos a 3 como v5 y a 4 como
11
12
13
v6 . Es hora de ir al vértice v3 = 10 y añadir a 9 como
v7 y a 12 como v8 . En el vértice v4 = 11 no hay vértices nuevos que considerar, pero sı́ en
el v5 (el vértice 3): etiquetamos el 13 como v9 . Desde v6 = 4 añadimos el vértice 8 como v10 .
Y al mirar en los vértices del v7 al v10 comprobamos que no podemos ir más allá con el árbol.
El algoritmo ha terminado y ha producido el árbol de la izquierda. De nuevo, el árbol sólo
abarca a los vértices de la componente conexa a la que pertenecı́a el vértice 1.
♣
Versión preliminar, 28 de octubre de 2018
2
3
4
5
Ambos algoritmos, que por otro lado tienen sus ventajas y sus desventajas, en función
del problema que se esté tratando, permiten resolver eficientemente (desde el punto de vista
computacional) la siguiente cuestión básica:
determinar si un cierto grafo G es conexo o no (comprobando si el árbol que produce
el algoritmo incluye todos los vértices del grafo; esto es, si es árbol abarcador o no).
Con ligeras variaciones, permiten también resolver las siguientes cuestiones:
determinar componentes conexas de G (arrancando con un vértice, identificando su
componente conexa, y repitiendo luego el proceso para vértices que no estén en ella);
determinar si G tiene o no ciclos (localizando las componentes conexas y contando las
aristas de cada una de ellas; esto es, comprobando si son árboles);
decidir si una cierta arista es puente o no del grafo (comparando el número de componentes conexas antes y después de eliminar la arista en cuestión).
O algunas otras, algo más sofisticadas, sobre las que no daremos los detalles:
encontrar el ciclo más corto en el grafo G (y, por tanto, determinar cuello(G));
determinar si un grafo G es bipartito o no (utilizando la caracterización, en términos
de la presencia de ciclos de longitud impar del lema 9.1.12).
Por su propia estructura, además, el algoritmo BA permite determinar las distancias de un
vértice a los demás del grafo. En la sección 11.2.2 volveremos sobre este asunto, aunque allı́
en el contexto más general de los grafos con pesos.
B. El número de árboles abarcadores de un grafo
Que un grafo conexo tiene, en general, más de un árbol abarcador es
bastante evidente. ¿Cuántos, exactamente? Dependerá, claro, del grafo considerado. En el que aparece dibujado a la derecha nos “sobran” dos aristas.
Pero no cualesquiera: por ejemplo, si quitáramos las aristas a y b, desconectarı́amos el grafo. Encomendamos al lector la (paciente) comprobación de
tiene ocho árboles abarcadores distintos, que se muestran a continuación:
el discreto encanto de la matemática
– 28 de octubre de 2018 –
1
d
4
a
e
c
2
b
3
que este grafo
pablo fernández y jose l. fernández
59
9.2. Árboles
1
d
Versión preliminar, 28 de octubre de 2018
4
a
2
b
3
1
a
2
2
d
d
4
1
c
3
4
1
a
b
c
3
2
1
b
4
c
3
4
a
e
2
c
3
1
2
d
4
e
b
3
1
d
a
e
4
2
3
1
4
2
e
b
c
3
Observe el lector que la pregunta trata sobre número de árboles distintos; es decir, el grafo G de partida está etiquetado, y los árboles abarcadores llevan esas mismas etiquetas. En el
ejemplo anterior, las seis primeras configuraciones se corresponden con (su alma es) el grafo
lineal con cuatro vértices. Ahora bien, una vez que hemos determinado que hay ocho árboles
abarcadores distintos, cuáles sean las etiquetas del grafo inicial es completamente irrelevante. Esto es, el número de árboles abarcadores distintos de un grafo G, que en lo sucesivo
nombraremos como τ (G), es un invariante por isomorfı́a. Determinar τ (G) es relativamente
sencillo para algunas familias especiales de grafos.
Ejemplo 9.2.5 El número de árboles abarcadores de los grafos circulares, los grafos lineales,
los grafos completos. . . ¡y de los propios árboles!
Consideremos un grafo circular con n vértices, Cn , para el que |A(Cn )| = |V (Cn )|. Formar
un árbol abarcador consiste, simplemente, en quitar una arista; y cualquiera de las n que hay
vale para ello. Ası́ que Cn tiene n posibles árboles abarcadores: τ (Cn ) = n
Un grafo lineal con n vértices, Ln , es ya un árbol, ası́ que es su propio árbol abarcador.
Éste es un resultado general: un árbol G tiene sólo un árbol abarcador (él mismo).
Un grafo completo Kn contiene todas las aristas posibles, ası́ que hay tantos árboles
abarcadores como árboles con n vértices haya: es decir, τ (Kn ) = nn−2 , por el teorema 9.2.6
de Cayley.
♣.
Ejemplo 9.2.6 ¿Cuántos árboles abarcadores distintos contiene un K2,s ?
Un grafo bipartito completo K2,s , s ≥ 2, tiene 2s aristas y s + 2 vértices.
Necesitamos quitar s − 1 aristas sin que se desconecte el grafo. Obsérvese que un
árbol abarcador del grafo contendrá a una serie de vértices de los de la derecha
a
conectados al vértice a y otros conectados a b. Pero ha de haber al menos uno
b
que se conecte a ambos, para que sea conexo. Y sólo uno, porque si de dos (o
más) vértices a la derecha se conservaran sus dos aristas, se formarı́a un ciclo.
De manera que, si los vértices de la “derecha” son {1, . . . , s}, elegir un árbol
abarcador es exactamente lo mismo que escoger dos conjuntos A y B, que incluyen los vértices
que comparten arista, respectivamente, con a y b en el árbol abarcador, y que cumplan que
A ∪ B = {1, . . . , s} y |A ∩ B| = 1. Para contar el número de maneras de elegir A y B, sigamos
el siguiente proceso:
1) Elegimos el elemento de la intersección (hay s posibilidades).
2) Luego basta decidir si el resto de los elementos están en A ó en B. Equivalentemente,
formar una (s − 1)-lista con repetición permitida con dos sı́mbolos (“estar en A” o “estar
en B”). Esto se puede hacer de 2s−1 formas distintas.
♣
Ası́ que τ (K2,s ) = s 2s−1 .
Quizás el lector quiera entretenerse (ejercicio 9.2.11) con el cálculo del número de árboles
abarcadores del caso K3,s siguiendo un razonamiento similar al visto para K2,s . Aunque el
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
60
Capı́tulo 9. El lenguaje de los grafos
Versión preliminar, 28 de octubre de 2018
argumento combinatorio se complica en ese caso, lo que sugiere que determinar τ (Kr,s ), para
un grafo bipartito general Kr,s , no es tarea sencilla. Por cierto, τ (Kr,s ) resulta ser sr−1 r s−1
(véase el final del apartado).
¿Qué sabemos sobre τ (G)? Veamos. Si un grafo conexo G tiene n vértices, el número τ (G)
de árboles abarcadores distintos de G puede oscilar entre 1 (si G ya es un árbol) y nn−2 (si se
trata del grafo completo). Pero el valor exacto depende de la estructura particular del grafo.
Ésta no es una cuestión que tenga únicamente interés teórico. Digamos, por ejemplo, que
un grafo (conexo) representa una red eléctrica, y que estamos interesados en la fiabilidad 54
de nuestra red. Esto es, si puede ser capaz de soportar la pérdida de algunos tramos (aristas)
sin que el fluido se interrumpa. El que el grafo tenga muchos árboles abarcadores sugiere que
el sistema será bastante robusto, y que podrá sobreponerse a estas pérdidas.
Estas cuestiones le interesaban, y mucho, a Kirchhoff55 , que en
1847 enunció el siguiente resultado, que permite calcular algebraicamente el número de árboles abarcadores de un grafo arbitrario (véase
un procedimiento alternativo en el ejercicio 9.2.13).
Teorema 9.2.10 (Kirchhoff ) Sea G un grafo conexo con n vértices, y sea M la matriz de vecindades M asociada. Consideramos la
matriz L = D − M , donde D es la matriz diagonal cuyos registros
son los grados de los vértices.
a) Llamamos L(i) a la matriz que se obtiene de L eliminando la
fila y la columna i. Entonces, para cualquier i entre 1 y n,
Figura 9.3: Kirchhoff
τ (G) = det(L(i) ).
b) Alternativamente,
1
μ2 · · · μn ,
n
donde μ2 , . . . , μn son los autovalores no nulos de la matriz L.
τ (G) =
¡Póngase en pie!, querido lector56 , ¡y asómbrese! Estábamos con grafos, con árboles abarcadores, y de repente, como por ensalmo, aparecen matrices y determinantes, además de
autovalores. ¡Qué cosas tienen las matemáticas!
Como ya mencionamos en la sección 9.1.5, la matriz L = D − M es conocida, en la jerga
habitual de la teorı́a espectral de grafos, como la matriz laplaciana del grafo. Buen momento
para que el lector revise la citada sección57 .
54
Reliability, dirı́a un anglosajón, que además sabrı́a pronunciar la palabra sin trabarse.
Gustav Robert Kirchhoff (1824-1887) es uno de los padres de la teorı́a de grafos. Nació en Königsberg, lo
que de por sı́ ya era bastante premonitorio (vea el lector el apartado 10.1.1). En sus estudios sobre circuitos
eléctricos formuló las famosas leyes de Kirchhoff, que relacionan corrientes, voltajes y resistencias, generalizando ası́ las leyes de Ohm. Kirchhoff se ocupó también de analizar otros fenómenos fı́sicos, como la radiación
del cuerpo negro, o el estudio de los espectros de los cuerpos celestes. Junto con el quı́mico Bunsen, diseñó uno
de los primeros espectroscopios, con el que, por ejemplo, se descubrirı́an elementos como el cesio y el rubidio.
56
Si le place claro, y sobre todo si lleva toda la tarde leyendo este texto.
57
Si es que, quizás impresionado por el despliegue de álgebra lineal que contenı́a, no lo hizo en su momento.
55
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
61
Versión preliminar, 28 de octubre de 2018
9.2. Árboles
Veamos. El primer enunciado del teorema 9.2.10 es, además de sorprendente, un tanto
misterioso, por aquello de que se pueda tomar cualquier cofactor (y que todos ellos tengan
el mismo valor). La segunda versión, la de los autovalores, que iguala a la anterior en cuota
de sorpresa, es al menos un enunciado único: se trata multiplicar los n − 1 autovalores no
nulos. ¡Ajá!, de manera que L tiene autovalores no negativos, uno de ellos es 0, y el resto son
positivos. Sı́, toca revisar la sección 9.1.5.
No vamos a dar la demostración de este teorema. Aunque el lector con certificada habilidad con el álgebra lineal puede convencerse, en el ejercicio 9.2.14, de que los dos enunciados
del teorema son equivalentes.
Vamos, sin más dilación, a poner en acción este excelso teorema. Empeza1
2
mos con el cálculo del número de árboles abarcadores del grafo que aparece a
la derecha, el que abrı́a este apartado y del que sabemos, tras la enumeración
correspondiente, que tiene ocho árboles abarcadores distintos.
4
3
Las correspondientes matrices M y D son
⎛
0
⎜ 1
⎜
M =⎝
1
1
1
0
1
0
1
1
0
1
⎞
⎛
1
3
⎜
0 ⎟
⎟y D=⎜ 0
⎝ 0
1 ⎠
0
0
0
2
0
0
0
0
3
0
⎞
⎛
0
3 −1 −1 −1
⎜
0 ⎟
⎟ ; ası́ que L = ⎜ −1 2 −1 0
⎝ −1 −1 3 −1
0 ⎠
2
−1 0 −1 2
⎞
⎟
⎟.
⎠
Por ejemplo, el cofactor que se obtiene eliminando la primera fila y columna resulta ser
2 −1 0 (−1)1+1 −1 3 −1 = 8 .
0 −1 2 ♣
Compruebe el lector que los demás cofactores llevan al mismo resultado.
Ejemplo 9.2.7 Kirchhoff y Cayley.
Queremos contar, de nuevo, cuántos árboles abarcadores tiene un grafo completo Kn . Las
matrices de vecindades y laplaciana, de dimensiones n × n, son en este caso:
⎛
⎜
⎜
⎜
M =⎜
⎜
⎝
0
1
1
..
.
1
1 1
0 1
1 0
.. ..
. .
1 1
⎞
··· 1
··· 1 ⎟
⎟
··· 1 ⎟
⎟
. ⎟
..
. .. ⎠
··· 0
⎛
=⇒
⎜
⎜
⎜
L=⎜
⎜
⎝
n−1 −1
−1
n−1
−1
−1
..
..
.
.
−1
−1
−1
−1
n−1
..
.
−1
···
···
···
..
.
−1
−1
−1
..
.
⎞
⎟
⎟
⎟
⎟
⎟
⎠
··· n − 1
Siguiendo la parte a) del teorema 9.2.10 de Kirchhoff, necesitamos calcular (por ejemplo)
el determinante de la matriz de dimensiones (n − 1) × (n − 1) que hemos recuadrado en la
fórmula anterior. Le proponemos al lector dos posibilidades. La primera pasa por que exhiba
sus habilidades con las operaciones de eliminación gaussiana; el ejercicio 9.2.9 contiene una
guı́a detallada de los posibles pasos. La segunda, que revise el ejemplo 8.1.16 del capı́tulo
dedicado a las recurrencias, y la fórmula que obtuvimos allı́ para el determinante de una
matriz con unos en la diagonal y con el resto de sus entradas iguales a una cierta cantidad.
Obsérvese que el determinante que nos incumbe aquı́ es de ese tipo si sacamos factores
comunes n − 1 en cada fila.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
62
Capı́tulo 9. El lenguaje de los grafos
Como tercera alternativa, le proponemos que deduzca el resultado de Cayley, de manera
harto directa, si es que es capaz de comprobar que los autovalores no nulos de la matriz L
valen todos n, y que hay n − 1 de ellos (revise, si lo desea, el final del apartado 9.1.5). De
donde se deduce, usando la parte b) del teorema 9.2.10 de Kirchhoff, que τ (Kn ) = nn−2 . ♣
Terminamos esta sección mencionando dos casos particulares más. El primero, aquél que
dejamos caer, como el que no quiere la cosa, tras el ejemplo 9.2.6, y que dice que
Versión preliminar, 28 de octubre de 2018
τ (Kr,s ) = sr−1 r s−1 .
Y el segundo, que trata sobre el número de árboles abarcadores del grafo Qn del cubo:
τ (Qn ) =
n
n
(2k)( k ) .
k=2
Por ejemplo, τ (Q2 ) = 4, como ya sabı́amos, pues Q2 es como un grafo circular C4 , mientras
que τ (Q3 ) = 384. Para comprobar estos dos resultados, puede el lector ponerse a calcular
determinantes (en el primer caso, el del Kr,s , analizando la matriz en cajas que representa al
grafo), o bien, quizás más directamente, embarcarse en el cálculo de autovalores; recomendamos para esto, una vez más, el final de la sección 9.1.5.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
63
9.2. Árboles
EJERCICIOS DE LA SECCIÓN 9.2
Sobre árboles
9.2.1 Pruébese que un grafo G es un árbol si y sólo si no tiene ciclos y |A(G)| = |V (G)| − 1.
9.2.2 Pruébese que, en un árbol, y dados dos vértices suyos cualesquiera, existe un único paseo que
no repite vértices que los conecta.
Versión preliminar, 28 de octubre de 2018
9.2.3 a) ¿Existen árboles de siete vértices y con cinco vértices de grado 1 y dos de grado 2?
b) ¿Y con siete vértices de grados (1, 1, 1, 2, 2, 2, 3)?
9.2.4 Si G es árbol con p vértices de grado 1, q vértices de grado 4 y ningún otro vértice, ¿qué relación
hay entre p y q? ¿Hay árboles con esos grados?
9.2.5 a) Hállese el número de árboles distintos que se pueden formar con los vértices {1, 2, . . . , n} si
i) n = 6 y cuatro vértices tienen grado 2; ii) n = 5 y exactamente tres vértices tienen grado 1.
b) ¿Cuántos árboles distintos se pueden formar con un conjunto de ocho vértices, {1, 2, 3, . . . , 8},
de manera que 2 de los vértices tengan grado 4 y los 6 restantes tengan grado 1?
9.2.6 ¿Cuántos árboles con n vértices tienen los grados de todos sus vértices ≤ 2?
Pruebas del teorema de Cayley
9.2.7 En este ejercicio completamos los detalles de la demostración del teorema 9.2.6 de Cayley dada
en el texto. Considérese la función gk (x) = (x + k)k . Aplı́quese el teorema del binomio y derı́vese una
vez para concluir que
k k
x gk (x) = x(x + k)k−1 =
s xs k k−s−1 .
s
k
s=1
Dedúzcase, finalmente, que la función f (m, k) = gk (m) satisface la misma regla de recurrencia que
los P (m, k) de la demostración del teorema.
9.2.8 En este ejercicio probamos que el número de árboles distintos con vértices {1, . . . , n} y con
grados respectivos g1 , . . . , gn (números entre 1 y n − 1 que suman 2n − 2) viene dado por
n−2
,
g1 − 1, g2 − 1, . . . , gn − 1
de donde se obtiene, como corolario, la fórmula de Cayley del teorema 9.2.6.
Sea (g1 , . . . , gn ) una lista de grados, ordenada por ejemplo de mayor a menor. Por comodidad,
consideramos la lista (d1 , . . . , dn ), donde di = g1 − 1 para cada i, y llamemos N (d1 , d2 , . . . , dn ) al
número de árboles distintos con {1, 2, . . . , n} de grados respectivos (g1 , . . . , gn ).
n
a) Obsérvese que si j=1 dj = n − 2 entonces N (d1 , d2 , . . . , dn ) = 0.
b) Pruébese la siguiente fórmula de recurrencia:
N (d1 , d2 , . . . , dn−1 , 0) = N (d1 −1, d2 , . . . , dn−1 )+N (d1 , d2 −1, . . . , dn−1 )+· · ·+N (d1 , d2 , . . . , dn−1 − 1) ,
donde en la suma anterior el término i-ésimo no aparece si di = 0.
n
c) Dedúzcase que si j=1 dj = n − 2, entonces N (d1 , d2 , . . . , dn ) = d1 ,dn−2
.
2 ,...,dn
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
64
Capı́tulo 9. El lenguaje de los grafos
d) Obténgase finalmente la fórmula de Cayley del teorema 9.2.6.
9.2.9 En este ejercicio completamos los detalles de la demostración del teorema de Cayley que
iniciamos en el ejemplo 9.2.7. Queremos calcular el determinante de dimensiones (n − 1) × (n − 1) que
aparece debajo de estas lı́neas, más a la izquierda. Las habituales operaciones de eliminación gaussiana
no cambian el valor de este determinante. Sustitúyase cada columna, de la segunda a la última, por
la resta de ella misma con la primera para el paso (1) y sáquense factores comunes para el paso (2):
Versión preliminar, 28 de octubre de 2018
n−1
−1
−1
..
.
−1
−1
n−1
−1
..
.
−1
−1
−1
n−1
..
.
−1
···
···
···
..
.
···
−1
−1
−1
..
.
n−1
(1) = n−1
−1
−1
..
.
−1
−n
n
0
..
.
0
−n
0
n
..
.
0
···
···
···
..
.
···
−n
0
0
..
.
n
(2)
n−2 = n
n−1
−1
−1
..
.
−1
−1
1
0
..
.
0
−1
0
1
..
.
0
···
···
···
..
.
···
−1
0
0
..
.
1
Finalmente, súmesele a la primera columna las restantes para comprobar que el determinante más a
la derecha vale exactamente 1. Dedúzcase la fórmula de Cayley.
´
Arboles
abarcadores
9.2.10 Sean G y H dos grafos con conjunto de vértices {1, . . . , n}. Compruébese que si A(G) ⊆ A(H),
entonces el H tiene, al menos, tantos árboles abarcadores como G.
9.2.11 Calcúlese el número de árboles abarcadores distintos de un grafo isomorfo a K3,s .
9.2.12 Consideremos el grafo con 2n + 1 vértices y 3n aristas formado por n triángulos que tienen
exactamente un vértice común. ¿Cuántos árboles abarcadores distintos tiene?
9.2.13 Consideremos un grafo G y llamemos τ (G) al número de árboles abarcadores que tiene.
Fijémonos en una arista a del grafo G. Llamemos G \ {a} al grafo que queda al eliminar esa arista
y Ga al que se obtiene al identificar los vértices extremos de la arista a. Compruébese que
τ (G) = τ (G \ {a}) + τ (Ga )
La expresión anterior deviene en regla de cálculo de τ (G) sin más que observar que los grafos G \ {a}
y Ga tienen menos aristas (y Ga menos vértices) que G. Quizás el lector quiera consultar la discusión
sobre el cálculo del polinomio cromático de un grafo de la sección 10.2.3.
9.2.14 En este ejercicio de álgebra lineal comprobamos la equivalencia entre los dos enunciados del
teorema 9.2.10 de Kirchhoff.
Sea A una matriz n × n,
⎛
⎞
a1,1
···
a1,n−1
a1,n
⎜
⎟
..
..
..
..
⎜
⎟
.
.
.
.
A=⎜
⎟
⎝ an−1,1 · · · an−1,n−1 an−1,n ⎠
a1,n
···
an,n−1
an,n
tal que sus filas y columnas suman 0. Llamemos A0 a la matriz, señalada arriba, que contiene las n−1
primeras filas y columnas. El objetivo es determinar el coeficiente de λ en el polinomio caracterı́stico
de M ,
⎞
⎛
a1,n−1
a1,n
a1,1 − λ · · ·
⎟
⎜
..
..
..
..
⎟
⎜
.
.
.
.
pM (λ) = det(M − λI) = det ⎜
⎟
⎝ an−1,1 · · · an−1,n−1 − λ an−1,n ⎠
a1,n
···
an,n−1
an,n − λ
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
65
Versión preliminar, 28 de octubre de 2018
9.2. Árboles
a) Obsérvese primero que el término independiente del polinomio pM (λ) es det(M ). Nótese que,
como las filas suman 0, λ = 0 es un autovalor de M , con autovector (1, . . . , 1), de manera que M no
es invertible y det(M ) = 0.
b) Usando las operaciones de eliminación gaussiana habituales, compruébese que el coeficiente de
λ en pM (λ) es − det(B(0)), donde
⎛
⎞
a1,1 − λ · · ·
a1,n−1
a1,n
⎜
⎟
..
..
..
..
⎜
⎟
.
.
.
.
B(λ) = ⎜
⎟
⎝ an−1,1 · · · an−1,n−1 − λ an−1,n ⎠
1
···
1
1
(sugerencia: súmense todas las filas de M − λI a la última y sáquese un factor común).
c) Compruébese, usando de nuevo operaciones de eliminación gaussiana, que det(B(0)) = n det(M0 )
(sugerencia: sumar todas las columnas de N (0) a la última).
d) Dedúzcase que el coeficiente de λ en pM (λ) vale −n det(A0 ).
e) Convénzase el lector de que se obtiene el mismo resultado si en lugar de argumentar con A0 lo
hubiéramos hecho con cualquier otra matriz obtenida de A quitando una fila y una columna, es decir,
para cualquier menor de A.
f) Llamemos μ1 , μ2 . . . , μn a los autovalores de A, donde μ1 = 0. Dedúzcase que el coeficiente de λ
en pM (λ) se puede escribir como −μ2 · · · μn .
g) Compruébese finalmente que la matriz laplaciana de un grafo G conexo está en las condiciones
iniciales del ejercicio y dedúzcase la equivalencia entre las dos formulaciones del teorema 9.2.10 de
Kirchhoff.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
66
Capı́tulo 9. El lenguaje de los grafos
9.3.
Grafos dirigidos
Versión preliminar, 28 de octubre de 2018
En muchas de las aplicaciones del lenguaje de los grafos, resulta natural asociar un sentido 58 u orientación a cada una de las aristas. Podrı́a ser una red de calles de una ciudad,
algunas con un único sentido de circulación, otras con circulación permitida en los dos sentidos; o internet y sus enlaces entre páginas; o artı́culos de investigación que citan otros, o. . .
Esta sección está dedicada a formalizar la noción de grafo dirigido y a describir sus
similitudes y diferencias con los grafos habituales. Aquı́, entre dos vértices u y v,
u
en lugar de
v
a
consideramos
u
a
-
v
u
o bien
v
a
o quizás incluso ambas aristas. Observe el lector que dar un sentido a una arista requiere
decidir qué extremo es el vértice inicial, es decir, ordenar el par de vértices.
Definición 9.3.1 Un grafo dirigido (o digrafo) D = (V, A) está formado por un conjunto V de vértices y un conjunto A de aristas extraı́do de la colección de pares ordenados de
elementos de V . Una arista de D es, pues, una lista (u, v), con u, v ∈ V , u = v.
Note el lector la diferencia con la definición 9.1.1 de la noción habitual de grafo. Aquı́,
las aristas son pares ordenados, es decir, listas, en lugar de los 2-subconjuntos habituales.
Para contar el número de grafos dirigidos distintos que hay con vértices V = {1, 2, . . . , n},
observamos primero que hay tantos pares ordenados con los n vértices como
# {listas sin repetición de longitud 2 extraı́das de {1, . . . , n}} = n(n − 1) .
Ası́ que el número de grafos dirigidos (sin lazos) con V como conjunto de vértices es igual a
# {subconjuntos de {1, . . . , n(n − 1)}} = 2n(n−1) ,
n
que son muchos más, claro, que los 2( 2 ) grafos sin dirigir: una cantidad es el cuadrado de la
otra. Por ejemplo, con seis vértices hay 32 768 grafos distintos, pero más de mil millones de
grafos dirigidos distintos.
En ocasiones convendrá añadir la posibilidad de incluir lazos, en cuyo caso se modificarı́a
la definición 9.3.1 para permitir la presencia de aristas del tipo (u, u), con u ∈ V . En este
2
caso, tendrı́amos hasta 2n posibles grafos dirigidos con n vértices.
Si tomamos V = {1, 2, 3, 4}, el conjunto de las 12 posibles aristas serı́a
P = {(1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4), (3, 1), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)}.
1
-
?
3
-
2
4
El de posibles lazos, si es que interesara considerarlos, serı́a L =
{(1, 1), (2, 2), (3, 3), (4, 4)}. Para formar un grafo dirigido tomamos algunos elementos de P (si además permitiéramos lazos, algunos de L).
La elección de aristas A(D) = {(1, 2), (1, 3), (3, 1), (3, 4)} da lugar al
grafo dirigido que aparece a la izquierda.
58
En español es habitual usar los términos “dirección” y “sentido” indistintamente. Y aunque “sentido” es
más correcto, hablamos de “grafos dirigidos”, porque lo de hablar grafos “con” y “sin sentido”, como que no.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
67
9.3. Grafos dirigidos
v1
v2
v3
..
.
vn
Versión preliminar, 28 de octubre de 2018
de la
Si hay n vértices, digamos {v1 , . . . , vn }, podremos representar cada grafo dirigido por su matriz de vecindades M , de
dimensiones n × n, en la que: 1) en las posiciones (vi , vi ), para cada i = 1, . . . , n, aparecen ceros (si permitiéramos lazos,
podrı́an aparecer unos); y 2) en la posición (vi , vj ), con i = j,
ponemos un 1 si (vi , vj ) ∈ A, y un 0 en caso contrario. Observemos que, como en el ejemplo de la izquierda, el sı́mbolo
posición (vi , vj ) no tiene por qué coincidir con el de la posición (vj , vi ).
v1
0
0
0
..
.
0
v2
1
0
1
..
.
0
v3
1
1
0
..
.
0
···
···
···
···
..
.
···
vn
1
1
0
..
.
0
Ası́ que los grafos dirigidos (con lazos) son una forma de representar relaciones binarias
generales (revı́sese la sección 5.5). Ésta es otra de las razones que justifica su estudio. Recordemos que los grafos habituales se corresponden con relaciones simétricas. Permı́tanos el
lector insistir sobre el asunto en el siguiente esquema:
Grafo simple
(sin lazos)
⇐⇒
Grafo dirigido
⇐⇒
simple (sin lazos)
Matriz simétrica de ceros y unos
⇐⇒
con ceros en la diagonal
Matriz de ceros y unos
con ceros en la diagonal
⇐⇒
Relación simétrica entre los
elementos del conjunto V
Relación entre los elementos
del conjunto V
Si permitimos lazos, entonces el lector59 ha de eliminar la condición “con ceros en la
diagonal” en los dos tipos de matrices. Recuerde también que la relación será reflexiva si
el grafo contiene todos los lazos posibles. En el apartado B de esta sección utilizaremos el
lenguaje de los grafos dirigidos para obtener, por ejemplo, un procedimiento que permite
decidir si una relación es transitiva o no.
Dado un vértice v de un grafo dirigido, tendremos unas cuantas aristas que parten de
él, y otras que llegan a él. Esto sugiere distinguir entre el grado “entrante” al vértice v (el
número de aristas que en las que v es el segundo elemento del par),
gradoin (v) = #{a ∈ A : a = (w, v) para cierto w ∈ V }
y el grado “saliente” (el número de aristas que en las que v es el primer elemento del par):
gradoout (v) = #{e ∈ A : a = (v, w) para cierto w ∈ V } .
Disculpe, por cierto, el lector el uso de los tipográficamente económicos subı́ndices in y out
en las definiciones anteriores60 .
El gradoin (v) se calcula sumando las entradas de la columna de la matriz M etiquetada
con v; el gradoout (v) se calcula sumando su fila. Cada lazo, obsérvese, suma un 1 al grado
entrante, y otro 1 al grado saliente.
La fórmula de los grado es ahora
gradoin (v) +
2|A| =
v∈V
59
60
gradoout (v) .
v∈V
Y cualquier otra persona en su sano juicio.
Pero, ¿es que in y out no son términos castellanos?
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
68
Capı́tulo 9. El lenguaje de los grafos
Versión preliminar, 28 de octubre de 2018
En el grafo dirigido que dibujamos a la dev1 recha, que consta de nueve aristas, incluyendo
- v2
7
dos lazos, el vértice v5 tiene grado entrante 3 (el
?
número de unos que hay en su columna), pues le
v
I
>v3
5
llegan aristas desde v1 , v3 y v4 ; y grado saliente 2
?
v4
(el número de unos de su fila), pues de él parten
aristas hacia v1 y v2 . Obsérvese que, por ejemplo, el lazo del vértice
grado entrante como al saliente.
v1
v2
v3
v4
v5
v1
1
0
0
0
1
v2
0
0
0
0
1
v3
0
0
1
1
0
v4
0
1
0
0
0
v5
1
0
1
1
0
v1 aporta un 1 tanto al
A. Conexión en grafos dirigidos
Un paseo de v0 a vm en un grafo dirigido es una sucesión finita de vértices de V :
v0 , v1 , v2 , . . . , vm
(pueden repetirse)
de forma que (vi−1 , vi ) ∈ A, para cada i = 1, . . . , m. Nótese que exigimos que cada par
ordenado (vi−1 , vi ) sea una arista del grafo dirigido. De manera que un paseo en un grafo
dirigido consiste en recorrer aristas del grafo en los sentidos permitidos.
Decimos que un paseo como el que escribimos antes “conecv2
v3
*
ta” el vértice v0 con el vértice vm , pero ahora, a diferencia de
>
v1
R
lo que ocurrı́a con los grafos habituales, no tiene por qué “cov4
?
nectar” vm con v0 . Los paseos en un grafo dirigido no tienen
j
v
5
por qué ser “reversibles”. Vea el lector cómo, en el digrafo de la
derecha, existen diversos paseos que conectan v1 con v3 , pero no hay manera de conectarlos
en el otro sentido.
Esto obliga a definir más cuidadosamente la noción de conexión en un grafo dirigido.
De hecho, a distinguir dos tipos de conexión. La primera de ellas se ciñe estrictamente a la
definición de paseo que se dio antes:
• Un grafo dirigido será fuertemente conexo si, para cada par de vértices v y w del
grafo, existe un paseo de v a w.
Hay una segundo noción de “conexión” en un grafo dirigido, no tan exigente como la
anterior, que sólo atiende al grafo asociado que se obtiene sustituyendo cada arista dirigida
por una arista sin dirección (en general, será un multigrafo, pues al borrar los sentidos pueden
quedar aristas dobles):
Un grafo dirigido será débilmente conexo si el (multi)grafo subyacente es conexo.
Por ejemplo, cuando analicemos la cuestión de los grafos dirigidos “eulerianos” (véase la
sección 10.1.1), bastará considerar la versión débil.
El uso de los adjetivos “débil” y “fuerte”, por otra parte muy habitual en matemáticas, es
aquı́ bien preciso: si un grafo dirigido es fuertemente conexo, entonces es débilmente conexo,
pues al quitar los sentidos61 de las aristas que forman los paseos que garantizan la conexión
fuerte, se tiene conexión en el grafo subyacente.
61
Avisamos de que hay cosas mucho más placenteras que este trivial ejercicio para “quitar el sentı́o”.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
69
9.3. Grafos dirigidos
D1
-2
-1
?-
3
1
G1
2
-
4
3
4
Versión preliminar, 28 de octubre de 2018
D2 * ? 3
4
1
Y
?2
Pero no necesariamente al revés. La condición de ser fuertemente conexo es, no podı́a ser de otro modo, más “fuerte”
(exigente) que la otra. El grafo dirigido D1 que dibujamos
a la izquierda (arriba) es débilmente conexo, porque el grafo G1 asociado es conexo. Pero no es fuertemente conexo (por
ejemplo, no hay paseo que conecte el vértice 4 con el vértice 1). Sin embargo, el grafo dirigido D2 sı́ que es fuertemente
(y, por tanto, débilmente) conexo.
B. Matriz de vecindades, número de paseos y transitividad
En un conjunto V = {v1 , . . . , vn } tenemos definida una relación binaria R. Ya sabemos
que esa relación se puede representar con un grafo dirigido D (quizás con lazos), o con la
matriz M de vecindades del grafo, que tiene dimensiones n × n y cuyos registros son ceros o
unos. En concreto, para cada vi , vj ∈ V , se tiene que vi R vj si y sólo si (vi , vj ) es una arista
de D.
Pretendemos ahora extraer información ciertas propiedades de la relación inspeccionando
la matriz M , o el grafo dirigido asociado. Las propiedades que nos interesan son, claro, la
reflexividad, simetrı́a o antisimetrı́a, y la transitividad.
Veamos. La comprobación de la reflexividad es directa: R será reflexiva si y sólo si en el
grafo están presentes todos los lazos posibles; esto es, si todas las entradas de la diagonal de
la matriz de vecindades son 1.
Por otro lado, la simetrı́a o antisimetrı́a de la relación R se corresponde exactamente con
la simetrı́a o la antisimetrı́a de la matriz.
Pero, ¿y la transitividad? Parece más difı́cil de comprobar. Vamos a ver ahora un criterio
sencillo para determinar si R es una relación transitiva o no.
Sea M la matriz de vecindades correspondiente a la ordenación (v1 , v2 , . . . , vn ) de los vértices del grafo dirigido D asociado a la relación R, y llamemos mij a sus entradas. Llamemos,
(a)
para cada a ≥ 1, mij a las entradas de la matriz M a .
(a)
Resulta entonces que mij cuenta el número de paseos de longitud a entre los vértices vi
y vj . Esto ya lo vimos para los grafos habituales (teorema 9.1.15). El lector podrá comprobar
sin esfuerzo, siguiendo las lı́neas de la demostración que allı́ expusimos, que este resultado
sigue siendo válido en el caso de grafos dirigidos (en realidad es también válido si consideramos
lazos, o si tenemos un multigrafo).
De esta observación se deduce que:
Teorema 9.3.2 La relación R es transitiva si y solamente si se cumple que, para cada
1 ≤ i, j ≤ n,
(2)
mij = 0 =⇒ mij = 0.
Ası́ que, para determinar si la relación es transitiva, debemos simplemente comprobar
que la matriz M 2 no tiene entradas no nulas “nuevas” con respecto a M . Si R es transitiva,
(2)
a cada entrada mij de M que sea 0 le corresponde una entrada mij en M 2 también nula.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
70
Capı́tulo 9. El lenguaje de los grafos
Demostración. Comprobaremos las dos implicaciones simultáneamente. La relación R es
transitiva si y sólo si, para cualesquiera vi , vj se cumple que
si existe vk tal que vi R vk y vk Rvj , entonces vi R vj .
( )
Versión preliminar, 28 de octubre de 2018
La cláusula de la izquierda equivale a que existe, en el grafo, algún camino de longitud 2
(2)
entre los vértices vi y vj ; es decir, que mij = 0. Por otra parte, la cláusula de la derecha es
equivalente a que mij = 0.
Como ejemplo numérico, comprobemos que la relación R definida en el conjunto {a, b, c, d}
que se representa en el grafo dirigido de la izquierda, y cuya matriz M (para la ordenación
de vértices (a, b, c, d)) se escribe justo después, es transitiva.
a
/
do
o
6
⎛
b
7
1
⎜ 1
M =⎜
⎝ 1
0
0 0
1 0
1 1
0 0
c
⎞
1
1 ⎟
⎟
1 ⎠
1
⎛
1 0
⎜
2 1
M2 = ⎜
⎝ 3 2
0 0
0
0
1
0
⎞
2
3 ⎟
⎟
4 ⎠
1
Observe el lector que las entradas nulas de M 2 están en las mismas posiciones que las
entradas nulas de M . Y piense cuán laborioso habrı́a sido comprobar la transitividad atendiendo a la definición ( ) de más arriba. Sin embargo, la relación dibujada debajo de estas
lı́neas no es transitiva, pues c está relacionado con b, b con d, pero c no está relacionado
con d. Lo que también se comprueba observando que la posición (3, 4) es un 0 en M , pero
un 2 en M 2 .
a
/
o
6
⎛
b
7
d
1
⎜ 1
M =⎜
⎝ 1
0
c
0 0
1 0
1 1
0 0
⎞
1
1 ⎟
⎟
0 ⎠
1
⎛
1 0
⎜ 2 1
2
M =⎜
⎝ 3 2
0 0
0
0
1
0
⎞
2
3 ⎟
⎟
2 ⎠
1
C. Ordenando con autovectores
Concluimos este capı́tulo analizando, con el lenguaje de la teorı́a de grafos y el álgebra
lineal, una cuestión relacionada con la elaboración de rankings, es decir, de ordenaciones, por
ejemplo de mayor a menor, de ciertos objetos atendiendo a su valor, importancia o relevancia.
Aunque la cuestión se puede plantear en diversos contextos, centraremos la discusión en la
cuestión de cómo asignar relevancia a las distintas páginas web de la red.
Veamos. Internet está constituida por un número enorme, quizás miles de millones, de
páginas, con sus contenidos (textos, archivos) y sus enlaces (hipervı́nculos). Digamos que
estas páginas son P1 , . . . , Pn . Nos interesarı́a disponer de una ordenación de estas páginas
en función de cuán relevante resulta ser la información que contienen. Una manera de hacer
esto serı́a asignar a las páginas P1 , . . . , Pn unos números x1 , . . . , xn , que llamaremos sus
importancias, y que para normalizar podemos suponer que están entre 0 y 1, de manera
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
71
Versión preliminar, 28 de octubre de 2018
9.3. Grafos dirigidos
que las páginas más relevantes tuvieran importancia alta, cercana a 1. Por supuesto, esta
asignación deberı́a seguir algún criterio razonable, que luego discutiremos.
Esta ordenación previa resulta fundamental para el diseño de buscadores de la red, de
los que Google es el ejemplo paradigmático. Veamos por qué. Digamos que, al introducir un
término, el motor de búsqueda localiza, digamos 10 000 páginas cuyo contenido está relacionado, de una manera u otra, con el término buscado. Ahora, ¿en qué orden debe exhibir
esos resultados? Se trata de una cuestión crucial: uno desearı́a que (en la mayor parte de las
ocasiones) las páginas que contienen información relevante aparecieran, digamos, entre las
diez primeras que se muestren. Si se dispusiera de ese ranking previo, podrı́a utilizarse para
mostrar las páginas seleccionadas justamente en el orden que indica el ranking general.
Pero, ¿cómo construir esa ordenación? Veamos una posible estrategia.
Para cada página Pi , conocemos qué páginas
Pj
P1
Pn
tienen un enlace hacia ella. Codificamos todos es?
?
?
tos datos con una (gigantesca) matriz M , de diP1
mensiones n × n, formada por ceros y unos, cuya
entrada mij vale 1 si es que hay un enlace desde
la página Pj a Pi , y vale 0 en caso contrario. La
matriz
M es la traspuesta de la matriz de vecinmij
Pi
dades del enorme grafo (dirigido) de la red, donde
cada vértice es una página de la red, y las aristas
(orientadas) representan los enlaces entre ellas.
Pn
Tal como está dispuesta, la suma de las entradas
de una fila i es el número de páginas que apuntan
a la página Pi , esto es, el grado entrante al vértice Pi en el grafo. La suma de la columna j
da el grado saliente del vértice Pj .
Parece razonable pensar que el número de enlaces que recibe una página da una idea
de su importancia: una especie de sistema electoral62 , donde los creadores de páginas votan
por páginas que consideran relevantes estableciendo el enlace correspondiente. Y por tanto,
podrı́amos decidir que la importancia xi de una página Pi fuera proporcional al número de
páginas que enlazan con Pi . Esto es, a su grado entrante. La asignación de importancias,
como puede ver el lector, es en este caso bien sencilla de obtener.
El modelo tiene algunos inconvenientes. Por ejemplo, podrı́a asignar poca importancia a
páginas que, aunque son poco citadas, lo son desde sitio que a todas luces son muy relevantes
(por ejemplo, desde Amazon, o desde Microsoft). Y, además, es bastante vulnerable a posibles
manipulaciones: alguien podrı́a crear un número grande de páginas cuya única función fuera
enlazar a la propia y subir ası́ su importancia.
Para solventar estas dificultades, proponemos, alternativamente, que la importancia de
una página sea proporcional a la suma de importancias de las páginas desde donde sea citado.
Ası́, si la suma tiene muchos sumandos, aunque pequeños, el resultado puede ser un número
alto. Pero también puede serlo, aunque haya pocos sumandos, si son grandes. Además, la
62
En este sentido, es habitual y conveniente modificar M (normalizando sus columnas) para obtener una
matriz M en la que la suma de las entradas de cada columna sea 1, de manera que cada página dispone de
un voto, que reparte entre sus enlaces salientes.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
72
Capı́tulo 9. El lenguaje de los grafos
posible creación de páginas “fantasma” ya no serı́a tan eficaz, pues éstas tendrı́an escasa
importancia. Matemáticamente, esto supone que, para cada i = 1, . . . , n,
n
xi = K
mij xj ,
(donde K es cierta constante de proporcionalidad).
Versión preliminar, 28 de octubre de 2018
j=1
Como mij es 0 si no hay enlace de Pj a Pi , sólo sumamos las importancias de las páginas
que realmente enlazan con Pi . En términos matriciales, tenemos
⎞
⎞
⎛
⎛
⎞⎛
x1
x1
⎜ . ⎟
⎜ .. ⎟
esto es,
Mx = λ x ,
⎝ . ⎠ = K ⎝ M ⎠ ⎝ .. ⎠ ,
xn
xn
si llamamos x al vector columna de importancias y λ = 1/K.
La cuestión deviene entonces en un problema de autovalores y autovectores, con el ingrediente adicional de que, si pretendemos utilizar un autovector x para ordenar, sus entradas
deberı́an ser números reales no negativos, o al menos del mismo signo (recuérdese que si x
es un autovector, −x también lo es). Y, además, querrı́amos que sólo hubiera un autovector
con esas caracterı́sticas, porque de lo contrario se podrı́an generar rankings distintos.
Parecen demasiadas exigencias. Como la matriz M no es en general simétrica, no tenemos
la precisa información sobre diagonalización y autovalores de la sección 9.1.5; apenas sabemos
que sus entradas son ceros y unos. Ası́ que la matriz no será necesariamente diagonalizable, sus
autovalores serán reales o quizás complejos, los autovectores asociados también. . . Y nosotros
buscamos uno, y sólo uno, con unas propiedades especiales. Antes de seguir analizando la
cuestión, veamos un ejemplo en un contexto algo distinto al de los buscadores de la red.
Ejemplo 9.3.1 Seis equipos, E1 , . . . , E6 , disputan una competición, que consta de 21 partidos en total. Están divididos en dos grupos, E1 , E2 , E3 por un lado, y E4 , E5 , E6 por otro.
Cada equipo juega 6 partidos contra los de su mismo grupo, y 3 contra los del otro. Una vez
conocidos los resultados de los enfrentamientos, ¿cómo podemos ordenarlos?
El lector familiarizado con la liga de baloncesto de la NBA (o las competiciones universitarias) sabrá que los equipos se agrupan en “conferencias”, que a su vez constan de
“divisiones”. Cada equipo disputa un número fijo de partidos, pero juega más partidos contra equipos de la propia conferencia. Podrı́a ocurrir que un equipo hubiera acumulado muchas
victorias simplemente por encontrarse en una conferencia formada por equipos muy débiles.
Para la ordenación que decidirá qué equipos pasan a las eliminatorias por el tı́tulo, ¿deben
valer todas las victorias por igual? ¿Cuál serı́a la ordenación más justa?
Formemos una matriz con los reE1
E2
E3
E4
E5
E6
sultados de los partidos disputados,
E1
−
3/21 0/21 0/21 1/21 2/21 → 6/21
donde cada entrada aij es el cociente
E2 3/21
−
2/21 2/21 2/21 1/21 → 10/21
E3 6/21 4/21
−
2/21 1/21 1/21 → 14/21 entre el número de victorias del equipo Ei sobre el Ej y el número de parE4 3/21 1/21 1/21
−
2/21 2/21 → 9/21
tidos disputados por Ei . A la izquierE5 2/21 1/21 2/21 4/21
−
2/21 → 11/21
da
mostramos una posible matriz de
E6 1/21 2/21 2/21 4/21 4/21
−
→ 13/21
resultados.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
73
Versión preliminar, 28 de octubre de 2018
9.3. Grafos dirigidos
Sumando por filas, obtenemos la proporción de victorias de cada equipo. A la vista de
estos resultados, el orden es E3 → E6 → E5 → E2 → E4 → E1 . Pero observemos que, por
ejemplo, E3 ha acumulado muchas victorias contra E1 , que es el peor equipo.
Con ayuda de algún paquete matemático de cálculo, el lector podrá obtener los autovalores
y autovectores de la matriz. De los seis autovalores distintos que tiene, uno de ellos, λ = 9.97,
es el mayor (en módulo). Y el autovector asociado, x = (0.509, 0.746, 0.928, 0.690, 0.840, 1),
es el único cuyas entradas son todas números reales y no negativos. Este autovector sugiere
una ordenación alternativa: E6 → E3 → E5 → E2 → E4 → E1 , que difiere del anterior en los
♣
dos primeros (ahora E6 es el mejor equipo).
¡Vaya!, pues al menos en este ejemplo, todo funciona espléndidamente: un único autovector
con las propiedades requeridas. ¿Será ası́ en general? Porque si lo fuera, podrı́amos aplicar
esta idea a la ordenación de los resultados de búsquedas en la red63 .
A nuestro rescate llega un teorema, otro de esos resultados maravillosos y fascinantes,
casi increı́bles, que merecen ponerse en pie64 y que da respuesta a la cuestión. Se debe a los
matemáticos alemanes Oskar Perron65 y Ferdinand Frobenius66 .
Teorema 9.3.3 (Perron-Frobenius) Si A es una matriz cuyas entradas son números no
negativos, entonces, asociado a un autovalor positivo, existe un autovector v cuyas entradas
son no negativas. Si además A es irreducible, ese autovector es único y está asociado a un
autovalor simple, positivo y mayor (en módulo) que todos los demás.
Este teorema garantiza la existencia de un (único) autovector con entradas del mismo
signo, siempre que la matriz cumpla unas condiciones adicionales. Una matriz A se dice irre
ducible si no existe ninguna permutación que transforma A en una matriz del tipo A011 A022 ,
donde A11 y A22 son matrices cuadradas. En el caso que nos ocupa, en el que M es la matriz
de vecindades de un grafo dirigido, esto equivale a que el grafo sea fuertemente conexo.
Quedan dos cuestiones pendientes. Por un lado, el grafo de internet no es fuertemente
conexo, ası́ que para él no se cumplen las hipótesis del teorema anterior. Para solventar este inconveniente, se suele modificar la matriz M , sustituyendo los ceros por números muy
pequeños, de manera que la matriz resultante sea irreducible. Por otro, la cuestión computacional: dado que el grafo de internet es descomunal, ¿cómo se puede obtener, siquiera
numéricamente, ese autovector especial? Aquı́, la propia estructura del problema viene en
nuestra ayuda, pues al estar asociado al mayor autovalor (dominante, en la jerga), existen
métodos numéricos (como el método de las potencias) que permiten calcularlo eficazmente.
63
Como hace el algoritmo PageRank de Google, diseñado por los creadores del buscador, Sergey Brin y
Lawrence Page, allá por 1998 en la Universidad de Stanford, donde estudiaban ambos.
64
¡Ah!, ¿que no se sentó desde Kirchhoff?
65
Oskar Perron (1880-1975), todo un ejemplo de longevidad matemática, trabajó en campos tan diversos
como el análisis, las ecuaciones diferenciales, el álgebra, la geometrı́a, la teorı́a de números, etc., en los que
publicó algunos textos que se convertirı́an en clásicos.
66
Ferdinand Georg Frobenius (1849-1917) formó parte de la Escuela de Berlin, que lideró el mundo de las
matemáticas durante el final del siglo XIX y principios del XX, junto con Kronecker, Kummer o Weierstrass
(quien fue su director de tesis). Estricta escuela prusiana: rigor, tradición, un matemático “puro”, sin concesiones a la matemática aplicada. El caprichoso curso de la Historia harı́a, sin embargo, que muchas de sus
ideas sobre representaciones de grupos finitos acabaran sirviendo como base de la mecánica cuántica.
el discreto encanto de la matemática
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
74
Capı́tulo 9. El lenguaje de los grafos
EJERCICIOS DE LA SECCIÓN 9.3
9.3.1 Siete estudiantes se van de vacaciones y deciden que cada uno escribirá una tarjeta a los otros
tres. ¿Es posible que cada uno de ellos reciba tarjetas de exactamente los tres a los que ha escrito?
Versión preliminar, 28 de octubre de 2018
9.3.2 Sea A una matriz 3 × 3 cuyas entradas son no negativas. Vamos a comprobar la existencia de
un autovector r con entradas no negativas (lo que denotaremos, con cierto abuso de notación, como
r ≥ 0). Obsérvese que si x ≥ 0, entonces Ax ≥ 0 (A manda el octante positivo de R3 en sı́ mismo).
a) Consideremos la aplicación lineal B(x) = Ax/Ax. Comprúebese que manda el conjunto
{x ∈ R3 : x ≥ 0, x = 1} en sı́ mismo.
b) Dedúzcase, utilizando el teorema del punto fijo de Brower, que existe r ≥ 0, con r = 1, para
el que B(r) = r. Compruébese, finalmente, que r es un autovector de A con entradas no negativas,
que corresponde a un autovalor positivo.
9.3.3 Los autovalores de una matriz A son λ1 , . . . , λn . El autovalor λ1 es simple y mayor, en módulo,
que todos los demás (en la jerga, el autovalor dominante). Sea r el autovector asociado. Pruébese que
Ak r0
=r
k→∞ Ak r0 lı́m
el discreto encanto de la matemática
para un cierto r0 .
– 28 de octubre de 2018 –
pablo fernández y jose l. fernández
Download