Cuadrados Latinos y Grafos de Moore

79
Cuadrados Latinos y Grafos de Moore Llu´ ıs Acero

Transcript of Cuadrados Latinos y Grafos de Moore

Page 1: Cuadrados Latinos y Grafos de Moore

Cuadrados Latinos y Grafos de Moore

Lluıs Acero

Page 2: Cuadrados Latinos y Grafos de Moore

Introduccion

Bajo el tıtulo Cuadrados latinos y grafos de Moore se esconden dos campos de la ma-tematica bastante peculiares. Por un lado los cuadrados latinos, tan viejos casi como laantigua Grecia y a su vez tan poco estudiados que la mayor parte de los libros de combina-toria los mencionan solamente para destacar sus aplicaciones en el diseno de experimentos.Y por otro lado, los grafos de Moore, una clase tan particular de grafo que puede que solohaya tres, y de los cuales se conocen dos, resistiendose el tercero a ser hallado debido a sugran tamano.

El problema de los grafos de Moore es en cierto sentido parecido al del Teorema deFermat : ambos problemas son muy faciles de enunciar y entender, pero su resolucion esestremadamente difıcil. Por ejemplo, el Teorema de Fermat dice que para n > 2 no existeninguna terna (x, y, z) de numeros enteros que verifique la ecuacion xn + yn = zn.

La historia que rodea el Teorema de Fermat es todavıa mas interesante: Pierre deFermat era un matematico frances al que le gustaba resolver problemas de matematicadiscreta. A menudo se le ocurrıan ideas mientras leıa libros, de forma que anotaba esasideas en los mismos margenes. En uno de estos libros aparecio una nota que decıa losiguiente: Tengo una demostracion realmente maravillosa para este problema, pero estemargen es demasiado estrecho para contenerla. El hecho es que Fermat murio y nunca seencontro la demostracion que afirmaba haber descubierto. De esta forma, Fermat desafio alos matematicos de las generaciones futuras a resolver el problema.

Han tenido que pasar trescientos cincuenta anos para que el matematico Andrew Wiles,despues de haber dedicado toda una vida al estudio del Teorema de Fermat, fuese capaz deencontrar una demostracion. Ademas, se sabe con certeza que dicha demostracion no es laque habıa pensado Fermat, ya que en ella se utilizan tecnicas que no existıan en la epoca,algunas incluso fueron creadas expresamente para la demostracion.

El problema de los grafos de Moore tambien puede enunciarse de una forma muy concisa.Consiste en encontrar grafos regulares tales que la distancia entre dos vertices cualesquierano sea superior a 2. Un grafo de este tipo se llama grafo de Moore y se sabe que solo puedeexistir para valores del grado iguales a 3, 7 y posiblemente 57. Los dos primeros casos sonconocidos, mientras que el tercero, que recibe el nombre de El Gran Grafo de Moore, siguesin encontrarse.

Otra similitud entre El Gran Grafo de Moore y el Teorema de Fermat es que aparente-mente carecen de aplicacion practica. Y digo aparentemente porque en el caso del Teoremade Fermat, los descubrimientos que realizo Andrew Wiles durante la busqueda de la demos-tracion resultaron ser tan interesantes como la propia demostracion, ya que relacionabanpartes de la matematica que nunca se habıa considerado vinculadas. Es lo que se conocecomo resultados intermedios. El caso de los grafos de Moore no va a ser una excepcion,ya que, como veremos, se ha conseguido relacionar los grafos de Moore con los cuadrados

1

Page 3: Cuadrados Latinos y Grafos de Moore

latinos. Otra vez, dos campos de la matematica aparentemente independientes resultanestar vinculados a traves de un problema.

Personalmente, creo que la primera vez que oı hablar de un grafo de Moore fue el veranodel 2001. Recuerdo ese verano con especial carino porque fue cuando me operaron de midolencia de corazon. Fue tambien el verano en que inicie mi Erasmus en Parıs. Ahora soyconsciente que esos dos hechos fueron decisivos en mi eleccion de realizar una tesina sobrelos grafos de Moore.

Por un lado, mi paso por el hospital me obligo a posponer algunos de los examenes demi tercer curso de Caminos, hecho que me dio la oportunidad de conocer un poco mejor aciertos profesores de la escuela. Por otro lado, mi estancia en Parıs me proporciono las con-diciones necesarias para adentrarme en el problema. Un ano despues, ya se habıa convertidoen un pasatiempo para mi, inducido quiza por las horas muertas en clase y posteriormenteen el trabajo, ası como los largos trayectos en el tren que une Parıs y Barcelona. Y elpasatiempo daba sus frutos, porque cada vez que me ponıa a pensar en el problema nuevasideas me venıan a la mente. Poco a poco el problema fue cogiendo forma, gracias tambiena la aplicacion que entretanto me habıa dedicado a programar. Finalmente, decicı volveral despacho donde habıa empezado todo, esta vez ya con mi propuesta de tesina, y ası fuecomo me convertı en un aprendiz de matematico.

A partir de ahı vino el trabajo propio de una tesina: lo primero fue comprobar quemuchos de las conclusiones a las que habıa ido llegando por mi cuenta ya eran conocidas,lo cual no dejaba de ser un poco frustrante, pero por otro lado era senal que iba por buencamino. Tambien tuve que aprender LATEX y C++, ası como profundizar mis conocimientosde Visual Basic, lo cual me ha sido de gran utilidad mas alla del ambito academico.

En definitiva, la experiencia ha sido, y sigue siendo, muy enriquecedora. Por eso quierodar las gracias a todos los profesores de matematicas que alguna vez se han cruzado en mivida, y en especial mi tutora Camino Balbuena, con quien comparto no solo la aficion delas matematicas sino tambien la de la ciencia ficcion.

2

Page 4: Cuadrados Latinos y Grafos de Moore

Objetivos

El objetivo de esta tesina empezo siendo el estudio de los grafos de Moore. Sin embargo,durante su desarrollo se descubrio que existıa una relacion entre los grafos de Moore y loscuadrados latinos, por lo que se decidio ampliar los objetivos para abarcar tambien estosultimos. De esta manera, se consigue ofrecer una vision mas completa del problema de losgrafos de Moore.

Formalmente, los objetivos de esta tesina son los siguientes:

Recopilar la informacion existente en la literatura acerca de los cuadrados latinos ylos grafos de Moore.

Analizar la informacion recopilada y ampliarla para los propositos de esta tesina.

Presentar tanto la informacion recopilada como la propiamente desarrollada en undocumento que pueda ser utilizado para futuras referencias.

Desarrollar herramientas informaticas especıficas para la generacion de cuadradoslatinos y para la construccion de grafos de Moore.

Por otro lado, la realizacion de esta tesina implica el logro de los siguientes objetivossecundarios:

Familiarizarse con la redaccion de documentos matematicos en LATEX.

Familiarizarse con el proceso de busqueda y consulta de artıculos matematicos.

Familiarizarse con los lenguajes de programacion C++ y Visual Basic.

3

Page 5: Cuadrados Latinos y Grafos de Moore

Capıtulo 1

Cuadrados Latinos

La finalidad de este primer capıtulo es ofrecer una introduccion bastante exhaustiva alos cuadrados latinos. A lo largo del capıtulo definiremos que es un cuadrado latino, estu-diaremos sus propiedades, veremos formas de generar y enumerar los cuadrados latinos y,finalmente, expondremos algunas de sus aplicaciones. En este capıtulo tambien se incluyenalgunos nuevos resultados fruto de esta tesina que, sumados a los ya existentes en la litera-tura, esperemos contribuyan a una mayor comprension de estas entidades matematicas.

1.1. Definiciones y propiedades

Definicion 1.1 Sea Ω un conjunto de n elementos. Al conjunto Ω le llamaremos alfabeto.

Definicion 1.2 Un cuadrado latino de orden n es una matriz n×n en la que cada uno delos elementos del alfabeto Ω aparece exactamente una vez en cada fila y en cada columna.

La denominacion cuadrado latino tiene un origen historico ya que los primeros cuadradosde este tipo se representaban usando el alfabeto latino a, b, c, . . .. Ası mismo, los cuadradosgriegos eran aquellos cuadrados latinos que se escribıan en el alfabeto griego α, β, χ, . . ..En la actualidad, los cuadrados latinos suelen representarse usando el alfabeto [n] de los nprimeros numeros naturales. Por ejemplo,

L =

⎡⎢⎢⎢⎢⎢⎢⎣

4 5 1 2 33 4 5 1 22 3 4 5 11 2 3 4 55 1 2 3 4

⎤⎥⎥⎥⎥⎥⎥⎦

es un cuadrado latino de orden 5 en el alfabeto Ω = 1, 2, 3, 4, 5. Notese que cada fila esuna permutacion cıclica de la anterior. Esta es una manera sencilla de construir cuadradoslatinos de cualquier orden.

Definicion 1.3 Sea P una matriz binaria (es decir, cuyos elementos son 0 o 1). Se diceque P es una matriz de permutacion sii tiene exactamente un 1 en cada fila y en cadacolumna.

4

Page 6: Cuadrados Latinos y Grafos de Moore

El nombre de matriz de permutacion viene dado por el hecho de que al multiplicar unamatriz M cualquiera por una matriz P de permutacion se obtiene una matriz M ′ cuyasfilas o columnas son las mismas que M pero en distinto orden. Ası, la operacion P · Mcorresponde a permutar las filas de M , mientras que la operacion M · P corresponde apermutar las columnas de M .

Ademas, las matrices de permutacion verifican las siguientes propiedades:

1) El producto de P por su traspuesta es la identidad. Por lo tanto, P−1 = P T .

2) El valor absoluto del determinante de P es 1, es decir, | det(P )| = 1.

Proposicion 1.4 Para un orden n dado, existen n! posibles matrices de permutacion.

Demostracion. Consideremos la matriz nula de orden n, es decir, aquella matriz cuyoselementos son todos cero. Vamos a rellenar dicha matriz con unos hasta obtener una matrizde permutacion. Para empezar, tenemos que colocar un 1 en la primera fila, y dado quede momento no hay mas unos, podemos escoger cualquiera de las n posiciones de la fila.En la segunda fila tenemos que colocar otro 1, pero esta vez ya solo hay n − 1 posicioneslibres. Al llegar a la ultima fila tendremos que colocar el ultimo 1 en la unica posicion quequedara libre. El numero de elecciones que habremos tenido que hacer a lo largo de esteproceso sera n · (n−1) · (n−2) · . . . ·3 ·2 ·1 = n!, que es precisamente el numero de matricesde permutacion de orden n.

Proposicion 1.5 Todo cuadrado latino puede escribirse de la siguiente forma:

L =n∑

k=1

k · Pk (1.1)

Las matrices Pk son matrices de permutacion que satisfacen∑n

k=1 Pk = J , donde J esla matriz cuyos elementos son todos 1.

Demostracion. Sea L un cuadrado latino de orden n y sea Pk una matriz n× n definidade la forma siguiente:

(Pk)ij =

1 si Lij = k0 en caso contrario

(1.2)

Como L es un cuadrado latino, el elemento k aparece solo una vez en cada fila y encada columna de L. Por lo tanto, la matriz Pk es una matriz de permutacion. Si definimosla matriz Pk para cada elemento del alfabeto Ω, entonces podremos escribir el cuadradolatino L como aparece en la proposicion.

Por ejemplo, tomando el cuadrado latino L del inicio de la seccion, podemos escribirlocomo una suma de matrices de permutacion de la forma siguiente:

L = 1 ·

⎡⎢⎢⎣

0 0 1 0 00 0 0 1 00 0 0 0 11 0 0 0 00 1 0 0 0

⎤⎥⎥⎦+ 2 ·

⎡⎢⎢⎣

0 0 0 1 00 0 0 0 11 0 0 0 00 1 0 0 00 0 1 0 0

⎤⎥⎥⎦+ 3 ·

⎡⎢⎢⎣

0 0 0 0 11 0 0 0 00 1 0 0 00 0 1 0 00 0 0 1 0

⎤⎥⎥⎦+ 4 ·

⎡⎢⎢⎣

1 0 0 0 00 1 0 0 00 0 1 0 00 0 0 1 00 0 0 0 1

⎤⎥⎥⎦+ 5 ·

⎡⎢⎢⎣

0 1 0 0 00 0 1 0 00 0 0 1 00 0 0 0 11 0 0 0 0

⎤⎥⎥⎦

5

Page 7: Cuadrados Latinos y Grafos de Moore

Definicion 1.6 Dados dos cuadrados latinos L1 y L2 se dice que son equivalentes, y seescribe L1 ∼ L2, si uno puede obtenerse a partir del otro mediante una combinacion depermutaciones de fila, columna y sımbolo, o una permutacion de sus “dimensiones”.

Ya hemos visto como se permutan las filas y las columnas de un cuadrado latino, esdecir, mediante las matrices de permutacion. La operacion de permutar los sımbolos enun cuadrado latino consiste en aplicar una biyeccion f : Ω → Ω tal que (L2)ij = f((L1)ij).Por otro lado, la operacion de permutar las “dimensiones” del cuadrado latino consisteen intercambiar las categorıas de fila, columna y sımbolo. Por ejemplo, dado el elemento(L1)ij = k, si intercambiamos filas por sımbolos, obtenemos el elemento (L2)kj = i.

Proposicion 1.7 La relacion ∼ es una relacion de equivalencia.

Demostracion. Veamos que ∼ cumple las condiciones para ser relacion de equivalencia:

1) Es reflexiva. En efecto, L1 ∼ L1 por la identidad.

2) Es simetrica. Si L1 ∼ L2 por f , entonces L2 ∼ L1 por f−1.

3) Es transitiva. Si L1 ∼ L2 por f y L2 ∼ L3 por g, entonces L1 ∼ L3 por g · f .

De este modo, el conjunto Ln de los cuadrados latinos de orden n queda clasificadosegun ∼ en clases de equivalencia. Ademas, una propiedad importante de las clases deequivalencia es que todas tienen el mismo numero de elementos, por lo que sabemos quecada clase de equivalencia contendra el mismo numero de cuadrados latinos equivalentes.

Definicion 1.8 Se dice que un cuadrado latino esta normalizado sii los elementos de suprimera fila y su primera columna aparecen segun el orden natural del alfabeto Ω.

Para Ω = [n], la primera fila y la primera columna de un cuadrado latino normalizadoson de la forma [1, 2, . . . , n].

Proposicion 1.9 Dado un cuadrado latino cualquiera, existe un cuadrado latino equiva-lente que esta normalizado.

Demostracion. Sea L un cuadrado latino cualquiera. Dicho cuadrado latino no tiene porque tener su primera fila o su primera columna ordenadas. Sin embargo, podemos ordenarla primera fila permutando adecuadamente las columnas de L, y luego ordenar la primeracolumna permutando adecuadamente las n − 1 filas restantes.

Definicion 1.10 Se dice que un cuadrado latino es simetrico sii

Lij = Lji ∀i, j ∈ [n] (1.3)

Corolario 1.11 Dado un cuadrado latino simetrico, existe un cuadrado latino equivalenteque esta normalizado y que tambien es simetrico.

6

Page 8: Cuadrados Latinos y Grafos de Moore

1.2. Cubos binarios latinos

Otra manera de tratar los cuadrados latinos consiste en verlos como cubos binarios. Uncubo binario es un tensor n × n × n cuyos elementos son 0 o 1. Para que un cubo binariosea latino debe tener exactamente un 1 en cada dimension.

Definicion 1.12 Dado un cuadrado latino L, su cubo binario asociado C se define como

Cijk =

1 si Lij = k0 en caso contrario

(1.4)

Por ejemplo, dado el cuadrado latino siguiente, su cubo binario asociado se obtienedescomponiendo el cuadrado latino por sımbolos y colocando cada uno en un nivel distintodel cubo:

Figura 1.1: Cuadrado latino y cubo binario asociado al mismo.

La ventaja de trabajar con cubos binarios es que filas, columnas y sımbolos son indistin-guibles por permutacion. Ası es mas facil entender que si se permutan filas por columnasy/o por sımbolos se obtiene un cuadrado latino equivalente, ya que en el fondo el cubobinario asociado sigue siendo el mismo.

Por ejemplo, si tomamos el cubo binario anterior y permutamos columnas por sımbolos,obtenemos el siguiente cuadrado latino equivalente:

Figura 1.2: Cubo binario equivalente y cuadrado latino asociado.

Otra ventaja de trabajar con cubos binarios es que admiten una formulacion muy com-pacta. Por ejemplo, un cubo binario es latino si cumple las siguientes condiciones:

n∑i=1

Cijk = 1, ∀j, k (1.5)

n∑j=1

Cijk = 1, ∀i, k (1.6)

n∑k=1

Cijk = 1, ∀i, j (1.7)

7

Page 9: Cuadrados Latinos y Grafos de Moore

1.3. Cuadrados latinos ortogonales

Definicion 1.13 Dados dos cuadrados latinos L1 y L2 del mismo orden, decimos que sonortogonales si para cada par ordenado de sımbolos (k, k′) existe exactamente una posicion(i, j) que verifica:

(L1)ij = k y (L2)ij = k′ (1.8)

Dicho de otra forma, dos cuadrados latinos son ortogonales si al superponerlos cada unode los pares ordenados aparece exactamente una vez. Por ejemplo, los cuadrados latinossiguientes son ortogonales:

L1 =

⎡⎢⎢⎢⎣

1 2 3 42 1 4 33 4 1 24 3 2 1

⎤⎥⎥⎥⎦ L2 =

⎡⎢⎢⎢⎣

1 2 3 43 4 1 24 3 2 12 1 4 3

⎤⎥⎥⎥⎦

Los cuadrados latinos ortogonales fueron objeto de la atencion de Euler debido al si-guiente problema que el mismo propuso: “Se tienen 36 oficiales de 6 rangos distintos enseis regimientos distintos. ¿Pueden disponerse en un cuadrado de forma que en cada fila yen cada columna haya un oficial de cada rango y de cada regimiento?”

En lenguaje moderno, Euler buscaba un par de cuadrados latinos ortogonales de ordenseis. No fue capaz de resolver el problema y ahora sabemos que no existe ningun par de estetipo. Aunque el problema de Euler muestra que no es trivial encontrar cuadrados latinosortogonales, existe una construccion sencilla basada en las propiedades aritmeticas de Zp,cuando p es primo.

Teorema 1.14 Sea p un numero primo y sea t un elemento no nulo de Zp. Entonces laregla

(Lt)ij ≡ ti + j (mod p) (1.9)

define un cuadrado latino de orden p. Es mas, si t = u, los cuadrados latinos Lt y Lu sonortogonales.

Demostracion. Empezaremos por demostrar que Lt es un cuadrado latino. Para ello,supongamos que las posiciones (i, j) e (i′, j) contienen el mismo sımbolo. Si (Lt)ij = (Lt)i‘j,entonces ti + j = ti′ + j, y al ser t inversible en Zp, tenemos que i = i′, por lo que cadasımbolo aparece como maximo una vez en cada columna. Un argumento similar demuestraque cada sımbolo aparece como maximo una vez en cada fila. Por lo tanto, Lt es un cuadradolatino.

Para demostrar que los cuadrados latinos Lt y Lu son ortogonales si t = u, supongamosque existen dos posiciones distintas (i1, j1) e (i2, j2) tales que Lt y Lu tienen los sımbolos ky k′ respectivamente en cada posicion. Es decir,

ti1 + j1 = k, ui1 + j1 = k′ (1.10)

ti2 + j2 = k, ui2 + j2 = k′ (1.11)

Resulta que t(i1 − i2) = j2 − j1 y u(i1 − i2) = j2 − j1. Si i1 − i2 = 0, estas ecuacionesimplican que j2 − j1 = 0, de forma que las posiciones (i1, j1) e (i2, j2) son la misma,contrariamente a la hipotesis inicial. En consecuencia, i1 − i2 = 0 e i1 − i2 tiene un inverso

8

Page 10: Cuadrados Latinos y Grafos de Moore

en Zp. En este caso, podemos resolver las ecuaciones en t y u y se llega a t = u =(j2 − j1)/(i1 − i2), lo cual contradice la hipotesis inicial de que t = u. Por lo tanto, lossımbolos k y k′ solo pueden aparecer conjuntamente en una unica posicion y Lt y Lu sonortogonales.

En general, decimos que el teorema anterior proporciona un conjunto de p−1 cuadradoslatinos de orden p mutuamente ortogonales para cada primo p.

Definicion 1.15 Dados dos cuadrados latinos L1 y L2 no necesariamente ortogonales,definimos su grado r de ortogonalidad como el numero de pares ordenados no duplicados.Se dice entonces que L1 y L2 son r-ortogonales.

De la definicion de cuadrados latinos r-ortogonales surge la siguiente pregunta: “¿Paraque enteros n y r existe un par de cuadrados latinos r-ortogonales?”

Esta cuestion fue tratada por primera vez de forma sistematica por Belyavskaya (vease[3]) y fue resuelta definitivamente por Colbourn y Zhu en [4]. Es precisamente en [4] dondeaparece el siguiente teorema.

Teorema 1.16 Para n ≥ 27, existen cuadrados latinos r-ortogonales de orden n sii

n ≤ r ≤ n2 y r ∈ n + 1, n2 − 1 (1.12)

Los casos particulares para n < 27 fueron calculados por Zhu y Zhang en [14] y [15],resultando que el teorema anterior es valido tambien para n < 27 salvo en las siguientesexcepciones:

n Excepciones de r2 43 5, 6, 74 7, 10, 11, 13, 145 8, 9, 20, 22, 236 33, 36

Cuadro 1.1: Excepciones del grado r de ortogonalidad.

Notese que el caso n = 6 y r = 36 es precisamente el que impidio a Euler resolver elproblema de los oficiales.

Corolario 1.17 El grado mınimo de ortogonalidad se alcanza precisamente cuando loscuadrados latinos L1 y L2 son equivalentes por permutacion de los sımbolos del alfabeto.

Por ejemplo, los cuadrados latinos siguientes son 4-ortogonales, ya que al superponerlossolo aparecen las parejas (1, 2), (2, 3), (3, 4) y (4, 1):

L1 =

⎡⎢⎢⎢⎣

1 2 3 42 1 4 33 4 1 24 3 2 1

⎤⎥⎥⎥⎦ L2 =

⎡⎢⎢⎢⎣

2 3 4 13 2 1 44 1 2 31 4 3 2

⎤⎥⎥⎥⎦

9

Page 11: Cuadrados Latinos y Grafos de Moore

1.4. Enumeracion de cuadrados latinos

La enumeracion de cuadrados latinos fue emprendida por Euler en 1782, precisamentemientras intentaba resolver el problema de los oficiales. Euler enumero los cuadrados latinosde ordenes 2, 3, 4 y 5 mediante un proceso de busqueda exhaustiva.

Hubo que esperar hasta 1934 para que Fisher y Yates determinaran el numero de cuadra-dos latinos de orden 6. A partir de entonces, con la aparicion de los primeros ordenadoresy el posterior desarrollo de la informatica, fue posible determinar el numero de cuadra-dos latinos para ordenes mayores. La siguiente tabla muestra la evolucion historica en laaparicion de estos resultados:

Orden Autor Ano Publicacion6 Fisher, Yates 1934 [5]7 Sade 1948 [12]8 Wells 1967 [13]9 Bammel, Rothstein 1975 [1]10 McKay, Rogoyski 1995 [10]11 McKay, Wanless 2003 [11]

Cuadro 1.2: Estado del arte en enumeracion de cuadrados latinos.

Recientemente ha sido calculado el numero de cuadrados latinos de orden 11, por lo quecabe esperar que el siguiente resultado no se obtenga hasta dentro de algunos anos (a menosque se descubra un metodo que reduzca drasticamente el coste computacional de enumerarcuadrados latinos, o se desarrolle un ordenador con una capacidad de calculo infinitamentesuperior, lo cual es poco probable). No obstante, existe una propiedad esencial que hay queintroducir antes de revisar dichos resultados sobre la enumeracion de cuadrados latinos.

Definicion 1.18 Denotaremos N(n) el numero de cuadrados latinos de orden n y L(n) elnumero de cuadrados latinos normalizados de orden n. Analogamente, denotaremos NS(n)el numero de cuadrados latinos simetricos de orden n y LS(n) el numero de cuadradoslatinos simetricos normalizados de orden n.

Proposicion 1.19 El numero total de cuadrados latinos de orden n puede escribirse enfuncion del numero de cuadrados latinos normalizados de orden n como sigue:

N(n) = n! (n − 1)! L(n) (1.13)

Demostracion. Consideremos un cuadrado latino normalizado. Existen n! maneras dis-tintas de desordenar sus filas y (n − 1)! maneras distintas de desordenar sus columnasmanteniendo la primera columna fija. Por lo tanto, existen n! (n − 1)! cuadrados latinos,normalizados o no, para cada cuadrado latino normalizado.

Vista la proposicion anterior, sabemos que para determinar el numero de cuadradoslatinos de un orden dado basta enumerar los cuadrados latinos normalizados del mismoorden, lo cual reduce el problema en varios ordenes de magnitud. A pesar de ello, el numerode cuadrados latinos crece muy rapidamente con el orden, tal como puede observarse en latabla de la pagina siguiente:

10

Page 12: Cuadrados Latinos y Grafos de Moore

n L(n)1 12 13 14 45 566 9 4087 16 942 0808 535 281 401 8569 377 597 570 964 258 816

10 7 580 721 483 160 132 811 489 28011 5 363 937 773 277 371 298 119 673 540 771 840

Cuadro 1.3: Numero de cuadrados latinos normalizados.

Como ya se ha dicho, todavıa no se conoce el numero exacto de cuadrados latinos de or-den mayor que 11. Sin embargo, McKay y Rogoyski ofrecen en [10] algunas aproximacionescalculadas mediante un metodo probabilıstico:

n L(n)12 1,62 × 1044

13 2,51 × 1056

14 2,33 × 1070

15 1,5 × 1086

Cuadro 1.4: Estimacion del numero de cuadrados latinos normalizados.

1.4.1. Enumeracion de cuadrados latinos simetricos

Durante el desarrollo de esta tesina se considero interesante determinar la influencia dela simetrıa sobre el numero de cuadrados latinos por los siguientes motivos:

a) Debido a la aparicion de cuadrados latinos simetricos en la contruccion de grafos deMoore.

b) Con la intencion de completar los resultados existentes, ya que no se ha encontradoningun estudio de este tipo en la literatura.

Para ello se ha desarrollado un algoritmo de busqueda exhaustiva (descrito en el Capıtu-lo 3) que ha permitido determinar el numero de cuadrados latinos simetricos normalizadosde orden n ≤ 9. La tabla de la pagina siguiente resume los resultados obtenidos.

El numero de cuadrados latinos simetricos normalizados tambien esta relacionado conel numero total de cuadrados latinos simetricos tal como expresa la siguiente proposicion.

Proposicion 1.20 El numero total de cuadrados latinos simetricos de orden n puede es-cribirse en funcion del numero de cuadrados latinos simetricos normalizados de orden ncomo sigue:

NS(n) = n! LS(n) (1.14)

11

Page 13: Cuadrados Latinos y Grafos de Moore

n LS(n)1 12 13 14 45 66 4567 6 2408 10 936 3209 1 225 566 720

Cuadro 1.5: Numero de cuadrados latinos simetricos normalizados.

Demostracion. Consideremos un cuadrado latino simetrico normalizado. Existen n! mane-ras distintas de desordenar sus filas, pero desordenar las filas equivale a desordenar lascolumnas, ya que el cuadrado latino es simetrico. Por lo tanto, solo existen n! cuadradoslatinos simetricos, normalizados o no, para cada cuadrado latino simetrico normalizado.

El siguiente grafico permite observar la evolucion del numero de cuadrados latinos conel orden (notese que el grafico esta en escala logarıtmica):

1E+001E+011E+021E+031E+041E+051E+061E+071E+081E+091E+101E+111E+121E+131E+141E+151E+161E+171E+181E+191E+201E+211E+221E+231E+241E+251E+261E+271E+28

0 1 2 3 4 5 6 7 8 9 10

N(n)

L(n)

Ns(n)

Ls(n)

Figura 1.3: Evolucion del numero de cuadrados latinos con el orden.

Este grafico permite constatar como el numero de cuadrados latinos crece exponencial-mente en una escala logarırmica. El numero de cuadrados latinos simetricos tambien creceexponencialmente, aunque a un ritmo menor, aproximadamente la mitad. Esto nos lleva aconjeturar que el numero de cuadrados latinos simetricos de orden n es del orden de la raızcuadrada del numero de cuadrados latinos de orden n:

NS(n) ≈√

N(n) (1.15)

12

Page 14: Cuadrados Latinos y Grafos de Moore

Ademas, si observamos la evolucion del numero de cuadrados latinos simetricos, vemosque presenta algunas irregularidades en los ordenes impares (el numero de cuadrados latinoses proporcionalmente inferior), lo cual da a entender que la condicion de simetrıa es masdifıcil de obtener en cuadrados latinos de orden impar.

1.4.2. Formulas asintoticas

Las formulas asintoticas proporcionan una estimacion sencilla de calcular algo que re-querirıa mucho esfuerzo determinar de forma exacta. En el caso de los cuadrados latinos, lasformulas asintoticas proporcionan una estimacion del numero de cuadrados latinos cuandoel orden es suficientemente grande.

Por ejemplo, si tuvieramos que determinar el numero de cuadrados latinos de un ordenn cualquiera, podrıamos razonar de la siguiente forma: supongamos un cuadrado latino deorden n inicialmente vacıo. El primer elemento del cuadrado latino puede ser cualquierade los n elementos del alfabeto, el segundo puede ser cualquiera de los n − 1 elementosrestantes,... y ası sucesivamente hasta completar la primera fila del cuadrado latino. Por lotanto, para la primera fila tenemos n! posibilidades.

La primera estimacion que podemos hacer sobre el numero de cuadrados latinos de ordenn es la siguiente: si para rellenar la primera fila tenemos n! posibilidades, para rellenar lasn filas del cuadrado latino tendremos (n!)n posibilidades.

Evidentemente, no todas las filas del cuadrado latino tienen n! posibles maneras de sercompletadas, ya que a medida que vamos rellenando las filas superiores vamos eliminandoposibilidades en las filas inferiores. Sin embargo, esta aproximacion, que a primera vistapuede parecer exagerada, pronto veremos que no esta tan mal encaminada, lo que demuestrapor otro lado como el numero de cuadrados latinos crece muy rapidamente con el orden.

La primera mejora que podemos aplicar al razonamiento anterior es la de intentar deter-minar cuantas posibilidades podemos descartar al rellenar la segunda fila. Cada elementode la segunda fila esta condicionado por el elemento de la primera fila que tiene encima.Debido a esto, de las n! posibles maneras de rellenar la segunda fila hay que descartaraquellas en las que alguno de los elementos esta en la misma posicion que en la primerafila. Veamos como podemos contar estos casos.

En general, sabemos que el numero de permutaciones de n elementos con k de ellosfijos es (n − k)!. Como hay (n

k) maneras de fijar k elementos entre n, habra (nk)(n − k)!

permutaciones de n elementos con k de ellos fijos.

Por lo tanto, podemos razonar de la siguiente manera:

Al numero de permutaciones de n elementos le restamos el numero de permutacionescon un elemento fijo.

Al hacer esto, hemos restado dos veces aquellas permutaciones con dos elementosfijos, por lo que tenemos que sumarlas de nuevo una vez.

Al restar las permutaciones con un elemento fijo, hemos restado por triplicado laspermutaciones con tres elementos fijos, pero las hemos vuelto a sumar en las permu-taciones de 2 elementos fijos, por lo que tenemos que restarlas de nuevo una vez.

Y ası sucesivamente hasta llegar a las permutaciones con n elementos fijos.

13

Page 15: Cuadrados Latinos y Grafos de Moore

Al final de este proceso, obtendremos la formula siguiente:

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

(n2

)(n − 2)! −

(n3

)(n − 3)! + . . . + (−1)n (1.16)

Esta expresion recibe el nombre de formula de los desarreglos de n elementos, de aquı elhecho de denotarla D(n). Podemos escribirla de forma mas compacta como:

D(n) =n∑

i=0

(−1)i

(ni

)(n − i)! (1.17)

Si sacamos n! factor comun en esta ultima expresion, obtenemos la siguiente formula:

D(n) = n!

(1 − 1

1!+

1

2!− 1

3!+ . . . +

(−1)n

n!

)= n!

n∑i=0

(−1)i

i!(1.18)

Este resultado es importante ya que la sucesion 1 − 11!

+ 12!− 1

3!+ . . . + (−1)n

n!tiende a

1e

cuando n → ∞, por lo que el numero de desarreglos de n elementos puede aproximarsepor n!

ecuando n es lo suficientemente grande. Es decir, a partir de un cierto valor de n,

D(n) ≈ n!

e(1.19)

Como todas las filas del cuadrado latino tienen que ser compatibles con la primera, elnumero de cuadrados latinos no puede ser superior a la cota siguiente:

N(n) <(n!)n

en−1(1.20)

Ademas, la ultima fila del cuadrado latino esta determinada por las otras n− 1, por loque podemos acotar aun mas el numero de cuadrados latinos:

N(n) <(n!)n−1

en−2(1.21)

Como puede intuirse, este resultado no es muy bueno a la hora de acotar el numero decuadrados latinos de un orden dado, ya que solo tiene en cuenta las incompatibilidades decada fila con la primera. Una cuenta mas exacta, como la que puede consultarse en [9], noslleva al siguiente resultado, que proporciona una cota superior y una cota inferior para elnumero de cuadrados latinos de orden n:

n!2n

nn2 ≤ N(n) ≤n∏

k=1

k!n/k (1.22)

1.4.3. Estimacion para ordenes intermedios

Hasta ahora hemos visto que el numero de cuadrados latinos se conoce de forma exactapara n < 11, y para ordenes suficientemente grandes podemos utilizar las formulas asintoti-cas del apartado anterior. Sin embargo, para ordenes intermedios, el uso de las formulasasintoticas no es recomendable. Por esta razon se ha considerado oportuno desarrollar unaformula aproximada para calcular el numero de cuadrados latinos de ordenes no muy gran-des. El resultado es una formula sencilla calibrada a partir de los valores conocidos de N(n)que se deduce del siguiente razonamiento:

14

Page 16: Cuadrados Latinos y Grafos de Moore

Consideremos un cuadrado latino de orden n.

Cada fila del cuadrado latino tiene, a lo sumo, n! maneras de ser rellenada.

La fila i esta condicionada por las i − 1 filas anteriores.

Supongamos que de las n filas del cuadrado latino, n1 son totalmente independientesy n2 totalmente dependientes.

A la proporcion n1/n la llamamos α.

Entonces, el numero de cuadrados latinos de orden n sera el siguiente: N(n) = (n!)αn

Para las aproximaciones conocidas de N(n) tenemos los siguientes valores de α:

n N(n) α1 1 −2 2 0,53 12 0,462284 576 0,55 1,613 × 105 0,500936 8,129 × 108 0,519727 6,148 × 1013 0,532038 1,088 × 1020 0,543829 5,525 × 1027 0,55443

10 9,982 × 1036 0,5640311 7,764 × 1047 0,5727612 3,097 × 1060 0,5807313 7,487 × 1074 0,5880514 1,265 × 1091 0,5947915 1,71 × 10109 0,60102

Cuadro 1.6: Numero de cuadrados latinos y valor de α en funcion del orden.

Estos valores responden bastante bien a un ajuste logarıtmico:

= 0,0903·Ln(n) + 0,3564R2 = 0,9997

0,48

0,5

0,52

0,54

0,56

0,58

0,6

0,62

4 6 8 10 12 14 16

Figura 1.4: Evolucion del valor de α.

15

Page 17: Cuadrados Latinos y Grafos de Moore

Por lo tanto, el numero de cuadrados latinos de orden n puede estimarse como

N(n) ≈ (n!)αn (1.23)

donde α = 0,0903 · ln(n) + 0,3564. Esta formula se ha comparado con las cotas descritasen el apartado anterior y ha resultado ser valida para cuadrados latinos de orden n ≤ 62.

1.5. Generacion de cuadrados latinos

En la seccion anterior hemos visto que para calcular el numero exacto de cuadradoslatinos de un orden dado es necesario poder generarlos. En esta seccion explicaremos algunosde los metodos para generar cuadrados latinos.

1.5.1. Generacion secuencial de cuadrados latinos

La manera mas simple de generar cuadrados latinos consiste en hacerlo secuencialmente,es decir, empezar por el primero e ir generando ordenadamente los siguientes hasta llegaral ultimo. Para ello, podemos utilizar el siguiente algoritmo:

1) Tomamos un cuadrado latino vacıo.

2) En cada casilla colocamos el primer sımbolo del alfabeto que no es incompatible conlos que ya han sido colocados.

3) Si en alguna casilla no es posible insertar ningun sımbolo, dejamos esa casilla vacıay sustituimos el sımbolo de la casilla anterior por el siguiente elemento del alfabetoque sı es posible colocar.

4) Al llegar a la ultima casilla, habremos obtenido un cuadrado latino.

5) Si queremos obtener el siguiente, tenemos que sustituir el ultimo sımbolo colocadopor el siguiente elemento del alfabeto y repetir el proceso anterior. De esta maneranos aseguramos que los cuadrados latinos son generados secuencialmente.

1.5.2. Generacion aleatoria de cuadrados latinos

Otra manera de construir cuadrados latinos de cualquier orden es la generacion aleatoriade cuadrados latinos. Veamos en que consiste este proceso.

Consideremos un cuadrado latino de orden n. Si a este cuadrado latino le aplicamosun pequeno cambio, obtendremos un cuadrado latino muy similar al anterior. Si en vezde un pequeno cambio le aplicamos una sucesion de pequenos cambios, el cuadrado latinoresultante sera cada vez menos parecido al original.

Se puede demostrar que si la sucesion de pequenos cambios es lo suficientemente lar-ga se puede recorrer el espacio de los cuadrados latinos de orden n, lo que significa quecualquier cuadrado latino puede ser obtenido a partir de cualquier otro. Ademas, si los pe-quenos cambios se realizan de forma aleatoria, todos los cuadrados latinos tienen la mismaprobabilidad de ser generados.

El secreto de todo este proceso yace en como se realizan estos pequenos cambios. Ja-cobson y Matthews proponen en [6] un algoritmo que permite asegurar que los cuadrados

16

Page 18: Cuadrados Latinos y Grafos de Moore

latinos obtenidos siguen una distribucion uniforme. En el Capıtulo 3 dedicado a los algo-ritmos se presenta una variante de este metodo adaptada por el autor de esta tesina parala generacion aleatoria de cuadrados latinos mediante un ordenador.

A continuacion se expone, mediante un ejemplo, el metodo desarrollado por Jacobsony Matthews para generar cuadrados latinos de forma aleatoria:

1) Tomamos un cuadrado latino de orden n y lo llamamos L0 para denotar que se tratadel cuadrado latino inicial. Una manera facil de obtener un cuadrado latino de ordenn es tomar la sucesion 1, 2, 3, . . . , n y aplicarle una permutacion cıclica a cada fila.

L0 =

⎡⎢⎢⎢⎢⎢⎢⎣

1 2 3 4 52 3 4 5 13 4 5 1 24 5 1 2 35 1 2 3 4

⎤⎥⎥⎥⎥⎥⎥⎦

2) Escogemos al azar una fila r0 y una columna c0. Al sımbolo que se encuentra en laposicion (r0, c0) le llamamos s0. Escogemos tambien al azar un sımbolo p0. El pequenocambio que aplicaremos al cuadrado latino L0 consistira en sustituir el elemento s0

por el sımbolo p0. Para nuestro ejemplo, consideremos r0 = 1, c0 = 4, s0 = 4 y p0 = 5.

L0 =

⎡⎢⎢⎢⎢⎢⎢⎣

1 2 3 4 52 3 4 5 13 4 5 1 24 5 1 2 35 1 2 3 4

⎤⎥⎥⎥⎥⎥⎥⎦

3) Suponiendo que p0 = s0, localizamos las ocurrencias del sımbolo p0 en la fila r0 y enla columna c0 y las llamamos r1 y c1. Tambien localizamos el elemento presente en laposicion (r1, c1) y lo llamamos s1. En el caso de nuestro ejemplo tenemos que r1 = 2,c1 = 5 y s1 = 1.

L0 =

⎡⎢⎢⎢⎢⎢⎢⎣

1 2 3 4 52 3 4 5 13 4 5 1 24 5 1 2 35 1 2 3 4

⎤⎥⎥⎥⎥⎥⎥⎦

4) Usando la aritmetica simbolica, sumamos la diferencia p0 − s0 a las celdas (r0, c0)y (r1, c1) y la restamos a las celdas (r0, c1) y (r1, c0). Siguiendo nuestro ejemplo,obtenemos lo siguiente:

L1 =

⎡⎢⎢⎢⎢⎢⎢⎣

1 2 3 4 + (5 − 4) 5 − (5 − 4)2 3 4 5 − (5 − 4) 1 + (5 − 4)3 4 5 1 24 5 1 2 35 1 2 3 4

⎤⎥⎥⎥⎥⎥⎥⎦

=

⎡⎢⎢⎢⎢⎢⎢⎣

1 2 3 5 42 3 4 4 1 + 5 − 43 4 5 1 24 5 1 2 35 1 2 3 4

⎤⎥⎥⎥⎥⎥⎥⎦

Notese que en aritmetica simbolica solo se cancelan los sımbolos iguales con signosopuestos, como es el caso de +4 y −4 o +5 y −5.

17

Page 19: Cuadrados Latinos y Grafos de Moore

5) Al cuadrado latino resultante le llamamos L1 para indicar que se trata de un cuadradolatino impropio, es decir, un cuadrado latino con un elemento negativo. Al elementonegativo le llamaremos elemento impropio, mientras que a la fila y a la columnaque contienen el elemento impropio las llamaremos respectivamente fila impropia ycolumna impropia.

6) Nuestro objetivo consiste ahora en obtener un cuadrado latino propio a partir delcuadrado latino impropio L1. Para ello, seleccionamos al azar una de las dos ocurren-cias del sımbolo impropio en la fila r1 y en la columna c1 y las llamamos r2 y c2. Alsımbolo impropio le llamamos s2. Seleccionamos tambien al azar uno de los sımbolosp0 y s1 y le llamamos p2. Para nuestro ejemplo, sean r2 = 5, c2 = 3, s2 = 4 y p2 = 5.

L1 =

⎡⎢⎢⎢⎢⎢⎢⎣

1 2 3 5 42 3 4 4 1 − 5 + 43 4 5 1 24 5 1 2 35 1 2 3 4

⎤⎥⎥⎥⎥⎥⎥⎦

7) Al cuadrado latino L1 le aplicamos el pequeno cambio siguiente: restamos la diferenciasimbolica (p2 − s2) a las celdas (r1, c1) y (r2, c2) y la sumamos a las celdas (r1, c2) y(r2, c1).

L2 =

⎡⎢⎢⎢⎢⎢⎢⎣

1 2 3 5 42 3 4 + (5 − 4) 4 1 + 5 − 4 − (5 − 4)3 4 5 1 24 5 1 2 35 1 2 − (5 − 4) 3 4 + (5 − 4)

⎤⎥⎥⎥⎥⎥⎥⎦

=

⎡⎢⎢⎢⎢⎢⎢⎣

1 2 3 5 42 3 5 4 13 4 5 1 24 5 1 2 35 1 2 − 5 + 4 3 5

⎤⎥⎥⎥⎥⎥⎥⎦

8) Llegados a este punto pueden pasar dos cosas: o bien el cuadrado latino obtenido esun cuadrado latino propio, o bien es impropio. En caso de que sea propio, podemosdar por acabado el proceso. Si es impropio, como en el caso de nuestro ejemplo,tenemos que seguir aplicando pequenos cambios hasta que eventualmente obtengamosun cuadrado latino propio.

9) Por ejemplo, partiendo del cuadrado latino L2, es facil ver que un pequeno cambiomas nos lleva hasta un cuadrado latino propio. Tomemos r3 = 2, c3 = 1, s3 = 2 yp3 = 5. Si sumamos la diferencia simbolica (p3 − s3) a las celdas (r1, c1) y (r2, c2) y larestamos a las celdas (r1, c2) y (r2, c1), obtenemos el siguiente cuadrado latino propio.

L3 =

⎡⎢⎢⎢⎢⎢⎢⎣

