Differences between revisions 12 and 13
Revision 12 as of 2018-11-03 12:38:27
Size: 2303
Editor: chapoton
Comment:
Revision 13 as of 2022-04-05 05:38:16
Size: 0
Editor: mkoeppe
Comment: Outdated
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= Polytopes requests =

See [[https://wiki.sagemath.org/OptiPolyGeom]] for a more recent page.

 * packages: lrs, cddlib, porta, 4ti2, [[https://www.polymake.org/doku.php|polymake]], coin/or, [[http://www.math.u-bordeaux1.fr/~enge/Vinci.html|Vinci]]
 * optimal performance: important algorithms are reverse search (as in lrs, uses less memory), double description (track the duals, as in cdd and 4ti2)
 * optimization: linear and integer programming (coin/or), semidefinite programming (any good software for this?)
 * combinatorial aspects
 * polymake puts a lot of these things together, but it does not build!

=== Bernstein's theorem ===

(this is coming from Daniel Erman).

{{{
R.<a,b>=QQ[]
f1=a^2+a*b+b^2+1
f2=a*b^2+a^2*b+11
N1=f1.newton_polytope()
N2=f2.newton_polytope()
S=[N1,N2]
}}}

I would like to be able to compute the mixed volume of the collection of polytopes:

{{{
S.mixed_volume()
}}}

[[Note from Marshall Hampton: this is possible using the optional phc package:
{{{
from sage.interfaces.phc import phc
phc.mixed_volume([f1,f2])
}}}
]]

The reason I want to do this is because I want to apply Bernstein's theorem to a polynomial system in affine space. So conceivably I'd like to ask:

{{{
F=[f1,f2]
F.bernstein_bound()
}}}

In addition I'd like to be able to compute anything about N1 that can be done in polymake. For instance f-vector:

{{{
N1.f_vector()
}}}

[[Another note from M. Hampton: I have a patch for computing face lattices and f-vectors that I am hoping to put up on trac this week.]]

== How to deal with polyhedral fans ? ==

I would like to work with polyhedral cones and fans (with toric geometry in mind).

The following now works (sage 5.2):

{{{
sage: cone1 = Cone([[1,0,0],[0,1,0],[0,0,1]])
sage: cone2 = Cone([[-1,0,0],[0,1,0],[0,0,1]])
sage: fan = Fan([cone1,cone2])
}}}

The '''Cone''' function can take many generators
{{{
sage: cone3 = Cone([[1,0,0],[0,1,0],[0,0,1],[1,1,1]])
}}}
and then compute the extremal rays
{{{
sage: cone3.rays()
N(0, 0, 1),
N(0, 1, 0),
N(1, 0, 0)
in 3-d lattice N
}}}

It is now possible (sage 6.2) compute the cone of strictly convex support functions of a complete fan.
{{{
sage: fan = Fan([cone3])
sage: ToricVariety(fan).Kaehler_cone()
}}}