跳到内容

olexandr-konovalov/gnu公司

gnu(gnu)

有限群同构类型数数据库众包项目

什么是gnu(n)?

对于整数n,n阶有限群的同构类型数由gnu(n)表示,其中“gnu”表示“Group NUmber”。这个问题确定给定阶的所有群直到同构是非常重要的有趣且富有挑战性。例如,序列(https://oeis.org/A00001)在OEIS中是n级的组数,第一个未知条目为gnu(2048)。0<n<2048的gnu(n)的已知值总结在“计数组:约翰·康威、海科·迪特里希和伊蒙·奥布莱恩的《gnus,moas and other exotica》(https://www.math.auckland.ac.nz/~obrien/research/gnu.pdf)其中还讨论了gnu(n)及其相关函数的一些性质。OEIS和后一篇论文从GAP Small Groups Library派生gnu(n)表的大多数条目(https://www.gap-system.org/Packages/smallgrp.html)作者:Hans Ulrich Besche,Bettina Eick和伊蒙·奥布莱恩。SmallGroups库中的组号在很大程度上交叉检查,使用不同的方法进行计算,并与理论结果,如有(参见[Hans Ulrich Besche,Bettina Eick和伊蒙·奥布莱恩。千禧年项目:建设小型团体。国际代数杂志计算。12, 623 (2002),https://doi.org/10.1142/S0218196702001115],英寸特别是4.1。数据的可靠性)。

n>2048的情况如何?

对于n>2048,gnu(n)的计算非常不规则。某些订单,包括一些无穷级数(n≤6的p^n阶群;q^n*p阶群,其中q除以2^8、3^6、5^5或7^4,p是不等于q的任意素数;组,共个无平方阶;最多三个素数的乘积)是由GAP小型团体图书馆提供(https://www.gap-system.org/Packages/smallgrp.html)因此gnu(n)由返回小型组数(n)。最近提交的GAP包SglPPow公司(https://www.gap-system.org/Packages/sglppow.html(网址:https://www.gap-system.org/Packages/sglppow.html))作者:Michael Vaughan-LeeBettina Eick为p>11添加了对p^7顺序组和顺序组的访问3^8(应加载加载包(“sglppow”).对于无立方体顺序的组,Cubefee套餐(https://www.gap-system.org/Packages/cubefree.html)作者:HeikoDietrich用以下公式计算gnu(n)CFGroups数量(n).

如何计算任意n的gnu(n)?

对于其他订单组,可以尝试Hans Ulrich的GAP包GrpConstBesche和Bettina Eick(https://www.gap-system.org/Packages/grpconst.html)至使用构造给定顺序的所有组构造所有组(n).如文件所示https://docs.gap-system.org/pkg/grpconst/htm/CHAP003.htm,此函数通常返回一个组列表,在这种情况下,gnu(n)就是这个列表的长度。然而,有时该列表包含子列表。在这种情况下,必须检查每个这样的子列表包含成对非同构的群,或者移除重复的群。

的运行时和内存要求构造所有组非常依赖于n并且可能从极简到实际不可行。AG代数网站und Diskrete Mathematik(TU Braunschweig)为许多n<50000:http://www.icm.tu-bs.de/ag_algebra/software/small/number.html.这些数字取自小团体图书馆或使用GrpConst包。表中没有1082份订单的信息计算尚未完成。

此套餐的目标

如我们所见,目前没有统一的方法来计算中的gnu(n)GAP即使在可行的情况下也是如此,因为必须调用不同的函数以不同的方式,依赖于n。甚至为列表找到所有已知的gnu(n)整数的Nr小型组这并不简单,因为GAP进入了一个中断当n阶组库不可用时循环。此外,这些数据是只能从工作GAP安装内访问。接下来,用户计算gnu(n)的新值没有简单的方法与其他人共享数据并记录出处的详细信息,即谁计算了它们,什么时候使用的硬件、GAP和相关软件包的版本,以及多少内存和需要运行时。这些缺失的细节妨碍了结果的验证,虽然让它们易于交叉检查计算是有用的使用不同的方法,检查新未来可能出现的实现,并检查未来版本GAP不破坏这些计算。此外,它们可能对研究人员有用他想计算给定顺序的所有组构造所有组有兴趣提前知道可能需要多少时间,以及是否有人else已经尝试过这种计算。

Gnu包通过以下方式解决了这些问题:

  • 使用单个函数提供对gnu(n)计算的统一访问。
  • 提供本地安装软件包和远程访问软件包的能力没有本地安装。
  • 通过SCSCP(符号计算软件可组合性)提供远程数据协议),使任何SCSCP兼容软件都可以访问它们。
  • 使用基于GitHub的开发模型并将来源详细信息,如运行时需求、软件详细信息和硬件等。

本地安装

要在本地使用该包,首先必须使用源分布来自https://www.gap-system.org/发布/.请确保您也可以按照这里的描述构建包。之后,Gnu包可以像其他不需要的GAP包一样安装编译。建议将其作为自定义包安装在.间隙/包主目录的子目录,而不是将其放入间隙4rN/pkgGAP安装目录。由于软件包定期更新新数据,您可以使用git克隆它,然后从主存储库。为此,请更改为.间隙/包目录和调用

git克隆https://github.com/olexandr-konovalov/gnu.git网站

这将创建目录gnu(gnu)。稍后当您需要拉取更改时,切换到该目录并调用

吉特拉力

或者,如果您不使用git,可以从下载zip-archivehttps://github.com/olexandr-konovalov/gnu/archive/master.zip和以后的更新通过下载新的zip-archive并将其解压缩以替换之前安装的Gnu包。

在用加载包(“gnu”);你应该能够按如下方式使用:

间隙>Gnu(10000);4728gap>Gnu解释(10000);[4728,“使用GrpConst包预计算”]gap>NextUnknownGnu(10000);10080差距>GnuWishlist([2000..3000]);[ 2048, 2240, 2496, 2560, 2592, 2688, 2880, 2916 ]差距>列表([1051282004100002304,3^8,7^2*5^2*11*1950000],Gnu);[2,2328,10,4728,15756130,1396077,8,错误]

您可能会看到更多解释gnu(n)值的示例在以下示例中获得:

gap>列表([10512820004100002304,3^8,7^2*5^2*11*19500000],GnuExplained);[[2,“使用NrSmallGroups和GAP Small Groups库”],[2328,“使用NrSmallGroups和GAP Small Groups库”],[10,“使用NrSmallGroups和GAP Small Groups库”],[4728,“使用GrpConst包预计算”],[ 15756130, "https://doi.org/10.1016/j.jalgebra.2013.09.028" ],[1396077,“使用SglPPow 1.1中的NrSmallGroups”],[8,“使用CubeFree 1.15中的NumberCFGroups”],[false,“不存储在gnu50000中,也没有50000大小的组库”]]

远程连接

也可以通过以下方式在不进行本地安装的情况下访问数据访问在Docker容器中运行的专用GAP SCSCP服务器在Microsoft Azure云中。此服务器定期重新启动到获取数据库更新。要从GAP访问它,首先需要加载SCSCP包:

gap>LoadPackage(“scscp”);

注意,SCSCP包需要IO包,IO包需要在UNIX系统上编译(对于Windows,GAP发行版附带IO包的编译二进制文件)。

然后,下载并读取(或复制并粘贴)以下文件到GAP中:https://raw.githubusercontent.com/olexandr konovalov/gnu/master/lib/gnuclient.g

现在,您可以使用中显示的命令的远程副本上一节:

gap>GnuFromServer(50016);1208差距>GnuExplainedFromServer(50080);[1434,“使用GrpConst包预计算”]gap>NextUnknownNuFromServer(50080);50112差距>GnuWishlistFromServer([50000..50100]);[ 50000, 50048 ]

如果您有本地安装的软件包,那么节将在加载后可用。

请注意,服务器会定期重新启动,并且可能不包含数据库的最新添加。您可以检查服务器何时已启动,以及使用获取服务描述SCSCP包中的函数:

gap>GetServiceDescription(“scscp.gap-system.org”,26133);记录(description:=“有限同构类型数量的GAP SCSCP服务器\组。提交提供的Gnu包版本https://github.com/olexandr-konovalov网站/\gnu/commit/6630e86ec7b1633b0afaeb7e35e8045561bb8e60。服务器于6月6日星期六启动\4 20:46:10 UTC 2016”,服务名称:=“gnu(n)SCSCP服务”,版本:=“GAP 4.8.3;CubeFree 1.15;Gnu 6630e86ec7b1633b0afaeb7e35e8045561\bb8e60;GrpConst 2.5;SCSCP 2.1.4;SglP低1.1“)

要从其他SCSCP兼容系统访问GAP SCSCP服务器,请执行以下操作SCSCP客户端功能和使用服务器的文档名称scscp.gap-system.org和端口号26133与调用类似在里面https://github.com/olexandr-konovalov/gnu/blob/master/lib/gnucent.g

访问产地信息

使用git,您可以在版本控制历史中搜索以查找有关计算的详细信息。例如,您可以找到提交它使用以下命令添加gnu(4000)

git日志--grep=“gnu(4000)”

可能会生成以下格式的输出:

提交dd9ae55743fe465389324bc44e54197bea146dc7作者:姓名<电子邮件>日期:2016年5月21日星期六15:33:01+0100gnu(4000)=6108间隙4.8.3组常数2.5运行时间:975884 ms消除同构群由@username1提交。@username2于验证Azure云标准DS3 v2实例上的Ubuntu 16.04(4核,14 GB RAM)关闭#59。

为数据库贡献

您可以通过以下方式帮助开发此数据库贡献:

  • 提交gnu(n)的新值
  • 记录有关有待进一步研究的部分结果的信息(例如,当您运行构造所有组但无法检查非同构,或在之后未完成计算几天)
  • 验证现有条目(可能使用其他硬件,操作系统、GAP新版本和相关软件包)
  • 改进此包的功能

您可以将gnu(n)的新值作为新问题或请求提交到GitHub存储库https://github.com/olexandr-konovalov/gnu(如果您还没有GitHub帐户,则必须创建一个)。

新问题/请求的模板将询问您需要检查是否提供了以下详细信息:

  • GAP和关键包的版本:GrpConst、Cubefree等。
  • 用于计算的计算机的简要说明(操作系统、处理器、RAM)
  • 计算所需的运行时间
  • 用于计算的GAP命令
  • 确认输出第页属于构造所有组是一个列表属于组(ForAll(r,IsGroup)应返回真的),或以其他方式确认如果输出包含组列表,则这些组也显示为成对非同构。

此信息将用于重新运行计算并添加gnu(n)只有在验证后才能发送到数据库。

当前未包含在数据库中的组订单可以使用确定下一个未知Gnu,Gnu愿望清单及其远程过程呼叫对应方下一个未知GnuFromServerGnuWishlistFrom服务器如上所示。查看当前未解决的问题也可能很有用和拉取请求,因为它们可能包含等待的新报告结果验证后添加到数据库中。你不必担心你可能在复制别人的计算,因为在这个案例复制即复制通过检查您是否可以复制在计算机上安装GAP也会得到同样的结果提高实验中所用软件的质量。

要提交部分结果,请在此存储库中创建新问题并告诉你已经尝试了什么,在哪一步停止了计算。例如,了解耗时的案例将非常有用在大量时间后未完成,或内存不足,或者只完成了计算的第一步,但尚未检查非同构。

您还可以帮助验证新提交的内容或重新检查现有的一个,并通过改进包的数学功能或其基础设施部分。

您可以使用功能GnuByConstruct所有组来自总承包商。脚本位于https://raw.githubusercontent.com/olexandr-konovalov/gnu/master/lib/grpconst.g,也包含在图书馆包的目录。例如(注使用双分号来禁止输出返回的列表):

间隙>r:=GnuByConstructAllGroups(50024);;****************************************构建所有订单组50024****************************************#I阶计算组[2,2,2,13,13,37]:#我计算弗拉蒂尼系数:#我用socle 2和size 2计算ff组#我用底座4和尺寸8计算ff组#我用底座8和尺寸8计算ff组#我用底座13和尺寸52计算ff组#我用底座26和尺寸104计算ff组.........#我扩展了编号为121/123的候选人,尺寸为50024#我将123人中的122人扩展为50024人#我扩展了123个候选人中的123个,尺寸为50024#我找到了187个分机****************************************gnu(50024)=197间隙4.8.3组常数2.5运行时间:26335 ms消除同构群如果该值是新值,请将下一行添加到data/gnudata.gGNU_SAVE(50024、197,不带GC);****************************************间隙>

在这种情况下,您可以复制和粘贴模板,而不是填写模板从输出到问题描述的最后一块行或添加了对的调用的拉请求GNU保存,只需要添加用于计算的计算机的描述。在一些案例,当构造所有组返回包含子列表的列表,消息还将包含关于进一步同构检查的报告。功能GnuByConstruct所有组还返回输出为构造所有组以及时间安排,以防需要进一步分析。

最后,如果您将gnu(n)的新值作为GitHub问题提交,请严格按照小组订单提交一个问题。如果您提交在pull请求中新的gnu(n)值,您可以提交一个值(in在这种情况下,提交pull请求的最简单方法是编辑文件https://github.com/olexandr-konovalov/gnu/blob/master/data/gnudata.g通过GitHub的网络接口)或多个值,在这种情况下,每个值其中应包含在具有适当提交的单个提交中消息看起来像由生成的摘要GnuByConstruct所有组(请参见#58例如)。但请注意,审查此类拉取请求可能需要更长的时间。

更多详细信息和格式规则可在CONTRIBUTING.md中找到:https://github.com/olexandr-konovalov/gnu/blob/master/CONTRIBUTING.md

请看一看,如果你能参与进来就太好了!

Olexandr Konovalov公司

2016年5月


致谢

我们感谢OpenDreamKit Horizon 2020的财政支持欧洲研究基础设施项目(#676541)。我们也承认通过Microsoft Azure提供的计算资源获得研究奖。

关于

有限群同构类型数数据库众包项目

资源

许可证

星星

观察者

叉子

发布

未发布版本

包装

未发布包

贡献者

  •  
  •  
  •