1 2 3 5 42 + (5 − 2) 3 5 − (5 − 2) 4 1

3 4 5 1 24 5 1 2 3

5 − (5 − 2) 1 2 − 5 + 4 + (5 − 2) 3 5

⎤⎥⎥⎥⎥⎥⎥⎦

=

⎡⎢⎢⎢⎢⎢⎢⎣

1 2 3 5 45 3 2 4 13 4 5 1 24 5 1 2 32 1 4 3 5

⎤⎥⎥⎥⎥⎥⎥⎦

Ademas de haber obtenido un nuevo cuadrado latino a partir del cuadrado latino debase, hemos roto el caracter cıclico de las filas de L0, lo cual es una prueba del buen“poder de mezclado” que posee este metodo. La demostracion de que este metodo conectaefectivamente todo el espacio de los cuadrados latinos de orden n mediante los pequenosmovimientos descritos puede consultarse en [6].

18

Page 20: Cuadrados Latinos y Grafos de Moore

1.5.3. Composicion de cuadrados latinos

La composicion de cuadrados latinos es una herramienta util para generar cuadradoslatinos partiendo de otros de ordenes inferiores.

Definicion 1.21 Dados dos cuadrados latinos L1 y L2 de ordenes n1 y n2 respectivamente,se define el cuadrado latino composicion de L1 con L2, y se escribe L1L2, como el cuadradolatino obtenido mediante el siguiente procedimiento:

1) Se toma una matriz (n1 · n2) × (n1 · n2).

2) Cada elemento lij del nuevo cuadrado latino se construye yuxtaponiendo el elemento(l1)i1j1 con el elemento (l2)i2j2, siendo i1 = i/n1, j1 = j/n1, i2 = i/n2 y j2 = j/n2.

Por ejemplo, consideremos los cuadrados latinos siguientes:

L1 =

⎡⎢⎣ 1 2 3

2 3 13 1 2

⎤⎥⎦ L2 =

[1 22 1

]

El cuadrado latino L1 L2 sera, segun la regla de la composicion, el siguiente:

L1 L2 =

⎡⎢⎢⎢⎢⎢⎢⎢⎢⎣

11 12 21 22 31 3212 11 22 21 32 3121 22 31 32 11 1222 21 32 31 12 1131 32 11 12 21 2232 31 12 11 22 21

⎤⎥⎥⎥⎥⎥⎥⎥⎥⎦

Tambien podemos cambiar de alfabeto, si nos resulta mas comodo:

f : [3] [2] −→ [6]11 −→ 112 −→ 221 −→ 322 −→ 431 −→ 532 −→ 6

L1 L2 =

⎡⎢⎢⎢⎢⎢⎢⎢⎢⎣

1 2 3 4 5 62 1 4 3 6 53 4 5 6 1 24 3 6 5 2 15 6 1 2 3 46 5 2 1 4 3

⎤⎥⎥⎥⎥⎥⎥⎥⎥⎦

Como podemos observar, los elementos de L1 determinan el prefijo de cada elementocompuesto, mientras que los elementos de L2 determinan el sufijo. Por lo tanto L1L2 es uncuadrado latino, ya que dados dos elementos de una misma fila o columna, o tienen diferenteprefijo por pertenecer a submatrices diferentes, o tienen diferente sufijo por pertenecer ala misma submatriz. Ademas, si los cuadrados latinos L1 y L2 estan normalizados, loscuadrados latinos L1 L2 y L2 L1 estaran tambien normalizados.

La composicion de cuadrados latinos presenta algunas limitaciones:

No es posible obtener cuadrados latinos cuyo orden sea un numero primo.

No es posible obtener todos los cuadrados latinos de un orden dado mediante com-posicion de cuadrados latinos de ordenes inferiores.

19

Page 21: Cuadrados Latinos y Grafos de Moore

La composicion de cuadrados latinos no es conmutativa, como demuestra el siguienteejemplo:

L2 L1 =

⎡⎢⎢⎢⎢⎢⎢⎢⎢⎣

11 12 13 21 22 2312 13 11 22 23 2113 11 12 23 21 2221 22 23 11 12 1322 23 21 12 13 1123 21 22 13 11 12

⎤⎥⎥⎥⎥⎥⎥⎥⎥⎦

=

⎡⎢⎢⎢⎢⎢⎢⎢⎢⎣

1 2 3 4 5 62 3 1 5 6 43 1 2 6 4 54 5 6 1 2 35 6 4 2 3 16 4 5 3 1 2

⎤⎥⎥⎥⎥⎥⎥⎥⎥⎦

1.6. Aplicaciones de los cuadrados latinos

Generar y enumerar cuadrados latinos a menudo se ha considerado un pasatiempo sinninguna aplicacion practica. Por ese motivo, el estudio de los cuadrados latinos casi siemprese ha realizado desde el punto de vista de curiosidades matematicas. Sin embargo, suelepasar en el mundo de las matematicas que un campo teorico al que no se le conocenaplicaciones practicas de repente se le encuentra una utilidad y se convierte en un campode gran interes para la comunidad cientıfica. Los cuadrados latinos no son una excepcion.

En los ultimos anos, el auge de las tecnologıas de la informacion ha impulsado el desa-rrollo de una ciencia que que hasta el momento habıa estado limitada a finalidades militareso gubernamentales: la criptologıa. La criptologıa es la ciencia que estudia el cifrado de lainformacion. Se divide en dos ramas: la criptografıa, que estudia la creacion de codigossecretos, y el criptoanalisis, cuyo objetivo es descifrar dichos codigos.

La estrecha relacion que guardan los cuadrados latinos con los cuasigrupos los hacencandidatos ideales para ser utilizados en sistemas criptograficos. Este hecho ha despertadoun nuevo interes por el estudio de los cuadrados latinos. Prueba de ello son los numerososartıculos aparecidos recientemente en publicaciones matematicas y computacionales (veanselas referencias [7] y [8]).

1.6.1. Diseno de experimentos

Ademas de sus aplicaciones criptograficas, los cuadrados latinos tienen un papel impor-tante en la teorıa estadıstica de diseno de experimentos. Para ilustrar dicha importancia, acontinuacion se presentan dos ejemplos donde la utilizacion de cuadrados latinos permitereducir los errores de tipo experimental.

Ejemplo 1

Supongamos que queremos estudiar la efectividad de 5 fertilizantes distintos sobre uncultivo de cereal. Podrıamos disenar un experimento que consistiera en lo siguiente:

1) Aplicar el fertilizante.

2) Esperar a que el cereal madure.

3) Cosechar el cereal.

4) Medir la produccion por unidad de area.

20

Page 22: Cuadrados Latinos y Grafos de Moore

Ademas, para que los resultados sean comparables entre ellos, es necesario que losfertilizantes se prueben simultaneamente en una misma parcela de tierra. De esta manerase reduce el error debido a posibles variaciones en las condiciones meteorologicas.

Sin embargo, incluso imponiendo esta condicion, puede aparecer un error en el expe-rimento debido a diferencias en la composicion del suelo. Este error puede minimizarsemediante la siguiente tecnica: se divide la parcela en una cuadrıcula 5 × 5 y se aplicanlos fertilizantes segun la estructura de un cuadrado latino de orden 5. De esta manera, losfactores que puedan modificar el rendimiento del fertilizante afectaran por igual a las 5muestras, por lo que los resultados sean comparables entre ellos.

Ejemplo 2

Supongamos que queremos estudiar el poder de combustion de 5 formulas de combus-tible para cohetes. Cada formula se consigue mezclando una serie de componentes quevienen por lotes y cuya composicion puede variar. Ademas, las formulas son preparadaspor diferentes operarios que pueden tener diferente habilidad y experiencia. Por lo tanto,el experimento esta sometido a dos fuentes de error sistematico, presumiblemente indepen-dientes, que son los lotes y los operarios. Para compensar estos errores sistematicos puedeutilizarse un diseno de cuadrado latino como el siguiente:

1) Se escogen 5 lotes al azar y se numeran I, II, III, IV y V.

2) Se escogen 5 operarios al azar y se numeran 1, 2, 3, 4 y 5.

3) Las 5 formulas se etiquetan A, B, C, D y E.

4) Cada operario prepara una formula con cada lote siguiendo el esquema del cuadradolatino siguiente:

1 2 3 4 5I A (24) B (20) C (19) D (24) E (24)

II B (17) C (24) D (30) E (27) A (36)III C (18) D (38) E (26) A (27) B (21)IV D (26) E (31) A (26) B (23) C (22)V E (22) A (30) B (20) C (29) D (31)

Los numeros entre parentesis son los resultados obtenidos en el test de combustion decada muestra. El analisis de los datos obtenidos se realiza mediante los pasos siguientes:

1) Estandarizacion. A cada observacion le restamos la media de todas las observacio-nes, es decir, 25,4:

N =

⎡⎢⎢⎢⎢⎢⎢⎣

−1,4 −5,4 −6,4 −1,4 −1,4−8,4 −1,4 4,6 1,6 10,6−7,4 12,6 0,6 1,6 −4,4

0,6 5,6 0,6 −2,4 −3,4−3,4 4,6 −5,4 3,6 5,6

⎤⎥⎥⎥⎥⎥⎥⎦

2) Separacion de senales. Escribimos las observaciones como suma de 4 matrices:

21

Page 23: Cuadrados Latinos y Grafos de Moore

• Efecto del lote: es la matriz de medias segun el lote (por fila):

µl =

⎡⎢⎢⎢⎢⎢⎢⎣

−3,2 −3,2 −3,2 −3,2 −3,21,4 1,4 1,4 1,4 1,40,6 0,6 0,6 0,6 0,60,2 0,2 0,2 0,2 0,21,0 1,0 1,0 1,0 1,0

⎤⎥⎥⎥⎥⎥⎥⎦

• Efecto del operario: es la matriz de medias segun el operario (por columna):

µo =

⎡⎢⎢⎢⎢⎢⎢⎣

−4,0 3,2 −1,2 0,6 1,4−4,0 3,2 −1,2 0,6 1,4−4,0 3,2 −1,2 0,6 1,4−4,0 3,2 −1,2 0,6 1,4−4,0 3,2 −1,2 0,6 1,4

⎤⎥⎥⎥⎥⎥⎥⎦

• Efecto de la formula: es la matriz de medias segun la formula (por diagonal):

µf =

⎡⎢⎢⎢⎢⎢⎢⎣

3,2 −5,2 −3,0 4,4 0,6−5,2 −3,0 4,4 0,6 3,2−3,0 4,4 0,6 3,2 −5,2

4,4 0,6 3,2 −5,2 −3,00,6 3,2 −5,2 −3,0 4,4

⎤⎥⎥⎥⎥⎥⎥⎦

• Error no sistematico: es la diferencia entre los valores observados y la suma delos efectos medios (E = N − µl − µo − µf ):

E =

⎡⎢⎢⎢⎢⎢⎢⎣

2,6 −0,2 1,0 −3,2 −0,2−0,6 −3,0 0,0 −1,0 4,6−1,0 4,4 0,6 −2,8 −1,2

0,0 1,6 −1,6 2,0 −2,0−1,0 −2,8 0,0 5,0 −1,2

⎤⎥⎥⎥⎥⎥⎥⎦

3) Hipotesis nula. Los valores E representan las diferencias entre las 5 formulas. Losvalores de E son los errores que no pueden ser atribuidos ni al lote ni al operario. Lasignificacion del experimento depende de la relacion entre µf y E. Supondremos queno existe efecto debido a la formula (hipotesis nula) y estimaremos la probabilidadde que E sea observado.

4) Analisis de la varianza. Para aceptar o rechazar la hipotesis nula es necesariorealizar un analisis de la varianza. En nuestro caso, esto se consigue a traves de latabla ANOVA:

GL S =∑

x2 σ2 = S/GL F = S/σ2 Pµl n − 1 68 17 1,593 23,91 %µo n − 1 150 37,5 3,516 4,04 %µf n − 1 330 82,5 7,734 0,25 %E (n − 1)(n − 2) 10,67

Total n2 − 1 ST

22

Page 24: Cuadrados Latinos y Grafos de Moore

La probabilidad P se calcula a traves de la funcion F de Fisher con grados de libertad4 y 12. Al tratar con datos experimentales, la hipotesis nula suele aceptarse a partir de unasignificacion del 5 %, aunque cuanto mas alta sea la misma, mas seguros podemos estar deque se cumpla la hipotesis.

Viendo los resultados de la tabla ANOVA, podemos llegar a las siguientes conclusiones:

El lote, con una significacion del 23,91 %, no tiene efecto sobre el poder de combustionde las muestras.

La formula, con una significacion del 0,25 %, sı tiene efecto sobre el rendimiento delcombustible.

El operario, con una significacion del 4,04 %, no esta claro si influye o no en el experi-mento.

23

Page 25: Cuadrados Latinos y Grafos de Moore

Capıtulo 2

Grafos de Moore

Este segundo capıtulo esta dedicado al estudio de los grafos de Moore. El capıtulo ensı podrıa dividirse en dos partes. En la primera se repasan algunas definiciones basicas, seintroduce el problema (∆, D) y se presentan las herramientas matriciales necesarias parael estudio de los grafos de Moore.

En la segunda parte se expone de forma detallada la construccion de los grafos de Moorede grados 3 y 7. Finalmente, se ataca el problema de El Gran Grafo de Moore medianteuna aplicacion informatica desarrollada especıficamente para esta tesina. Dicha aplicacionha permitido realizar un avance importante en lo que refiere a la caracterizacion de losgrafos de Moore. Entre estos resultados destaca la aparicion de cuadrados latinos en laconstruccion de grafos de Moore, hecho que permitira aprovechar los resultados del primercapıtulo.

2.1. Definiciones previas

Definicion 2.1 Un grafo G consiste en un conjunto finito V , cuyos elementos se llamanvertices, y un conjunto tambien finito E de pares de elementos de V , cuyos elementosreciben el nombre de ramas.

Habitualmente escribimos G = (V,E) y decimos que V = V (G) es el conjunto devertices y E = E(G) el conjunto de ramas.

Los vertices de un grafo suelen representarse a traves de puntos y las ramas a traves delıneas que unen dichos puntos. Por ejemplo, el siguiente grafo tiene 4 vertices y 6 ramas:

1 2

3 4

Figura 2.1: El grafo 4-completo, o K4.

Este grafo en particular recibe el nombre de 4-completo ya que tiene 4 vertices y cadauno de ellos esta conectado con todos los demas.

24

Page 26: Cuadrados Latinos y Grafos de Moore

Definicion 2.2 Un grafo dirigido o digrafo es un grafo en el que el conjunto E esta for-mado por pares ordenados de elementos de V . En este caso, los elementos de E reciben elnombre de arcos.

En los digrafos, la direccion de los arcos se indica mediante una flecha. Recuperando elejemplo anterior, el siguiente digrafo tiene 4 vertices y 6 arcos:

1 2

3 4

Figura 2.2: Ejemplo de digrafo.

Definicion 2.3 Un autolazo es una rama que va de un vertice a sı mismo. Dos ramas sonparalelas sii tienen los mismos vertices en los extremos. Un grafo con autolazos y/o ramasparalelas se llama multigrafo. En caso contrario se habla de grafo simple.

De ahora en adelante solo consideraremos grafos simples, es decir, grafos no dirigidossin autolazos ni ramas paralelas.

Definicion 2.4 Dado un grafo G, se define su orden n como el numero de vertices quetiene, es decir, el cardinal de V .

Definicion 2.5 Dados dos vertices x e y, se dice que son adyacentes sii (x, y) es unarama.

Definicion 2.6 Dado un vertice x, se define su grado δ(x) como el numero de ramasincidentes en el. El grado maximo de un grafo G es el maximo de de los grados de susvertices y se denota ∆. El grado mınimo de un grafo G es el mınimo de de los grados desus vertices y se denota δ. Si ∆ = δ, se dice que el grafo G es ∆-regular.

Definicion 2.7 Dados dos vertices x e y cualesquiera, se define un recorrido de x a ycomo una sucesion de vertices x, x1, x2, . . . , xk, y tal que (x, x1), (xi, xi+1) 1 ≤ i ≤ k − 1, y(xk, y) son ramas de G. Si todos los vertices del recorrido son distintos, el recorrido recibeel nombre de camino.

Definicion 2.8 Un grafo es conexo si para cada par de vertices x e y existe un caminoque va de x a y.

Definicion 2.9 Dado un recorrido de x a y, se define su longitud como el numero de ramas.El recorrido de longitud mınima entre x e y se llama camino mas corto. El diametro deun grafo G se define como la longitud del mas largo de los caminos mas cortos y se denotapor D.

Dicho de otra forma, el diametro es la longitud maxima entre dos vertices cualesquierade G.

25

Page 27: Cuadrados Latinos y Grafos de Moore

Definicion 2.10 Dado un vertice x, se llama ciclo a cualquier camino de x a x y ciclomınimo al camino mas corto de x a x. El girth (“cintura”) de un grafo G se define comola longitud del mas corto de los ciclos mınimos y se denota por g.

Definicion 2.11 Un arbol es un grafo conexo que no contiene ciclos.

Por ejemplo, el siguiente grafo es un arbol:

Figura 2.3: Ejemplo de arbol.

Las siguientes proposiciones se deducen facilmente a partir de la definicion anterior:

1) Un grafo es un arbol sii el numero de ramas es el numero de vertices menos uno.

2) Un grafo es un arbol sii hay solamente un camino que una dos vertices cualesquiera.

3) Un grafo es un arbol sii es extremal respecto al numero de ramas (es decir, si al anadiruna rama se cierra forzosamente un ciclo).

2.2. Modelizacion matricial de grafos

Dada la estructura discreta de los grafos, parece natural pensar que su tratamientomediante un ordenador pueda hacerse de forma eficaz. De hecho, ası es. Sin embargo, esnecesario poder extraer la informacion que contiene el grafo y almacenarla de forma quepueda ser interpretada por un ordenador. Es ası como surge el concepto de la matriz deadyacencia.

Definicion 2.12 Dado un grafo G de orden n, se define la matriz de adyacencia asociadaa dicho grafo como la matriz binaria (n × n) en la que cada elemento (i, j) contiene un 1si el vertice i esta unido al vertice j por una rama, o un 0 en caso contrario.

Por ejemplo, dado el grafo siguiente, su matriz de adyacencia se escribe como sigue:

1 2

3

5 6

4

1 2 3 4 5 61 0 1 0 0 0 02 1 0 1 0 0 13 0 1 0 1 1 14 0 0 1 0 0 05 0 0 1 0 0 16 0 1 1 0 1 0

Figura 2.4: Grafo de 6 vertices y matriz de adyacencia asociada.

26

Page 28: Cuadrados Latinos y Grafos de Moore

Es facil ver que la matriz de adyacencia de un grafo simple cumple las siguientes con-diciones:

1) Es simetrica (si el vertice i es adyacente al j, entonces el vertice j es adyacente al i).

2) Los elementos de la diagonal son cero (un vertice no puede ser adyacente a sı mismo).

La definicion de la matriz de adyacencia puede extenderse facilmente a ordenes superio-res de la siguiente manera:

Definicion 2.13 Dado un grafo G de orden n, se define la matriz de adyacencia de ordenν asociada a dicho grafo como la matriz (n × n) en la que cada elemento (i, j) contiene elnumero de recorridos de longitud ν que unen los vertices i y j del grafo.

Recuperando el grafo del ejemplo anterior, he aquı su matriz de adyacencia de orden 2:

1 2 3 4 5 61 1 0 1 0 0 12 0 3 1 1 2 13 1 1 4 0 1 24 0 1 0 1 1 15 0 2 1 1 2 16 1 1 2 1 1 3

Notese que en este caso los elementos de la diagonal no son cero. Esto es debido a quese cuentan los recorridos del tipo i → j → i (“ida y vuelta”). Es mas, los elementos dela diagonal de la matriz de adyacencia de orden 2 indican precisamente el grado de cadavertice.

Proposicion 2.14 Sea A la matriz de adyacencia de orden 1 asociada a un grafo G.Entonces, la matriz de adyacencia de orden ν asociada al mismo grafo es Aν.

Demostracion. Para demostrar este resultado recurriremos a la induccion sobre ν.

Para ν = 1, A1ij = 1 si el vertice i es adyacente al vertice j, y 0 en caso contrario.

Para ν = 2, A2ij =

∑nk=1 aik akj. Sabemos que el producto aik akj vale 1 si i es adyacente

a k y k es adyacente a j, y 0 en caso contrario. Por lo tanto, si aik akj = 0, entonces losvertices i y j estan unidos por un recorrido de longitud 2, por lo que A2

ij representael numero de recorridos de longitud 2 entre los vertices i y j.

Supongamos que para todo h < ν, Ahij es el numero de recorridos de longitud h que

unen los vertices i y j. Sabemos que Aνij =

∑nk=1 aik aν−1

kj , donde aik aν−1kj = 0 si i es

adyacente a k y k esta unido con j por un recorrido de longitud ν−1. Por lo tanto, siAν

ij = 0, entonces i esta unido con j por un recorrido de longitud ν, y Aνij representa

el numero de recorridos de longitud ν entre los vertices i y j.

Corolario 2.15 Sean Ar y As las matrices de adyacencia de orden r y s de un grafo G.Entonces, la matriz de adyacencia Ar + As contiene el numero de recorridos de longitud ro longitud s, mientras que la matriz Ar · As contiene el numero de recorridos de longitudr + s.

27

Page 29: Cuadrados Latinos y Grafos de Moore

2.3. El problema (∆, D)

Una cuestion de especial interes en la teorıa de grafos es el llamado problema (∆, D).Este problema consiste en encontrar grafos con el mayor numero posible de vertices paraun grado maximo ∆ y un diametro D dados. El problema (∆, D) es de gran importanciadebido a sus implicaciones en el diseno de topologıas de redes de interconexion y otrascuestiones como problemas de alineacion de datos y algoritmos criptograficos.

Junto al problema (∆, D) encontramos el problema (δ, g), que trata de encontrar grafoscon el menor numero posible de vertices para un grado mınimo δ y un girth g dados. Losgrafos que cumplen esta condicion reciben el nombre de cages (“jaulas”).

