简体   繁体   中英

In CGAL, can one convert a triangulation in more than three dimensions to a polytope?

If this question would be more appropriate on a related site, let me know, and I'd be happy to move it.


I have 165 vertices in ℤ 11 , all of which are at a distance of √8 from the origin and are extreme points on their corresponding convex hull . CGAL is able to calculate their d -dimensional triangulation in only 133 minutes on my laptop using just under a gigabyte of RAM.


Magma manages a similar 66 vertex case quite quickly, and, crucially for my application, it returns an actual polytope instead of a triangulation. Thus, I can view each d -dimensional face as a single object which can be bounded by an arbitrary number of vertices.

Additionally, although less essential to my application, I can also use Graph: TorPol -> GrphUnd to calculate all the topological information regarding how those faces are connected , and then AutomorphismGroup: Grph -> GrpPerm, ... to find the corresponding automorphism group of that cell structure.

Unfortunately, when applied to the original polytope, Magma's AutomorphismGroup: TorPol -> GrpMat only returns subgroups of GL d (ℤ) , instead of the full automorphism group G , which is what I'm truly hoping to calculate. As a matrix group, G ∉ GL 11 (ℤ), but is instead ∈ GL 11 (), where represents the algebraic numbers . In general, I won't need the full algebraic closure of the rationals, ℚ̅, but just some field extension. However, I could make use of any non-trivially powerful representation of G .

With two days of calculation, Magma can manage the 165 vertex case, but is only able to provide information about the polytope's original 165 vertices, 10-facets, and volume. However, attempting to enumerate the d -faces, for any 2 ≤ d < 10, quickly consumes the 256 GB of RAM I have at my disposal.


CGAL's triangulation, on the other hand, only calculates collections of d -simplices , all of which have d + 1 vertices. It seems possible to derive the same facial information from such a triangulation, but I haven't thought of an easy way to code that up.


Am I missing something obvious in CGAL? Do you have any suggestions for alternative ways to calculate the polytope's face information, or to find the full automorphism group of my set of points?

You can use the package Combinatorial maps in CGAL, that is able to represent polytopes in nD. A combinatorial map describes all cells and all incidence and adjacency relations between the cells.

In this package, there is an undocumented method are_cc_isomorphic allowing to test if an isomorphism exist from two starting points. I think you can use this method from all possible pair of starting points to find all automorphisms.

Unfortunatly, there is no method to build a combinatorial map from a dD triangulation. Such method exists in 3D (cf. this file ). It can be extended in dD.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM