F5 (algoritmo)

El algoritmo F5 para calcular la base de Gröbner fue propuesto por J.-Ch. Foger en 2002. En este artículo, consideraremos su versión matricial, que funciona para polinomios homogéneos . El procedimiento principal de este algoritmo calcula la base d de Gröbner, es decir, el subconjunto de la base de Gröbner con respecto al cual todos los polinomios de un ideal de grado como máximo d se reducen a cero.

En el algoritmo F5, cada polinomio resultante está asociado con una firma (un par de un monomio y un número generador) que codifica información sobre el origen de este polinomio. La idea principal es no incluir, si es posible, en las matrices aquellas filas que obviamente serán linealmente dependientes con el resto (es decir, se reducirán a cero).

Para ello, se limitan las reducciones a aquellos que no modifican la firma de los elementos, y entre los siguientes polinomios en proceso, se consideran únicamente aquellos cuyo monomio de firma no es divisible por ninguno de los monomios más altos de los elementos ya encontrados de la base. .

Pseudocódigo del algoritmo de matriz F5

Entrada: polinomios homogéneos con potencias de máximo grado .

Salida: elementos de grado no superior a la base de Gröbner reducida de para .

Algoritmo:

para i de 1 an do Gᵢ : = 0 ; end for // inicializa las Bases de Gröbner Gᵢ de (f, …, fᵢ). para d₁ de d a D hacer _ { re , 0 } := 0 , ℳ̅ _ { re , 0 } := 0 para i de 1 a m do si d < dᵢ entonces_ { d , i } :=_ { d , i - 1 } de lo contrario si d = dᵢ entonces _ { d , i } := agregue la nueva fila fᵢ a ℳ̅ _ { dᵢ , i - 1 } con índice ( i , 1 ) más _ { re , yo } := ℳ̅ _ { re , yo - 1 } Crítico := LT ( ℳ̅ _ { d - dᵢ , i - 1 }) para f en Filas (_ { d - 1 , i }) \ Filas (_ { d - 1 , i - 1 }) hacer ( yo , u ) := índice ( f ) , con u = x_ { j₁ } , ... , x_ { jd - dᵢ - 1 } , y 1j₁ ≤ … ≤ j_ { re - dᵢ - 1 }norte para j de j_ { d - dᵢ - 1 } a n do si uxⱼCrit entonces agregue la nueva fila xⱼf con índice ( i , uxⱼ ) en_ { d , i } terminar si fin para fin para terminar si Calcule ℳ̅ _ { d , i } por eliminación gaussiana de_ { d , i } Agregue a Gᵢ todas las filas de ℳ̅ _ { d , i } no reducibles por LT ( Gᵢ ) fin para fin para volver [ Gᵢ | yo = 1 , ... , metro ]

El ciclo for en la línea 14 construye una matriz que contiene todos los polinomios en c (excepto aquellos que anulan trivialmente). Para evitar cálculos redundantes, se construyen a partir de las filas de la matriz anterior , es decir, todas las filas se multiplican por todas las variables. La fila en el índice c puede ocurrir a partir de múltiples filas en , podemos construirla a partir de la fila indexada en c , y multiplicarla por , la variable más grande que ocurre en . Esto asegura que cada fila se tome exactamente de una fila de la matriz anterior.

Un ejemplo del algoritmo F5

Considere un sistema homogéneo con orden lexográfico inverso graduado por el algoritmo matricial .

Para calcular la base de Gröbner , definimos , y , y consideramos los pares críticos y . Al igual que en el algoritmo , usamos la parte de la matriz power-2 para unir estos tres pares críticos:

y después de llevar la matriz a una forma triangular:

y aparecen dos polinomios "nuevos": y , que son el resultado de rebajar los pares críticos y . Tenga en cuenta que la firma del polinomio es , que corresponde a la etiqueta a la izquierda de esta fila (subrayada en la matriz ).

También tenga en cuenta que el 18 subrayado no se reduce por , ya que la firma es , que es menor que . Mientras que el 0 subrayado se decrementa desde . Esto prueba que la reducción en el algoritmo es una reducción unidireccional.

El siguiente paso es considerar nuevos pares críticos: y . Seleccionamos pares por grado y construimos una matriz de grado 3 para trabajar juntos con los próximos pares críticos . Solo necesitamos considerar partes , con partes que se pueden escribir y respectivamente.

Al igual que el algoritmo , las partes son aquellas filas que se van a reducir en Matrix y también debemos seleccionar las partes que se usan para reducir esas filas. Como son partes , debemos agregar partes a la matriz para eliminarlas.

Ahora tenemos una matriz con grado 3 (ordenada por firma):

y después de la reducción a una forma triangular:

y polinomio y son los resultados de la reducción de pares críticos con grado 3. Nótese que aunque , el polinomio etiquetado no es -reducible a . Por lo tanto, sigue siendo un polinomio "nuevo".

Ahora el significado del criterio escrito es mucho más claro. Al construir la matriz , enumeramos las firmas de cada fila (polinomio) entre paréntesis. Los polinomios etiquetados con las mismas firmas aparecerán en la misma fila de la matriz, por lo que basta con tratar con los resultados más recientes (es por eso que pensamos en el orden en que se crean los polinomios etiquetados). También la reducción unilateral es evidente en la matriz . Miremos la línea . Los 0, 0 subrayados disminuyen en las líneas y respectivamente, mientras que los 8,1,18 subrayados no se excluyen en las líneas y . la razón es que la reducción en el algoritmo es una reducción unidireccional. Más específicamente, las firmas de cadena y this y , que son menores que la cadena .

Así, las cadenas y son capaces de reducir la cadena . Sin embargo, tenemos tan cuerdas y no cortamos cuerdas . Tenga en cuenta que dado que solo las filas y deben almacenarse, las otras filas no se reducen por completo en la matriz .

Sin embargo, debemos darnos cuenta de que, si bien los dos nuevos criterios del algoritmo pueden descartar casi todos los cálculos inútiles, la reducción unidireccional da como resultado una eficiencia de eliminación de matriz más baja que la de .

Literatura

  • J.-C. Faug`ere. Un nuevo algoritmo eficiente para calcular bases de Grobner sin reducción a cero (F5).
  • M. Bardet, J.-C. Faug`ere, B. Salvy.Sobre la complejidad del algoritmo de base F5 Grobner.
  • C. Eder, J.-C. Faug`ere. Una encuesta sobre cálculos de base de Grobner basados ​​en firmas.
  • Stegers, T., 2005. Revisión del algoritmo F5 de Faug'ere. Tesis para el grado de Diplom-Mathematiker