Los problemas (∆, D) y (δ, g) pertenecen a la teorıa extremal de grafos y estan ıntima-mente relacionados. Es mas, los problemas mas interesantes en teorıa extremal de grafosson aquellos que combinan ambos problemas (∆, D) y (δ, g). Por ejemplo, cuando g = 2D,el problema (∆, D) consiste en la busqueda de los llamados polıgonos generalizados. Se sabeque los polıgonos generalizados existen solo para valores del girth g iguales a 4, 6, 8 y 12,y se han construido algunos de ellos, concretamente para valores del grado ∆ iguales a lapotencia de un numero primo mas uno. Este problema reviste una especial dificultad y esfuente de gran actividad en la comunidad matematica internacional.

Cuando g = 2D + 1, el problema (∆, D) consiste en la busqueda de los llamados grafosde Moore. Se sabe que los grafos de Moore solo pueden existir para valores del grado ∆iguales a 3, 7 y 57. Los dos primeros casos son conocidos y reciben los nombres de grafo dePetersen y grafo de Hoffman-Singleton, mientras que el caso ∆ = 57 sigue sin resolverse.El estudio de los grafos de Moore sera el objetivo central de esta tesina.

2.3.1. Grafos de Moore

Definicion 2.16 Se dice que un grafo G de grado maximo ∆ y diametro D es un grafodenso si G tiene el mayor numero posible de vertices.

Definicion 2.17 Para un grado maximo ∆ y un diametro D dados, se define la cota deMoore como el siguiente valor:

m = 1 + ∆D∑

i=1

(∆ − 1)i−1 =

⎧⎪⎨⎪⎩

2D + 1 si ∆ = 2

∆(∆−1)D−2∆−2

si ∆ ≥ 3(2.1)

Proposicion 2.18 Sea G un grafo de grado maximo ∆ y diametro D. Entonces el numerode vertices de G esta acotado por la cota de Moore, es decir, se verifica que n ≤ m.

Demostracion. Asumiendo que todos los vertices de G tienen grado maximo, el numerode vertices a distancia i de un vertice cualquiera es ∆ · (∆− 1)i−1. Por lo tanto, el numeromaximo de vertices que puede tener el grafo G es 1 + ∆

∑Di=1(∆ − 1)i−1.

Definicion 2.19 Los grafos que alcanzan la cota de Moore reciben el nombre de grafos deMoore.

Del razonamiento anterior se deduce que para que un grafo sea de Moore, todos susvertices tienen que tener grado maximo, es decir, el grafo tiene que ser ∆-regular.

28

Page 30: Cuadrados Latinos y Grafos de Moore

Teorema 2.20 Si G es un grafo de Moore de grado ∆ ≥ 3, entonces tiene diametro 2.

La demostracion de este teorema no es sencilla y esta fuera del alcance de esta tesina.No obstante, puede consultarse en [2]. Una consecuencia inmediata del Teorema 2.20 es elcorolario siguiente.

Corolario 2.21 Un grafo regular de grado ∆ ≥ 3 con ∆2 +1 vertices es un grafo de Mooresii tiene girth 5.

Teorema 2.22 (de Hoffman y Singleton) Para ∆ ≥ 3, la cota de Moore solo se alcanzaen grafos regulares de diametro 2 y grado 3, 7 y posiblemente 57.

Demostracion. Sea G un grafo de Moore de grado ∆. Sea A su matriz de adyacencia,es decir, Aij = 1 si los vertices i y j son adyacentes, Aij = 0 en caso contrario. Sea B lamatriz de distancia 2, es decir, Bij = 1 si la distancia entre los vertices i y j es 2, Bij = 0en caso contrario. Si I es la matriz identidad (matriz de distancia 0), entonces se verificaque I + A + B = J , donde J es la matriz con todos los elementos iguales a 1.

La matriz de adyacencia es una matriz simetrica, lo que implica que diagonaliza.Ademas, la matriz de adyacencia es una matriz de ceros y unos y, en particular, sus ele-mentos de la diagonal son cero, de donde deducimos que

Tr(A) =1+∆2∑i=1

Aii = 0 (2.2)

Llegados a este punto, es necesaria la introduccion de un lema para seguir con la de-mostracion.

Lema 2.23 Sean A y B las matrices de adyacencia y de distancia 2 de un grafo de Moore,respectivamente. Entonces se verifica:

i) A2 = ∆ · I + B (2.3)

ii) AB = (∆ − 1)A + (∆ − 1)B (2.4)

Demostracion. i) En virtud de la Proposicion 2.14, A2ij es el numero de recorridos de

longitud 2 entre los vertices i y j. Por lo tanto, si i = j, A2ii es el grado del vertice i, es

decir, ∆. Si i = j y los vertices i y j no estan a distancia 2, no hay recorridos de longitud2, por lo que A2

ij = 0. Si los vertices i y j estan a distancia 2, entonces el recorrido delongitud 2 es forzosamente un camino. Ademas, como el grafo es de Moore, el Corolario2.21 nos indica que el girth debe ser 5. Ası pues, el numero de caminos de longitud 2 entredos vertices a distancia 2 es igual a 1, por lo que A2

ij = 1. En definitiva,

A2ij =

∆ si i = jBij si i = j

(2.5)

ii) Por definicion, (AB)ij =∑n

k=1 aik bkj. El producto aik bkj sera distinto de cero cuandoaik = 1 y bkj = 1, lo que significa que el vertice i es adyacente al k y el k esta unido al j porun camino de longitud 2. El valor (AB)ij vendra determinado por el numero de verticesadyacentes a i y a distancia 2 de j.

29

Page 31: Cuadrados Latinos y Grafos de Moore

Supongamos en primer lugar que el vertice i sea adyacente al j. Entonces hay ∆ − 1vertices que son adyacentes al i pero no al j (ya que el girth es 5), por lo que hay ∆ − 1vertices adyacentes a i y a distancia 2 de j.

Por otro lado, si el vertice i no es adyacente al j, entonces estara a distancia 2 (ya queel diametro es 2), por lo que habra ∆ vertices adyacentes a i, de los cuales ∆ − 1 estarana distancia 2 de j (por ser el girth 5).

En definitiva, (AB)ij =

0 si i = j

∆ − 1 si i = j

, por lo que AB = (∆ − 1)(A + B).

Combinando las dos ecuaciones del Lema 2.23 podemos escribir la ecuacion caracterısti-ca de la matriz A:

A3 − (∆ − 1)A2 − (2∆ − 1)A + ∆(∆ − 1)I = 0 (2.6)

Como todo grafo de Moore es ∆-regular, cada fila de la matriz A contiene ∆ unos yn − ∆ ceros. Esto implica que

A

⎛⎜⎜⎜⎜⎝

11...1

⎞⎟⎟⎟⎟⎠ =

⎛⎜⎜⎜⎜⎝

∆∆...∆

⎞⎟⎟⎟⎟⎠ = ∆

⎛⎜⎜⎜⎜⎝

11...1

⎞⎟⎟⎟⎟⎠ (2.7)

De este resultado deducimos que (1, 1, . . . , 1)T es un vector propio de A de valor propio∆. Esto significa que el espectro de la matriz A contiene el valor propio ∆ de multiplicidad1 (puesto que el grafo es conexo), por lo que podemos reescribir la ecuacion caracterısticade A la siguiente manera:

(A − ∆I)(A2 + A − (∆ − 1)I) = 0 (2.8)

En definitiva, debe haber dos valores propios λ1 y λ2 de multiplicidades m1 y m2 quesatisfagan la ecuacion x2 +x−(∆−1) = 0. El siguiente lema nos dice que pasa si m1 = m2.

Lema 2.24 Si m1 = m2, entonces ∆ = 2.

30

Page 32: Cuadrados Latinos y Grafos de Moore

Demostracion. Este lema se demuestra facilmente partiendo del sistema de ecuacionessiguiente:

m1 + m2 = ∆2 (2.9)

m1 λ1 + m2 λ2 = −∆ (2.10)

λ1 + λ2 = −1 (2.11)

La primera ecuacion proviene de que la suma de las multiplicidades de los valores propiosde A debe ser igual a la dimension de la matriz. La segunda ecuacion refleja que la sumade todos los valores propios es la traza de la matriz A. Y la tercera ecuacion viene de quela suma de las raıces de la ecuacion x2 + x − (∆ − 1) = 0 debe ser igual al coeficientedel termino en x cambiado de signo. Resolviendo el sistema, obtenemos que si m1 = m2,entonces ∆ = 2.

Como hemos supuesto que ∆ ≥ 3, del contrarrecıproco del Lema 2.24 se deriva quem1 = m2 y los valores propios λ1 y λ2 seran las raıces de la ecuacion x2 + x− (∆− 1) = 0.Es decir,

λ1 =−1 + t

2, λ2 =

−1 − t

2(2.12)

donde t =√

4∆ − 3. Por otro lado, partiendo de las ecuaciones 2.9 y 2.10 podemos expresarm1 y m2 de la siguiente manera:

m1 =∆ + λ2∆

2

λ2 − λ1

, m2 =∆ + λ1∆

2

λ1 − λ2

(2.13)

Dado que las multiplicidades m1 y m2 deben ser numeros naturales, de las expresionesanteriores se deduce que λ1 y λ2 deben ser numeros racionales. Por consiguiente, el valor tdebe ser tambien un numero natural.

Del sistema formado por las ecuaciones 2.9, 2.10 y 2.12 se deduce la siguiente ecuacion:

t4 − 2t2 − 16(m1 − m2)t − 15 = 0 (2.14)

Tenemos pues que t debe ser un divisor de 15. Tomando sucesivamente t = 1, 3, 5, 15obtenemos los valores ∆ = 1, 3, 7, 57. El caso ∆ = 1 no puede darse, ya que entonces elgrafo no podrıa tener diametro 2. Por lo tanto, los unicos valores posibles son ∆ = 3, 7 y57.

2.3.2. Arbol generador

Definicion 2.25 Dado un grafo G, se define su arbol generador como aquel arbol quecontiene todos los vertices de G.

Proposicion 2.26 El arbol generador de un grafo de Moore es el que muestra la figura2.5.

Demostracion. Sea G un grafo de Moore de grado ∆. Consideremos un vertice cualquierade G y etiquetemoslo v0. Como G es ∆-regular, desde v0 colgaran ∆ vertices, y desde cadauno de estos ∆ vertices colgaran ∆ − 1 vertices mas.

31

Page 33: Cuadrados Latinos y Grafos de Moore

Figura 2.5: Arbol generador de un grafo de Moore.

Dado que los grafos de Moore tienen diametro 2, su arbol generador no puede tenermas de 3 niveles, ya que en caso contrario la distancia entre el vertice v0 y cualquiera delos vertices inferiores serıa mayor que 2.

El arbol generador es una “buena manera” de empezar a construir un grafo de Moore,ya que todos los vertices del mismo estan conectados, y su simetrıa nos asegura que no hayninguna rama colocada que nos impida completar el grafo.

Ademas, el arbol generador nos proporciona mucha informacion acerca de los grafos deMoore. Por ejemplo, una cuenta rapida nos revela que el numero n de vertices en un grafode Moore depende del grado ∆ segun la siguiente expresion:

n = 1 + ∆ + ∆ · (∆ − 1) = ∆2 + 1 (2.15)

Conocido el numero de vertices, el numero l de ramas puede calcularse facilmenteteniendo en cuenta que, como el grafo es ∆-regular, sobre cada vertice inciden ∆ ramas:

l =n · ∆

2=

(∆2 + 1) · ∆2

(2.16)

Este mismo resultado puede deducirse contando las ramas del arbol generador mas lasramas que faltan entre los vertices del tercer nivel:

l = ∆ + ∆ · (∆ − 1) +∆ · (∆ − 1)2

2=

(∆2 + 1) · ∆2

(2.17)

2.3.3. Grafo soporte

Ahora que sabemos como empezar a construir los grafos de Moore mediante su arbolgenerador, veamos si podemos ir un poco mas alla.

Definicion 2.27 Sea T el arbol generador asociado a un grafo G de Moore. Llamaremosgrafo soporte de G al grafo resultante de anadir ∆2 − ∆ − 1 ramas al arbol T mediante elsiguiente procedimiento: unimos el vertice i del grupo 1 al vertice i del grupo j, para todo1 ≤ i ≤ ∆ − 1 y para todo 2 ≤ j ≤ ∆.

32

Page 34: Cuadrados Latinos y Grafos de Moore

Graficamente, el grafo soporte adquiere el siguiente aspecto:

Figura 2.6: Grafo soporte de un grafo de Moore.

Proposicion 2.28 Si G es un grafo de Moore de grado ∆, entonces el grafo soporte es unsubgrafo de G con 2∆ vertices de grado ∆ y (∆ − 1)2 vertices de grado 2.

Dicho de otro modo, el grafo soporte nos permite empezar a construir un grafo de Mooreestando seguros de que ninguna de las ramas colocadas va a impedirnos completar el grafo.Por lo tanto, el grafo soporte es la “mejor manera” de iniciar la construccion de un grafode Moore.

Demostracion. Sea T el arbol generador asociado a un grafo de Moore. Consideremos unvertice cualquiera del tercer nivel de T . Dicho vertice pertenecera a un grupo concreto, perocomo de momento los grupos son indistinguibles entre ellos, podemos suponer que perteneceal primer grupo. Ademas, como dentro de cada grupo los vertices son indistinguibles entresı, podemos suponer tambien que dicho vertice es el primero del primer grupo.

Este vertice en cuestion tiene grado 1, ası que para conseguir que tenga grado ∆ ten-dremos que colocarle ∆ − 1 ramas. Estas ramas no pueden ir a ningun vertice del primergrupo, ya que se cerrarıan ciclos de longitud 3, y no es posible enviar dos ramas a un mismogrupo, ya que se cerrarıan ciclos de longitud 4. Por lo tanto, como tenemos que colocar ∆−1ramas y tenemos ∆ − 1 grupos donde enviarlas, mandaremos una a cada grupo. Ademas,como dentro de cada uno de los grupos del 2 al ∆ los vertices siguen siendo indistinguibles,podemos suponer que las mandamos las ramas al primer vertice de cada grupo.

De forma similar, colocaremos las ∆ − 1 ramas que faltan a los vertices del 2 al ∆ − 1del primer grupo, con lo que tendremos que todos los vertices del primer grupo tendrangrado ∆.

33

Page 35: Cuadrados Latinos y Grafos de Moore

2.3.4. Forma canonica de un grafo de Moore

Definicion 2.29 Llamaremos forma canonica de un grafo de Moore a aquella representa-cion de su matriz de adyacencia que se corresponde con su grafo soporte.

En general, la forma canonica de la matriz de adyacencia del grafo de Moore de grado∆ tiene el siguiente aspecto:

Figura 2.7: Forma canonica de la matriz de adyacencia de un Grafo de Moore.

Proposicion 2.30 Sea G un grafo de Moore y sea A su matriz de adyacencia. Entonces,existe una matriz de permutacion P tal que P T · A · P = A′, siendo A′ la forma canonicade la matriz A.

Dicho de otra forma, la matriz de adyacencia de un grafo de Moore siempre puedeescribirse en forma canonica.

Demostracion. Al ser G un grafo ∆-regular, su matriz de adyacencia tiene exactamente∆ unos en cada fila y en cada columna. El siguiente algoritmo permite obtener la formacanonica de cualquier matriz de adyacencia asociada a un grafo de Moore:

Consideremos la primera fila de la matriz A. Por ser G un grafo ∆-regular, esta filacontiene ∆ unos. Nuestro objetivo ha de ser agrupar estos ∆ unos en las posiciones(1, 2) a (1, ∆ + 1). Para ello basta localizar las posiciones (1, p1i) que contienen losunos y realizar las siguientes permutaciones de columna:

columna −→ columna2 −→ p11

3 −→ p12... −→ ...

∆ + 1 −→ p1∆

34

Page 36: Cuadrados Latinos y Grafos de Moore

Si realizamos simultaneamente las mismas permutaciones de fila que de columna,entonces habremos ordenado tambien la primera columna.

Pasemos ahora a la segunda fila, que contiene tambien ∆ unos. Sin embargo, elprimero de ellos esta bien colocado, ya que pertenece a la primera columna. Por lotanto debemos preocuparnos de ordenar los ∆−1 unos restantes. Para ello, repetimosel procedimiento anterior, es decir, localizamos las posiciones (2, p2i) que contienenlos unos y realizamos permutaciones de columna pertinentes, que en este caso son lassiguientes:

columna −→ columna∆ + 2 −→ p21

∆ + 3 −→ p22... −→ ...

2∆ −→ p2∆−1

Para ordenar las filas (y las columnas) de la 3 a la ∆ + 1 podemos aplicar el mismoprocedimiento que para la fila 2.

Fijemonos ahora en las filas ∆ + 2 a 2∆. En estas filas se encuentran los unos corres-pondientes a las ramas de primer grupo del tercer nivel del arbol. Para conseguir laforma canonica es necesario que cada vertice del primer grupo del tercer nivel vaya almismo vertice de los demas grupos del tercer nivel, lo que se traduce en que los unosde la matriz de adyacencia queden dispuestos en diagonales dentro de cada grupo.Es facil ver que podemos permutar filas (y las columnas) dentro de un mismo gruposin desordenar las filas (y las columnas) anteriores. Por lo tanto, podemos aplicar denuevo el procedimiento que hemos venido aplicando y que consiste en localizar losunos en cada fila y columna y realizar las permutaciones pertinentes.

Una vez completado el procedimiento descrito, la matriz de adyacencia estara en formacanonica.

2.4. Construccion del grafo de Petersen

El grafo de Moore de grado 3 recibe el nombre de grafo de Petersen y se caracterizapor los siguientes parametros:

Diametro D 2Grado ∆ 3Girth g 5

Vertices n 10Ramas l 15

Cuadro 2.1: Parametros del grafo de Moore de grado 3.

El grafo de Petersen es el mas pequeno de los grafos de Moore, y es el unico que puedeconstruirse manualmente sin utilizar ninguna tecnica especial, tan solo un simple tanteo.Sin embargo, vamos a aprovechar que hemos introducido el concepto de grafo soporte parahacerlo de una forma mas elegante.

35

Page 37: Cuadrados Latinos y Grafos de Moore

2.4.1. Construccion mediante el grafo soporte

El grafo de Petersen es relativamente facil de deducir a partir de su grafo soporte. Paraello, empezaremos colocando construyendo su arbol generador:

0

1 2 3

4 5 6 7 8 9

Figura 2.8: Construccion del grafo de Petersen. Paso 1.

Una vez hecho esto, vemos que nos falta colocar las ramas de los vertices del tercernivel. El secreto para completar el grafo de Petersen es colocar dichas ramas de forma queno se formen ciclos de longitud 3 ni 4, ya que en caso contrario el grafo no tendrıa girth 5y consecuentemente no serıa un grafo de Moore.

Fijemos nuestra atencion en el vertice 4. Este vertice tiene una rama que lo une alvertice 1. Por lo tanto, le faltan dos ramas para tener grado 3. Vamos a colocarle unasegunda rama. Dicha rama no puede ir al vertice 5 porque cerrarıa un ciclo de longitud3 (ciclo 1-4-5). En cambio, la rama puede ir a cualquiera de los vertices 6, 7, 8 y 9. Porcomodidad, llevaremos la rama del vertice 4 al vertice 6.

0

1 2 3

4 5 6 7 8 9

Figura 2.9: Construccion del grafo de Petersen. Paso 2.

Es importante darse cuenta que la decision de conectar el vertice 4 con el vertice 6 nosupone ninguna perdida de generalidad, ya que los vertices 6, 7, 8 y 9 son hasta el momentoindistinguibles desde el punto de vista de sus conexiones con otros vertices.

Nos falta aun colocar la tercera rama del vertice 4. Esta rama no puede ir al vertice5 por la misma razon que antes ni al vertice 6 dado que ya hay una rama que une losvertices 4 y 6. Tampoco puede ir al vertice 7, porque se cerrarıa un ciclo de longitud 4(ciclo 4-6-2-7). En cambio, dicha rama puede ir tanto al vertice 8 como al 9. Siguiendo elmismo razonamiento que antes, llevaremos la tercera rama del vertice 4 al vertice 8.

36

Page 38: Cuadrados Latinos y Grafos de Moore

0

1 2 3

4 5 6 7 8 9

Figura 2.10: Construccion del grafo de Petersen. Paso 3.

Hecho esto, el vertice 4 ya tiene todas las ramas necesarias. Pasemos pues al vertice 5.A este vertice le faltan tambien dos ramas para tener grado 3. Tanto el vertice 6 como elvertice 8 estan descartados ya que se cerrarıan ciclos de longitud 4 (ciclos 5-6-4-1 y 5-8-4-1,respectivamente). Quedan pues los vertices 7 y 9. Como tenemos que colocar dos ramasdesde el vertice 5 y las dos no pueden ir a un mismo vertice, llevaremos una al vertice 7 yotra al 9.

0

1 2 3

4 5 6 7 8 9

Figura 2.11: Construccion del grafo de Petersen. Paso 4.

Llegados a este punto, es importante darse cuenta que el grafo anterior es precisamenteel grafo soporte del grafo de Petersen. Como el procedimiento seguido hasta el momentoes aplicable a cualquier grafo de Moore vamos a resumir, antes de continuar, los pasos quehemos dado:

Hemos generado el arbol hasta el tercer nivel, colocando el vertice 0 en el primernivel, los vertices del 1 al ∆ en el segundo nivel y el resto en el tercero agrupados en∆ grupos de (∆ − 1) vertices.

Hemos colocado (∆ − 1) ramas desde el primer vertice del primer grupo del tercernivel a los (∆−1) primeros vertices de los grupos del 2 al ∆; tambien hemos colocado(∆−1) ramas desde el segundo vertice del primer grupo del tercer nivel a los (∆−1)segundos vertices de los grupos del 2 al ∆; ası hemos ido colocando las ramas detodos los vertices del primer grupo.

37

Page 39: Cuadrados Latinos y Grafos de Moore

Volvamos ahora a la construccion del grafo de Petersen. Nos falta colocar dos ramas queunan los vertices 6, 7, 8 y 9, que son los unicos que todavıa no tienen grado 3. Dado quelas parejas 6-7 y 8-9 estan descartadas porque cerrarıan ciclos de longitud 3 (ciclos 6-7-2 y8-9-3, respectivamente), solo nos quedan dos posibilidades: o bien unir el vertice 6 con el 8y el 7 con el 9, o bien unir el vertice 6 con el 9 y el 7 con el 8. Un tanteo rapido nos revelaque las parejas correctas son la 6-9 y la 7-8.

