Puntos de referencia para las bases de Gröbner y la solución del sistema polinomial


10

En la reciente pregunta Resolviendo el sistema de 7 ecuaciones algebraicas no lineales simbólicamente , Brian Borchers confirmó experimentalmente que Maple puede resolver un sistema polinomial que Matlab / Mupad no puede manejar. En el pasado, he oído de personas que trabajan en el campo que Maple tiene una implementación de alta calidad de bases de Gröbner y algoritmos relacionados (que supongo es lo que se está utilizando aquí).

Así que estoy tentado a sugerir "Matlab es lento en este tipo de problemas, cambie a Maple", pero me gustaría tener datos para respaldar esta afirmación.

¿Existe un conjunto de resultados de referencia que comparen la velocidad y la eficacia de las implementaciones basadas en Gröbner y las soluciones de sistemas polinomiales en diferentes sistemas de álgebra computacional? (Maple, Mathematica, caja de herramientas simbólicas de Matlab, etcétera).


No se olvide sympy!
Christian Clason

@ChristianClason Sí, en principio hay muchos de ellos. Singular, Macaulay, Magma, CoCoA, Gap, Sage, Axiom, Maxima, Yacas ... ¿Crees que Sympy es particularmente bueno? ¿Cómo le va en el problema de Alaa?
Federico Poloni

No es que crea que sea particularmente bueno, solo me interesa, ya que está ampliamente disponible, es de código abierto y es bastante fácil de aprender. Lo intenté con el problema, pero no obtuve ningún resultado (pero tampoco tuve mucha paciencia).
Christian Clason

Creo que uno debería diferenciar entre el software simbólico de propósito general (SymPy, Maple, la caja de herramientas de Matlab, Mathematica) y la mayor fuerza industrial, paquetes de propósito especial (Singular, CoCoA, Macaulay). Sage es un poco diferente porque esencialmente solo agrupa muchos paquetes de propósito especial (junto con algunos de uso general). Hay una lista útil en Wikipedia .
Christian Clason

Otra razón por la que mencioné sympy es que cumple el mismo papel que le interesa a Alaa: es fácil usar los resultados (vía lambdify) en cálculos numéricos.
Christian Clason

Respuestas:


10

Publiqué algunos puntos de referencia aquí: http://www.cecm.sfu.ca/~rpearcea/mgb.html

Estos son para pedidos de grado total. Para resolver sistemas, normalmente necesita hacer más trabajo. Los tiempos son para un escritorio de rango medio típico a partir de 2015 (Haswell Core i5 quad core).

El sistema más rápido en un núcleo es Magma, que utiliza aritmética de coma flotante y SSE / AVX. Magma es el sistema más fuerte porque tiene buenas implementaciones de FGLM y Groebner Walk (no probado). Estos algoritmos se utilizan para convertir una base de grado total en una base lexicográfica que tiene una forma triangular. Entonces, típicamente factorizaría polinomios en las variables más bajas.

mgb es la biblioteca C en Maple 2016 que implementa el algoritmo F4 para órdenes de eliminación y grado total. Su rendimiento es comparable al de Magma cuando usa múltiples núcleos.

FGb es la implementación de Faugere de F4. La versión probada aquí es de su sitio web, y es más rápida que la versión en Maple.

Giac es un sistema de código abierto con una implementación de F4. Hay un artículo que lo describe http://arxiv.org/abs/1309.4044

Singular es un sistema de código abierto para muchos cálculos en geometría algebraica. Los puntos de referencia aquí usan "modStd", que es una versión multi-modular del algoritmo Buchberger. Puede ver que el algoritmo de Buchberger no es competitivo con F4. La razón básica es que F4 amortiza el costo de todas las operaciones monomiales. Aparte de eso, Singular tiene implementaciones razonablemente buenas de FGLM y Groebner Walk, así como otros algoritmos útiles para resolver.


Gracias, esto es muy útil. Estoy considerando cambiar la respuesta aceptada.
Federico Poloni

8

Buscar en Google benchmark polynomial systemsconduce a algunos éxitos, incluida la Iniciativa de referencia de álgebra informática de la Universidad de Mannheim . Lamentablemente, la mayoría de estos están desactualizados o desaparecidos. El más activo parece ser el Wiki SymbolicData , pero por lo que puedo decir, solo recopila problemas de referencia , no resultados de referencia .

Algunas comparaciones (que se remontan a 1996) de Axiom, Macsyma, Maple, Mathematica, MuPAD y Reducción de sistemas polinomiales de resolución se pueden encontrar en Hans-Gert Gräbe, About the Polynomial System Solve Facility de Axiom, Macsyma, Maple, Mathematica, MuPAD, y Reduce , Preprint 11/96 des Instituts für Informatik, Universität Leipzig, Alemania, diciembre de 1996 . La conclusión es que Axiom, Maple y Reduce ganan debido al uso de bases Gröbner (los otros no lo hicieron en este momento), con Maple saliendo ligeramente por delante de los demás.

También hay una antigua comparación en el sitio web SINGULAR que muestra SINGULAR 2.0 (actual a diciembre de 2015 es 4.0.2) superando a Maple, entre otros.

Por otro lado, una publicación más reciente ( Yao Sun, Dongdai Lin y Dingkang Wang. 2015. Sobre la implementación de algoritmos basados ​​en la firma Gröbner basados ​​en rutinas algebraicas lineales de M4RI. ACM Commun. Comput. Algebra 49, 2 (agosto de 2015) , 63-64 comparan la implementación de los autores de un algoritmo de base de Gröbner con el de Maple, Singular y Magma, con Magma siendo más rápido que los otros dos paquetes en un orden de magnitud (y vinculado con la implementación de los autores).

Por lo tanto, parece depender mucho del problema (tamaño y estructura) y de la versión del software, qué paquete es el más rápido. Sin embargo, la recomendación de utilizar un sistema de álgebra computacional de propósito especial desarrollado activamente como Singular, Magma o Maple en lugar de un software de cómputo simbólico de propósito general es acertada. Esto se duplica para una caja de herramientas en un software numérico , que agrega otro nivel de sobrecarga y generalmente está varias versiones detrás del software independiente en el que se basan (MuPAD, anteriormente Maple, en el caso de la caja de herramientas de Matlab).


Gracias por proporcionar estos recursos. Me sorprende que haya muy pocos o ningún punto de referencia exhaustivo y actualizado.
Federico Poloni

6

Siempre tenga en cuenta que los resultados de cualquier punto de referencia dependerán, además del tamaño del problema, del campo base sobre el cual se define el anillo polinomial (números racionales o números enteros modulan alguna potencia de un número primo).

La biblioteca FGb es una implementación desarrollada activamente y de alto rendimiento del algoritmo F5. Un punto de referencia que compara FGb con Magma se puede encontrar en:

Faugère, J.-C. (2010) FGb: una biblioteca para calcular bases de Gröbner (págs. 84–87). doi: 10.1007 / 978-3-642-15582-6_17

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.