Ask Your Question
0

0/1-equivalence for polytopes

asked 2025-02-12 16:04:35 +0100

JTS gravatar image

updated 2025-03-12 09:03:16 +0100

FrédéricC gravatar image

Dear all, for polytopes there is a method P.is_combinatorially_isomorphic(Q) which tests if two polytopes are combinatorially equivalent, i.e. if their face lattices are isomorphic.

I would like to test two 0/1-polytopes, i.e. polytopes which are the convex hull of a subset of the vertices of a (canonically embedded) hypercube $Q_n \subset [0,1]^n$, for 0/1-equivalence. This means that there is an automorphism of $Q_n$ that maps $P$ to $Q$. Explicitly, the automorphism should be a combination of permuting the variables and flipping $x_i \to 1 - x_i$.

A reference is Ziegler, Lectures on 0/1-polytopes. He also mentions:

The full-dimensional 0/1-polytopes of dimension d = 4 were first enumerated by Alexx Below: There are 349 different 0/1-equivalence classes. In dimension 5 there are exactly 1226525 different 0/1-equivalence classes of 5-dimensional 0/1-polytopes. This classification was done by Oswin Aichholzer [2]: a considerable achievement, which was possible only by systematic use of all the symmetry that is in- herent in the problem.

It would be great to have access to a database of 0/1-polytopes, and be able to compare all facets of dimension at most 4 of some polytope P to candidates in the database, and classify them, something similar to

G.structure_description()

but for 0/1-polytopes.

Of secondary importance (to me) would be checking two polytopes for for affine equivalence and congruence.

Is this implemented i Sagemath?

Edit: the answer by Max Alekseyev points me in the right direction. I will investigate the polydb and polymake docs. Thanks for the help!

edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted
0

answered 2025-02-12 23:32:07 +0100

Max Alekseyev gravatar image

updated 2025-02-12 23:36:15 +0100

polyDB provides a collection of "0/1-Polytopes up to rotation and reflection" by Oswin Aichholzer. I assume it can be accessed via polymake interface in Sage.

See also https://oeis.org/A105231 and references there.

edit flag offensive delete link more

Comments

This looks promising, thanks! Many useful refeernces indeed. Poking around, I found clear instructions for accessing polydb from OSCAR.

When using sagemath, should I use 1) the polymake backend 2) the polymake (pexpect?) interface 3) the python wrapper https://github.com/apaffenholz/pypolydb 4) the python wrapper https://gitlab.com/videlec/pypolymake 5) the package sage-data-polytopes_db 6) something else?

I found lattice_isomorphic_smooth_polytopes(Polytope P1, Polytope P2) in the polymake docs. Suppose I want to use this from sage, how do I do that? Looking at https://doc.sagemath.org/html/en/refe... there is some sort of catch-all polymake.eval(), is this what is recommended?

JTS gravatar imageJTS ( 2025-02-13 11:23:53 +0100 )edit

I didn't use it myself. It looks like to just access polyDB wrapper #3 may be enough (as an alternative to polymake). If you have specific question about polymake, please post as a new question on this site.

Max Alekseyev gravatar imageMax Alekseyev ( 2025-02-13 13:19:53 +0100 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2025-02-12 16:04:35 +0100

Seen: 100 times

Last updated: Feb 13