0

1 2 3

4 5 6 7 8 9

Figura 2.12: Construccion del grafo de Petersen. Paso 5.

De esta forma hemos acabado la construccion del grafo de Petersen. Ahora serıa in-teresante comprobar que efectivamente el grafo que acabamos de generar tiene diametro2. Dado que el grado de este grafo es relativamente pequeno, podrıamos realizar la com-probacion a mano. Sin embargo, previendo ya lo que ha de venir, vamos a aplicar nuestrosconocimientos sobre matrices de adyacencia para comprobarlo.

2.4.2. Matriz de adyacencia del grafo de Petersen

La matriz de adyacencia del grafo de Petersen es muy facil de construir a partir delpropio grafo. Esta es la matriz que esta en forma canonica:

A1 =

⎡⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣

0 1 1 1 0 0 0 0 0 01 0 0 0 1 1 0 0 0 01 0 0 0 0 0 1 1 0 01 0 0 0 0 0 0 0 1 10 1 0 0 0 0 1 0 1 00 1 0 0 0 0 0 1 0 10 0 1 0 1 0 0 0 0 10 0 1 0 0 1 0 0 1 00 0 0 1 1 0 0 1 0 00 0 0 1 0 1 1 0 0 0

⎤⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦

Como podemos observar, se trata de una matriz simetrica 10× 10 que contiene 30 unosy 70 ceros distribuidos de forma que hay exactamente 3 unos por fila y por columna. Estoindica que el grado de todos los vertices es 3. Ademas, los elementos de la diagonal soncero, lo que demuestra que no hay autolazos.

38

Page 40: Cuadrados Latinos y Grafos de Moore

Veamos ahora la matriz de adyacencia de orden 2:

A2 =

⎡⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣

3 0 0 0 1 1 1 1 1 10 3 1 1 0 0 1 1 1 10 1 3 1 1 1 0 0 1 10 1 1 3 1 1 1 1 0 01 0 1 1 3 1 0 1 0 11 0 1 1 1 3 1 0 1 01 1 0 1 0 1 3 1 1 01 1 0 1 1 0 1 3 0 11 1 1 0 0 1 1 0 3 11 1 1 0 1 0 0 1 1 3

⎤⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦

Es este caso tenemos otra matriz simetrica 10 × 10 con las siguientes caracterısticas:

Los elementos de la diagonal valen 3, lo que nos vuelve a recordar que el grado decada vertice es 3.

Los elementos que valıan 1 en la matriz A1 ahora valen 0, y viceversa, los elementosque valıan 0 en la matriz A1 (excepto los de la diagonal) ahora valen 1.

Finalmente, veamos que da la suma de las matrices A1 y A2:

A1 + A2 =

⎡⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣

3 1 1 1 1 1 1 1 1 11 3 1 1 1 1 1 1 1 11 1 3 1 1 1 1 1 1 11 1 1 3 1 1 1 1 1 11 1 1 1 3 1 1 1 1 11 1 1 1 1 3 1 1 1 11 1 1 1 1 1 3 1 1 11 1 1 1 1 1 1 3 1 11 1 1 1 1 1 1 1 3 11 1 1 1 1 1 1 1 1 3

⎤⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦

En esta matriz ningun elemento vale cero. Recordando las propiedades de la suma dematrices de adyacencia, esto significa que toda pareja de vertices i y j esta conectada porun camino de longitud 1 o 2. Y con esto hemos demostrado lo que venıamos buscando, esdecir, que el grafo de Petersen tiene diametro 2.

2.4.3. Otras representaciones del grafo de Petersen

Para aquellos que deseen perfeccionar sus habilidades en la construccion del grafo dePetersen, he aquı algunas otras representaciones del mismo:

Figura 2.13: Algunas representaciones del grafo de Petersen.

39

Page 41: Cuadrados Latinos y Grafos de Moore

Estas representaciones del grafo de Petersen estan basadas en el pentagono, el hexagono,el octagono y el nonagono. Notese que todas las figuras representan el mismo grafo, tansolo cambia la disposicion de los vertices en el plano. A pesar de ello, el grafo de Petersenes habitualmente conocido por su representacion basada en el pentagono.

2.5. Construccion del grafo de Hoffman-Singleton

El grafo de Moore de grado 7 recibe el nombre de grafo de Hoffman-Singleton y secaracteriza por los siguientes parametros:

Diametro D 2Grado ∆ 7Girth g 5

Vertices n 50Ramas l 175

Cuadro 2.2: Parametros del grafo de Moore de grado 7.

La construccion del grafo de Hoffman-Singleton no es inmediata como en el caso dePetersen. Por el momento, podemos avanzar que el grafo soporte del grafo de Hoffman-Singleton tendra el siguiente aspecto:

Figura 2.14: Aspecto del grafo soporte para el grafo de Hoffman-Singleton.

2.5.1. Construccion clasica del grafo de Hoffman-Singleton

La construccion mas famosa del grafo de Hoffman-Singleton es la basada en el grafocompleto bipartito K5,5. Un grafo se llama bipartito cuando sus vertices estan agrupados endos conjuntos de forma que no hay ramas que unan vertices dentro de un mismo conjunto.Un grafo se llama completo cuando cada vertice esta unido con todos los demas.

E0 E1 E2 E3 E4

P0 P1 P2 P3 P4

Figura 2.15: Grafo completo bipartito K5,5.

40

Page 42: Cuadrados Latinos y Grafos de Moore

Para construir el grafo de Hoffman-Singleton basta basta tomar 5 “estrellas” y 5 “penta-gonos” como los de la figura 2.16 y unir cada vertice i de la “estrella” Ej con el verticei + jk (modulo 5) del “pentagono” Pk.

Figura 2.16: Construccion del grafo de Hoffman-Singleton.

Con este metodo habremos construido un grafo con 50 vertices y 175 ramas. Paracomprobar que efectivamente se trata de un grafo de Moore vamos a recurrir de nuevo alconcepto de matriz de adyacencia.

2.5.2. Matriz de adyacencia del grafo de Hoffman-Singleton

Partiendo de la construccion del grafo de Hoffman-Singleton descrita en el apartadoanterior, construir su matriz de adyacencia resulta muy facil si nos ayudamos de algunaherramienta informatica.

0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 40 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 01 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 02 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 03 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 04 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 10 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 11 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 02 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 03 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 04 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 00 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 01 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 12 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 03 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 04 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 01 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 02 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 04 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 01 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 02 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 03 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 00 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 02 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 03 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 04 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 02 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 03 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 04 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 01 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 02 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 03 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 04 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 00 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 01 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 02 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 03 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 04 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 00 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 11 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 02 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 03 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 14 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0

E1

E2

E3

E4

P2

P3

P4

E0

P0

P1

P4 E0P0 P1 P2 P3 E3 E4E1 E2

Notese que la matriz de adyacencia puede dividirse en 4 submatrices 25 × 25. Esto esdebido al caracter bipartito del grafo de Hoffman-Singleton. En el primer cuadrante tenemos

41

Page 43: Cuadrados Latinos y Grafos de Moore

las “estrellas” P0 a P4, mientras que en el cuarto cuadrante tenemos los “pentagonos” Q0

a Q4. Los cuadrantes segundo y tercero, que por simetrıa son uno el traspuesto del otro,contienen los enlaces entre las “estrellas” Ej y los “pentagonos” Pk segun la formula i+ jk(modulo 5). Notese tambien que hay exactamente 7 unos por fila y por columna, lo quenos indica que el grafo es 7-regular.

Fijemonos ahora en en la matriz de adyacencia de orden 2. Recordemos que esta matrizindica el numero de caminos de longitud 2 que unen dos vertices i e j cualesquiera y quepuede calcularse facilmente elevando al cuadrado la matriz de adyacencia de orden 1.

0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 40 7 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 11 1 7 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 12 0 1 7 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 13 0 0 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 14 1 0 0 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 00 1 1 1 1 1 7 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 01 1 1 1 1 1 1 7 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 12 1 1 1 1 1 0 1 7 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 13 1 1 1 1 1 0 0 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 1 1 1 0 1 14 1 1 1 1 1 1 0 0 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 10 1 1 1 1 1 1 1 1 1 1 7 1 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 0 11 1 1 1 1 1 1 1 1 1 1 1 7 1 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 02 1 1 1 1 1 1 1 1 1 1 0 1 7 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 0 1 0 1 1 1 13 1 1 1 1 1 1 1 1 1 1 0 0 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 0 1 1 14 1 1 1 1 1 1 1 1 1 1 1 0 0 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 0 1 10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 1 1 0 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 7 1 0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 03 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 7 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 1 0 1 1 1 14 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 7 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 1 10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 0 0 1 0 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 0 0 1 0 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 0 1 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 7 1 0 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 0 13 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 7 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 04 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 7 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 10 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 7 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 0 7 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 0 7 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 13 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 0 7 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 14 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 0 1 1 0 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 0 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 7 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 0 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 0 7 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 0 7 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 13 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 7 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 14 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 0 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 7 0 1 1 0 1 1 1 1 1 1 1 1 1 11 1 0 1 1 1 1 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 7 0 1 1 1 1 1 1 1 1 1 1 1 12 1 1 0 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 7 0 1 1 1 1 1 1 1 1 1 1 13 1 1 1 0 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 7 0 1 1 1 1 1 1 1 1 1 14 1 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 7 1 1 1 1 1 1 1 1 1 10 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 0 1 1 0 1 1 1 1 11 1 0 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 7 0 1 1 1 1 1 1 12 1 1 0 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 7 0 1 1 1 1 1 13 1 1 1 0 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 7 0 1 1 1 1 14 1 1 1 1 0 1 0 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 7 1 1 1 1 10 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 0 1 1 01 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 7 0 1 12 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 7 0 13 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 7 04 1 1 1 1 0 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 7

E4

P0

P1

P2

P3

P4

E0

E1

E2

E3

E3 E4P4 E0 E1 E2P0 P1 P2 P3

Si ahora sumamos las matrices de adyacencia de orden 1 y orden 2, obtenemos unamatriz que nos indica el numero de caminos de longitud 1 o 2 que unen dos vertices i e jcualesquiera.

0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 40 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 13 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 14 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 13 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 14 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 13 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 14 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 13 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 14 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 13 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 14 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 13 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 14 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 13 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 14 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 13 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 14 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 13 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 14 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 13 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 14 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7

P0

E3

E4

P1

P2

P3

P4

E0

E1

E2

E3

E4P0 P1 P2 P3 P4 E0 E1 E2

42

Page 44: Cuadrados Latinos y Grafos de Moore

Como podemos observar, ningun elemento de la matriz anterior vale cero. Por lo tanto,podemos asegurar cualesquier pareja de vertices distintos o bien son adyacentes o bien estanunidos por un unico camino de longitud 2. Es decir, el grafo tiene diametro 2. Ademas,como se trata de un grafo regular, tiene que ser un grafo de Moore.

2.5.3. Reformulacion del problema de los grafos de Moore

Vistas las construcciones de los grafos de Petersen y Hoffman-Singleton, ya estamos encondiciones de reformular el problema de encontrar grafos de Moore.

Proposicion 2.31 El objetivo de construir un grafo de Moore de grado ∆ puede versecomo el de encontrar una matriz simetrica A que verifique la siguientes condiciones:

1) La matriz A tiene que ser una matriz binaria n×n, con n = ∆2 + 1 y diagonal nula.

2) La matriz A debe tener exactamente ∆ unos en cada fila y en cada columna.

3) La matriz A debe verificar la siguiente relacion:

A + A2 = (∆ − 1) · I + J (2.18)

Demostracion. Sea A la matriz de adyacencia asociada a un grafo G. Por la primeracondicion, G es un grafo simple de orden n. Por la segunda condicion, G es un grafo ∆-regular. Y por la tercera condicion, G es un grafo de diametro 2. Por lo tanto, G es ungrafo de Moore.

Una condicion necesaria, aunque no suficiente, para encontrar la matriz A es que debeser disjunta con la matriz A2. Dicho de otra forma, si existe un camino de longitud 1 entredos vertices cualesquiera, entonces no puede haber un camino de longitud 2 entre esosmismos vertices. En caso contrario el girth del grafo serıa 3, ya que se habrıan cerradotriangulos, por lo que segun el Corolario 2.21 no podrıa tratarse de un grafo de Moore.

2.6. Construyendo El Gran Grafo de Moore

En las secciones anteriores hemos aprendido como construir los grafos de Moore degrado 3 (grafo de Petersen) y grado 7 (grafo de Hoffman-Singleton) de una forma mas omenos artesanal. Llegados a este punto, podrıamos lanzarnos a construir el grafo de Moorede grado 57, conocido como El Gran Grafo de Moore. Sin embargo, repasemos primero losparametros que caracterizan dicho grafo:

Diametro D 2Grado ∆ 57Girth g 5

Vertices n 3.250Ramas l 92.625

Cuadro 2.3: Parametros del grafo de Moore de grado 57.

43

Page 45: Cuadrados Latinos y Grafos de Moore

Como podemos observar el el Cuadro 2.3, el grafo de Moore de grado 57 tiene mas detres mil vertices y casi cien mil ramas. Es mas, su matriz de adyacencia es una matriz3250× 3250, es decir, tiene mas de diez millones de elementos. He aquı la razon por la queEl Gran Grafo de Moore se conoce popularmente como “el monstruo”.

Visto esto, es evidente que no podemos abordar el problema como lo hemos venidohaciendo hasta ahora. Para empezar, las herramientas informaticas estandares no permitenla manipulacion de matrices de tal tamano, por lo que ha sido necesario desarrollar unaherramienta especıfica que permita trabajar con matrices de adyacencia de una formacomoda y eficiente. Dicha herramienta ha sido bautizada con el nombre del problema: TheBiggest Moore Graph (TBMG). Sin embargo, antes de proceder con la presentacion de laaplicacion, vamos a deducir algunas propiedades algebraicas que debe cumplir toda matrizde adyacencia asociada a un grafo de Moore.

2.6.1. Propiedades algebraicas de la matriz de adyacencia

A continuacion se presenta un analisis de las propiedades algebraicas de las matricesde adyacencia de los grafos de Moore. Dicho analisis consiste en la determinacion de losvalores propios y los vectores propios de las matrices de adyacencia.

Para los grafos de Petersen y Hoffman-Singleton, la caracterizacion algebraica puedehacerse a partir de la propia matriz de adyacencia. Sin embargo, para el caso de El GranGrafo de Moore esto no es posible, ya que no se conoce su matriz. No obstante, existe unprocedimiento que permite determinar los valores y vectores propios sin conocer necesaria-mente la matriz de adyacencia.

Proposicion 2.32 La matriz de adyacencia de un grafo de Moore tiene los mismos valorespropios que la siguiente matriz tridiagonal:

T =

⎛⎜⎝ 0 1 0

∆ 0 10 ∆ − 1 ∆ − 1

⎞⎟⎠ (2.19)

Proposicion 2.33 La multiplicidad de cada valor propio de la matriz de adyacencia delgrafo de Moore puede calcularse mediante la siguiente formula:

m(λi) =n

u(λi) · v(λi)(2.20)

donde u(λi) y v(λi) son, respectivamente, los vectores propios por la izquierda y por laderecha de la matriz T , previamente reducidos para que su primera componente valga 1, yn es la dimension de la matriz de adyacencia, en este caso ∆2 + 1.

Proposicion 2.34 Las componentes del vector v(λi) se pueden escribir en funcion de lascomponentes del vector u(λi) de la siguiente manera:

v0(λi) = u0(λi) = 1 (2.21)

v1(λi) = ∆ u1(λi) (2.22)

v2(λi) = ∆(∆ − 1) u2(λi) (2.23)

La demostracion de las Proposiciones 2.32, 2.33 y 2.34 no es sencilla. De hecho, formaparte de la demostracion del Teorema 2.20, que como ya se dijo esta fuera del alcance deesta tesina, aunque puede consultarse en [2].

44

Page 46: Cuadrados Latinos y Grafos de Moore

Basandonos en las Proposiciones 2.32, 2.33 y 2.34 y haciendo los calculos para los grados3, 7 y 57, obtenemos los resultados que muestra la tabla siguiente:

∆ λi u(λi) v(λi) m(λi)

3 −2 (1,−23, 1

6) (1,−2, 1) 4

3 1 (1, 13,−1

3) (1, 1,−2) 5

3 3 (1, 1, 1) (1, 3, 6) 1

7 −3 (1,−13, 1

21) (1,−3, 2) 21

7 2 (1, 27,− 1

14) (1, 2,−3) 28

7 7 (1, 1, 1) (1, 7, 42) 1

57 −8 (1,− 857

, 1456

) (1,−8, 7) 1520

57 7 (1, 757

,− 1399

) (1, 7,−8) 1729

57 57 (1, 1, 1) (1, 57, 3192) 1

Cuadro 2.4: Valores propios y vectores propios de los grafos de Moore.

Con estos resultados ya sabemos algo sobre la matriz de adyacencia de El Gran Grafode Moore. En la siguiente seccion veremos si es posible obtener alguna informacion mas dedicha matriz mediante la ayuda de la aplicacion TBMG.

2.6.2. Presentacion de la aplicacion TBMG

La finalidad con la que ha sido creada la aplicacion TBMG es la de poder manipular deuna forma agil y visual las matrices de adyacencia asociadas a grafos de Moore. Por estemotivo, TBMG ha sido desarrollada en lenguaje Visual Basic, el cual permite un gradomuy elevado de interaccion con el usuario a costa de un menor rendimiento de calculo encomparacion con otros lenguajes.

Como veremos mas adelante, el problema de capacidad de calculo no es relevante, yaque el problema de El Gran Grafo de Moore no puede ser resuelto, por el momento, me-diante los metodos llamados “de fuerza bruta”. En cambio, resulta mucho mas interesantepoder observar el aspecto de la matriz de adyacencia para deducir las propiedades que lascaracterizan.

Hechas todas estas consideraciones, vamos a presentar el interfaz que nos permite in-teractuar con las matrices de adyacencia. La pantalla principal de TBMG se compone deuna rejilla que representa la matriz de adyacencia y una serie de cajas de herramientas quepermiten realizar diversas tareas programadas. Para una descripcion detallada de las he-rramientas disponibles y su funcionamiento, se recomienda consultar el Manual del Usuariocontenido en la aplicacion.

La matriz de adyacencia que muestra TBMG es en realidad una combinacion de lasmatrices de adyacencia A1 y A2 definida de la forma siguiente: B = A1 + 2A2. De estamanera, los unos identifican los elementos de la matriz A1 y los doses los de la matrizA2. Ademas, para dotar a la aplicacion de un caracter mas visual, se utiliza la siguientesimbologıa:

45

Page 47: Cuadrados Latinos y Grafos de Moore

Celda en blanco: indica las posiciones de la matriz B que se encuentran vacantes,es decir, aquellas posiciones que contienen un 0 y que pueden contener un 1 sin crearconflictos.

Celda en negro: identifica los elementos de la diagonal, de forma que se resaltacaracter simetrico de la matriz B.

Cırculo azul: indica las posiciones de la matriz B que contienen un 1.

Punto verde: indica las posiciones de la matriz B que contienen un 2.

Punto amarillo: indica las posiciones de la matriz B donde no puede haber un 1porque crearıa un conflicto (se cerrarıan ciclos de longitud inferior a 5).

Equis roja: indica las posiciones en la matriz B donde hay un conflicto, es decir,aquellas casillas fuera de la diagonal cuyo valor es superior a 2.

Por ejemplo, echemos un vistazo a la matriz B correspondiente al grafo de Petersen ya su representacion mediante la simbologıa de TBMG:

6 1 1 1 2 2 2 2 2 21 6 2 2 1 1 2 2 2 21 2 6 2 2 2 1 1 2 21 2 2 6 2 2 2 2 1 12 1 2 2 6 2 1 2 1 22 1 2 2 2 6 2 1 2 12 2 1 2 1 2 6 2 2 12 2 1 2 2 1 2 6 1 22 2 2 1 1 2 2 1 6 22 2 2 1 2 1 1 2 2 6

Figura 2.17: Matriz B para el grafo de Petersen y su representacion en TBMG.

Cuando todos los elementos de la matriz de adyacencia son azules o verdes (a excepcionde los de la diagonal), el grafo de Moore esta completo. Si algun elemento de la matrizesta en blanco, significa que todavıa no hay ningun camino de longitud 1 o 2 que una esapareja de vertices. Y si algun elemento contiene una equis roja, significa que esa parejade vertices esta unida por mas de un camino de longitud 1 o 2, por lo que el grafo nopodra completarse al haberse perdido la optimalidad.

Veamos ahora un ejemplo con algunos conflictos, es decir, con algunas equis rojas:

6 1 1 1 2 2 2 2 2 21 6 2 2 1 1 2 2 2 21 2 6 2 2 2 1 1 0 01 2 2 6 4 0 0 0 1 12 1 2 4 8 2 1 0 1 12 1 2 0 2 4 0 1 0 02 2 1 0 1 0 4 2 2 22 2 1 0 0 1 2 4 0 02 2 0 1 1 0 2 0 4 42 2 0 1 1 0 2 0 4 4

Figura 2.18: Matriz de adyacencia del grafo de Petersen con conflictos.

46

Page 48: Cuadrados Latinos y Grafos de Moore

En la Figura 2.18 podemos observar los siguientes conflictos:

Tanto la fila 5 como la columna 5 tienen 4 puntos azules, lo que significa que hay4 ramas que inciden sobre el vertice 5 (es decir, el grado del vertice 5 es 4 cuandodeberıa ser 3). Esto podemos verlo reflejado en la posicion (5,5) de la matriz B, dondehay un 8 en vez de un 6.

Las equis rojas en las posiciones (4,5) y (5,4) nos indican que los vertices 4 y 5 estanunidos por mas de un camino de longitud 2. Estos caminos son el 4-9-5 y el 4-10-5.Este conflicto puede verse reflejado en las mismas posiciones de la matriz B, dondehay un 4 en vez de un 2.

Las equis rojas en las posiciones (9,10) y (10,9) nos indican que entre los vertices 9 y10 tambien hay redundancia de caminos, en este caso el 9-4-10 y el 9-5-10.

Ya podemos ir intuyendo que mediante el interfaz grafico es muy facil identificar losconflictos en la matriz B, y por lo tanto podemos probar muchas combinaciones en muypoco tiempo.

