user_guide:tutorials:apps_tropical

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
user_guide:tutorials:apps_tropical [2017/06/12 13:57]
oroehrig added app switch
user_guide:tutorials:apps_tropical [2019/01/25 09:38]
oroehrig ↷ Page moved from user_guide:apps_tropical to user_guide:tutorials:apps_tropical
Line 49: Line 49:
 </​code>​ </​code>​
  
-Finally, you can also create tropical polynomials. This can either ​be done in the [[polynomials_tutorial|usual manner]] or with special parser:+Finally, you can also create tropical polynomials. This can be done with the special ​toTropicalPolynomial ​parser:
  
 <​code>​ <​code>​
-tropical > $r = new Ring<​TropicalNumber<​Min>​ >(3); #Tropical polynomial ring in 3 variables 
-tropical > ($x, $y, $z) = $r->​variables;​ 
-tropical > $p = $x*$x + $y * $z; 
-tropical > print $p; 
-x0^2 + x1*x2 
 tropical > $q = toTropicalPolynomial("​min(2a,​b+c)"​);​ tropical > $q = toTropicalPolynomial("​min(2a,​b+c)"​);​
 tropical > print $q; tropical > print $q;
Line 64: Line 59:
 ==== Tropical convex hull computations ==== ==== Tropical convex hull computations ====
  
-The basic object for tropical convex hull computations is ''​Cone''​ (**Careful:​** If you're not in application tropical, be sure to use the namespace identifier ''​tropical::​Cone''​ to distinguish it from the ''​polytope::​Cone''​).+The basic object for tropical convex hull computations is ''​Polytope''​ (**Careful:​** If you're not in application tropical, be sure to use the namespace identifier ''​tropical::​Polytope''​ to distinguish it from the ''​polytope::​Polytope''​).
  
-A tropical ​cone should always be created via ''​POINTS''​ (i.e. not ''​VERTICES''​),​ since they determine the combinatorial structure. The following creates a tropical line segment in the tropical projective plane. Note that the point (0,1,1) is not a vertex, as it is in the tropical convex hull of the other two points. However, it does play a role when computing the corresponding subdivision of the tropical projective torus into covector cells (see the [[apps_tropical#​A note on coordinates|note]] below to understand the different coordinates):​+A tropical ​polytope ​should always be created via ''​POINTS''​ (i.e. not ''​VERTICES''​),​ since they determine the combinatorial structure. The following creates a tropical line segment in the tropical projective plane. Note that the point (0,1,1) is not a vertex, as it is in the tropical convex hull of the other two points. However, it does play a role when computing the corresponding subdivision of the tropical projective torus into covector cells (see the [[apps_tropical#​A note on coordinates|note]] below to understand the different coordinates):​
 <​code>​ <​code>​
-tropical > $c = new Cone<​Min>​(POINTS=>​[[0,​0,​0],​[0,​1,​1],​[0,​2,​1]]);​+tropical > $c = new Polytope<​Min>​(POINTS=>​[[0,​0,​0],​[0,​1,​1],​[0,​2,​1]]);​
 tropical > print $c->​VERTICES;​ tropical > print $c->​VERTICES;​
 0 0 0 0 0 0
Line 87: Line 82:
 {2 3 4} {2 3 4}
 {2 4 5} {2 4 5}
-tropical > print $c->CONE_MAXIMAL_COVECTOR_CELLS;+tropical > print $c->POLYTOPE_MAXIMAL_COVECTOR_CELLS;
 {3 4} {3 4}
 {4 5} {4 5}
Line 93: Line 88:
 </​code>​ </​code>​
  
-In case you're just interested in either the subdivision of the full torus, or the polyhedral structure of the tropical ​cone, the following will give you those structures as ''​fan::​PolyhedralComplex''​ objects in //affine// coordinates:​+In case you're just interested in either the subdivision of the full torus, or the polyhedral structure of the tropical ​polytope, the following will give you those structures as ''​fan::​PolyhedralComplex''​ objects in //affine// coordinates:​
 <​code>​ <​code>​
 tropical > $t = $c->​torus_subdivision_as_complex;​ tropical > $t = $c->​torus_subdivision_as_complex;​
-tropical > $p = $c->cone_subdivision_as_complex;+tropical > $p = $c->polytope_subdivision_as_complex;
 tropical > print $p->​VERTICES;​ tropical > print $p->​VERTICES;​
 1 0 0 1 0 0
Line 107: Line 102:
 Note that by default, the affine chart is {x_0 = 0}. You can choose any chart {x_i = 0} by passing i as an argument to ''​.._subdivision_as_complex''​. Note that by default, the affine chart is {x_0 = 0}. You can choose any chart {x_i = 0} by passing i as an argument to ''​.._subdivision_as_complex''​.
  
-Polymake computes the full subdivision of both the torus and the cone as a ''​CovectorLattice'',​ which is just a ''​FaceLattice''​ with an additional map that attaches to each cell in the subdivision its covector. For more details on this data structure see the [[http://​polymake.org/​release_docs/​snapshot/​tropical.html | reference documentation]]. You can visualize the covector lattice with+Polymake computes the full subdivision of both the torus and the polytope ​as a ''​CovectorLattice'',​ which is just a ''​FaceLattice''​ with an additional map that attaches to each cell in the subdivision its covector. For more details on this data structure see the [[http://​polymake.org/​release_docs/​snapshot/​tropical.html | reference documentation]]. You can visualize the covector lattice with
 <​code>​ <​code>​
 tropical > $c->​TORUS_COVECTOR_DECOMPOSITION->​VISUAL;​ tropical > $c->​TORUS_COVECTOR_DECOMPOSITION->​VISUAL;​
-tropical > $c->CONE_COVECTOR_DECOMPOSITION->​VISUAL;​+tropical > $c->POLYTOPE_COVECTOR_DECOMPOSITION->​VISUAL;​
 </​code>​ </​code>​
 Each node in the lattice is a cell of the subdivision. The top row describes the vertices and rays of the subdivision. The bottom row is the covector of that cell with respect to the ''​POINTS''​. Each node in the lattice is a cell of the subdivision. The top row describes the vertices and rays of the subdivision. The bottom row is the covector of that cell with respect to the ''​POINTS''​.
  • user_guide/tutorials/apps_tropical.txt
  • Last modified: 2019/02/04 22:55
  • (external edit)