F4 (algoritmo)

El algoritmo F4 fue propuesto por Jean-Charles Faugeré en 1999 como un nuevo algoritmo eficiente de cálculo de la base de Gröbner [1] . Este algoritmo calcula la base de Gröbner de un ideal en un anillo polinomial utilizando una serie de procedimientos estándar de álgebra lineal: reducciones de matrices. Es uno de los más rápidos hasta la fecha.

Algoritmo

Definiciones
  • La pareja crítica es miembro

tal que

  • Definimos el grado de un par crítico como .
  • Definimos los siguientes operadores: y
Pseudocódigo del algoritmo F4 (versión simplificada)

Entrada:

Salida: subconjunto finito


mientras lo haces

para hacer

devolver

Algoritmo de reducción

Ahora podemos extender la definición de módulo de reducción de polinomios

subconjunto , hasta la reducción del subconjunto por

módulo otro subconjunto :

Entrada: L, G subconjuntos finitos

Salida: subconjuntos finitos (puede estar vacío)


devolver

No se utiliza ninguna operación aritmética: se trata de un preprocesamiento simbólico.

Algoritmo de preprocesamiento simbólico

Entrada: L, G subconjuntos finitos

Salida: subconjuntos finitos

mientras lo haces

si se lanza desde arriba módulo entonces

existe

devolver

Lema

Para todos los polinomios tenemos

Teorema (sin demostración)

El algoritmo calcula la base de Gröbner G en

tal que

Comentario

Si # es para todos , entonces el algoritmo se reduce al algoritmo de Buchberger . En este caso, la función Sel es la estrategia de selección equivalente al algoritmo de Buchberger.

Función de selección

Entrada : lista de pares críticos

Salida : lista de pares críticos

devolver

Llamamos a esta estrategia la estrategia normal para .

Por tanto, si los polinomios de entrada son uniformes, llegamos a la potencia y d es la base de Gröbner.

En el siguiente paso, elegimos todos los pares críticos necesarios para calcular la base de Gröbner elevada a d+1.

Optimización del algoritmo F4

Hay varias formas de optimizar el algoritmo:

  • inclusión de la prueba de Buchberger (o prueba F5);
  • reutilización de todas las filas en las matrices dadas.

Algoritmo de criterios de Buchberger - implementación:

Entrada:

Salida: subconjunto final de la lista actualizada de pares críticos

Pseudocódigo del algoritmo F4 (con criterio)

Entrada:

Salida: subconjunto finito de .

mientras lo haces

mientras lo haces

por

devolver

F4 y sus diferencias con el Algoritmo de Buchberger

Sea un conjunto finito de polinomios . Sobre la base de este conjunto, se construye una gran matriz dispersa, cuyas filas corresponden a polinomios de , y las columnas corresponden a monomios. La matriz contiene los coeficientes de polinomios en los monomios correspondientes. Las columnas de la matriz se ordenan según el orden monomio seleccionado (el monomio más alto corresponde a la primera columna). La reducción de tal matriz a una forma escalonada permite encontrar la base del tramo lineal de polinomios en el espacio de polinomios.

Supongamos que en el algoritmo clásico de Buchberger se requiere realizar un paso de reducción del polinomio con respecto a , y al mismo tiempo se debe multiplicar por un monomio . En el algoritmo F4, y se colocará especialmente en la matriz . Se afirma que es posible preparar por adelantado un conjunto de todos los posibles reductores de multiplicación que pueden ser necesarios y colocarlos por adelantado en una matriz. [2]

Generalizamos el algoritmo F4 [3] :

necesitamos reducir el polinomio con respecto al conjunto . Para esto nosotros

(1) agregar a la matriz;

(2) construimos el soporte del polinomio (el conjunto de monomios);

(3) si está vacío, finalizar el procedimiento;

(4) elegir el monomio máximo en (y descartarlo de );

(5) si no es divisible por ninguno de los elementos monomio más altos , vaya al paso (3);

(6) en caso contrario elegimos el reductor ∈ (y el factor adicional ): entonces ;

(7) agregar a la matriz;

(8) agregue monomios del polinomio (excepto el más alto ) al conjunto ;

(9) vaya al paso (3).


Este procedimiento para rellenar una matriz con reductores multiplicados se denomina preprocesamiento simbólico . Además, en lugar de S-polinomios, puede colocar sus partes izquierda y derecha en la matriz (al reducir una fila por otra, obtiene automáticamente un S-polinomio).

Finalmente, la tercera diferencia con el algoritmo de Buchberger es que en el algoritmo F4 se permite colocar partes de varios S-polinomios elegidos de acuerdo con alguna estrategia en una matriz. Entonces, si se selecciona un polinomio S en cada paso, se repite el algoritmo clásico de Buchberger .