Para mas agilidad, existen dos maneras de introducir los puntos azules en la matriz.Una es directamente con el raton, haciendo doble-click en la posicion deseada. Si la posicionesta vacante, entonces aparece un punto azul, y si hay un punto azul, entonces se libera lacasilla. En ambos casos se actualiza el resto de la matriz con los puntos verdes o amarilloscorrespondientes.

La otra manera de introducir los puntos azules es mediante las herramientas pre-programadas en la aplicacion, las cuales resultan muy utiles a la hora de rellenar grandesmatrices siguiendo alguna clase de patron, como por ejemplo el del grafo soporte o unpatron 5× 5 como el siguiente:

Figura 2.19: Matriz de adyacencia del grafo de Petersen basada en un patron 5× 5.

Ha sido precisamente gracias a la agilidad que proporciona TBMG que se ha podidorealizar una caracterizacion de la matriz de adyacencia de los grafos de Moore, es decir,se han detectado ciertos patrones dentro de la matriz de adyacencia que hacen mas facilabordar el problema de El Gran Grafo de Moore.

47

Page 49: Cuadrados Latinos y Grafos de Moore

2.6.3. Caracterizacion de la matriz de adyacencia

A continuacion se presentan los resultados mas relevantes que se han obtenido a lolargo de esta tesina en lo que se refiere a la caracterizacion de la matrices de adyacenciaasociadas a los grafos de Moore. Como veremos, en dicha caracterizacion aparecen loscuadrados latinos, por lo que podremos aprovechar los resultados obtenidos en el primercapıtulo.

Para empezar, echemos un vistazo de nuevo a la matriz de adyacencia del grafo deHoffman-Singleton que obtuvimos mediante la construccion clasica, esta vez ya medianteel interfaz de TBMG:

Figura 2.20: Matriz de adyacencia del grafo de Hoffman-Singleton.

Como podemos observar en la figura 2.20, el interfaz grafico de TBMG destaca los unosde la matriz de adyacencia, de forma que basta con un vistazo rapido para hacerse unaidea de la estructura de la matriz. En particular, podemos volver a remarcar el caractercuasi-bipartito de la matriz de adyacencia y su estructura basada en submatrices 5× 5.

Recordemos que toda matriz de adyacencia asociada a un grafo de Moore siempre puedeescribirse en forma canonica permutando adecuadamente sus filas y sus columnas. Afor-tunadamente, el algoritmo para realizar este procedimiento esta implementado en TBMG,por lo que al seleccionar la opcion Arrange matrix obtendremos el siguiente resultado:

48

Page 50: Cuadrados Latinos y Grafos de Moore

Figura 2.21: Forma canonica de la matriz de adyacencia del grafo de Hoffman-Singleton.

En la figura 2.21 podemos observar que ha cambiado el patron de la rejilla (las lıneasgruesas) para resaltar el nuevo caracter de la matriz de adyacencia, que ya no esta basadoen submatrices de orden 5 sino de orden 6. Este es el primer resultado importante, queexpresaremos mediante la siguiente observacion.

Observacion 2.35 Al representar en forma canonica la matriz de adyacencia de un grafode Moore de grado ∆, aparece un patron basado en submatrices de orden ∆− 1.

Las ∆ + 1 primeras filas y las ∆ + 1 primeras columnas se corresponden ahora con lasramas del arbol generador del grafo, mientras que las filas y las columnas de la ∆ + 2 ala 2∆ se corresponden con las ramas anadidas durante la construccion del grafo soporte.Las filas y columnas restantes, es decir, de la 2∆ + 1 a la ∆2 + 1, se corresponden con lasramas de los grupos 2 a ∆, y son precisamente las que hay que determinar para completarel grafo de Moore a partir de su grafo soporte.

Por otro lado, si nos fijamos en las submatrices de orden 6 que aparecen en la formacanonica del grafo de Hoffman-Singleton, podremos deducir algunas de sus caracterısticas:

Observacion 2.36 Las submatrices de orden ∆− 1 que aparecen en la forma canonica lamatriz de adyacencia de un grafo de Moore de grado ∆ son matrices de permutacion.

49

Page 51: Cuadrados Latinos y Grafos de Moore

La explicacion de este hecho yace en que cada submatriz de orden ∆− 1 representa losenlaces entre dos grupos del tercer nivel del grafo soporte. Como ya se dijo en su momento,dos ramas de un vertice no pueden ir a un mismo grupo, lo que se traduce en que cadasubmatriz solo puede contener un punto azul por fila y por columna.

Conjetura 2.37 Las submatrices de orden ∆ − 1 que aparecen en la forma canonica lamatriz de adyacencia de un grafo de Moore de grado ∆ son matrices simetricas.

Esta propiedad se verifica para las submatrices de orden 2 del grafo de Petersen ypara las submatrices de orden 6 del grafo de Hoffman-Singleton, aunque no ha sido posibledemostrarlo para el caso de El Gran Grafo de Moore. No obstante, dado el caracter simetricode la matriz de adyacencia, todo indica que las submatrices deben ser tambien simetricas.

Fijemonos ahora en las submatrices de la franja seleccionada:

0

1

2

3

4

5

6

0 1 2 3 4 5 6

Figura 2.22: Submatrices 6× 6 en la forma canonica del grafo de Hoffman-Singleton.

Notese que hemos indexado las submatrices para poder trabajar con ellas de formaalgebraica. Ahora podemos representar la figura anterior mediante la siguiente notacion.

50

Page 52: Cuadrados Latinos y Grafos de Moore

Definicion 2.38 Dada la forma canonica de la matriz de adyacencia asociada a un grafode Moore, indicaremos mediante los ındices i y j la posicion de la submatriz Pij dentro dela matriz original:

P00 P01 . . . P06

P10 P11 . . . P16...

.... . .

...P60 P61 . . . P66

Notese que las submatrices Pii de la diagonal son matrices nulas, mientras que lassubmatrices fuera de la diagonal son las matrices de permutacion propiamente dichas. Porejemplo, la submatriz P34 se corresponde con la siguiente matriz de permutacion:

P34 =

0 0 0 0 1 00 0 0 0 0 10 0 0 1 0 00 0 1 0 0 01 0 0 0 0 00 1 0 0 0 0

Consideremos ahora las submatrices que estan en una misma fila o en una mismacolumna. Si nos fijamos en la posicion de los puntos azules dentro de cada submatriz,enseguida veremos que dichos puntos azules ocupan posiciones distintas en submatricesdistintas. Es mas, si superponemos las matrices de una misma fila o columna, los puntosazules recubren toda la matriz resultante, como muestra la Figura 2.23:

=⇒

Figura 2.23: Matrices de permutacion correspondientes a la primera fila.

Observacion 2.39 Las submatrices de una misma fila o columna forman una particionde la matriz J .

Esta propiedad deberıa recordarnos a la Proposicion 1.5 del primer capıtulo, que diceque una particion de la matriz J en matrices de permutacion puede escribirse como uncuadrado latino. Por ejemplo, si a los puntos azules de cada submatriz les asignamos unvalor en funcion de la posicion que ocupa el primero de ellos, obtenemos lo siguiente:

1 0 0 0 0 00 1 0 0 0 00 0 1 0 0 00 0 0 1 0 00 0 0 0 1 00 0 0 0 0 1

0 0 0 0 0 60 0 0 0 6 00 0 0 6 0 00 0 6 0 0 00 6 0 0 0 06 0 0 0 0 0

0 0 0 4 0 00 0 4 0 0 00 4 0 0 0 04 0 0 0 0 00 0 0 0 0 40 0 0 0 4 0

0 2 0 0 0 02 0 0 0 0 00 0 0 0 2 00 0 0 0 0 20 0 2 0 0 00 0 0 2 0 0

0 0 0 0 5 00 0 0 5 0 00 0 0 0 0 50 5 0 0 0 05 0 0 0 0 00 0 5 0 0 0

0 0 3 0 0 00 0 0 0 0 33 0 0 0 0 00 0 0 0 3 00 0 0 3 0 00 3 0 0 0 0

Figura 2.24: Matrices asociadas a cada matriz de permutacion de la primera fila.

51

Page 53: Cuadrados Latinos y Grafos de Moore

Si ahora superponemos estas submatrices, el resultado es un cuadrado latino:

⇐⇒

1 2 3 4 5 62 1 4 5 6 33 4 1 6 2 54 5 6 1 3 25 6 2 3 1 46 3 5 2 4 1

Figura 2.25: Cuadrado latino asociado a la primera fila de submatrices.

Observacion 2.40 La particion que forman las submatrices de orden ∆−1 de un grafo deMoore de grado ∆ pueden verse como un cuadrado latino obtenido de la siguiente forma:

Lj =∆−1∑

i=1

ωi · Pij =∆−1∑

i=1

ωi · Pji (2.24)

donde ωi representa el ındice de columna del punto azul de la primera fila de la matriz Pij.

Visto este resultado, ahora podemos escribir cada fila y cada columna de submatricesa traves de un cuadrado latino.

1 2 3 4 5 62 1 4 5 6 33 4 1 6 2 54 5 6 1 3 25 6 2 3 1 46 3 5 2 4 1

1 2 3 4 5 62 1 5 3 6 43 5 1 6 4 24 3 6 1 2 55 6 4 2 1 36 4 2 5 3 1

1 2 3 4 5 62 1 4 6 3 53 4 1 5 6 24 6 5 1 2 35 3 6 2 1 46 5 2 3 4 1

1 2 3 4 5 62 1 6 3 4 53 6 1 5 2 44 3 5 1 6 25 4 2 6 1 36 5 4 2 3 1

1 2 3 4 5 62 1 6 5 3 43 6 1 2 4 54 5 2 1 6 35 3 4 6 1 26 4 5 3 2 1

1 2 3 4 5 62 1 5 6 4 33 5 1 2 6 44 6 2 1 3 55 4 6 3 1 26 3 4 5 2 1

1 2 3 4 5 62 1 4 5 6 33 4 1 6 2 54 5 6 1 3 25 6 2 3 1 46 3 5 2 4 1

1 2 3 4 5 62 1 5 3 6 43 5 1 6 4 24 3 6 1 2 55 6 4 2 1 36 4 2 5 3 1

1 2 3 4 5 62 1 4 6 3 53 4 1 5 6 24 6 5 1 2 35 3 6 2 1 46 5 2 3 4 1

1 2 3 4 5 62 1 6 3 4 53 6 1 5 2 44 3 5 1 6 25 4 2 6 1 36 5 4 2 3 1

1 2 3 4 5 62 1 6 5 3 43 6 1 2 4 54 5 2 1 6 35 3 4 6 1 26 4 5 3 2 1

1 2 3 4 5 62 1 5 6 4 33 5 1 2 6 44 6 2 1 3 55 4 6 3 1 26 3 4 5 2 1

Figura 2.26: Cuadrados latinos asociados a la matriz de adyacencia.

52

Page 54: Cuadrados Latinos y Grafos de Moore

Ademas, dado que las submatrices son simetricas, los cuadrados latinos seran los mismostanto por fila como por columna. Pero no solo eso, porque los cuadrados latinos obtenidosverifican la siguiente propiedad:

Observacion 2.41 Los ∆− 1 cuadrados latinos obtenidos son mutuamente r-ortogonalescon el siguiente grado de ortogonalidad:

r = ∆ − 1 +(∆ − 3)2

2(2.25)

Por ejemplo, si tomamos los dos primeros cuadrados latinos del grafo de Hoffman-Singleton, vemos que tienen en comun la matriz de permutacion del 1 y del 6, por lo queal superponerlos habra las siguientes parejas distintas:

L1 ⊕ L2 =

⎡⎢⎢⎢⎢⎢⎢⎢⎢⎣

11 22 33 44 55 6622 11 45 53 66 3433 45 11 66 24 5244 53 66 11 32 2555 66 24 32 11 4366 34 52 25 43 11

⎤⎥⎥⎥⎥⎥⎥⎥⎥⎦

De forma similar a la definicion de la matriz Pij, podemos definir la matriz Qij comoaquella matriz cuyos unos representan los puntos verdes. Por ejemplo,

Q34 =

⎡⎢⎢⎢⎢⎢⎢⎢⎣

1 1 1 1 0 11 1 1 1 1 01 1 1 0 1 11 1 0 1 1 10 1 1 1 1 11 0 1 1 1 1

⎤⎥⎥⎥⎥⎥⎥⎥⎦

Evidentemente, se verifica que Pij +Qij = J , ∀ i, j. Con esta definicion de la matriz Qij

podemos expresar la siguiente observacion:

Observacion 2.42 Las matrices Qij pueden determinarse de la forma siguiente:

Qij =∆−1∑k=0

Pik · Pkj ∀ i, j > 0, i = j (2.26)

Por ejemplo, consideremos la matriz Q34 y veamos que es posible calcularla de la manerasiguiente:

P30 · P04 =

⎡⎢⎢⎢⎣

1 0 0 0 0 00 1 0 0 0 00 0 1 0 0 00 0 0 1 0 00 0 0 0 1 00 0 0 0 0 1

⎤⎥⎥⎥⎦×

⎡⎢⎢⎢⎣

1 0 0 0 0 00 1 0 0 0 00 0 1 0 0 00 0 0 1 0 00 0 0 0 1 00 0 0 0 0 1

⎤⎥⎥⎥⎦ =

⎡⎢⎢⎢⎣

1 0 0 0 0 00 1 0 0 0 00 0 1 0 0 00 0 0 1 0 00 0 0 0 1 00 0 0 0 0 1

⎤⎥⎥⎥⎦

P31 · P14 =

⎡⎢⎢⎢⎣

0 0 0 1 0 00 0 1 0 0 00 1 0 0 0 01 0 0 0 0 00 0 0 0 0 10 0 0 0 1 0

⎤⎥⎥⎥⎦×

⎡⎢⎢⎢⎣

0 1 0 0 0 01 0 0 0 0 00 0 0 0 1 00 0 0 0 0 10 0 1 0 0 00 0 0 1 0 0

⎤⎥⎥⎥⎦ =

⎡⎢⎢⎢⎣

0 0 0 0 0 10 0 0 0 1 01 0 0 0 0 00 1 0 0 0 00 0 0 1 0 00 0 1 0 0 0

⎤⎥⎥⎥⎦

53

Page 55: Cuadrados Latinos y Grafos de Moore

P32 · P24 =

⎡⎢⎢⎢⎣

0 1 0 0 0 01 0 0 0 0 00 0 0 0 0 10 0 0 0 1 00 0 0 1 0 00 0 1 0 0 0

⎤⎥⎥⎥⎦×

⎡⎢⎢⎢⎣

0 0 1 0 0 00 0 0 1 0 01 0 0 0 0 00 1 0 0 0 00 0 0 0 0 10 0 0 0 1 0

⎤⎥⎥⎥⎦ =

⎡⎢⎢⎢⎣

0 0 0 1 0 00 0 1 0 0 00 0 0 0 1 00 0 0 0 0 10 1 0 0 0 01 0 0 0 0 0

⎤⎥⎥⎥⎦

P33 · P34 =

⎡⎢⎢⎢⎣

0 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 0

⎤⎥⎥⎥⎦×

⎡⎢⎢⎢⎣

0 0 0 0 1 00 0 0 0 0 10 0 0 1 0 00 0 1 0 0 01 0 0 0 0 00 1 0 0 0 0

⎤⎥⎥⎥⎦ =

⎡⎢⎢⎢⎣

0 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 0

⎤⎥⎥⎥⎦

P34 · P44 =

⎡⎢⎢⎢⎣

0 0 0 0 1 00 0 0 0 0 10 0 0 1 0 00 0 1 0 0 01 0 0 0 0 00 1 0 0 0 0

⎤⎥⎥⎥⎦×

⎡⎢⎢⎢⎣

0 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 0

⎤⎥⎥⎥⎦ =

⎡⎢⎢⎢⎣

0 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 0

⎤⎥⎥⎥⎦

P35 · P54 =

⎡⎢⎢⎢⎣

0 0 1 0 0 00 0 0 0 1 01 0 0 0 0 00 0 0 0 0 10 1 0 0 0 00 0 0 1 0 0

⎤⎥⎥⎥⎦×

⎡⎢⎢⎢⎣

0 0 0 0 0 10 0 1 0 0 00 1 0 0 0 00 0 0 0 1 00 0 0 1 0 01 0 0 0 0 0

⎤⎥⎥⎥⎦ =

⎡⎢⎢⎢⎣

0 1 0 0 0 00 0 0 1 0 00 0 0 0 0 11 0 0 0 0 00 0 1 0 0 00 0 0 0 1 0

⎤⎥⎥⎥⎦

P36 · P64 =

⎡⎢⎢⎢⎣

0 0 0 0 0 10 0 0 1 0 00 0 0 0 1 00 1 0 0 0 00 0 1 0 0 01 0 0 0 0 0

⎤⎥⎥⎥⎦×

⎡⎢⎢⎢⎣

0 0 0 1 0 00 0 0 0 1 00 0 0 0 0 11 0 0 0 0 00 1 0 0 0 00 0 1 0 0 0

⎤⎥⎥⎥⎦ =

⎡⎢⎢⎢⎣

0 0 1 0 0 01 0 0 0 0 00 1 0 0 0 00 0 0 0 1 00 0 0 0 0 10 0 0 1 0 0

⎤⎥⎥⎥⎦

Q34 =6∑

k=1

P3k · Pk4 =

⎡⎢⎢⎢⎣

1 1 1 1 0 11 1 1 1 1 01 1 1 0 1 11 1 0 1 1 10 1 1 1 1 11 0 1 1 1 1

⎤⎥⎥⎥⎦

La Observacion 2.42 es importante por dos razones:

1) Permite determinar que puntos verdes aparecen al colocar nuevos puntos azules.

2) Permite restringir la busqueda de una matriz Pij a aquellas que sean compatibles conuna matriz Qij dada.

Conjetura 2.43 Los cuadrados latinos que aparecen en la forma canonica de la matriz deadyacencia de los grafos de Moore son equivalentes entre ellos, y la relacion que rige dichaequivalencia es la siguiente:

Li ∼ Pij · Lj · Pj i ∀ i, j (2.27)

Por ejemplo, podemos escribir el cuadrado latino L′2 en funcion de L5:

L′2 = P25 · L5 · P52 =

⎡⎢⎢⎢⎣

0 0 0 1 0 00 0 0 0 0 10 0 0 0 1 01 0 0 0 0 00 0 1 0 0 00 1 0 0 0 0

⎤⎥⎥⎥⎦ ·⎡⎢⎢⎢⎣

1 2 3 4 5 62 1 6 5 3 43 6 1 2 4 54 5 2 1 6 35 3 4 6 1 26 4 5 3 2 1

⎤⎥⎥⎥⎦ ·⎡⎢⎢⎢⎣

0 0 0 1 0 00 0 0 0 0 10 0 0 0 1 01 0 0 0 0 00 0 1 0 0 00 1 0 0 0 0

⎤⎥⎥⎥⎦ =

⎡⎢⎢⎢⎣

1 3 6 4 2 53 1 2 6 5 46 2 1 5 4 34 6 5 1 3 22 5 4 3 1 65 4 3 2 6 1

⎤⎥⎥⎥⎦

El cuadrado latino L′2 no esta normalizado. Si lo normalizamos, entonces obtenemos el

cuadrado latino L2, que es el que se corresponde con la definicion que hemos dado.

L′2 =

⎡⎢⎢⎢⎣

1 3 6 4 2 53 1 2 6 5 46 2 1 5 4 34 6 5 1 3 22 5 4 3 1 65 4 3 2 6 1

⎤⎥⎥⎥⎦ ∼

⎡⎢⎢⎢⎣

1 2 3 4 5 62 1 5 3 6 43 5 1 6 4 24 3 6 1 2 55 6 4 2 1 36 4 2 5 3 1

⎤⎥⎥⎥⎦ = L2

54

Page 56: Cuadrados Latinos y Grafos de Moore

Si se verifica la conjetura 2.43, entonces los ∆− 1 cuadrados latinos que aparecen en lamatriz de adyacencia de un grafo de Moore estan determinados a partir de uno de ellos.Por consiguiente, un algoritmo para buscar dichos cuadrados latinos podrıa ser el siguiente:

Se genera un cuadrado latino simetrico de orden ∆ − 1.

Se determinan los ∆ − 2 cuadrados latinos restantes segun la Conjetura 2.43.

Se colocan los cuadrados latinos dentro de la forma canonica de la matriz de adya-cencia. Si no aparecen conflictos, entonces se ha completado El Gran Grafo de Moore.En caso contrario, se prueba con otro cuadrado latino.

Evidentemente, el numero de cuadrados latinos simetricos de orden 56 es muy grande,del orden de 101508. Por lo tanto, probarlos todos sigue siendo inasumible. No obstante,si consideramos el tamano que tenıa inicialmente el problema de encontrar El Gran Grafode Moore y lo comparamos con el tamano que tendrıa si la Conjetura 2.43 fuese cierta,entonces la mejora obtenida es considerable. Un analisis como este es el que se presenta enla siguiente seccion.

2.6.4. Analisis del tamano del problema

Para hacernos una idea de la mejora que conlleva trabajar con cuadrados latinos ala hora de construir El Gran Grafo de Moore, echemos un vistazo al tamano inicial delproblema y a las sucesivas mejoras que se han ido proponiendo. Para ello, supongamos quequeremos encontrar El Gran Grafo de Moore mediante fuerza bruta, es decir, probandotodas las posibilidades. Podemos plantearnos las siguientes estrategias:

Si consideramos que la matriz de adyacencia debe ser una matriz binaria de orden3250, entonces tenemos las siguientes posibilidades:

232502 103179629

Si ademas imponemos que la matriz de adyacencia debe ser simetrica, podemos re-ducir las posibilidades a la mitad:

232502/2 101589814

Si consideramos que en cada fila solo puede haber 57 unos, entonces tenemos losiguiente: (

325057

)3250

10400904

Imponemos de nuevo la condicion de simetrıa, obtenemos la mitad de posibilidades:

(325057

)3250/2

10200452

Si consideramos la matriz de adyacencia en su forma canonica, entonces podemoseliminar las primeras 114 filas, por lo que solo habra que colocar 55 unos por fila alo largo de las 3136 filas restantes:

(313655

)3250/2

10186577

55

