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