1

如果这个问题在相关网站上更合适,请告诉我,我很乐意移动它。


我在 ℤ<sup>11 中有 165 个顶点,所有这些顶点与原点的距离为 √8,并且是它们对应的凸包上的极值点。 CGAL能够在我的笔记本电脑上使用不到 1 GB 的 RAM 在 133 分钟内计算出他们的d维三角剖分。


Magma非常快地管理了一个类似的 66 顶点情况,而且,对于我的应用程序而言,至关重要的是,它返回一个实际的多面体而不是三角剖分。因此,我可以将每个d维面视为可以由任意数量的顶点限定的单个对象。

此外,虽然对我的应用程序来说不太重要,但我也可以Graph : TorPol -> GrphUnd用来计算有关这些面如何连接的所有拓扑信息,然后AutomorphismGroup : Grph -> GrpPerm, ...找到该单元结构的相应自同构群。

不幸的是,当应用于原始多面体时,MagmaAutomorphismGroup : TorPol -> GrpMat只返回GL d (ℤ)的子群,而不是完全自同构群G,这是我真正希望计算的。作为一个矩阵群,G ∉ GL 11 (ℤ),而是 ∈ GL 11 (),其中表示代数数。一般来说,我不需要有理数的完整代数闭包 ℚ̅,而只需要一些域扩展。但是,我可以使用G的任何非平凡强大的表示。

通过两天的计算,Magma 可以管理 165 个顶点的情况,但只能提供有关多面体原始 165 个顶点、10 个面和体积的信息。但是,尝试枚举d面,对于任何 2 ≤ d < 10,会很快消耗我可以使用的 256 GB RAM。


另一方面,CGAL 的三角剖分只计算d -simplices的集合,所有这些集合都有d + 1 个顶点。从这样的三角测量中得出相同的面部信息似乎是可能的,但我还没有想到一种简单的方法来编码。


我在 CGAL 中遗漏了一些明显的东西吗?您对计算多面体的面部信息或找到我的点集的完整自同构群的替代方法有什么建议吗?

4

1 回答 1

2

您可以使用 CGAL 中的组合映射包,它能够表示 nD 中的多面体。组合图描述了所有单元格以及单元格之间的所有关联和邻接关系。

在这个包中,有一个未记录的方法are_cc_isomorphic允许从两个起点测试是否存在同构。我认为您可以从所有可能的起点对使用此方法来查找所有自同构。

不幸的是,没有任何方法可以从 dD 三角剖分构建组合地图。这种方法存在于 3D 中(参见此文件)。它可以在 dD 中扩展。

于 2020-12-31T08:22:57.533 回答