Page 57: Cuadrados Latinos y Grafos de Moore

Si consideramos que cada submatriz 56× 56 es una matriz de permutacion y que hay1540 de ellas, entonces:

(56!)1540 10115272

Si consideramos que cada fila de submatrices es un cuadrado latino simetrico de orden56, entonces:

NS(56)56 = (101508)56 1084448

Finalmente, si consideramos que la Conjetura 2.43 es cierta, entonces el numero deposibilidades que hay que probar es el siguiente:

NS(56) 101508

Para determinar el avance en la resolucion del problema que ha significado la realizacionde esta tesina, hay que considerar la mejora obtenida a partir de la utilizacion de la formacanonica de la matriz de adyacencia. Es decir, se ha reducido el problema de 10200452 casosposibles a 101508. Esta mejora es, sin ninguna duda, muy significativa.

No obstante, probar los 101508 casos sigue siendo inimaginable mediante los ordenado-res actuales. Por lo tanto, sera necesario encontrar mas propiedades sobre la matriz deadyacencia de los grafos de Moore antes de poder resolver el problema.

2.6.5. Porcentajes de completitud

Una manera de cuantificar lo cerca o lejos que estamos de obtener un grafo de Mooreconsiste en calcular el porcentaje de completitud, es decir, la relacion entre el numero deramas colocadas y la cota de Moore.

Se han realizado algunos ensayos para determinar los porcentajes de completitud quese obtienen al rellenar la matriz de adyacencia del grafo de Moore mediante varios patronesregulares. Estos son los resultados obtenidos:

Patron de relleno Ramas CompletitudRow Sweep 48.577 52,44 %Column Sweep 48.577 52,44 %Diagonal Sweep 50.973 55,03 %Canonic Form + Row Sweep 48.577 52,44 %Canonic Form + Column Sweep 48.577 52,44 %Canonic Form + Diagonal Sweep 48.830 52,72 %Petersen Pattern + Row Sweep 47.259 51,02 %Petersen Pattern + Column Sweep 48.120 51,95 %Petersen Pattern + Diagonal Sweep 50.952 55,01 %Hoffman-Singleton Pattern + Row Sweep 47.395 51,17 %Hoffman-Singleton Pattern + Column Sweep 48.984 52,88 %Hoffman-Singleton Pattern + Diagonal Sweep 50.737 54,78 %

Cuadro 2.5: Porcentajes de completitud obtenidos.

Como puede observarse, todos los patrones ensayados dan un porcentaje de comple-titud similar, alrededor del 50 % del grafo. Sin embargo, podemos intentar mejorar estosresultados de la siguiente manera.

56

Page 58: Cuadrados Latinos y Grafos de Moore

Al rellenar la matriz de adyacencia mediante un patron determinado, se prueban todaslas casillas de la matriz y se colocan unos en aquellas que lo permiten. Evidentemente,algunos de esos unos estaran en una posicion “correcta” (es decir, no crearan conflictos) yotros no.

Una manera un poco mas “inteligente” de colocar los unos consiste en lo siguiente:antes de colocar un 1, existe un cierto numero de casillas vacantes, es decir, casillas enlas que es posible colocar ese 1. Despues de colocar el 1, el numero de casillas vacantes esforzosamente menor, aunque la reduccion en el numero de casillas vacantes depende de laposicion en la que se ha colocado el 1. Si se ha escogido una posicion “buena”, la reducciondel numero de vacantes es menor que si se ha escogido una posicion “mala”.

Por lo tanto, antes de colocar un 1, podemos probar de colocarlo en todas las posicionesposibles y calcular las vacantes restantes en cada uno de los casos. Luego colocaremosdefinitivamente ese uno en una de las posiciones que ofrezca una reduccion de las vacantesmenor.

El problema inherente en este metodo es que para colocar un 1 hay que comprobarprimero todas las casillas posibles, lo cual supone una carga de calculo muy grande. Ademas,suele pasar que para colocar un mismo 1 hay multiples posiciones que ofrecen la mınimareduccion en el numero de vacantes, por lo que es necesario introducir un cierto factor dealeatoriedad en el algoritmo.

57

Page 59: Cuadrados Latinos y Grafos de Moore

Capıtulo 3

Algoritmos

3.1. Generacion de Cuadrados Latinos

En esta seccion se describen los algoritmos utilizados para la generacion de cuadradoslatinos mediante un ordenador.

Debido a que el numero de cuadrados latinos crece muy rapidamente con el orden, seha realizado un gran esfuerzo en optimizar el codigo. Por esta razon, los algoritmos de estaseccion estan escritos en lenguaje C++.

3.1.1. SLSG: Symmetric Latin Square Generator

SLSG permite generar todos los cuadrados latinos simetricos normalizados de un ordendado. Este programa se ha utilizado para determinar los valores LS(n) del primer capıtulo.

A continuacion se describe el funcionamiento del programa SLSG.

Cabecera

#include <fstream.h>#include <time.h>#define Order 8

unsigned char FreeCell[Order][Order+1];unsigned char LatinSquare[Order][Order];long TotalSquares, Start;

void Initialize();bool UpdateSquare(int r, int c);void CompleteSquare(int r, int c);

La cabecera del programa contiene, por este orden, las instrucciones para cargar laslibrerıas externas fstream.h y time.h, la declaracion de las variables globales FreeCell,LatinSquare, TotalSquares, y Start y la definicion de los procedimientos Initialize,UpdateSquare y CompleteSquare usados por el cuerpo principal del programa.

58

Page 60: Cuadrados Latinos y Grafos de Moore

main()

void main() Initialize(); CompleteSquare(0,0);

do TotalSquares++; CompleteSquare(Order-1,Order-1); while (LatinSquare[0][Order-1]==Order);

cout << "Total squares of order " << Order << ": " << TotalSquares << endl; cout << "Computed in " << difftime(time(NULL),Start) << " seconds." << endl;

El procedimiento main() contiene el cuerpo principal del programa. Dicho cuerpo secompone de las siguientes ordenes:

Llamada a Initialize().

Llamada a CompleteSquare(0,0).

Inicio del bucle

• Incremento del contador TotalSquares.

• Llamada a CompleteSquare(n-1,n-1).

Fin del bucle cuando se obtiene el primer cuadrado latino no normalizado.

Initialize()

void Initialize() TotalSquares=0; for (int i=0; i<Order; i++) for (int j=0; j<Order; j++) FreeCell[i][j]=0; LatinSquare[i][j]=0; FreeCell[i][Order]=0; Start=time(NULL);

El procedimiento Initialize() se encarga de inicializar las variables globales a cero.Dichas variables son las siguientes:

TotalSquares es un contador que almacena el numero de cuadrados latinos que sehan generado hasta el momento.

LatinSquare[i][j] es una matriz n × n que almacena la informacion del cuadradolatino. Cada posicion (i, j) contiene un valor entre 0 y n. El valor 0 indica que laposicion (i, j) esta vacıa, mientras cualquier otro valor indica que la posicion (i, j)esta ocupada por el valor en cuestion.

FreeCell[i][j] es una matriz binaria n× (n+1) que permite hacer un seguimientode los elementos del cuadrado latino que estan presentes en cada fila y columna. Laposicion (i, j) contiene un 1 si la fila o la columna i del cuadrado latino contiene elvalor j, y un 0 en caso contrario.

Start almacena el valor del cronometro del ordenador para determinar el tiempo deejecucion del programa.

59

Page 61: Cuadrados Latinos y Grafos de Moore

UpdateSquare(r,c)

bool UpdateSquare(int r, int c) FreeCell[r][LatinSquare[r][c]]=FreeCell[c][LatinSquare[r][c]]=0; for (int i=LatinSquare[r][c]+1; i<Order+1; i++) if (FreeCell[r][i]+FreeCell[c][i]==0) LatinSquare[r][c]=LatinSquare[c][r]=i; FreeCell[r][i]=FreeCell[c][i]=1; return true; LatinSquare[r][c]=LatinSquare[c][r]=0; return false;

La funcion UpdateSquare(r,c) comprueba si es posible sustituir el valor x de la posicion(r, c) por un valor y entre x + 1 y n. Si es posible, hace la sustitucion y devuelve el valortrue. En caso contrario, libera la posicion (r, c) y devuelve el valor false.

CompleteSquare(r,c)

void CompleteSquare(int r, int c) while (r<Order) if (UpdateSquare(r,c)==true) if (c==Order-1) r++; c=r; else c++; else if (c==r) r--; c=Order-1; else c--;

El procedimiento CompleteSquare(r,c) completa el cuadrado latino a partir de laposicion (r, c) mediante llamadas sucesivas al procedimiento UpdateSquare(r,c). Esteprocedimiento presenta una doble funcion:

Si el cuadrado latino esta vacıo, CompleteSquare(0,0) devuelve el primer cuadradolatino simetrico de orden n.

Si el cuadrado latino esta completo, CompleteSquare(n-1,n-1) devuelve el siguientecuadrado latino simetrico de orden n.

3.1.2. PLSC: Partial Latin Square Completer

PLSC permite encontrar el primer cuadrado latino que verifica una serie de condiciones.Una utilidad inmediata de PLSC es la de completar cuadrados latinos, es decir, fijadosalgunos elementos un cuadrado latino el programa determina el resto.

A continuacion se describe el funcionamiento del programa PLSC.

60

Page 62: Cuadrados Latinos y Grafos de Moore

Cabecera

// PLSC: Partial Latin Square Completer// ====================================// Finds the first ocurrence that completes// a partially filled latin square.

#include <fstream.h>#include <time.h>#define Order 8

int LatinSquare[Order][Order][Order];long Start;

void Initialize();bool FillSquare(int s);bool NextSquare(int r, int c, int s);void UpdateSquare(int r, int c, int s);void ShowSquare(int s);

La cabecera del programa contiene, por este orden, las instrucciones para cargar las li-brerıas externas fstream.h y time.h, la declaracion de las variables globales LatinSquarey Start, y la definicion de los procedimientos Initialize, FillSquare, NextSquare,UpdateSquare y ShowSquare usados por el cuerpo principal del programa.

main()

void main () Initialize(); for (int i=1; i<Order; i++) if (!FillSquare(i)) cout << "Fail!" << endl; break; cout << "Step " << i << endl; ShowSquare(i); cout << "Done in " << difftime(time(NULL),Start) << " seconds." << endl;

El procedimiento main() contiene el cuerpo principal del programa. Dicho cuerpo secompone de las siguientes ordenes:

Llamada a Initialize().

Inicio del bucle

• Si la llamada al procedimiento FillSquare(i) fracasa, significa que no es posiblecompletar el cuadrado latino, por lo que se detiene la ejecucion del programa.

• Llamada a ShowSquare(i).

Fin del bucle cuando se completa el cuadrado latino.

61

Page 63: Cuadrados Latinos y Grafos de Moore

Initialize()

void Initialize() for (int i=0; i<Order; i++) for (int j=0; j<Order; j++) for (int k=0; k<Order; k++) LatinSquare[i][j][k]=0; for (int i=0; i<Order; i++) UpdateSquare(i,i,0); Start=time(NULL);

El procedimiento Initialize() se encarga de inicializar las variables globales. Dichasvariables son las siguientes:

LatinSquare[i][j][k] es una tensor n × n × n que almacena la informacion delcuadrado latino. Cada posicion (i, j, k) contiene un valor 0 o 1 dependiendo si laposicion (i, j) del cuadrado latino contiene el sımbolo k o no.

Start almacena el valor del cronometro del ordenador para determinar el tiempo deejecucion del programa.

FillSquare()

bool FillSquare(int s) int i=0, r=0; while (r<Order) if (NextSquare(r,i,s)) i=0; r++; else if (r>0) r--; for (i=0; i<Order; i++) if (LatinSquare[r][i][s]==1) break; else if (s>1) s--; r=Order-1; for (i=0; i<Order; i++) if (LatinSquare[r][i][s]==1) break; else return false; return true;

El procedimiento FillSquare() se encarga de rellenar el cuadrado latino con el sımbolos. Para ello, se recorren todas las filas intentando colocar el sımbolo s en alguna de suscolumnas. Cuando no es posible colocar el sımbolo en una fila, se realiza un backtracking yse sigue probando. Si se agotan todas las posibilidades, entonces no es posible completar elcuadrado latino y se duevuelve el valor false. Si el procedimiento se completa con exito,entonces se devuelve el valor true.

62

Page 64: Cuadrados Latinos y Grafos de Moore

NextSquare()

bool NextSquare(int r, int c, int s) if (LatinSquare[r][c][s]==1) UpdateSquare(r,c,s); if (c<Order) c++; else return false; for (int i=c; i<Order; i++) if (LatinSquare[r][i][s]==0) UpdateSquare(r,i,s); return true; return false;

El procedimiento NextSquare() comprueba si es posible reubicar el 1 en la posicion(r, c, s) en otra posicion (r, y, s) con c < y ≤ n. Si es posible, se realiza la sustitucion y sedevuelve el valor true. En caso contrario, se devuelve el valor false.

UpdateSquare()

void UpdateSquare(int r, int c, int s) if (LatinSquare[r][c][s]==0) for (int i=0; i<Order; i++) LatinSquare[i][c][s]=LatinSquare[i][c][s]+2; LatinSquare[r][i][s]=LatinSquare[r][i][s]+2; LatinSquare[r][c][i]=LatinSquare[r][c][i]+2; LatinSquare[r][c][s]=1; else for (int i=0; i<Order; i++) LatinSquare[i][c][s]=LatinSquare[i][c][s]-2; LatinSquare[r][i][s]=LatinSquare[r][i][s]-2; LatinSquare[r][c][i]=LatinSquare[r][c][i]-2; LatinSquare[r][c][s]=0;

El procedimiento UpdateSquare() se encarga de actualizar la posicion (r, c, s) del cua-drado latino. Si en esa posicion hay un 0, entonces se coloca un 1, y si hay un 1, entoncesse coloca un 0. En ambos casos se actualiza el resto de celdas para reflejar dicho cambio.

3.1.3. RLSG: Random Latin Square Generator

RLSG permite generar aleatoriamente cuadrados latinos de un orden dado. Los cuadra-dos latinos obtenidos mediante RLSG tiene una distribucion uniforme en el espacio de loscuadrados latinos de mismo orden.

El algoritmo que se describe a continuacion es una adaptacion del metodo propuestopor Jacobson y Matthews en [6] para generar cuadrados latinos aleatorios y uniformementedistribuidos.

63

Page 65: Cuadrados Latinos y Grafos de Moore

Cabecera

// RLSG: Random Latin Square Generator// ===================================// Generates a random latin square which distribution is// uniform over the space of latin squares of a given order.

#include <fstream.h>#include <stdlib.h>#define Order 56

unsigned char LatinSquare[Order][Order];

void Initialize();void MutateSquare1(int r, int c, int s);void MutateSquare2(int r, int c, int s, int p);void ShowSquare();

La cabecera del programa contiene, por este orden, las instrucciones para cargar las li-brerıas externas fstream.h y stdlib.h, la declaracion de la variable global LatinSquare, yla definicion de los procedimientos Initialize, MutateSquare1, MutateSquare1 y ShowSquare

usados por el cuerpo principal del programa.

main()

void main () Initialize(); for (int i=0; i<Order*Order; i++) MutateSquare1(rand()%Order,rand()%Order,rand()%Order+1); ShowSquare();

El procedimiento main() contiene el cuerpo principal del programa. Dicho cuerpo secompone de las siguientes ordenes:

Llamada a Initialize().

Inicio del bucle

• Llamada a MutateSquare1(r,c,s).

Fin del bucle cuando se alcanza la i-essima iteracion.

Llamada a ShowSquare().

Initialize()

void Initialize() srand(time(NULL)); for (int i=0; i<Order; i++) for (int j=0; j<Order; j++) LatinSquare[i][j]=(Order-i+j)%Order+1;

El procedimiento Initialize() se encarga de inicializar el generador de numeros alea-torios y rellenar el primer cuadrado latino.

64

Page 66: Cuadrados Latinos y Grafos de Moore

MutateSquare1(r,c,s)

void MutateSquare1(int r, int c, int s) int r1,c1; for (int i=0; i<Order; i++) if (LatinSquare[r][i]==s) c1=i; if (LatinSquare[i][c]==s) r1=i;

int s1=LatinSquare[r][c]; LatinSquare[r][c]=s; LatinSquare[r][c1]=LatinSquare[r1][c]=s1;

if (LatinSquare[r1][c1]==s1) LatinSquare[r1][c1]=s; else MutateSquare2(r1,c1,s,s1);

El procedimiento MutateSquare1(r,c,s) contiene la primera parte del codigo paraaplicar un pequeno cambio al cuadrado latino en memoria. Partiendo de un cuadradolatino propio, la llamada al procedimiento MutateSquare1(r,c,s) sustituye el elementoen la posicion (r,c) por el sımbolo s. Si el elemento en la posicion (r,c) es distinto des, entonces el cuadrado latino resultante es un cuadrado latino impropio y es necesariauna llamada al procedimiento MutateSquare2(r,c,s,p) para obtener un cuadrado latinopropio de nuevo.

MutateSquare2(r,c,s,p)

void MutateSquare2(int r, int c, int s, int p) int r1,c1; for (int i=0; i<Order; i++) if (LatinSquare[r][i]==p) c1=i; if (LatinSquare[i][c]==p) r1=i;

int r2=r1; int c2=c1; for (int i=0; i<Order; i++) if (LatinSquare[r][i]==p && i!=c1) c2=i; if (LatinSquare[i][c]==p && i!=r1) r2=i;

if (rand()%2==0) r1=r2; if (rand()%2==0) c1=c2; int s1=LatinSquare[r][c];

if (LatinSquare[r1][c1]==s) LatinSquare[r][c1]=LatinSquare[r1][c]=s; LatinSquare[r1][c1]=p; else if (LatinSquare[r1][c1]==s1) LatinSquare[r][c1]=LatinSquare[r1][c]=s1; LatinSquare[r][c]=s; LatinSquare[r1][c1]=p; else s1=LatinSquare[r1][c1]; LatinSquare[r1][c1]=p; LatinSquare[r][c1]=LatinSquare[r1][c]=s1; MutateSquare2(r,c,s,s1);

El procedimiento MutateSquare2(r,c,s,p) contiene la segunda parte del codigo paraaplicar un pequeno cambio al cuadrado latino en memoria. Partiendo de un cuadrado la-tino impropio, la llamada al procedimiento MutateSquare2(r,c,s,p) realiza las siguientesoperaciones:

65

Page 67: Cuadrados Latinos y Grafos de Moore

Se localizan las ocurrencias del sımbolo impropio p en la fila r y la columna c.

Se escoge al azar una ocurrencia del sımbolo p en la fila r y otra en la columna c.

Se realiza el pequeno cambio. Si el cuadrado latino resultante es propio, se finaliza elprocedimiento. En caso contrario, se llama de nuevo al procedimiento MutateSquare2.

ShowSquare()

void ShowSquare() for (int i=0; i<Order; i++) for (int j=0; j<Order; j++) if (Order>10 && LatinSquare[i][j]<10) cout << "0"; cout << int(LatinSquare[i][j]); cout << endl;

El procedimiento ShowSquare() muestra el cuadrado latino almacenado en la memoriapor pantalla.

3.2. Construccion de Grafos de Moore

En esta seccion se describen los algoritmos utilizados para la construccion de grafosde Moore que se hallan implementados en la aplicacion The Biggest Moore Graph (TBMG).Dicha aplicacion se presenta en dos versiones, una escrita en C++ y la otra en Visual Basic.Ambas versiones se describen a continuacion.

3.2.1. TBMG: The Biggest Moore Graph (version C++)

La version C++ de la aplicacion TBMG no tiene interfaz grafico y sirve para realizarensayos sobre los grafos de Moore y obtener los porcentajes de completitud. Su estructuraes la siguiente.

Cabecera

#include <fstream.h>#include <stdlib.h>#include <time.h>#define Degree 57

const int Limit=2*Degree;const int Size=Degree*Degree+1;unsigned char Matrix[Size][Size];long Start;

void Initialize();void UpdateMatrix(int r, int c);bool Vacant(int r, int c);long Vacancies();void FillBox(int n);void SmartPattern(int p);void SmartFill(int n);void SmartUnFill(int n);void ShowSummary();

66

Page 68: Cuadrados Latinos y Grafos de Moore

La cabecera del programa contiene, por este orden, las instrucciones para cargar laslibrerıas externas fstream.h, stdlib.h y time.h, la declaracion de las variables globalesLatinSquare y Start, y la definicion de los procedimientos Initialize, UpdateMatrix,Vacant, Vacancies, FillBox, SmartPattern, SmartFill. SmartunFill y ShowSummary

usados por el cuerpo principal del programa.

main()

void main () Initialize(); SmartPattern(3);

int i=0; do SmartUnFill(10); do SmartFill(10); while (Vacancies()>0); ShowSummary(); while (i++<100); ShowSummary();

En el caso de TBMG, el procedimiento main() resulta ser flexible, ya que hay que adap-tarlo cada vez al patron de relleno que se desee probar. Un ejemplo de un patron de rellenobastante completo puede ser el que aparece mas arriba, el cual consiste en un primer barridodiagonal y una posterior combinacion de las tecnicas SmartFill y SmartUnFill.

Initialize()

void Initialize() Start=time(NULL); srand(time(NULL)); for (int r=0; r<Size; r++) for (int c=0; c<Size; c++) Matrix[r][c]=0;

El procedimiento Initialize() se encarga de inicializar las variables globales. Dichasvariables son las siguientes:

Matrix[i][j] es una variable que almacena la matriz de adyacencia del grafo deMoore definida como A1 + 2A2.

Size es una constante que almacena el orden del grafo de Moore, y por lo tanto elde su matriz de adyacencia.

Degree es una constante que almacena el grado del grafo.

Limit es una constante que se utiliza para verificar que todos los vertices tengan elgrado del grafo de Moore, aunque por razones practicas, su valor es el doble del delgrado.

Start almacena el valor del cronometro del ordenador para determinar el tiempo deejecucion del programa.

67

Page 69: Cuadrados Latinos y Grafos de Moore

UpdateMatrix()

