Gröbner基和多项式系统解决方案的基准


10

在最近的具有7个非线性代数方程式的问题求解系统中,布莱恩·鲍彻斯(Brian Borchers)实验性地证明,枫树可以求解Matlab / Mupad无法处理的多项式系统。过去,我从该领域的工作人员那里听说,枫树具有Gröbner基和相关算法的高质量实现(我认为这里正在使用)。

因此,我很想建议“ Matlab在此类问题上进展缓慢,请切换到Maple”,但我希望有数据来支持该声明。

是否存在一组基准测试结果,用于比较不同计算机代数系统中Gröbner基实现和多项式系统解决方案的速度和有效性?(Maple,Mathematica,Matlab的符号工具箱等)。


别忘了sympy
克里斯蒂安·克拉森2015年

@ChristianClason是的,原则上有很多。单数,Macaulay,岩浆,CoCoA,Gap,Sage,Axiom,Maxima,Yacas ...您认为sympy特别好吗?它对Alaa的问题有何影响?
Federico Poloni 2015年

我并不是说它特别好,我只是对它感兴趣,因为它是广泛可用的,开源的并且相当容易学习。我对这个问题进行了尝试,但没有得到任何结果(但是我也没有太多的耐心)。
克里斯蒂安·克拉森2015年

我认为应该区分通用符号软件(SymPy,Maple,Matlab的工具箱,Mathematica)和更具工业实力的专用软件包(Singular,CoCoA,Macaulay)。Sage稍有不同,因为它实际上仅捆绑了许多专用软件包(以及一些通用软件包)。Wikipedia上有用的列表
克里斯蒂安·克拉森2015年

我提到sympy的另一个原因是,它起到了Alaa感兴趣的相同作用- lambdify在数值计算中使用结果很容易(通过)。
Christian Clason 2015年

Answers:


10

我在这里发布了一些基准测试:http : //www.cecm.sfu.ca/~rpearcea/mgb.html

这些是总学位课程。要解决系统问题,通常需要做更多的工作。时序针对的是截至2015年的典型中端台式机(Haswell Core i5四核)。

一个内核上最快的系统是Magma,它使用浮点算法和SSE / AVX。岩浆是最强大的系统,因为它具有FGLM和Groebner walk的良好实现(未测试)。这些算法用于将总程度基础转换为具有三角形形式的词典基础。然后,通常会在最低变量中考虑多项式。

mgb是Maple 2016中的C库,它实现了针对总程度和消除顺序的F4算法。当使用多核时,其性能可与Magma媲美。

FGb是Faugere对F4的实现。此处测试的版本来自他的网站,并且比Maple中的版本更快。

Giac是带有F4实现的开源系统。有一篇描述它的论文http://arxiv.org/abs/1309.4044

Singular是一个用于代数几何计算的开源系统。此处的基准使用“ modStd”,它是Buchberger算法的多模块版本。您可以看到Buchberger算法与F4不具有竞争优势。根本原因是F4分摊了所有单项操作的成本。除此之外,Singular具有FGLM和Groebner Walk的相当好的实现,以及其他对求解有用的算法。


谢谢,这非常有用。我正在考虑切换接受的答案。
Federico Poloni 2016年

8

谷歌搜索benchmark polynomial systems引起了一些轰动,其中包括曼海姆大学的计算机代数基准研究计划。可悲的是,其中大多数已过时或已失效。最活跃的似乎是SymbolicData Wiki,但据我所知,它仅收集基准测试问题,而不收集基准测试结果

可以在Hans-GertGräbe中找到Axiom,Macsyma,Maple,Mathematica,MuPAD和Reduce多项式系统的一些比较(可追溯到1996年),关于Axiom,Macsyma,Maple,Mathematica,MuPAD 的多项式系统求解工具, and Reducing,Preprint 11/96 des InstitutsfürInformatik,德国莱比锡大学,1996年12月。结论是Axiom,Maple和Reduce赢得了胜利,这归功于他们使用了Gröbner基地(其他人此时还没有这样做),而Maple的表现略领先于其他人。

SINGULAR网站上还有一个较旧的比较,显示SINGULAR 2.0(截至2015年12月为4.0.2)击败了Maple等。

另一方面,最近的出版物(孙尧,林东大和王定康。2015年。使用M4RI的线性代数例程实现基于签名的Gröbner基算法。ACMCommun.Comput.Algebra 49,2(2015年8月) 63-64将作者的Gröbner基算法的实现与Maple,Singular和Magma的实现进行了比较,其中Magma比其他两个包快一个数量级(并与作者的实现联系在一起)。

因此,它似乎在很大程度上取决于问题(大小和结构)以及最快的软件包的软件版本。但是,建议使用主动开发的专用计算机代数系统(例如奇异,岩浆或枫树)而不是通用符号计算软件。这对于数字软件中的工具箱来说要翻倍,这增加了另一层开销,通常比它们所基于的独立软件(MuPAD,在Matlab的工具箱中为Maple)低几个版本。


感谢您提供这些资源。令我惊讶的是,几乎没有甚至没有全面的,最新的基准。
Federico Poloni 2015年

6

请始终记住,任何基准测试的结果,除了问题的大小外,还取决于定义多项式环的基础字段(有理数或以质数的幂为模的整数)。

的FGb库是一个积极的发展和高性能实现F5算法。将FGb与Magma进行比较的基准可以在以下位置找到:

Faugère,J.-C。(2010)。FGb:一个用于计算Gröbner基的库(第84–87页)。doi:10.1007 / 978-3-642-15582-6_17

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.