• No se han encontrado resultados

NOTA DE ADVERTENCIA

N/A
N/A
Protected

Academic year: 2022

Share "NOTA DE ADVERTENCIA"

Copied!
74
0
0

Texto completo

(1)

IMPLEMENTACI ´ON DE YOUNG TABLEAUX, UNA HERRAMIENTA PARA TABLAS DE YOUNG

ANDREA DEL PILAR ´ALVAREZ BERM ´UDEZ

PONTIFICIA UNIVERSIDAD JAVERIANA

(2)
(3)

IMPLEMENTACI ´ON DE YOUNG TABLEAUX, UNA HERRAMIENTA PARA TABLAS DE YOUNG

ANDREA DEL PILAR ´ALVAREZ BERM ´UDEZ

TRABAJO DE GRADO Presentado como requisito parcial

Para optar por el t´ıtulo de

INFORM ´ATICO MATEM ´ATICO

PONTIFICIA UNIVERSIDAD JAVERIANA

(4)

NOTA DE ADVERTENCIA

Art´ıculo 23 de la Resoluci´on N 13 de Julio de 1946

“La Universidad no se hace responsable por los conceptos emitidos por sus alum- nos en sus trabajos de tesis. Solo velar´a por que no se publique nada contrario al dogma y a la moral cat´olica y por que las tesis no contengan ataques personales contra persona alguna, antes bien se vea en ellas el anhelo de buscar la verdad y la justicia”.

(5)

IMPLEMENTACI ´ON DE YOUNG TABLEAUX, UNA HERRAMIENTA PARA TABLAS DE YOUNG

ANDREA DEL PILAR ´ALVAREZ BERM ´UDEZ

APROBADO

Fernando Novoa, Matem´atico, M. Sc.

Director

(6)

IMPLEMENTACI ´ON DE YOUNG TABLEAUX, UNA HERRAMIENTA PARA TABLAS DE YOUNG

ANDREA DEL PILAR ´ALVAREZ BERM ´UDEZ

APROBADO

Dra. Ingrid Schuler Patricia Hernandez

Decana Acad´emica Directora de Carrera

(7)

´Indice general

Resumen 1

Abstract 3

1. Justificaci´on 7

2. Objetivos 9

2.1. Objetivo general . . . 9

2.2. Objetivos espec´ıficos . . . 9

3. Conceptos Generales 11 3.1. Particiones . . . 11

3.2. Permutaciones . . . 12

3.3. Combinaciones . . . 13

3.4. Diagramas de Ferrers . . . 14

3.5. Formas de Ferrers o Formas . . . 15

4. Tablas de Young 17 4.1. Historia . . . 17

4.2. Tablas de Young . . . 19

4.2.1. Tablas de Young est´andar . . . 21

(8)

4.4.1. Palabras y transformaciones elementales. . . 32

4.5. Correspondencia Robinson-Schensted-Knuth . . . 37

5. Descripci´on de algoritmos 43 5.1. Clase Young . . . 44

5.2. Clase Partition . . . 56

5.3. Clase CombinationGenerator . . . 57

5.4. GUI . . . 59

6. Conclusiones 61

vi

(9)

´Indice de figuras

3.1. Diagrama de Ferrers. . . 14

3.2. Forma de Ferrers. . . 15

3.3. Partici´on - Conjugada de una partici´on . . . 15

4.1. Tabla de Young. . . 19

4.2. Notaci´on diagramas skew . . . 20

4.3. Diagrama skew. . . 20

4.4. Tabla skew. . . 20

4.5. Tabla de Young. . . 22

4.6. Tabla de Young est´andar. . . 22

4.7. Gancho de una celda . . . 23

(10)

viii

(11)

Resumen

Para el desarrollo de este proyecto, se dise˜no e implement´o una herramienta computacional, llamada Young Tableaux, que le permite al usuario aprender y aplicar un conjunto de conceptos relacionados con la teor´ıa de tablas de Young y estudiar propiedades, caracter´ısticas y resultados importantes de esta ´area.

El proyecto se dividi´o en dos fases importantes, la apropiaci´on de las bases te´oricas necesarias para satisfacer los requerimientos del software y el uso de una metodo- log´ıa de desarrollo de software que permiti´o cubrir las etapas de an´alisis, dise˜no e implementaci´on.

Entre las bases te´oricas que se consultaron para este trabajo se encuentran temas como combinatoria, funciones sim´etricas, representaciones del grupo sim´etrico y por supuesto, tablas de Young, entre otros.

Durante la siguiente fase, se modelaron las clases y m´etodos correspondientes para al desarrollo de la aplicaci´on, se realiz´o la documentaci´on, se implement´o y se prob´o el sistema y cada una de sus partes. Para la implementaci´on del proyecto se us´o el lenguaje de programaci´on Java desarrollado por Sun Microsystems.

(12)

2

(13)

Abstract

The development of this project was related to the design and implementation of a software tool, called Young Tableaux, that allow the users to learn and to apply several concepts in the field of Young tableaux, letting them study the most important properties, characteristics and results in this field.

The project is divided in two important phases, the gathering of the necessary theoretical basis in order to fulfill the requirements of the software, and the use of a development methodology for the stages of analysis, design and implementation.

Among the theoretical concepts that the author researched for, we can find topics as combinatorics, the algebra of symmetric functions, the representations of the symmetric group, and of course, Young tableaux, among others.

During the next phase, an iterative and incremental model was used for defining the requirements, modelling the classes and methods required for the development of the application, implementing and testing the whole system and each one of its parts. The programming language used for the implementation of this project was Java developed by Sun Microsystems.

(14)

4

(15)

Introducci´ on

Las tablas de Young fueron introducidas en 1901 por Alfred Young como una he- rramienta para la teor´ıa de invariantes. Posteriormente, se observ´o que se pod´ıa obtener informaci´on sobre representaciones de grupos sim´etricos. Desde entonces, las tablas de Young juegan un papel importante en muchas ´areas de las matem´ati- cas desde la combinatoria enumerativa hasta la geometr´ıa algebraica. Las tablas de Young han dado lugar a considerables aplicaciones en combinatoria, represen- taciones de grupos, teor´ıa de invariantes, funciones sim´etricas y grupos lineales generales. Estas tablas surgen en el estudio de la representaci´on de la teor´ıa de la simetr´ıa, de grupos lineales complejos, y del c´alculo Grassmaniano de Schubert.

Este proyecto pretende exponer algunos de los aspectos m´as importantes relacio- nados con particiones, permutaciones, combinaciones y teor´ıa de tablas de Young como la f´ormula de longitud de gancho para la enumeraci´on de tablas y tablas est´andar de Young, algoritmos de bumping y sliding, entre otros.

Adem´as, se desarroll´o la implementaci´on de una herramienta computacional que facilita el uso de algunos algoritmos relacionados con las tablas de Young, gene- raci´on de tablas de Young est´andar, c´alculo de ganchos de una tabla, inserci´on de n´umeros en tablas de Young est´andar, la f´ormula de Frame-Robinson-Thrall.

Esta herramienta para tablas y tablas de Young est´andar es de gran utilidad en el estudio de representaciones de grupos lineales y sim´etricos.

(16)

6

(17)

Cap´ıtulo 1 Justificaci´ on

Este proyecto se realiz´o con el fin de proveer una herramienta interactiva que permita efectuar diferentes operaciones relacionadas con particiones y tablas de Young. Las escasas implementaciones matem´aticas relacionadas con el tema son poco interactivas con el usuario y no ofrecen ayuda con respecto al aprendizaje y manejo de sus algoritmos.

Sumado a lo anterior, las tablas de Young tienen numerosas aplicaciones en com- binatoria, teor´ıa de representaci´on y geometr´ıa algebraica.

Se han investigado varias formas de conteo de tablas de Young, generando la defi- nici´on de las funciones Schur. Muchos algoritmos combinatorios basados en tablas son conocidos, incluyendo el jeu de taquin de Sch¨utzenberger y la corresponden- cia Robinson Shensted Knuth. El estudio del producto asociativo en el conjunto de tablas de Young origin´o como resultado una estructura denominada monoide plactic.

En teor´ıa de representaci´on, las tablas de Young est´andar de tama˜no n describen

(18)

Adem´as, la regla de Littlewood-Richardson que describe entre otras cosas la des- composici´on de productos tensoriales de representaciones irreducibles de GLn en componentes irreducibles es formulada en t´erminos de ciertas tablas skew.

8

(19)

Cap´ıtulo 2 Objetivos

2.1. Objetivo general

Dise˜nar, desarrollar e implementar una herramienta para el uso y construcci´on de tablas de Young usando como herramienta el lenguaje computacional Java.

2.2. Objetivos espec´ıficos

Aplicar los conocimientos adquiridos en las ´areas de matem´aticas y progra- maci´on.

Poner a disposici´on del p´ublico una herramienta de software de tablas de Young.

Poner a disposici´on del p´ublico las funciones implementadas para la creaci´on de nuevas aplicaciones y herramientas fundamentadas en este proyecto.

Poner en pr´actica los conceptos matem´aticos de an´alisis de algoritmos, teor´ıa combinatoria y teor´ıa de tablas de Young.

(20)

10

(21)

Cap´ıtulo 3

Conceptos Generales

3.1. Particiones

Definici´on 3.1. Sean a1 ≥ a2 ≥ . . . ≥ am ≥ 1 enteros tales que a1+a2+. . .+am = n. El arreglo a = (a1, a2, . . . , am) se define como una partici´on del entero n, y los n´umeros ai se denominan partes de la partici´on a. El n´umero de particiones de n se denota por p(n).

Ejemplo 3.2. El entero 5 tiene siete particiones: (5), (4, 1), (3, 2), (3, 1, 1), (2, 2, 1), (2, 1, 1, 1) y (1, 1, 1, 1, 1). De esta forma, p(5) = 7

Una partici´on de n puede ser escrita de la forma 1a12a2. . . nan, donde ai es el n´umero de partes iguales a i, es decir, el n´umero de ocurrencias de i como un t´ermino en la suma. El ‘factor’ iai no es un exponencial; el entero i es un coefi- ciente del t´ermino ai. Si 0ai, el ‘factor’ puede omitirse. En esta notaci´on, las siete particiones de 5 son: 51, 4111, 3121, 3112, 2211, 2113, 15.

Se utiliza la notaci´on λ ` n que significa que ‘λ es una partici´on de n’. Adem´as, se usa una representaci´on gr´afica de las particiones en diagramas Ferrers o diagramas de Young.

(22)

3.2. Permutaciones

Definici´on 3.3. Un ordenamiento lineal de los elementos del conjunto [n] = {1, 2, 3, . . . , n} se denomina una permutaci´on.

En otras palabras, una permutaci´on lista todos los elementos de [n] de forma que cada elemento sea listado una s´ola vez.

Ejemplo 3.4. Si n = 4, las n-permutaciones son 1234, 1243, 1324, 1342, 1423, 1432, 2134, 2143, 2314, 2341, 2413, 2431, 3124, 3142, 3214, 3241, 3412, 3421, 4123, 4132, 4213, 4231, 4312, 4321

Proposici´on 3.5. El n´umero de n-permutaciones es n!

12

(23)

3.3. Combinaciones

Definici´on 3.6. Una combinaci´on es una selecci´on de k elementos sin repeti- ci´on y sin importar el orden en que se escojan de un conjunto de n elementos. El n´umero de combinaciones es el coeficiente binomial:

C(n, k) = µn

k

= n!

k!(n − k)! (3.1)

Ejemplo 3.7. En el conjunto A = {1, 2, 3, 4}, hay¡4

2

¢= 6 combinaciones de dos elementos 12, 13, 14, 23, 24, 34.

Cuando el orden de los elementos no importa y un elemento puede ser elegido m´as de una vez, el n´umero de combinaciones es

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

k!(n − 1)! =

µn + k − 1 k

=

µn + k − 1 n − 1

(3.2)

donde n es el n´umero de elementos de los cu´ales pueden escogerse k.

Ejemplo 3.8. Dado el conjunto A = {1, 2, 3, 4}, las combinaciones con repetici´on de tama˜no 3 son ¡4+3−1

4−1

¢ = 20 son: 111, 112, 113, 114, 122, 123, 124, 133, 134, 144, 222, 223, 224, 233, 234, 244, 333, 334, 344, 444.

(24)

3.4. Diagramas de Ferrers

Definici´on 3.9. Sea λ = (λ1, λ2, . . . , λl) ` n. El diagrama o forma de Ferrers de λ es un arreglo de n puntos con l filas justificadas a la izquierda, d´onde la fila i contiene λi puntos para 1 ≤ i ≤ l.

Los diagramas de Ferrers representan las particiones como patrones de puntos.

Proveen una herramienta ´util para la visualizaci´on de particiones y mover los puntos proporciona un mecanismo para generar biyecciones entre clases de parti- ciones.

Ejemplo 3.10. El diagrama Ferrers de la partici´on λ = (5, 4, 3, 1) se presenta en la figura 3.1.

• • • • •

• • • •

• • •

Figura 3.1: Diagrama de Ferrers.

14

(25)

3.5. Formas de Ferrers o Formas

Definici´on 3.11. Una forma de una partici´on λ = (λ1, λ2, . . . , λk) es un conjunto de n celdas cuadradas con lados paralelos a los ejes coordenados de forma que la i-´esima fila tiene λi celdas y todas las filas inician en una misma l´ınea vertical.

Ejemplo 3.12. La figura 3.2. representa la forma λ = (5, 4, 3, 1).

0 0 0 0 0

Figura 3.2: Forma de Ferrers.

Claramente existe una biyecci´on entre las particiones de n y las formas de Ferrers de tama˜no n.

Si se refleja una forma de una partici´on λ con respecto a su diagonal, se obtiene otra forma, que representa la partici´on conjugada de λ. La partici´on conjugada es la partici´on de n cuyo diagrama es la transpuesta (en el sentido de matrices, intercambiar filas por columnas).

Ejemplo 3.13. La conjugada de la forma (4, 2, 1) es (3, 2, 1, 1).

Figura 3.3: Partici´on - Conjugada de una partici´on

(26)

16

(27)

Cap´ıtulo 4

Tablas de Young

4.1. Historia

Alfred Young (1873-1940) naci´o en Birchfield, Farnsworth en Lancashire, reci- bi´o su educaci´on temprana educaci´on en Bournemouth y en el Monkton Combe School, cerca a Bath, donde su inusual talento para las matem´aticas fue recono- cido. Recibi´o una beca, se matricul´o en el Clare College, Cambridge en 1892 y se gradu´o en 1895. Dict´o clases en Selwyn College, Cambridge de 1901-1905. Si- guiendo con su intenci´on de ordenarse como sacerdote (Holy Orders), se orden´o en 1908, y de 1910-1940 sirvi´o como cura de una parroquia en Birdbrook, un pueblo de Essex a unas 25 millas al este de Cambridge.

En 1900 introdujo las tablas de Young, ´area por la cu´al es m´as recordado. Escri- bi´o una serie de papers On quantitative substitutional analysis que surgieron de la teor´ıa cl´asica de invariantes y conten´ıan sus resultados en esta ´area.

