Repères pour les bases de Gröbner et la solution du système polynomial


10

Dans la récente question Résolution du système de 7 équations algébriques non linéaires symboliquement , Brian Borchers a confirmé expérimentalement que Maple peut résoudre un système polynomial que Matlab / Mupad ne peut pas gérer. J'ai entendu dans le passé des personnes travaillant dans le domaine que Maple a une implémentation de haute qualité des bases Gröbner et des algorithmes associés (qui, je suppose, est ce qui est utilisé ici).

Je suis donc tenté de suggérer que "Matlab est lent sur ce genre de problèmes, passez à Maple", mais j'aimerais avoir des données pour sauvegarder cette déclaration.

Existe-t-il un ensemble de résultats de référence comparant la vitesse et l'efficacité des implémentations de base de Gröbner et des solutions de systèmes polynomiaux dans différents systèmes d'algèbre informatique? (Maple, Mathematica, la boîte à outils symbolique de Matlab, et cetera).


N'oubliez pas sympy!
Christian Clason

@ChristianClason Oui, en principe, il y en a beaucoup. Singulier, Macaulay, Magma, CoCoA, Gap, Sage, Axiom, Maxima, Yacas ... Croyez-vous que sympy est particulièrement bon? Comment cela résout-il le problème d'Alaa?
Federico Poloni

Ce n'est pas que je pense que c'est particulièrement bon, je m'y intéresse juste car il est largement disponible, open source et assez facile à apprendre. Je l'ai essayé sur le problème, mais je n'ai obtenu aucun résultat (mais je n'ai pas eu beaucoup de patience non plus).
Christian Clason

Je pense qu'il faut faire la différence entre les logiciels symboliques à usage général (SymPy, Maple, la boîte à outils de Matlab, Mathematica) et les packages à usage spécial plus puissants (Singular, CoCoA, Macaulay). Sage est un peu différent car il ne regroupe essentiellement que de nombreux packages à usage spécial (ainsi que quelques packages à usage général). Il y a une liste utile sur Wikipedia .
Christian Clason

Une autre raison pour laquelle j'ai mentionné sympy est qu'elle remplit le même rôle que Alaa est intéressé - il est facile d'utiliser les résultats (via lambdify) dans les calculs numériques.
Christian Clason

Réponses:


10

J'ai affiché quelques repères ici: http://www.cecm.sfu.ca/~rpearcea/mgb.html

Ce sont pour les ordres de diplômes totaux. Pour résoudre des systèmes, vous devez généralement faire plus de travail. Les délais sont pour un bureau de milieu de gamme typique à partir de 2015 (Haswell Core i5 quad core).

Le système le plus rapide sur un cœur est Magma, qui utilise l'arithmétique à virgule flottante et SSE / AVX. Magma est le système le plus puissant car il a de bonnes implémentations de FGLM et de la marche Groebner (non testée). Ces algorithmes sont utilisés pour convertir une base de degré totale en une base lexicographique qui a une forme triangulaire. Ensuite, vous tenez généralement compte des polynômes dans les variables les plus faibles.

mgb est la bibliothèque C dans Maple 2016 qui implémente l'algorithme F4 pour les degrés totaux et les ordres d'élimination. Ses performances sont comparables à Magma lorsqu'il utilise plusieurs cœurs.

FGb est la mise en œuvre par Faugere de F4. La version testée ici provient de son site Web et est plus rapide que la version de Maple.

Giac est un système open source avec une implémentation de F4. Il existe un article le décrivant http://arxiv.org/abs/1309.4044

Singular est un système open source pour de nombreux calculs en géométrie algébrique. Les benchmarks utilisent ici "modStd" qui est une version multi-modulaire de l'algorithme Buchberger. Vous pouvez voir que l'algorithme de Buchberger n'est pas compétitif avec F4. La raison fondamentale est que F4 amortit le coût de toutes les opérations monétaires. En dehors de cela, Singular a des implémentations raisonnablement bonnes de FGLM et de Groebner Walk, ainsi que d'autres algorithmes utiles pour la résolution.


Merci, c'est très utile. J'envisage de changer de réponse acceptée.
Federico Poloni

8

La recherche sur Google benchmark polynomial systemsmène à quelques succès, y compris l' initiative de référence en algèbre informatique de l'Université de Mannheim . Malheureusement, la plupart d'entre elles sont obsolètes ou disparues. Le plus actif semble être le Wiki SymbolicData , mais pour autant que je sache, il ne recueille que les problèmes de référence , pas les résultats de référence .

Hans-Gert Gräbe, About the Polynomial System Solve Facility of Axiom, Macsyma, Maple, Mathematica, MuPAD, contient des comparaisons (remontant à 1996) des systèmes poliomiaux Axiom, Macsyma, Maple, Mathematica et MuPAD et and Reduce , Preprint 11/96 des Instituts für Informatik, Universität Leipzig, Allemagne, décembre 1996 . La conclusion est que Axiom, Maple et Reduce gagnent en raison de leur utilisation des bases Gröbner (les autres ne l'ont pas fait à ce stade), Maple sortant légèrement devant les autres.

Il y a aussi une ancienne comparaison sur le site Web SINGULAR montrant SINGULAR 2.0 (en date de décembre 2015 est 4.0.2) battant Maple, entre autres.

D'un autre côté, une publication plus récente ( Yao Sun, Dongdai Lin et Dingkang Wang. 2015. Sur l'implémentation d'algorithmes basés sur la signature de Gröbner utilisant des routines algébriques linéaires de M4RI. ACM Commun. Comput. Algebra 49, 2 (août 2015) , 63-64 comparent l'implémentation par les auteurs d'un algorithme de base de Gröbner à celle de Maple, Singular et Magma, Magma étant plus rapide que les deux autres packages par un ordre de grandeur (et égalant l'implémentation des auteurs).

Il semble donc que cela dépende beaucoup du problème (taille et structure) et de la version du logiciel dont le package est le plus rapide. Néanmoins, la recommandation d'utiliser un système d'algèbre informatique spécialement développé, tel que Singular, Magma ou Maple, plutôt qu'un logiciel de calcul symbolique à usage général est judicieuse. Cela va doubler pour une boîte à outils dans un logiciel numérique , ce qui ajoute un autre niveau de surcharge et est généralement plusieurs versions derrière le logiciel autonome sur lequel ils sont basés (MuPAD, anciennement Maple, dans le cas de la boîte à outils de Matlab).


Merci d'avoir fourni ces ressources. Il m'étonne qu'il y ait très peu ou pas de repères complets et à jour.
Federico Poloni

6

Gardez toujours à l'esprit que les résultats de tout benchmark dépendront, en plus de la taille du problème, du champ de base sur lequel l'anneau polynomial est défini (les nombres rationnels ou les entiers modulo une certaine puissance d'un nombre premier).

La bibliothèque FGb est une implémentation développée et performante de l'algorithme F5. Un benchmark comparant le FGb au Magma peut être trouvé dans:

Faugère, J.-C. (2010). FGb: une bibliothèque pour calculer les bases de Gröbner (pp. 84–87). doi: 10.1007 / 978-3-642-15582-6_17

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.