Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add proper OSCAR type for tropical polyhedra #4001

Draft
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

ooinaruhugh
Copy link
Contributor

@ooinaruhugh ooinaruhugh commented Aug 9, 2024

Polymake has support for tropical polyhedra, but what is there does not interface so nicely with OSCAR.
This PR serves to add a proper Julia type TropicalPolyhedron and provide basic functionality, to fix some design decisions about the data type.

This might also be useful in light of #3989 (review).

EDIT: I discussed this PR with @micjoswig and we came up with the following outline.

  • Given a set of n points in tropical projective d-space, we want to compute the induced covector decomposition of the tropical projective space.
  • For tropical polytopes with only finite coordinates, the covector decomposition yields a polyhedral subdivision of the tropical projective torus. This is implemented in polymake and should be taken from there.
  • With infinite coordinates, we obtain an induced covector decomposition in each stratum (which is a tropical projective torus of suitable dimension).
  • For arbitrary point sets, the cells in this decomposition might live in different strata of tropical projective space. In each stratum, this gives a polyhedral complex, which all fit together as a cell complex.
  • Thus, a data type for a tropical polytope needs keep track of data (e.g. PolyhedralComplexes) for each stratum.

In terms of data types: try a map which send a set (describing the stratum) to a polyhedral complex. Beware that polyhedral complexes require the vertices to be numbered consecutively. Because each stratum only sees a subset of the given points, we need an array and a map for translating indices back and forth.

@ooinaruhugh
Copy link
Contributor Author

@Sami-Halaseh

Copy link

codecov bot commented Aug 9, 2024

Codecov Report

Attention: Patch coverage is 0% with 28 lines in your changes missing coverage. Please review.

Project coverage is 84.56%. Comparing base (d7513d4) to head (8b01da9).

Files Patch % Lines
src/TropicalGeometry/TropicalPolyhedron.jl 0.00% 24 Missing ⚠️
src/TropicalGeometry/semiring.jl 0.00% 4 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #4001      +/-   ##
==========================================
- Coverage   84.59%   84.56%   -0.03%     
==========================================
  Files         596      597       +1     
  Lines       81971    81999      +28     
==========================================
  Hits        69341    69341              
- Misses      12630    12658      +28     
Files Coverage Δ
src/TropicalGeometry/semiring.jl 65.69% <0.00%> (-1.98%) ⬇️
src/TropicalGeometry/TropicalPolyhedron.jl 0.00% <0.00%> (ø)

@ooinaruhugh
Copy link
Contributor Author

At the moment, questions that need to be discussed:

  • How to handle the bookkeeping accross the strata? (@lkastner Might have an opinion, e.g. the question Map vs. indexing strata by bitmasks)
  • Regarding the "one polyhedral complex per stratum", vertices need to be renamed. Where to do this, or how to present information on boundary cells?
  • More remote question, this is also a welcome addition for polymake. Thus, implement in polymake first and then make accessible from OSCAR, or directly in OSCAR?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants