Articulo de referencia

Programa de línea recta

En informática , un programa lineal es, informalmente, un programa que no contiene ningún bucle ni ninguna condición, y que está formado por una secuencia de pasos en los que se...

En informática , un programa lineal es, informalmente, un programa que no contiene ningún bucle ni ninguna condición, y que está formado por una secuencia de pasos en los que se aplica cada operación a elementos calculados previamente.

Este artículo se centra en el caso en que las operaciones permitidas son las de un grupo , es decir, la multiplicación y la inversión. Más específicamente, un programa de línea recta ( SLP ) para un grupo finito G = S es una secuencia finita L de elementos de G tal que cada elemento de L pertenece a S , es el inverso de un elemento precedente o el producto de dos elementos precedentes. Se dice que un SLP L calcula un elemento de grupo gG si gL , donde g está codificado por una palabra en S y sus inversos.     

Intuitivamente, un SLP que calcula algún g G es una forma eficiente de almacenar g como una palabra de grupo sobre S ; observe que si g se construye en i pasos, la longitud de la palabra g puede ser exponencial en i , pero la longitud del SLP correspondiente es lineal en i . Esto tiene importantes aplicaciones en la teoría de grupos computacional , al utilizar SLP para codificar eficientemente elementos de grupo como palabras sobre un conjunto generador dado.  

Los programas de línea recta fueron introducidos por Babai y Szemerédi en 1984 [ 1 ] como una herramienta para estudiar la complejidad computacional de ciertas propiedades de grupos de matrices. Babai y Szemerédi demuestran que cada elemento de un grupo finito G tiene un SLP de longitud O (log 2 | G |) en cada conjunto generador.

Una solución eficiente al problema de pertenencia constructiva es crucial para muchos algoritmos de teoría de grupos. Se puede expresar en términos de SLP de la siguiente manera: dado un grupo finito G  = S y gG , encontrar un programa de línea recta que calcule g sobre S. El problema de pertenencia constructiva se estudia a menudo en el contexto de grupos de caja negra . Los elementos se codifican mediante cadenas de bits de longitud fija. Se proporcionan tres oráculos para las funciones de teoría de grupos de multiplicación, inversión y comprobación de igualdad con la identidad. Un algoritmo de caja negra es aquel que utiliza únicamente estos oráculos. Por lo tanto, los programas de línea recta para grupos de caja negra son algoritmos de caja negra.    

En el ATLAS de Grupos Finitos en línea se proporcionan programas explícitos de línea recta para una gran cantidad de grupos simples finitos .

Definición

Definición informal

Sea G un grupo finito y sea S un subconjunto de G. Una sucesión L = ( g 1 ,..., g m ) de elementos de G es un programa de línea recta sobre S si cada g i puede obtenerse mediante una de las siguientes tres reglas:

  1. g iS
  2. g i = g j{\displaystyle \cdot }g k para algún j , k < i
  3. g i = g −1 j para algún j < i .

El costo en línea recta c ( g | S ) de un elemento gG es la longitud de un programa en línea recta más corto sobre S que calcula g . El costo es infinito si g no está en el subgrupo generado por S.

Un programa lineal es similar a una derivación en lógica de predicados. Los elementos de S corresponden a axiomas y las operaciones de grupo corresponden a las reglas de inferencia.

Definición formal

Sea G un grupo finito y sea S un subconjunto de G. Un programa de línea recta de longitud m sobre S que calcula algún gG es una secuencia de expresiones ( w 1 ,..., w m ) tales que para cada i , w i es un símbolo para algún elemento de S , o w i = ( w j ,-1) para algún j < i , o w i = ( w j , w k ) para algún j , k < i , tales que w m toma el valor de g cuando se evalúa en G de la manera obvia.

La definición original que aparece en [ 2 ] requiere que G = S . La definición presentada anteriormente es una generalización común de esta.

Desde una perspectiva computacional, la definición formal de un programa de línea recta presenta algunas ventajas. En primer lugar, una secuencia de expresiones abstractas requiere menos memoria que términos sobre el conjunto generador. En segundo lugar, permite construir programas de línea recta en una representación de G y evaluarlos en otra. Esta es una característica importante de algunos algoritmos. [ 2 ]

Ejemplos

El grupo diedral D 12 es el grupo de simetrías de un hexágono. Se puede generar mediante una rotación de 60 grados ρ y una reflexión λ. La columna de la izquierda de la siguiente tabla es un programa de línea recta para λρ 3 :

En S 6 , el grupo de permutaciones de seis letras, podemos tomar α=(1 2 3 4 5 6) y β=(1 2) como generadores. La columna de la izquierda es un ejemplo de un programa lineal para calcular (1 2 3)(4 5 6):

Aplicaciones

Descripciones breves de grupos finitos . Los programas de línea recta se pueden usar para estudiar la compresión de grupos finitos mediante lógica de primer orden . Proporcionan una herramienta para construir oraciones "cortas" que describen G (es decir, mucho más cortas que | G |). En más detalle, los SLP se usan para demostrar que todo grupo simple finito tiene una descripción de primer orden de longitud O (log| G |), y todo grupo finito G tiene una descripción de primer orden de longitud O (log₃ | G | ). [ 3 ]

Programas de línea recta para calcular conjuntos generadores de subgrupos máximos de grupos simples finitos . El ATLAS en línea de Representaciones de Grupos Finitos [ 4 ] proporciona programas abstractos de línea recta para calcular conjuntos generadores de subgrupos máximos para muchos grupos simples finitos.