El otro extremo es cuando el conjunto de todos los S-polinomios disponibles se reduce en el siguiente paso. Esto tampoco es muy eficiente debido al gran tamaño de las matrices. El autor del algoritmo J.-Sh. Faugère propuso una estrategia normal para elegir S-polinomios para la reducción [4] , según la cual se eligen S-polinomios con el menor grado de lados izquierdo y derecho. Da buenos resultados empíricos para ordenar DegRevLex y su elección es natural para ideales homogéneos.

Se pueden hacer varias mejoras naturales al algoritmo. Como en el algoritmo clásico para calcular la base de Gröbner , los criterios de Buchberger se pueden utilizar para filtrar polinomios S obviamente innecesarios.

Implementaciones

Algoritmo F4 implementado

  1. en FGb, implementación propia de Faugère [4] , que incluye interfaces para usarlo desde C / C++ o Maple ;
  2. en el sistema de álgebra computacional Maple como método opcional = fgb de la función Groebner [gbasis] ;
  3. en el sistema de álgebra computacional Magma , en el sistema de álgebra computacional SageMath.

Ejemplo

Tarea: Calcular la base de Gröbner para polinomios Primero , asignamos

1) Preprocesamiento de símbolos

Estoy listo ahora.

2) Preprocesamiento de símbolos

desde arriba se reduce a .

3) Preprocesamiento de símbolos

no se reduce a .

cuatro)

Representación matricial de la resultante :

Reducción gaussiana de la matriz resultante :

De esta matriz obtenemos:

Y desde entonces

y entonces

Para el siguiente paso, debemos considerar

De aquí

En el preprocesamiento simbólico, puede intentar simplificar utilizando los cálculos anteriores:

Por ejemplo, 1) Preprocesamiento de símbolos

2) Preprocesamiento de símbolos

3) Preprocesamiento de símbolos

Describamos la simplificación

Propósito: reemplazar cualquier producto con el producto , donde es la cadena previamente calculada, y divide el monomio

En la primera versión del algoritmo: algunas filas de la matriz nunca se usan (filas en la matriz ).

Nueva versión del algoritmo: guardamos estas cadenas

SIMPLIFY intenta reemplazar el producto con el producto , donde

cadena ya calculada en reducción gaussiana, y ut divide el monomio m; Si hemos encontrado el mejor producto, llamamos recursivamente a la función SIMPLIFY:

Entrada:

Salida: El resultado es equivalente a

para hacer

si

si

devolver

de lo contrario volver

devolver

Algoritmo PREPROCESAMIENTO SIMBÓLICO  

Entrada:

Salida: subconjunto finito de .

mientras lo haces

si se lanza desde arriba módulo entonces

existe

devolver

Ahora volvamos al ejemplo.

4) Preprocesamiento de símbolos

Y así....

5) Preprocesamiento de símbolos

Después de la reducción de Gauss:

y

En el siguiente paso tenemos:

y llame recursivamente a la simplificación:

En el siguiente paso tenemos:

y

Después de algunos cálculos, resulta que el rango es 5.

Esto significa que hay una anulación inútil.

En el siguiente paso tenemos:

y

Preprocesamiento de símbolos

Enlaces

  1. https://en.wikipedia.org/wiki/Magma_(computer_algebra_system)

Notas

  1. Jean-Charles Faugère. Un nuevo algoritmo eficiente para calcular bases de Gr¨obner (f4). Diario de Álgebra Pura y Aplicada. — 1999.
  2. Estudio de bases de Gröbner  // msu. Archivado desde el original el 11 de julio de 2019.
  3. [ http://www.broune.com/papers/f4.pdf EL ALGORITMO F4 QUE ACELERA LOS CÁLCULOS EN BASE DE GROBNER USANDO ÁLGEBRA LINEAL] // BJARKE HAMMERSHOLT ROUNE. Archivado desde el original el 30 de diciembre de 2019.
  4. ↑ 1 2 ¿ La propia implementación  de Faugère  ? . Consultado el 1 de diciembre de 2020. Archivado desde el original el 15 de junio de 2021.

Literatura

  • J.-C. Faug'ere. Un nuevo algoritmo eficiente para calcular bases de Gr¨obner sin reducción a cero (F5).
  • J.-C. Faug'ere Un Nuevo Algoritmo Eficiente para Calcular Bases de Gr¨obner (F4). Revista de álgebra pura y aplicada, 139 (1999), 61–88.
  • Cox D., Little J., O'Shea D., Ideales, Variedades y Algoritmos. Una introducción a la geometría algebraica computacional y al álgebra conmutativa, Nueva York, NY: Springer, 1998]