Burnside, Frobenius y Weyl se dieron cuenta de la importancia de los m´etodos de

(28)

Frobenius us´o las tablas de Young por primera vez en 1903 cuando investigaba las representaciones del grupo sim´etrico, pero fue hasta 1906 que Young com- prendi´o las aplicaciones de Frobenius acerca de sus m´etodos. En 1927, Young public´o trabajos adicionales incluyendo lo que Frobenius hab´ıa realizado sobre su trabajo, introdujo lo que llam´o formas est´andar que mejoraban la eficiencia de sus m´etodos y se mostr´o satisfecho al ver que Frobenius us´o sus ideas.

Weyl tambi´en empez´o a hacer uso de las ideas de Young y las tablas de Young figuraron en su famoso libro Theory of groups and quantum mechanics. En 1934, Young comprendi´o la importancia de la secuencia en que la tabla est´andar pod´ıa ser escrita y el a˜no siguiente present´o su trabajo a Frobenius y Schur. Su noveno y

´ultimo paper On quantitative substitutional analysis fue publicado en 1952, once a˜nos antes de su muerte.

Young mantuvo un gran inter´es en la investigaci´on y publicaci´on de funciones sim´etricas, invariantes, y propiedades combinatorias del grupo sim´etrico durante toda su vida.

18

(29)

4.2. Tablas de Young

Definici´on 4.1. Suponemos λ ` n. Una tabla de Young de forma λ, es un arreglo t que se obtiene reemplazando los puntos del diagrama de Ferrers de λ con enteros de [n].

Ejemplo 4.2. En la figura 4.1. se presenta una tabla de Young correspondiente a la forma λ = (5, 4, 3, 1) ` 13

1 2 2 3 4 3 3 4 5 5 5 6 6

Figura 4.1: Tabla de Young.

Sea ti,j la entrada de t en la posici´on (i, j). Una tabla de Young de forma λ tambi´en se denomina tabla-λ y se denota tλ. Claramente hay n! tablas de Young para cualquier forma λ ` n.

Ejemplo 4.3. Si λ = (2, 1), la lista de posibles tablas de forma λ es:

1 2

3 , 2 1

3 , 1 3

2 , 3 1

2 , 2 3

1 , 3 2

1

Definici´on 4.4. Un diagrama skew o forma skew es el diagrama obtenido de remover un peque˜no diagrama de Young de uno m´as grande que lo contiene. Si dos diagramas corresponden a las particiones λ = (λ1, λ2. . .) y µ = (µ1, µ2, . . .), se puede decir que µ ⊂ λ si el diagrama de Young de µ est´a contenido en λ; de forma equivalente, µi ≤ λi para todo i. La forma skew resultante se denota λ/µ Algebraicamente, una colecci´on de celdas en una forma skew si satisface la con- dici´on de que cuando las celdas en (i, j) y (i0, j0) son inclu´ıdas, y i ≤ i0 y j ≤ j0, entonces todas las celdas en las posiciones (i00, j00) son inclu´ıdas para i ≤ i00 ≤ i0 y

(30)

0 0 0 0 0 0

Figura 4.2: Notaci´on diagramas skew

Definici´on 4.6. Si µ ⊆ λ como diagramas Ferrers, luego el correspondiente dia- grama skew, o forma skew, es el conjunto de celdas λ/µ = {c : c ∈ λ y c /∈ µ}.

Un diagrama skew es normal si µ = 0.

Por consiguiente, las formas normales son aquellas que se han considerado ante- riormente como formas.

Definici´on 4.7. Una tabla skew es un llenado de celdas de un diagrama skew con enteros positivos, d´ebilmente crecientes de filas y estrictamente decrecientes en columnas.

Ejemplo 4.8. Con λ = (5, 5, 4, 3, 2) y µ = (4, 4, 1), el diagrama skew λ/µ y la tabla skew en λ/µ son respectivamente:

Figura 4.3: Diagrama skew.

2 6

2 4 4

2 3 6

5 6

Figura 4.4: Tabla skew.

Definici´on 4.9. Una tabla t tiene contenido, tipo o peso µ = (µ1, . . . , µl) si sus entradas consisten en µ1 1’s, µ2 2’s, y as´ı sucesivamente hasta µl l’s.

Definici´on 4.10. Una tabla de Young generalizada de forma λ es un arreglo T obtenido de reemplazar los nodos de λ con enteros positivos, permitiendo repeticiones. Sea

τλµ = {T : T tiene forma λ y contenido µ }.

20

(31)

Ejemplo 4.11. Una tabla generalizada de forma λ = (3, 2) y contenido µ = (2, 0, 1, 2).

4 1 4 1 3

Definici´on 4.12. Una tabla generalizada es semi est´andar si sus filas incre- mentan d´ebilmente y sus columnas incrementan obligatoriamente.

Ejemplo 4.13. La tabla

1 1 2 2 3 es semi est´andar, mientras que la tabla

2 1 1 3 2 no lo es.

4.2.1. Tablas de Young est´ andar

Definici´on 4.14. Una tabla de Young est´andar es una forma Ferrers de n celdas, donde cada celda contiene uno de los elementos de [n] de forma que todas las celdas contienen diferentes n´umeros, y las filas y columnas se incrementan hacia abajo y hacia la derecha.

Es decir, una tabla de Young est´andar es una tabla d´onde los n´umeros forman una secuencia creciente a lo largo de cada fila y de cada columna, con una s´ola ocurrencia.

En las figuras 4.5. y 4.6., se presentan dos tablas correspondientes a la forma λ = (6, 4, 4, 2), d´onde se observa f´acilmente la diferencia entre tablas de Young y tablas de Young est´andar.

(32)

1 2 2 3 3 5 2 3 5 5

4 4 6 6 5 6

Figura 4.5: Tabla de Young.

1 3 7 12 13 15

2 5 10 14 4 8 11 16 6 9

Figura 4.6: Tabla de Young est´andar.

4.2.2. F´ ormula de los Ganchos

Existe una f´ormula simple para determinar fλ, el n´umero de tablas de Young est´andar con forma λ . Para esto se emplean elementos llamados ganchos.

Definici´on 4.15. Si v = (i, j) es una celda del diagrama de λ, se define el gancho de la celda (i, j) como el conjunto

Hv = Hi,j = {(i, j0) : j0 ≥ j} ∪ {(i0, j) : i0 > j}

La longitud de gancho se denota como

hv = hi,j = |Hi,j|.

Ejemplo 4.16. Para ilustrar la definici´on anterior, si λ = (4, 4, 3, 3, 3, 1), las celdas con puntos en (2, 2), (2, 3), (2, 4), (3, 2), (4, 2), (5, 2) son el gancho H2,2 con longitud de celda h2,2 = 6.

Es decir, para cada celda (i, j) se define un n´umero hij = 1 + el n´umero de celdas a la derecha de la celda (i,j) en la i-´esima fila + el n´umero de celdas debajo de la celda (i,j) en la j-´esima columna. El arreglo de celdas lleno con los n´umeros hij se denomina tabla-H de la partici´on o de la forma.

22

(33)

• • •

Figura 4.7: Gancho de una celda

Ejemplo 4.17. En la tabla-H correspondiente a la partici´on (6, 5, 4, 3, 3, 2) ` 23, d´onde m = 6 (el n´umero de partes) y a1 = 6 (el mayor sumando); los n´umeros hij se determinan de acuerdo a la definici´on. Por ejemplo, h11= 1 + 5 + 5 = 11, h12= 1 + 4 + 5 = 10, etc.

La tabla-H queda de la siguiente forma:

11 10 8 5 3 1

9 8 6 3 1

7 6 4 1

5 4 2

4 3 1

2 1

Teorema 4.18. (F´ormula de Frame, Robinson y Thrall). Si λ ` n, el n´umero de tablas est´andar de Young de forma λ es igual a

fλ = n!

Q

(i,j)∈λhi,j.

Ejemplo 4.19. Supongamos que se quiere calcular el n´umero de tablas de Young est´andar con forma λ = (2, 2, 1) ` 5. Los ganchos est´an dados en el arreglo

4 2

(34)

Este resultado puede verificarse f´acilmente listando todas las tablas posibles con la forma λ = (2, 2, 1)

1 2 3 4 5

,

1 2 3 5 4

,

1 3 2 4 5

,

1 3 2 5 4

,

1 4 2 5 3

24

(35)

4.3. C´ alculo de tablas

Existen dos operaciones fundamentales sobre tablas de Young por medio de las cu´ales pueden deducirse algunas de sus propiedades combinatorias. El algoritmo de Schensted (bumping) que conduce a la correspondencia Robinson-Schensted- Knuth y el algoritmo Sch¨utzenberger (sliding) que “jeu de taquin”.

Estos algoritmos est´an fuertemente relacionados y pueden ser usados para definir productos en un conjunto de tablas de Young, convirti´endolo en un monoide.

Definici´on 4.20. Un monoide es una estructura algebraica (M, ∗), donde M es un conjunto con una operaci´on binaria ∗ : M ×M → M, que cumple las siguientes propiedades:

- Asociatividad. Para todo a, b, c ∈ M, (a ∗ b) ∗ c = a ∗ (b ∗ c).

- Elemento identidad. Existe un elemento e ∈ M, tal que para todo a ∈ M a ∗ e = e ∗ a = a.

- Cerrada. Para todo a, b ∈ M, a ∗ b ∈ M.

A diferencia de los grupos, los monoides no requieren de la existencia de inversos.

Puede decirse que un monoide es un semigrupo con un elemento neutro.

El producto en un conjunto de tablas de Young es la base de una aproximaci´on a la regla de Littlewood-Richardson.

4.3.1. Bumping: Inserci´ on por filas

El algoritmo de inserci´on por filas, toma una tabla T y un entero positivo n, y construye una nueva tabla, denotada T ← n. Esta tabla tendr´a una celda m´as que T , y sus entradas ser´an las de T , con una entrada adicional etiquetada n. El procedimiento es el siguiente: si n es mayor que todas las entradas de la primera

(36)

removida o hasta que sea movida al final, en tal caso se forma una nueva fila con una entrada.

Por ejemplo, para insertar 2 en la tabla

1 2 2 3 2 3 5 5 4 4 6 5 6 Se llevan a cabo los siguientes pasos.

El 3 de la primera fila es reemplazado por el n´umero 2

1 2 2 3 ← 2

2 3 5 5

4 4 6 5 6

el 3 que fue reemplazado por el 2, salta al 5 de la segunda fila

1 2 2 2

2 3 5 5 ← 3

4 4 6

5 6

el 5 que fue removido salta al 6 de la tercera fila

1 2 2 2

2 3 3 5

4 4 6 ← 5

5 6

y finalmente el 6 es ubicado al final de la cuarta fila 1 2 2 2 2 3 3 5 4 4 5 5 6 6 26

(37)

Con esta construcci´on queda claro que el resultado de este procedimiento siempre genera una tabla de Young. Efectivamente, cada fila es constru´ıda sucesivamente de forma decreciente, cuando una entrada m remueve una entrada p de una celda en una fila dada, la entrada que se encuentra debajo, si existe, es estrictamente mayor que p (por la definici´on de una tabla de Young), luego p permanece en la misma columna o es movida hacia la izquierda, y la entrada que se encuentra sobre esta nueva posici´on no es mayor que m, luego es estrictamente menor que p.

Esta operaci´on es invertible y de gran importancia; si se tiene la tabla resultante, junto con la localizaci´on de las celdas que se agregaron al diagrama, es posible recuperar la tabla original T y el elemento n. El algoritmo funciona simplemente al rev´es. Si m es la entrada en una celda agregada, se busca su posici´on en la fila que se encuentra encima de la posici´on de la celda, encontrando la entrada m´as lejana a la derecha de aquella estrictamente menor que m. Se remueve esta entrada hacia la siguiente fila, y el proceso contin´ua hasta que una entrada sea removida fuera de la fila superior. Este bumping al rev´es puede realizarse sobre cualquier tabla y cualquier celda en la cual exista un rinc´on externo, es decir, una celda en un diagrama de Young tal que las celdas directamente bajo esta y a la derecha no est´en en el diagrama. Por ejemplo, iniciando con la tabla y la celda sombreada

1 2 2 2

2 3 5 5

4 4 5

5 6 6

el 6 lanza al 5 en la tercera fila, que lanza al 3 de la derecha en la segunda fila, que lanza al 2 de la derecha de la primera fila, revirtiendo exactamente los mismos pasos del ejemplo anterior.

(38)

removido de una fila, junto con la celda donde el ´ultimo elemento removido fue lanzado.

Esto se denomina como ruta bumping de la inserci´on por filas, y la celda agregada al diagrama por el ´ultimo elemento, la nueva celda de la inserci´on por filas.

En el ejemplo, la ruta bumping est´a formada por las celdas sombreadas, y con nueva celda 6:

1 2 2 2

2 3 3 5

4 4 5

5 6 6

Una ruta bumping tiene m´aximo una celda en cada una de las filas sucesivas, empezando desde la parte superior. Se dice que una ruta R es estrictamente izquierda de una ruta R0 si en cada fila que contiene una celda de R0, R tiene una celda que se encuentra a la izquierda de la celda en R0.

Lema 4.21. Lema de Inserci´on por Filas. Considerando dos inserciones por filas sucesivas, primero insertando x en una tabla T y luego insertando x0 en la tabla resultante t ← x, se generan dos rutas R y R0, y dos nuevas celdas B y B0

(1) Si x ≤ x0, entonces R es estrictamente izquierda de R0, y B es estrictamente izquierda de B0 y d´ebilmente bajo B0.

(2) Si x > x0, entonces R0 es d´ebilmente izquierda de R, y B0 es d´ebilmente izquierda de B y estrictamente bajo B.

Esta operaci´on desarrollada por Schensted tiene varias propiedades notables. Pue- de ser usada para establecer un producto de tablas T ·U de dos tablas cualesquiera T y U. El n´umero de celdas del producto ser´a la suma del n´umero de celdas de cada una, y sus entradas ser´an las entradas de T y U. Si U consta de una celda con entrada x, el producto T · U es el resultado T ← x de insertar x en T . Pa- ra construir el producto en general, se inicia realizando inserci´on por filas de la entrada izquierda de la fila inferior de U en T . Inserci´on por filas al resultado la siquiente entrada de la fila inferior de U, y continuando de esta forma hasta que todas las entradas de la fila inferior de U hayan sido insertadas. Luego insertar

28

(39)

en orden las entradas de la fila anterior a la inferior, de izquierda a derecha, y as´ı sucesivamente con las dem´as filas, hasta que todas las entradas de U se hayan insertado. En otras palabras, si se listan las entradas de U en orden de izquierda a derecha y de abajo hacia arriba, con la secuencia x1, x2, . . . , xs, entonces

T · U = ((. . . ((T ← x1) ← x2) ← . . .) ← xs−1) ← xs.

Ejemplo 4.22. El producto T · U

1 2 2 3 1 3 1 2 2 2 1 3