Ejemplo : El grupo Sz(32), perteneciente a la familia infinita de grupos de Suzuki , tiene rango 2 mediante los generadores a y b , donde a tiene orden 2, b tiene orden 4, ab tiene orden 5, ab₂ tiene orden 25 y abab₂ab₃ tiene orden 25. A continuación se muestra un programa de línea recta que calcula un conjunto generador para un subgrupo maximal E₃₂ · E₃₂ C₃₁ . Este programa de línea recta se puede encontrar en el ATLAS en línea de Representaciones de Grupos Finitos .

Teorema de alcanzabilidad

El teorema de alcanzabilidad establece que, dado un grupo finito G generado por S , cada gG tiene un costo máximo de (1  + lg | G | ) 2 . Esto puede entenderse como una cota sobre la dificultad de generar un elemento del grupo a partir de los generadores.

Aquí la función lg( x ) es una versión con valores enteros de la función logaritmo : para k ≥1 sea lg( k ) = max{ r  : 2 rk }.

La idea de la demostración es construir un conjunto Z = { z 1 ,..., z s } que funcione como un nuevo conjunto generador ( s se definirá durante el proceso). Generalmente es mayor que S , pero cualquier elemento de G puede expresarse como una palabra de longitud como máximo 2 | Z | sobre Z. El conjunto Z se construye definiendo inductivamente una secuencia creciente de conjuntos K ( i ).

Sea K ( i ) = { z 1 α 1 · z 2 α 2 ·...· z i α i  : α j ∈ {0,1}}, donde z i es el elemento del grupo añadido a Z en el paso i . Sea c ( i ) la longitud del programa de línea recta más corto que contiene Z ( i ) = { z 1 ,..., z i }. Sea K (0) = {1 G } y c (0)=0. Definimos el conjunto Z recursivamente:

  • Si K ( i ) −1 K ( i ) = G , declara que s toma el valor i y detente.
  • De lo contrario, elija algún z i +1G \ K ( i ) −1 K ( i ) (que no sea vacío) que minimice el "aumento de costo" c ( i +1) − c ( i ).

Mediante este proceso, Z se define de tal manera que cualquier gG puede escribirse como un elemento de K ( i ) −1 K ( i ), lo que efectivamente facilita su generación a partir de Z.

Ahora necesitamos verificar la siguiente afirmación para asegurarnos de que el proceso termina en lg(| G |) pasos:

Afirmación 1 Si i < s entonces | K ( i +1) | = 2 | K ( i ) | .

Prueba

Es inmediato que | K ( i +1) | ≤ 2 | K ( i ) | . Ahora supongamos por contradicción que | K ( i +1) | < 2 | K ( i ) | . Por el principio del palomar hay k 1 , k 2K ( i +1) con k 1 = z 1 α 1 · z 2 α 2 ·...· z i +1 α i +1 = z 1 β 1 · z 2 β 2 ·...· z i +1 β i +1 = k 2 para algún α j , β j ∈ {0,1}. Sea r el mayor entero tal que α rβ r . Supongamos sin pérdida de generalidad que α r = 1. De ello se deduce que z r = z pα p · z p -1 α p -1 ·...· z 1 α 1 · z 1 β 1 · z 2 β 2 ·...· z q β q , con p , q < r . Por lo tanto, z rK ( r −1) −1 K ( r  1), una contradicción.

La siguiente afirmación se utiliza para demostrar que el coste de cada elemento del grupo se encuentra dentro del límite requerido.

Afirmación 2 c ( i ) ≤ i 2i .

Prueba

Dado que c (0)=0, basta con demostrar que c ( i +1) - c ( i ) ≤ 2 i . El grafo de Cayley de G es conexo y si i < s , K ( i ) −1 K ( i ) ≠ G , entonces hay un elemento de la forma g 1 · g 2G \ K ( i ) −1 K ( i ) con g 1K ( i ) −1 K ( i ) y g 2S .

Se necesitan como máximo 2 i pasos para generar g 1K ( i ) −1 K ( i ). No tiene sentido generar el elemento de longitud máxima, ya que es la identidad. Por lo tanto, 2 i −1 pasos son suficientes. Para generar g 1 · g 2G \ K ( i ) −1 K ( i ), 2 i pasos son suficientes.

Ahora terminamos el teorema. Dado que K ( s ) −1 K ( s ) = G , cualquier gG puede escribirse en la forma k −1 1 · k 2 con k −1 1 , k 2K ( s ). Por el Corolario 2, necesitamos como máximo s 2s pasos para generar Z ( s ) = Z , y no más de 2 s − 1 pasos para generar g a partir de Z ( s ).

Por lo tanto, c ( g | S ) ≤ s 2 + s − 1 ≤ lg 2 | G | + lg | G | − 1 ≤ (1 + lg | G | ) 2 .

Referencias

  1. Babai, László y Endre Szemerédi. «Sobre la complejidad de los problemas de grupos de matrices I». Fundamentos de la informática, 1984. XXV Simposio Anual sobre Fundamentos de la Informática. IEEE, 1984.
  2. 1 2 Ákos Seress. (2003). Algoritmos de grupos de permutación. [En línea]. Cambridge Tracts in Mathematics. (N.º 152). Cambridge: Cambridge University Press.
  3. Nies, André; Tent, Katrin (2017). "Descripción de grupos finitos mediante oraciones cortas de primer orden" . Israel Journal of Mathematics . 221 : 85–115 . arXiv : 1409.8390 . doi : 10.1007/s11856-017-1563-2 .
  4. "ATLAS de Representaciones de Grupos Finitos - V3" .