user_guide:lattice_polytopes_doc

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:lattice_polytopes_doc [2019/01/25 09:27] – ↷ Links adapted because of a move operation oroehriguser_guide:lattice_polytopes_doc [2019/01/29 21:46] (current) – external edit 127.0.0.1
Line 2: Line 2:
 ===== Properties and Methods defined for lattice polytopes ===== ===== Properties and Methods defined for lattice polytopes =====
  
-This page summarizes properties and methods defined for lattice polytopes in polymake. For an introductory example see [[user_guide:lattice_polytopes_tutorial|here]].+This page summarizes properties and methods defined for lattice polytopes in polymake. For an introductory example see [[user_guide:tutorials:lattice_polytopes_tutorial|here]].
  
 Up to release 2.14, a lattice polytope in polymake used to be a subclass of a rational polytope, and all basic properties were derived from that.  Starting with release 2.15 (or 3.0, not decided yet), there is no distinct type LatticePolytope anymore.  A lattice polytope is an instance of rational polytope having the property LATTICE=1.  All properties and methods described below have not changed. Up to release 2.14, a lattice polytope in polymake used to be a subclass of a rational polytope, and all basic properties were derived from that.  Starting with release 2.15 (or 3.0, not decided yet), there is no distinct type LatticePolytope anymore.  A lattice polytope is an instance of rational polytope having the property LATTICE=1.  All properties and methods described below have not changed.
Line 45: Line 45:
 | ''GRAPH.LATTICE_EDGE_LENGTHS'' | the lattice lengths of the edges of the graph | | ''GRAPH.LATTICE_EDGE_LENGTHS'' | the lattice lengths of the edges of the graph |
  
-==== Groebner Bases ==== 
- 
-''polymake'' can compute Groebner bases for the toric ideals associated to the lattice points in the polytope using any term order. Currently, ''polymake'' uses ''4ti2'' for the computation. 
- 
-The ideal is defined in a polynomial ring that has one variable for each lattice point in the polytope. These variables are labeled in the same order as the lattice points listed in the ''LATTICE_POINTS'' section. The result of the computation will be a list of  vectors each representing a Groebner basis element. The Groebner basis element corresponding to a vector ''v'' in the list is a binomial ''g=g<sup>+</sup>-g<sup>-</sup>''  obtained as follows. First, one has to split the vector into its positive part ''v<sup>+</sup>'' and negative part ''v<sup>-</sup>'', i.e. ''v<sup>+</sup>-v<sup>-</sup>=v'' and ''v<sup>+</sup>, v<sup>-</sup>'' both non-negative. Then ''v<sup>+</sup>'' is the exponent vector of the leading term ''g<sup>+</sup>'' and ''v<sup>-</sup>'' the exponent vector of the trailing term ''g<sup>-</sup>'' 
- 
-''GROEBNER_BASIS'' is a multiple object that can hold a term order and the corresponding Groebner basis. This reflects the fact that the basis depends on the choice of a term order. There are two different ways to enter a term order in ''polymake''. You can either give a sequence of weight vectors as rows of a matrix, or you can enter one of the predefined term orders. Currently, there are three term orders defined. 
- 
-^ Name ^ Term Order ^ 
-| ''lex'' | lexicographic order | 
-| ''deglex'' | degree lexicographic order | 
-| ''degrevlex'' | degree reverse lexicographic order | 
- 
-Note however, that these names are internally converted into square matrices, so it may be more efficient to define the term order by a weight vector.  
- 
-We explain the use with an example: 
-<code> 
-polytope > $p=new Polytope<Rational>(POINTS=>[[1,0,0],[1,1,0],[1,0,1],[1,1,1]]); 
-polytope > print $p->LATTICE_POINTS; 
-1 1 0 
-1 0 1 
-1 0 0 
-1 1 1 
-polytope > $g=new GroebnerBasis("gb1", TERM_ORDER_MATRIX=>[[1,2,1,2]]); 
-polytope > $p->add("GROEBNER_BASIS",$g); 
-polytope > print $p->GROEBNER_BASIS("gb1")->BASIS; 
-polymake: used package 4ti2 
- 4ti2 -- A software package for algebraic, geometric and combinatorial problems on linear spaces. 
- Copyright by 4ti2 team. 
- http://www.4ti2.de/ 
- 
--1 1 1 -1 
-polytope >$h=new GroebnerBasis("gb2", TERM_ORDER_NAME=>"deglex"); 
-polytope > $p->add("GROEBNER_BASIS",$h); 
-polytope > print $p->GROEBNER_BASIS("gb2")->BASIS; 
-1 1 -1 -1 
-</code> 
- 
-Note again, that the result of the Groebner basis computation has to be interpreted using the ''LATTICE_POINTS'' section of the polytope. So the binomial for the deglex order in the last computation  is ''x<sub>1</sub>x<sub>2</sub>-x<sub>3</sub>x<sub>4</sub>'', where the variables ''x<sub>1</sub>'' and ''x<sub>2</sub>'' correspond to the standard basis vectors, ''x<sub>3</sub>'' to the origin and ''x<sub>4</sub>'' to the point ''(1,1)''. 
  
 ==== User Methods for LatticePolytope ==== ==== User Methods for LatticePolytope ====
  • user_guide/lattice_polytopes_doc.1548408448.txt.gz
  • Last modified: 2019/01/25 09:27
  • by oroehrig