2 3 5 5 · 2 = 2 3 3 5 ·

4 4 6 4 4 5

5 6 5 6 6

1 1 2 2 3 1 1 2 2 3

2 2 3 5 · 2 2 3 5

= 3 4 5 = 3 4 5

4 6 6 4 6 6

5 5

Una propiedad de la definici´on es la asociatividad del producto.

Proposici´on 4.23. La operaci´on producto convierte al conjunto de tablas en un monoide asociativo. La tabla vac´ıa es la unidad en este monoide: ∅·T = T ·∅ = T . El algoritmo de inserci´on por filas puede ser usado para establecer una notable correspondencia uno a uno entre permutaciones de enteros no negativos y pares de tablas de la misma forma, conocida como correspondencia de Robinson-Schensted- Knuth.

4.3.2. Sliding: Jeu de Taquin

(40)

Ejemplo 4.25. En

0

0 0 0 0

los rincones internos son la cuarta celda de la segunda fila y la primera celda en la tercera fila; las celdas (2, 4) y (3, 1).

Definici´on 4.26. Un rinc´on externo en λ/µ es una celda en λ tal que no hay celdas bajo ´esta ni a su derecha.

Ejemplo 4.27. En

0 0 0 0 0

las ´ultimas celdas en la segunda, tercera, cuarta y quinta fila son rincones externos.

Cabe resaltar que en un diagrama skew λ/µ existen varias posibilidades para elegir λ y µ. En algunas casos pueden existir rinconces internos que adem´as son rincones externos, como ocurre en el siguiente ejemplo

0 0 0 0 0 0

La operaci´on b´asica definida por Sch¨utzenberger se conoce como sliding. Se toma una tabla skew S y un rinc´on interno, que puede ser pensado como una celda vac´ıa y se desliza el menor de los dos vecinos de la derecha o debajo en la celda vac´ıa;

si s´olo uno de estos vecinos est´a en el diagrama skew se escoge ´este, y si los dos vecinos tienen la misma entrada, se escoge el que se encuentra debajo. Esto origina una nueva celda vac´ıa en el diagram skew. Se repite el proceso con esta celda,

30

(41)

deslizando uno de sus dos vecinos a un agujero de acuerdo a la misma descripci´on.

Se contin´ua de esta forma hasta que el agujero sea eliminado o desplazado a un rinc´on externo, es decir, cuando no queden vecinos para deslizar en la celda vac´ıa, en cuyo caso esta celda es removida del diagrama.

Ejemplo 4.28. Si ponemos en pr´actica esto para el rinc´on interno en la tercera fila de la tabla skew, obtenemos:

2 6

2 4 4 Ã

2 3 6

5 5

2 6

2 2 4 4 Ã

3 6 5 5

2 6

2 2 4 4

3 6

5 5

2 6

2 2 4 4 Ã

2 3 6

5

2 6

2 2 4 4

3 5 6

5

El resultado de esta operaci´on siempre es una tabla skew. Si la celda que se agrega es un rinc´on interno, y la celda que es removida es un rinc´on exterior, la forma contin´ua siendo un diagrama skew. Para comprobar que el resultado obtenido es una tabla, es suficiente verificar que en cada paso del procedimiento, con desliza- miento horizontal o vertical, las entradas en todas las filas se incrementan, y las entradas en las columnas se incrementan estrictamente.

Como el algoritmo bumping de Schensted, el sliding de Sch¨utzenberger es rever- sible: si se tiene la tabla skew resultante junto con la celda que fue removida, se puede realizar el procedimiento, iniciando en la tabla con el rinc´on interno elegido.

La celda vac´ıa se mueve hacia arriba o hacia la izquierda, cambiando lugar con la mayor de las dos entradas, si hay dos, si son iguales se elige la de arriba. El

(42)

4.4. Palabras, el monoide plactic

Las operaciones Schented fueron desarrolladas para estudiar secuencias de enteros, sin embargo, en esta secci´on se presenta una breve descripci´on de la palabra de una tabla y un an´alisis de las operaciones bumping y sliding sobre las palabras asociadas.

4.4.1. Palabras y transformaciones elementales.

Las palabras para ´este prop´osito se escriben como sucesiones de enteros positivos.

Se escribe w · w0 para la palabra que es la yuxtaposici´on de las palabras w y w0. Definici´on 4.29. Dada una tabla o tabla skew T , la palabra de T , denotada como w(T ), se define leyendo las entradas de T “de izquierda a derecha y de abajo hacia arriba”, es decir, empezando con la fila inferior, se listan sus entradas de izquierda a derecha, luego las entradas de izquierda a derecha en la fila anterior a la inferior, y as´ı sucesivamente hasta la fila superior.

Una tabla T puede ser recuperada a partir de su palabra de la siguiente forma:

se rompe la palabra donde una entrada sea mayor que la siguiente, las partes son las filas de T , le´ıdas de abajo hacia arriba.

Ejemplo 4.30. La palabra 5 6 4 4 6 2 3 5 5 1 2 2 3 se separa en 5 6 | 4 4 6 | 2 3 5 5 | 1 2 2 3, que es la palabra de la tabla

1 2 2 3 2 3 5 5 4 4 6 5 6

Por supuesto, no todas las palabras generan una tabla; las partes deben tener longitud creciente para que el resultado genere un diagrama de Young y cuando se comparen, las columnas deben tener entradas increment´andose. Diferentes tablas skew pueden determinar la misma palabra. Cada palabra proviene de alguna tabla skew, basta con romper la palabra en partes crecientes y ubicar las partes en filas, cada fila se ubica encima y a la derecha de la fila inferior.

32

(43)

Veamos lo que la inserci´on por filas ocasiona en la palabra de una tabla. Esto even- tualmente nos dir´a como la palabra de un producto de dos tablas est´a relacionada con las palabras de sus factores. Suponiendo que un elemento x es insertado en una fila. El algoritmo de Schensted multiplica la palabra de la fila u · x0· v, donde u y v son palabras, x0 es una letra, cada letra en u no es mayor que x y x0 es mayor que x. La letra x es reemplazada por x0, luego la fila con la palabra u · x0· v se convierte en u · x · v y x0 es lanzada a la siguiente fila. La tabla resultante tiene la palabra x0 · u · x · v. Luego, el algoritmo b´asico es

(u · x0· v) · x à x0 · u · x · v si u ≤ x < x0 ≤ v.

Aqu´ı u y v se incrementan d´ebilmente y la desigualdad u ≤ v implica que cada letra en u es menor o igual que cada letra en v. De esta forma, la inserci´on por filas de 2 en la tabla con palabra 5 6 4 4 6 2 3 5 5 1 2 2 3 puede ser escrita

(5 6)(4 4 6)(2 3 5 5)(1 2 2 3) · 2 7→ (5 6)(4 4 6)(2 3 5 5) · 3 · (1 2 2 2) 7→ (5 6)(4 4 6) · 5 · (2 3 3 5)(1 2 2 2) 7→ (5 6) · 6 · (4 4 5)(2 3 3 5)(1 2 2 2) 7→ (5 6 6)(4 4 5)(2 3 3 5)(1 2 2 2)

Knuth implement´o el algoritmo de Schensted en un lenguaje de programaci´on, dividi´endolo en algunos casos. Cuando se realiza inserci´on por filas de un elemento x en una tabla T , se intenta ubicar x al final de la primera fila, comparando x con la ´ultima entrada de la fila para verificar si la entrada es mayor. Si la entrada no es mayor, x se ubica al final. Si la ´ultima entrada z de la fila es mayor que x y la entrada y ubicada antes de z es mayor que x, x se ubica a la izquierda de y y se repite el proceso.

