Benchmark per basi Gröbner e soluzione di sistema polinomiale


10

Nella domanda recente Risolvendo simbolicamente il sistema di 7 equazioni algebriche non lineari , Brian Borchers ha confermato sperimentalmente che Maple può risolvere un sistema polinomiale che Matlab / Mupad non può gestire. Ho sentito in passato da persone che lavorano sul campo che Maple ha un'implementazione di alta qualità delle basi Gröbner e degli algoritmi correlati (che presumo sia ciò che viene utilizzato qui).

Quindi sono tentato di suggerire "Matlab è lento su questo tipo di problemi, passa a Maple", ma vorrei avere i dati per eseguire il backup di questa affermazione.

Esiste una serie di risultati di riferimento che confronta la velocità e l'efficacia delle implementazioni di base Gröbner e delle soluzioni di sistema polinomiale in diversi sistemi di algebra computerizzata? (Maple, Mathematica, la cassetta degli attrezzi simbolica di Matlab, ecc.).


Non dimenticare sympy!
Christian Clason,

@ChristianClason Sì, in linea di principio ce ne sono molti. Singolare, Macaulay, Magma, CoCoA, Gap, Sage, Axiom, Maxima, Yacas ... Credi che sympy sia particolarmente buono? Come va il problema di Alaa?
Federico Poloni,

Non è che credo sia particolarmente buono, mi interessa solo perché è ampiamente disponibile, open source e abbastanza facile da imparare. L'ho provato sul problema, ma non ho ottenuto alcun risultato (ma non ho avuto molta pazienza).
Christian Clason,

Penso che si dovrebbe distinguere tra software simbolico per scopi generici (SymPy, Maple, la cassetta degli attrezzi di Matlab, Mathematica) e la più forte forza industriale, pacchetti per scopi speciali (Singular, CoCoA, Macaulay). Sage è un po 'diverso perché essenzialmente raggruppa molti pacchetti per scopi speciali (insieme a pochi pacchetti per scopi generici). C'è un utile elenco su Wikipedia .
Christian Clason,

Un altro motivo per cui ho menzionato sympy è che ricopre lo stesso ruolo di Alaa interessato: è facile usare i risultati (via lambdify) nei calcoli numerici.
Christian Clason,

Risposte:


10

Ho pubblicato alcuni benchmark qui: http://www.cecm.sfu.ca/~rpearcea/mgb.html

Questi sono per gli ordini di laurea totali. Per risolvere i sistemi in genere è necessario svolgere più lavoro. I tempi sono per un tipico desktop di fascia media a partire dal 2015 (Haswell Core i5 quad core).

Il sistema più veloce su un core è Magma, che utilizza aritmetica in virgola mobile e SSE / AVX. Magma è il sistema più potente perché ha buone implementazioni di FGLM e Groebner walk (non testato). Questi algoritmi sono usati per convertire una base di gradi totali in una base lessicografica che ha una forma triangolare. Quindi in genere si fattorizzano i polinomi nelle variabili più basse.

mgb è la libreria C in Maple 2016 che implementa l'algoritmo F4 per il grado totale e gli ordini di eliminazione. Le sue prestazioni sono paragonabili a Magma quando utilizza più core.

FGb è l'implementazione di Faugere di F4. La versione testata qui proviene dal suo sito Web ed è più veloce della versione in Maple.

Giac è un sistema open source con un'implementazione di F4. C'è un documento che lo descrive http://arxiv.org/abs/1309.4044

Singular è un sistema open source per molti calcoli nella geometria algebrica. I benchmark qui usano "modStd" che è una versione multi-modulare dell'algoritmo Buchberger. Puoi vedere che l'algoritmo Buchberger non è competitivo con F4. Il motivo di base è che F4 ammortizza il costo di tutte le operazioni monomiali. A parte questo, Singular ha implementazioni ragionevolmente buone di FGLM e Groebner Walk, così come altri algoritmi utili per la risoluzione.


Grazie, è molto utile Sto considerando di cambiare la risposta accettata.
Federico Poloni,

8

Googling benchmark polynomial systemsporta ad alcuni successi, tra cui l' iniziativa di benchmark sull'algebra dei computer dell'Università di Mannheim . Purtroppo, la maggior parte di questi sono obsoleti o defunti. Il più attivo sembra essere il Wiki SymbolicData , ma per quanto ne so, raccoglie solo problemi di benchmark , non risultati di benchmark .

Alcuni confronti (risalenti al 1996) di Axiom, Macsyma, Maple, Mathematica, MuPAD e Reduce per la risoluzione dei sistemi polinomiali si trovano in Hans-Gert Gräbe, About the Polynomial System Solve Facility of Axiom, Macsyma, Maple, Mathematica, MuPAD, and Reduce , Preprint 11/96 des Instituts für Informatik, Universität Leipzig, Germania, dicembre 1996 . La conclusione è che Axiom, Maple e Reduce vincono grazie all'utilizzo delle basi Gröbner (le altre non lo hanno fatto in questo momento), con Maple che esce leggermente più avanti delle altre.

C'è anche un vecchio confronto sul sito SINGULAR che mostra SINGULAR 2.0 (attuale a dicembre 2015 è 4.0.2) battendo Maple, tra gli altri.

D'altra parte, una pubblicazione più recente ( Yao Sun, Dongdai Lin e Dingkang Wang. 2015. Sull'implementazione di algoritmi basati su firma Gröbner basati su routine algebriche lineari da M4RI. ACM Commun. Comput. Algebra 49, 2 (agosto 2015) , 63-64 confrontano l'implementazione degli autori di un algoritmo di base di Gröbner con quello di Maple, Singular e Magma, con Magma che è più veloce degli altri due pacchetti di un ordine di grandezza (e legato con l'implementazione degli autori).

Quindi sembra dipendere molto dal problema (dimensioni e struttura) e dalla versione del software quale pacchetto è il più veloce. Tuttavia, la raccomandazione di utilizzare un sistema di algebra al computer appositamente sviluppato e per scopi speciali come Singular, Magma o Maple piuttosto che un software di calcolo simbolico per scopi generici è valida. Questo vale doppio per una cassetta degli attrezzi in un software numerico , che aggiunge un altro livello di sovraccarico ed è di solito diverse versioni dietro il software autonomo su cui si basano (MuPAD, precedentemente Maple, nel caso della cassetta degli attrezzi di Matlab).


Grazie per aver fornito queste risorse. Mi sorprende che ci siano pochissimi o nessun benchmark completo e aggiornato.
Federico Poloni,

6

Tieni sempre presente che i risultati di qualsiasi benchmark dipenderanno, oltre alle dimensioni del problema, dal campo base su cui viene definito l'anello polinomiale (numeri razionali o numeri interi della potenza di un numero primo).

La libreria FGb è un'implementazione attivamente sviluppata e ad alte prestazioni dell'algoritmo F5. Un benchmark che confronta FGb con Magma può essere trovato in:

Faugère, J.-C. (2010). FGb: una libreria per il calcolo delle basi Gröbner (pagg. 84–87). DOI: 10.1007 / 978-3-642-15582-6_17

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.