void UpdateMatrix(int r, int c) if (Matrix[r][c]%2==0) Matrix[r][c]=Matrix[c][r]+=1; for (int i=0; i<Size; i++) if (Matrix[r][i]%2==1) Matrix[c][i]=Matrix[i][c]+=2; if (Matrix[c][i]%2==1) Matrix[r][i]=Matrix[i][r]+=2; else for (int i=0; i<Size; i++) if (Matrix[r][i]%2==1) Matrix[c][i]=Matrix[i][c]-=2; if (Matrix[c][i]%2==1) Matrix[r][i]=Matrix[i][r]-=2; Matrix[r][c]=Matrix[c][r]-=1;

El procedimiento UpdateMatrix es quiza el corazon de la aplicacion TMBG. Medianteeste procedimiento se realizan todos los cambios a la matriz de adyacencia del grafo deMoore. Estos cambios pueden ser dos:

Cuando la posicion (r, c) de la matriz de adyacencia contiene un 0, lo cual significaque no hay ninguna rama que una los vertices r y c, entonces se sustituye por un 1 yse actualizan las posiciones donde aparece un 2, que son aquellas parejas de verticesque quedan unidos por un camino de longitud 2.

Cuando la posicion (r, c) de la matriz de adyacencia contiene un 1 se realiza el procesoinverso, es decir, se sustituye el 1 por un 0 y se eliminan los doses correspondientes.

Notese que mediante este algoritmo no es necesario calcular la matriz A2 para determi-nar los caminos de longitud 2, sino que basta con actualizar aquellas posiciones donde seproduce el cambio. Esto reduce significativamente el numero de operaciones que hay querealizar a cada cambio, lo cual se traduce en un aumento notorio de la velocidad de calculo.

Vacant()

bool Vacant(int r, int c) if (Matrix[r][c]>0 || Matrix[r][r]==Limit || Matrix[c][c]==Limit) return false; for (int i=0; i<Size; i++) if (Matrix[r][i]*Matrix[c][i]==2) return false; return true;

La funcion Vacant verifica si es posible colocar un 1 en la posicion (r, c) de la matrizde adyacencia sin que aparezca ningun conflicto.

Vacancies()

long Vacancies() long count=0; for (int r=0; r<Size; r++) for (int c=r; c<Size; c++) if (Vacant(r,c)) count++; return count;

La funcion Vacancies devuelve el numero de posiciones (r, c) en la matrix de adya-cencia donde es posible colocar un 1 sin que aparezcan conflictos. Esta funcion se utilizapara determinar el numero de posiciones vacantes en la matriz de adyacencia, que no esnecesariamente el numero de casillas que contienen un 0.

68

Page 70: Cuadrados Latinos y Grafos de Moore

SmartPattern()

El procedimiento SmartPattern contiene una serie de patrones para rellenar el grafode Moore. Estos patrones son los siguientes:

SP0 - Forma canonica: este patron construye la forma canonica de la matriz deadyacencia de un grafo de Moore.

for (int c=1; c<Degree+1; c++) UpdateMatrix(0,c); for (int r=1; r<Degree+1; r++) for (int c=2; c<Degree+1; c++) UpdateMatrix(r,r*(Degree-1)+c); for (int r=Degree+1; r<Limit; r++) for (int c=1; c<Degree; c++) UpdateMatrix(r,r+c*(Degree-1));

SP1 - Barrido por filas: este patron realiza un barrido de todas las filas de lamatriz de adyacencia colocando un 1 en aquellas posiciones vacantes.

for (int r=0; r<Size; r++) for (int c=r+1; c<Size; c++) if (Vacant(r,c)) UpdateMatrix(r,c);

SP2 - Barrido por columnas: este patron realiza un barrido de todas las columnasde la matriz de adyacencia colocando un 1 en aquellas posiciones vacantes.

for (int c=0; c<Size; c++) for (int r=0; r<c; r++) if (Vacant(r,c)) UpdateMatrix(r,c);

SP3 - Barrido por diagonales: este patron realiza un barrido de todas las diago-nales de la matriz de adyacencia colocando un 1 en aquellas posiciones vacantes.

for (int r=1; r<Size; r++) for (int c=r; c<Size; c++) if (Vacant(c-r,c)) UpdateMatrix(c-r,c);

SP4 - Patron de Petersen: este patron rellena mediante el grafo de Petersen lassubmatrices 10 × 10 de la diagonal de la matriz de adyacencia.

for (int r=0; r<Size; r++) if (r%5!=4) UpdateMatrix(r,r+1); else UpdateMatrix(r-4,r); for (int r=0; r<Size-5; r=r+10) for (int c=0; c<5; c++) UpdateMatrix(r+c,r+(2*c)%5+5);

SP5 - Patron de Hoffman-Singleton: este patron rellena mediante el grafo deHoffman-Singleton las submatrices 50×50 de la diagonal de la matriz de adyacencia.

for (int r=0; r<Size; r++) if (r%5!=4) UpdateMatrix(r,r+1); else UpdateMatrix(r-4,r); for (int i=0; i<Size; i=i+50) for (int j=0; j<50; j=j+5) for (int k=45-5*(j%2); k>j; k=k-10) for (int r=0; r<5; r++) for (int c=0; c<5; c++) if (Vacant(i+j+r,i+k+c)) UpdateMatrix(i+j+r,i+k+c);

69

Page 71: Cuadrados Latinos y Grafos de Moore

FillBox()

void FillBox(int n) for (int i=1; i<Size; i=i+n) for (int j=i; j<Size; j=j+n) for (int r=0; r<n; r++) for (int c=0; c<n; c++) if (Vacant(j-i+r,j+c)) UpdateMatrix(j-i+r,j+c);

El procedimiento FillBox realiza un barrido mediante submatrices n × n de la matrizde adyacencia colocando un 1 en aquellas posiciones vacantes.

SmartFill()

void SmartFill(int n) long p1,p2,v1,v2; long ListCount=0; int ListRow[Degree*Size/2]; int ListCol[Degree*Size/2];

for (int r=0; r<Size; r++) for (int c=r+1; c<Size; c++) if (Vacant(r,c)) ListRow[ListCount]=r; ListCol[ListCount]=c; ListCount++;

p1=(rand()*(RAND_MAX+1)+rand())%ListCount; UpdateMatrix(ListRow[p1],ListCol[p1]); v1=Vacancies(); UpdateMatrix(ListRow[p1],ListCol[p1]); for (int i=0; i<n; i++) p2=(rand()*(RAND_MAX+1)+rand())%ListCount; UpdateMatrix(ListRow[p2],ListCol[p2]); v2=Vacancies(); UpdateMatrix(ListRow[p2],ListCol[p2]); if (v2>v1) p1=p2; UpdateMatrix(ListRow[p1],ListCol[p1]);

El procedimiento SmartFill tiene un funcionamiento sencillo:

Se realiza una lista de las posiciones vacantes en la matriz de adyacencia.

Se prueban al azar n posiciones de la lista y se conserva aquella que minimice lareduccion de posiciones vacantes.

SmartUnFill()

El funcionamiento del procedimiento SmartUnFill es muy parecido al del procedi-miento SmartFill. La unica diferencia en el codigo consiste en la sustitucion de la lıneaif(Vacant(r,c)) por if(Matrix[r][c]==1). Basicamente, en vez de rellenar la lista conlas posiciones vacantes, se rellena con aquellas que contienen un 1, de manera que al eje-cutar SmartUnFill se prueban al azar n posiciones y se libera aquella que maximiza elaumento de posiciones vacantes.

70

Page 72: Cuadrados Latinos y Grafos de Moore

ShowSummary()

void ShowSummary() long Zero=0, One=0, Two=0, Other=0; for (int r=0; r<Size; r++) for (int c=r+1; c<Size; c++) switch (Matrix[r][c]) case 0: Zero++; break; case 1: One++; break; case 2: Two++; break; default: Other++; cout << "Summary:" << endl; cout << " #(0) = " << 2*Zero << endl; cout << " #(1) = " << 2*One << " (of " << Size*Degree << ")" << endl; cout << " #(2) = " << 2*Two << " (of " << Size*(Size-Degree-1) << ")" << endl; cout << "Other = " << 2*Other << endl << endl;

El procedimiento ShowSummary realiza un recuento de las posiciones de la matriz deadyacencia que contienen un 0, un 1 o un 2, y calcula el porcentaje de completitud delgrafo.

3.2.2. TBMG: The Biggest Moore Graph (version Visual Basic)

La version Visual Basic de la aplicacion TBMG esta dotada de un interfaz grafico quepermite interactuar de forma visual con la matriz de adyacencia de los grafos de Moore.

El funcionamiento de la aplicacion TBMG se encuentra detallado en el manual del usuario,mientras que el codigo fuente puede consultarse en el Apendice 1.

71

Page 73: Cuadrados Latinos y Grafos de Moore

Conclusiones

El problema de construir El Gran Grafo de Moore es un problema inmenso, hecho quehace inviable cualquier intento de resolverlo a traves de los metodos llamados “de fuerzabruta”. Sin embargo, hemos visto que mediante el estudio de los grafos de Petersen yHoffman-Singleton es posible inferir propiedades sobre el El Gran Grafo de Moore quepermiten reducir significativamente el tamano del problema.

Con esta tesina se pretende, por una parte, ofrecer un documento de referencia a futurosinvestigadores que deseen continuar con la busqueda de “el monstruo”, y por otra, facilitaralgunas herramientas informaticas que agilicen dicha tarea. Eventualmente, los estudiossobre las propiedades de El Gran Grafo de Moore haran viable su resolucion mediante unordenador. En ese momento el esfuerzo que ha significado la realizacion de esta tesina severa recompensado.

Resultados obtenidos

A continuacion se presentan, a modo de resumen, los resultados mas significativos quese han obtenido durante la realizacion de esta tesina:

En el Capıtulo 1 se ha propuesto una formula aproximada para la enumeracion decuadrados latinos de ordenes intermedios. Esta formula rellena el hueco existente enla literatura sobre enumeracion de cuadrados latinos. Tambien se ha determinadoexperimentalmente el numero de cuadrados latinos simetricos y se ha constatadoque dicho numero puede ser estimado como la raız cuadrada del numero total decuadrados latinos.

En el Capıtulo 2 se han introducido los conceptos de grafo soporte de un grafo deMoore y forma canonica de la matriz de adyacencia asociada a un grafo de Moore.Tambien se han descubierto ciertas propiedades que debe cumplir toda matriz deadyacencia asociada a un grafo de Moore, entre las que cabe destacar la presenciade cuadrados latinos. Finalmente, se ha modelizado el problema de El Gran Grafode Moore como el de encontrar un conjunto de 56 cuadrados latinos mutuamenter-ortogonales con grado de ortogonalidad 1514.

En el Capıtulo 3 se han desarrollado los algoritmos para generar cuadrados latinos(generacion secuencial, generacion aleatoria y generacion parcial) y los algoritmosbasicos para la construccion de grafos de Moore.

Ya fuera de este documento, se ha desarrollado la aplicacion TBMG, que ha servi-do para descubrir la mayor parte de las propiedades sobre la matriz de adyacenciaasociada a los grafos de Moore que se han presentado en el Capıtulo 2.

72

Page 74: Cuadrados Latinos y Grafos de Moore

Bibliografıa

Referencias

[1] S. E. Bammel, J. Rothstein, The number of 9 × 9 Latin squares, Discrete Math., 11(1975), 93–95.

[2] E. Bannai, T. Ito, Algebraic combinatorics I, Benjamin and Cummings, 1984.

[3] G. Belyavskaya, r-Orthogonal Latin Squares, Annals of Discrete Mathematics, 1991,169–202.

[4] C. J. Colbourn, L. Zhu. The Spectrum of r-Orthogonal Latin Squares, CombinatoricsAdvances, 1995, 49–75.

[5] R. Fisher, F. Yates, The 6 × 6 Latin Squares, Proceedings of the Cambridge Philoso-phical Society, 30 (1934), 492–507.

[6] M. T. Jacobson, P. Matthews, Generating Uniformly Distributed Random Latin Squa-res, J. Combinatorial Design, 4 (1996), 405–437.

[7] J. Kong, The Role of Latin Squares in Cipher Systems: A Matrix Approach to Mo-del Encryption Modes of Operation, UCLA Computer Science Department, TechnicalReport 030038.

[8] C. Koscielny, Generating Quasigroups For Cryptographic Applications, InternationalJournal of Applied Mathematics & Computer Science, Vol. 14, No. 4, 2002, 559–569.

[9] J. H. van Lint, R. M. Wilson, A Course in Combinatorics, Cambridge University Press,Cambridge, 1992.

[10] B. D. McKay, E. Rogoyski, Latin Squares of Order 10, Electronic J. Combinatorics, 2(1995), No. 1, R3, 1–4.

[11] B. D. McKay, I. M. Wanless, Latin squares of order eleven, en revision, 2003.

[12] A. Sade, Enumeration des carres latins. Application au 7eme ordre. Conjecture pourles ordres superieurs, Marseille, 1984, 8pp.

[13] M. B. Wells, The Number of Latin Squares of Order Eight, Journal of CombinatorialTheory, 3 (1967), 98–99.

[14] L. Zhu, H. Zhang, A few more r-orthogonal latin squares, Discrete Mathematics, 238(2001), 183–191.

[15] L. Zhu, H. Zhang, Completing the spectrum of r-orthogonal Latin squares, DiscreteMathematics, 268 (2003), 343–349.

73

Page 75: Cuadrados Latinos y Grafos de Moore

Otra bibliografıa consultada

[16] C. Balbuena, Estudio sobre algunas nuevas clases de conectividad condicional en grafosdirigidos, Universitat Politecnica de Catalunya, 1995, 2–5.

[17] N. L. Biggs, Matematica Discreta, Edicions Vicens Vives, 1994, 143–146.

[18] P. Doyle, The number of Latin rectangles, manuscrito, http://math.dartmouth.edu/∼doyle/docs/latin/latin.pdf

[19] S. Duzhin, Graphes de Moore, manuscrito, 1994, http://www.pdmi.ras.ru/∼duzhin/papers/moore.ps.gz.

[20] C. D. Godsil, So Few Moore Graphs, manuscrito, 2001, http://quoll.uwaterloo.ca/agt/supplem/moore.ps.

[21] C. P. Gomes, D. Shmoys, Completing Quasigroups or latin Squares: A StructuredGraph Coloring Problem, Computational Symposium on Graph Coloring and Gene-ralisations, 2002.

[22] J. Gomez, I. Pelayo, C. Balbuena. New Large Graphs with Given Degree and DiameterSix, John Wiley & Sons, Inc., 1998.

74

Page 76: Cuadrados Latinos y Grafos de Moore

Indice general

Introduccion 1

Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1. Cuadrados Latinos 4

1.1. Definiciones y propiedades . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.2. Cubos binarios latinos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.3. Cuadrados latinos ortogonales . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.4. Enumeracion de cuadrados latinos . . . . . . . . . . . . . . . . . . . . . . . 10

1.4.1. Enumeracion de cuadrados latinos simetricos . . . . . . . . . . . . . 11

1.4.2. Formulas asintoticas . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.4.3. Estimacion para ordenes intermedios . . . . . . . . . . . . . . . . . 14

1.5. Generacion de cuadrados latinos . . . . . . . . . . . . . . . . . . . . . . . . 16

1.5.1. Generacion secuencial de cuadrados latinos . . . . . . . . . . . . . . 16

1.5.2. Generacion aleatoria de cuadrados latinos . . . . . . . . . . . . . . 16

1.5.3. Composicion de cuadrados latinos . . . . . . . . . . . . . . . . . . . 19

1.6. Aplicaciones de los cuadrados latinos . . . . . . . . . . . . . . . . . . . . . 20

1.6.1. Diseno de experimentos . . . . . . . . . . . . . . . . . . . . . . . . 20

2. Grafos de Moore 24

2.1. Definiciones previas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.2. Modelizacion matricial de grafos . . . . . . . . . . . . . . . . . . . . . . . . 26

2.3. El problema (∆, D) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

2.3.1. Grafos de Moore . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

2.3.2. Arbol generador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

2.3.3. Grafo soporte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

2.3.4. Forma canonica de un grafo de Moore . . . . . . . . . . . . . . . . . 34

2.4. Construccion del grafo de Petersen . . . . . . . . . . . . . . . . . . . . . . 35

2.4.1. Construccion mediante el grafo soporte . . . . . . . . . . . . . . . . 36

2.4.2. Matriz de adyacencia del grafo de Petersen . . . . . . . . . . . . . . 38

2.4.3. Otras representaciones del grafo de Petersen . . . . . . . . . . . . . 39

2.5. Construccion del grafo de Hoffman-Singleton . . . . . . . . . . . . . . . . . 40

2.5.1. Construccion clasica del grafo de Hoffman-Singleton . . . . . . . . . 40

75

Page 77: Cuadrados Latinos y Grafos de Moore

2.5.2. Matriz de adyacencia del grafo de Hoffman-Singleton . . . . . . . . 41

2.5.3. Reformulacion del problema de los grafos de Moore . . . . . . . . . 43

2.6. Construyendo El Gran Grafo de Moore . . . . . . . . . . . . . . . . . . . . 43

2.6.1. Propiedades algebraicas de la matriz de adyacencia . . . . . . . . . 44

2.6.2. Presentacion de la aplicacion TBMG . . . . . . . . . . . . . . . . . 45

2.6.3. Caracterizacion de la matriz de adyacencia . . . . . . . . . . . . . . 48

2.6.4. Analisis del tamano del problema . . . . . . . . . . . . . . . . . . . 55

2.6.5. Porcentajes de completitud . . . . . . . . . . . . . . . . . . . . . . 56

3. Algoritmos 58

3.1. Generacion de Cuadrados Latinos . . . . . . . . . . . . . . . . . . . . . . . 58

3.1.1. SLSG: Symmetric Latin Square Generator . . . . . . . . . . . . . . 58

3.1.2. PLSC: Partial Latin Square Completer . . . . . . . . . . . . . . . . 60

3.1.3. RLSG: Random Latin Square Generator . . . . . . . . . . . . . . . 63

3.2. Construccion de Grafos de Moore . . . . . . . . . . . . . . . . . . . . . . . 66

3.2.1. TBMG: The Biggest Moore Graph (version C++) . . . . . . . . . . 66

3.2.2. TBMG: The Biggest Moore Graph (version Visual Basic) . . . . . . 71

Conclusiones 72

Resultados obtenidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

Bibliografıa 73

76

Page 78: Cuadrados Latinos y Grafos de Moore

Indice de cuadros

1.1. Excepciones del grado r de ortogonalidad. . . . . . . . . . . . . . . . . . . 9

1.2. Estado del arte en enumeracion de cuadrados latinos. . . . . . . . . . . . . 10

1.3. Numero de cuadrados latinos normalizados. . . . . . . . . . . . . . . . . . 11

1.4. Estimacion del numero de cuadrados latinos normalizados. . . . . . . . . . 11

1.5. Numero de cuadrados latinos simetricos normalizados. . . . . . . . . . . . . 12

1.6. Numero de cuadrados latinos y valor de α en funcion del orden. . . . . . . 15

2.1. Parametros del grafo de Moore de grado 3. . . . . . . . . . . . . . . . . . . 35

2.2. Parametros del grafo de Moore de grado 7. . . . . . . . . . . . . . . . . . . 40

2.3. Parametros del grafo de Moore de grado 57. . . . . . . . . . . . . . . . . . 43

2.4. Valores propios y vectores propios de los grafos de Moore. . . . . . . . . . . 45

2.5. Porcentajes de completitud obtenidos. . . . . . . . . . . . . . . . . . . . . 56

77

Page 79: Cuadrados Latinos y Grafos de Moore

Indice de figuras

1.1. Cuadrado latino y cubo binario asociado al mismo. . . . . . . . . . . . . . 7

1.2. Cubo binario equivalente y cuadrado latino asociado. . . . . . . . . . . . . 7

1.3. Evolucion del numero de cuadrados latinos con el orden. . . . . . . . . . . 12

1.4. Evolucion del valor de α. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.1. El grafo 4-completo, o K4. . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.2. Ejemplo de digrafo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

2.3. Ejemplo de arbol. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2.4. Grafo de 6 vertices y matriz de adyacencia asociada. . . . . . . . . . . . . 26

2.5. Arbol generador de un grafo de Moore. . . . . . . . . . . . . . . . . . . . . 32

2.6. Grafo soporte de un grafo de Moore. . . . . . . . . . . . . . . . . . . . . . 33

2.7. Forma canonica de la matriz de adyacencia de un Grafo de Moore. . . . . . 34

2.8. Construccion del grafo de Petersen. Paso 1. . . . . . . . . . . . . . . . . . . 36

2.9. Construccion del grafo de Petersen. Paso 2. . . . . . . . . . . . . . . . . . . 36

2.10. Construccion del grafo de Petersen. Paso 3. . . . . . . . . . . . . . . . . . . 37

2.11. Construccion del grafo de Petersen. Paso 4. . . . . . . . . . . . . . . . . . . 37

2.12. Construccion del grafo de Petersen. Paso 5. . . . . . . . . . . . . . . . . . . 38

2.13. Algunas representaciones del grafo de Petersen. . . . . . . . . . . . . . . . 39

2.14. Aspecto del grafo soporte para el grafo de Hoffman-Singleton. . . . . . . . 40

2.15. Grafo completo bipartito K5,5. . . . . . . . . . . . . . . . . . . . . . . . . . 40

2.16. Construccion del grafo de Hoffman-Singleton. . . . . . . . . . . . . . . . . 41

2.17. Matriz B para el grafo de Petersen y su representacion en TBMG. . . . . . 46

2.18. Matriz de adyacencia del grafo de Petersen con conflictos. . . . . . . . . . . 46

2.19. Matriz de adyacencia del grafo de Petersen basada en un patron 5 × 5. . . 47

2.20. Matriz de adyacencia del grafo de Hoffman-Singleton. . . . . . . . . . . . . 48

2.21. Forma canonica de la matriz de adyacencia del grafo de Hoffman-Singleton. 49

2.22. Submatrices 6 × 6 en la forma canonica del grafo de Hoffman-Singleton. . . 50

2.23. Matrices de permutacion correspondientes a la primera fila. . . . . . . . . . 51

2.24. Matrices asociadas a cada matriz de permutacion de la primera fila. . . . . 51

2.25. Cuadrado latino asociado a la primera fila de submatrices. . . . . . . . . . 52

2.26. Cuadrados latinos asociados a la matriz de adyacencia. . . . . . . . . . . . 52

78