Los pasos con las respectivas reglas pueden ser listados de la siguiente forma

(44)

Cada una de estas transformaciones involucra tres letras consecutivas, las ´ultimas dos que fueron intercambiadas donde la primera sea mayor que la tercera y menor o igual que la segunda.

La transformaci´on b´asica para cada uno de estos pasos es:

(K0) y z x 7→ y x z si x < y ≤ z.

Se contin´ua con x reemplazando x0 y x0 movi´endose sucesivamente hacia la iz- quierda:

u1. . . up−1 up x0 x v 7→ u1. . . up−1 x0 up x v (up ≤ x < x0) 7→ u1. . . x0 up−1 up x v (up−1≤ up < x0) . . . 7→ u1 x0 u2 u3. . . up x v (u2 ≤ u3 < x0)

7→ x0 u1 u2. . . up x v (u1 ≤ u2 < x0).

Cada una de estas transformaciones se rige por la regla

(K00) x z y 7→ z x y si x ≤ y < z.

Estas dos transformaciones elementales pueden ser ilustradas y f´acilmente recor- dadas por simples productos o inserciones por filas:

y z x 7→ y x z x < y ≤ z.

y z · x = x z

y

x z y 7→ z x y x ≤ y < z.

x z · y = x y

z

Ambas reglas, con sus inversas, permiten intercambiar dos vecinos de la letra y, si uno es menor que y y el otro es mayor que y; lo mismo puede realizarse si uno es igual a y.

34

(45)

Definici´on 4.31. Una transformaci´on Knuth elemental en una palabra apli- ca una de las transformaciones (K) o (K0), o sus inversas, a tres letras consecu- tivas en una palabra.

Definici´on 4.32. Dos palabras son Knuth equivalentes si pueden ser cambia- das una por otra mediante una secuencia de transformaciones Knuth elementales.

Se escribe w ≡ w0 para denotar que las palabras w y w0 son knuth equivalentes.

Lo que hemos visto permite probar

Proposici´on 4.33. Para alguna tabla T y un entero positivo x, w(T ← x) ≡ w(T ) · x

Con la construcci´on del producto T · U de dos tablas realizando inserci´on por filas sucesivamente con las letras de la palabra U en T , se tiene:

Corolario 4.34. Si T ·U es el producto de dos tablas T y U, constru´ıdas haciendo inserci´on por filas de la palabra U en T , entonces

w(T · U) ≡ w(T ) · w(U)

Teorema 4.35. Cada palabra es Knuth equivalente a la palabra de una ´unica tabla.

La afirmaci´on de que cada palabra es Knuth equivalente a la palabra de alguna tabla es consecuencia de la proposici´on 4.31. En efecto, si w = x1. . . xr es una palabra, la proposici´on 4.31 muestra que es equivalente a la palabra de la tabla

((. . . ((x1 ← x2) ← x3) ← . . .) ← xr−1) ← xr

Este se denomina el procedimiento can´onico para construir una tabla cuya pala-

(46)

este conjunto, si w ≡ w0 y v ≡ v0, entonces por definici´on w · v ≡ w0· v ≡ w0· v0. Esto hace que M sea un monoide, con la unidad representada por la palabra vac´ıa

∅.

Definici´on 4.36. La transformaci´on de F a M que toma una palabra hacia su clase de equivalencia es un homomorfismo de monoides; M = F/R, donde R es la relaci´on de equivalencia generada por las relaciones Knuth (K0) y (K00). Lascoux y Sch¨utzenberger llamaron a M el monoide plactic.

El monoide de tablas es isomorfo al monoide plactic M = F/R. La asociatividad del producto es obvia con esta descripci´on. Por otra parte, si se tiene un monoide (M, ∗) con la operaci´on ∗ y un anillo R, es posible definir un nuevo anillo donde los elementos son combinaciones lineales formales de la forma r1m1+r2m2+. . .+rnmn, donde los ri ∈ R y los mi ∈ M. Las nuevas operaciones se definen como en los espacios vectoriales es decir, si se tienen dos combinaciones lineales de la forma anterior, su suma es la suma de las dos combinaciones lineales y el producto de rm y sj donde r, s ∈ R y m, j ∈ M es rm.sj = (rs)(m ∗ j). El anillo generado mediante estas operaciones se denota R[m] y se denomina anillo de tablas. Este es el m´odulo-Z y tiene como base las tablas con entradas en el alfabeto [m], con multiplicaci´on determinada por la multiplicaci´on de tablas; es un anillo asociativo pero no conmutativo.

36

(47)

4.5. Correspondencia Robinson-Schensted-Knuth

Para cada palabra w se denota con P (w) la ´unica tabla cuya palabra es Knuth equivalente a w. Diferentes palabras (pero Knuth equivalentes) determinan la mis- ma tabla. Si w = x1x2. . . xr, P (w) puede construirse mediante el procedimiento can´onico:

P (w) = ((. . . ((x1 ← x2) ← x3) ← . . .) ← xr−1) ← xr.

Ya se vi´o que el algoritmo de Schensted de inserci´on por filas una letra en una tabla es reversible, si se conocen las celdas que fueron agregadas al diagrama. Esto significa que se puede recuperar la palabra w con la tabla P (w) y la numeraci´on de las celdas resultantes del procedimiento can´onico. Mientras se construye P (w), se construye otra tabla con la misma forma, denotada Q(w), y llamada tabla grabaci´on (o tabla inserci´on), cuyas entradas son los enteros 1, 2, . . . , r. El entero k es ubicado en la celda que es agregada en el k-´esimo paso de la construcci´on de P (w). De esta forma, un 1 es ubicado en la celda superior izquierda y si Pk es la tabla

P (w) = ((. . . ((x1 ← x2) ← x3) ← . . .) ← xr−1) ← xr.

entonces k es ubicado en la celda que est´a en el diagrama de Pk pero no en Pk−1. Como la nueva celda est´a en un rinc´on externo, la nueva entrada es mayor que las entradas sobre y a la izquierda de ´esta. Sea Qk la tabla constru´ıda de esta forma despu´es de k pasos.

Por ejemplo, para la palabra w = (5 4 8 2 3 4 1 7 5 3 1), las parejas sucesivas (Pk, Qk) son:

5 1

4 1

(48)

2 8 1 3

4 2

5 4

2 3 1 3

4 8 2 5

5 4

2 3 4 1 3 6

4 8 2 5

5 4

1 3 4 1 3 6

2 8 2 5

4 4

5 7

1 3 4 7 1 3 6 8

2 8 2 5

4 4

5 7

1 3 4 5 1 3 6 8

2 7 2 5

4 8 4 9

5 7

38

(49)

1 3 3 5 1 3 6 8

2 4 2 5

4 7 4 9

5 8 7 10

1 1 3 5 1 3 6 8

2 3 2 5

4 4 4 9

5 7 7 10

8 11

Revirtiendo los pasos en el algoritmo Schensted, se puede recuperar la palabra a partir de un par de tablas (P, Q). Para ir de (Pk, Qk) a (Pk−1, Qk−1), se toma la celda con mayor entrada en Qk, y se aplica el algoritmo reverso de inserci´on por filas a Pk con esa celda. La tabla resultante es Pk−1 y el elemento que es movido de la fila superior de Pk es el k-´esimo elemento de la palabra w. Se remueve el mayor elemento (k) de Qk para construir Qk−1.

Cualquier par (P, Q) de tablas de la misma forma, con Q est´andar funciona de esta forma. Siempre se puede realizar el procedimiento descrito en el p´arrafo anterior.

Si se tienen r celdas, se tiene una cadena de pares de tablas (P, Q) = (Pr, Qr), (Pr−1, Qr−1), . . . , (P1, Q1)

cada par tiene la misma forma, con cada Qk est´andar. La letra xk que tiene una ocurrencia m´as en Pk que en Pk−1 es la k-´esima letra de una palabra w y la tabla proviene de esta palabra, es decir, P = P (w), Q = Q(w). N´otese que especificar una tabla est´andar de la forma dada es igual que numerar celdas de tal manera que la forma de las celdas con los primeros k n´umeros es un diagrama de Young

(50)

correspondencia Robinson-Schensted. En el caso que r = n y las letras de w deban ser n´umeros 1, . . . , n, con una ocurrencia; es decir, w es una permutaci´on de [n]

(permutaci´on que toma i como la i-´esima letra de w) y P una tabla est´andar. Esta es la correspondencia original de Robinson, redescubierta de forma independiente por Schensted, entre permutaciones y pares de tablas est´andar. Este caso especial se conoce como correspondencia Robinson.

Knuth lo generaliz´o para describir qu´e corresponde a un par arbitrario ordenado de tablas (P, Q) de la misma forma, si P tiene entradas del alfabeto [n] y Q de [m]. Se puede realizar el procedimiento inverso, para obtener una secuencia de pares de tablas

(P, Q) = (Pr, Qr), (Pr−1, Qr−1), . . . , (P1, Q1),

donde las dos tablas de cada par tienen la misma forma y una celda menos que el par que las precede. Para construir (Pk−1, Qk−1) de (Pk, Qk), se busca la celda con mayor entrada en Qk; si hay varias celdas con la misma entrada, se selecciona la celda m´as alejada de la derecha. Luego Pk−1 es el resultado de realizar reverso de inserci´on por filas a Pk usando esta celda para empezar y Qk−1 el resultado de remover la entrada de esta celda de Qk. Sea uk la entrada removida de Qk y vk la entrada removida de la fila superior de Pk. De esto se obtiene un arreglo de dos filas ¡u

1u2... ur

v1v2 ... vr

¢. Si Q es una tabla est´andar, este arreglo es ¡ 1 2 ... r

v1 v2... vr

¢, que tiene la misma informaci´on de la palabra w = v1 v2 . . . vr. Un arreglo de dos filas es una palabra si su fila superior contiene los n´umeros 1, . . . , r en orden. Y cuando los vi son distintos elementos de [r], este arreglo es una forma usual de escribir una permutaci´on: se toma el entero i en el entero vi bajo este.

Con la construcci´on los ui est´an en orden decreciente (tomados de [m]):

u1 ≤ u2 ≤ . . . ≤ ur. (4.3)

Para los vi (tomados de [n]),

vk−1 ≤ vk si uk−1 = uk. (4.4)

Esto, del lema 4.21. que describe las rutas bumping de inserci´on de filas sucesivas.

40

(51)

Si uk−1 = uk, luego, la celda B0 que es removida de Pk se ubica a la derecha de la celda B que es removida de Pk−1en el siguiente paso. Esto nos ubica en el caso (1) del Lema de Inserci´on por Filas, luego la entrada vk removida primero es menor o igual que la entrada vk−1 removida despu´es.

Se dice que un arreglo de dos filas ω = ¡u1 u2... ur

v1v2...vr

¢ est´a en orden lexicogr´afico si se cumplen () y (). Este es el ordenamiento en parejas¡u

v

¢, con precedencia en la entrada superior¡u

v

¢¡u0

v0

¢ si u < u0 o si u = u0 y v ≤ v0. Dado alg´un arreglo de dos filas ω =¡u

1 u2... ur

v1v2...vr

¢que est´a en orden lexicogr´afico, se puede construir un par de tablas (P, Q) con la misma forma mediante el mismo procedimiento anterior. Este (P, Q) es el ´ultimo en una secuencia de pares (Pk, Qk), 1 ≤ k ≤ r. Empezando con P1 = v1 y Q1 = u1. Para construir (Pk, Qk) a partir de (Pk−1, Qk−1), inserci´on por filas de vk en Pk−1 obteniendo Pk; se agrega una celda a Qk−1 en la posici´on de la nueva celda en Pk, y ubicando uk en esta celda, para obtener Qk. Se ha visto que cada Pk es una tabla. para ver que cada Qk es una tabla, debemos mostrar que si uk est´a ubicado bajo la entrada ui en Pk−1, luego uk es mayor que ui. Si no, ser´ıan iguales y por (2) debemos tener vi vi+1. . . vk. Pero luego por el Row Bumping Lemma, las celdas agregadas desde Pi hasta Pk deben ir en diferentes columnas; lo cual es una contradicci´on.

Teorema 4.37. Teorema Robinson-Schensted-Knuth.

Las operaciones anteriores establecen una correspondencia uno a uno entre arre- glos lexicogr´aficos de dos filas ω y parejas (ordenadas) de tablas (P, Q) con la misma forma. Bajo esta correspondencia:

(i) ω tiene r entradas en cada fila ⇐⇒ P y Q cada una tiene r celdas. Las entradas de P son elementos de la fila inferior de ω y las entradas de Q son elementos de la fila superior de ω.

(ii) ω es una palabra ⇐⇒ Q es una tabla est´andar.

(52)

lexicogr´aficos correspondientes son iguales. De aqu´ı, que se pueda asociar un par de tablas con un arreglo arbitrario de dos filas.

42

(53)

Cap´ıtulo 5

Descripci´ on de algoritmos

Mediante la aplicaci´on Young Tableaux, el usuario puede ingresar un n´umero o una forma. Una vez ingresado alguno de ´estos valores, el usuario tiene m´ultiples posibilidades, a partir del n´umero y sus particiones o la forma ingresada:

Generar las particiones de un n´umero.

Generar todas las posibles tablas de Young est´andar de tama˜no n.

Calcular el n´umero de tablas est´andar de tama˜no n. (F´ormula recursiva).

Llenar una tabla de Young.

Obtener una tabla con los ganchos de una tabla de Young.

Determinar el n´umero de tablas est´andar que se pueden generar dada una forma. (F´ormula de Ganchos).

Generar la transpuesta de una tabla de Young.

(54)

5.1. Clase Young

Se utiliz´o la clase Young, que permite crear tablas de Young y tiene como atributos la forma correspondiente a la tabla almacenada en un Vector y un vector de vectores para almacenar las entradas en la tabla.

Cada fila est´a almacenada en un vector de tama˜no determinado por la forma.

- getInput.

Par´ametros. (String): Cadena tecleada por el usuario.

Valor devuelto. (Vector): Vector de enteros.

Almacena una cadena que contiene la entrada ingresada por el usuario en un vector. El usuario puede ingresar un n´umero o una forma. La forma debe ser ingresada sin par´entesis y sus entradas deben estar separadas por comas y sin espacios, de la siguiente manera: 7, 4, 1.

- validateShape.

Par´ametros. (Vector): Vector que almacena un forma.

Valor devuelto. (boolean: Retorna verdadero si la forma recibida como par´ametro es v´alida y falso si la forma no es v´alida.

Verifica si las entradas de la forma est´an en orden descendente. Se recorre el vector que almacena la forma, mientras se compara el valor de la celda actual con el valor de la siguiente celda para verificar el orden. De esta manera, la forma 5, 3, 2 es v´alida y la forma 2, 8 es incorrecta. Cuando la forma es incorrecta, se informa al usuario y se solicita ingresar la entrada nuevamente.

- tableauxInitializer.

Par´ametros. (Vector): Vector que contiene la forma de la tabla de Young.

Valor devuelto. (Vector <Vector>): Vector de vectores que almacena la tabla de Young inicializada en 1’s.

En el m´etodo tableauxInitializer se crea un vector de vectores que representa la tabla de Young, cada fila est´a almacenada en un vector de tama˜no deter- minado. El tama˜no de cada vector se define a partir del vector que contiene la forma.

44

(55)

Por ejemplo, si se recibe como par´ametro la forma 5 2 1

se crea un vector formado por 3 vectores, de tama˜nos 5, 2 y 1, respectiva- mente. Adem´as, cada elemento de los vectores se inicializa en 1.

1 1 1 1 1 1 1

1 - checkTableau.

Par´ametros. (Vector <Vector>): Vector de vectores que contiene una tabla de Young.

Valor devuelto. Boolean: Retorna verdadero si el valor de las entradas en cada fila es ascendente, falso si no se cumple esta condici´on.

La funci´on checkTableau recorre una tabla de Young por filas, se usa un vector auxiliar para almacenar cada fila con sus entradas respectivas y se verifica que el valor de sus elementos sea ascendente. Esta funci´on se usa para determinar si una tabla de Young es est´andar o no.

Con la tabla

1 2 2 3 4 5 5 6

6 7

como par´ametro, la funci´on checkTableau devuelve verdadero.

Por el contrario, la tabla

1 5 2 7 3

(56)

- transposeTableau.

Par´ametros. (Vector <Vector>): Vector de vectores que contiene una tabla de Young.

Valor devuelto. (Vector <Vector>): Vector de vectores que almacena la transpuesta de la tabla de Young.

Para calcular la transpuesta de una tabla de Young, se utiliz´o una matriz au- xiliar para facilitar el procedimiento. En esta matriz auxiliar se almacenaron las entradas de la tabla de Young, se gener´o la transpuesta de dicha matriz y posteriormente los valores de la transpuesta de la matriz se almacenaron en un vector de vectores que represent´o la transpuesta de la tabla de Young recibida como par´ametro. Este m´etodo se utiliza adem´as para verificar si una tabla de Young es est´andar o no.

Por ejemplo, llamando el m´etodo transposeTableau con la tabla de Young 1 3 4 6

2 5 7 se obtiene

1 2 7 3 5 4 6

que corresponde a la transpuesta de la tabla recibida.

- isTableau.

Par´ametros. (Vector <Vector>): Vector de vectores que contiene una tabla de Young.

Valor devuelto. (boolean): Devuelve verdadero si el valor de las entradas de la tabla se incrementa o falso si sucede lo contrario.

Para verificar que el orden de las entradas de la tabla es ascendente, se ge- nera la transpuesta de la tabla mediante el m´etodo transposeTableau y se

46

(57)

verifica que los valores de la tabla de Young y de su transpuesta sean de or- den ascendente utilizando la funci´on checkTableau. A diferencia del m´etodo checkTableau, ´este m´etodo adem´as de verificar el orden de las entradas por filas verifica que el orden sea ascendente por columnas.

La tabla

1 3 5 4 4 5 6 devuelve verdadero.

Mientras que la tabla

5 3 5 2 4 7 1

retorna falso, ya que el valor de las entradas por filas y por columnas no es ascendente.

- isStandardTableau.

Par´ametros. (Vector <Vector>): Vector de vectores que contiene una tabla de Young.

Valor devuelto. Boolean: Retorna verdadero si la tabla de Young recibida como par´ametro es est´andar o falso si la tabla no es est´andar.

Para determinar si una tabla de Young es est´andar se verifica que no haya entradas repetidas y posteriormente, si se cumple esta condici´on se verifica

(58)

vez en el vector. Si hay repeticiones en el vector, la funci´on devuelve el valor false; si no, se procede a determinar si el orden de las entradas es ascendente.

Para comprobar que el valor de las entradas de la tabla de Young sea incre- mental, se utiliza la funci´on isTableau que genera la transpuesta de la tabla y verifica que los valores de la tabla de Young y de su transpuesta sean de orden ascendente.

La tabla

1 2 4 5

3 6 7

8 10 9 es una tabla de Young est´andar.

La tabla

1 2 2 5 3 4 6 6 7 7

no es una tabla de Young est´andar. A pesar de que el valor de las entradas se incrementa, existen entradas repetidas.

La tabla

1 3 2 5 8 4 6 7

no es una tabla de Young est´andar. No existen entradas repetidas, pero el valor de las entradas no es ascendente.

- getNumOfCells.

Par´ametros. Vector : Vector que contiene la forma correspondiente a una tabla de Young.

48

(59)

Valor devuelto. int: Entero que determina el n´umero de celdas de acuerdo a una forma.

La funci´on getNumOfCells recorre la forma recibida como par´ametro y uti- liza un acumulador inicializado en 0 para adicionar las entradas del vector que almacena la forma.

Por ejemplo, si el vector que contiene la forma es

5 3 2 2

La funci´on retorna

12 - genResults.

Par´ametros. (Vector): Vector que contiene la forma de una tabla.

Valor devuelto. (Vector <Vector>): Vector de vectores con las combina- ciones posibles de tama˜nos dados por la forma.

Utilizando la clase Combination Generator, se generan todas las combinacio- nes con tama˜nos obtenidos del vector donde se almacena la forma. Durante el proceso, se verifica que no haya combinaciones repetidas y que las com- binaciones cuyo tama˜no sea la primera entrada del vector forma empiecen con el n´umero 1.

A continuaci´on se ilustra un ejemplo, para clarificar la funcionalidad del m´etodo.

Con la forma (3,2,1). En el m´etodo genResults se crea una variable de ti- po CombinationGenerator con los valores 6 y cada uno de las entradas de la forma, con la ayuda de los m´etodos implementados en la clase Combi-

(60)

[1, 2, 3], [1, 2, 4], [1, 2, 5], [1, 2, 6], [1, 3, 4], [1, 3, 5], [1, 3, 6], [1, 4, 5], [1, 4, 6], [1, 5, 6],

[2, 3], [2, 4], [2, 5], [2, 6], [3, 4], [3, 5], [3, 6], [4, 5], [4, 6], [5, 6], [2], [3], [4], [5], [6]

Se puede observar claramente el tama˜no de los vectores generados, corres- pondientes a la forma. Adem´as, cabe anotar que en los vectores no hay entradas repetidas, por ejemplo, no se genera un vector [1, 1, 2].

- generateTableaux.

Par´ametros. (Vector <Vector>, Vector, Vector, int, Vector <Vector> , BigInteger ): .

Valor devuelto. (void): Vector de vectores retornado por la funci´on gen- Results(), vector donde se almacena la tabla que se est´a generando (tabla actual), vector que contiene la forma, entero con la longitud de cada vector de la tabla de Young (valores de la forma), vector de vectores donde se al- macenan las tablas que han sido encontradas, BigInteger acumula el n´umero de tablas que se van generando.

Para empezar, se utiliza la funci´on flattenTableau para almacenar en un vector la tabla que se est´a generando. Si el tama˜no de la tabla actual es igual al tama˜no de la forma, es decir, si la tabla actual contiene tantos vectores como el tama˜no de la forma, se procede a verificar si la tabla es est´andar. Si la tabla es est´andar se almacena la tabla actual en el vector de vectores de tablas encontradas.

Continuando con el ejemplo del m´etodo anterior, veamos el procedimiento en detalle para generar las tablas de Young con forma (3,2,1).

1 2 3 4 5 6

1 2 3 4 6 5

1 2 4 3 5 6

1 2 4 3 6 5

1 2 5 3 4 6

1 2 5 3 6 4

1 2 6 3 4 5

1 2 6 3 5 4

50

Referencias

Documento similar