Polymake
   HOME

TheInfoList



OR:

polymake is
software Software is a set of computer programs and associated documentation and data. This is in contrast to hardware, from which the system is built and which actually performs the work. At the lowest programming level, executable code consists ...
for the
algorithm In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific Computational problem, problems or to perform a computation. Algorithms are used as specificat ...
ic treatment of
convex polyhedra A convex polytope is a special case of a polytope, having the additional property that it is also a convex set contained in the n-dimensional Euclidean space \mathbb^n. Most texts. use the term "polytope" for a bounded convex polytope, and the wo ...
. Albeit primarily a tool to study the
combinatorics Combinatorics is an area of mathematics primarily concerned with counting, both as a means and an end in obtaining results, and certain properties of finite structures. It is closely related to many other areas of mathematics and has many appl ...
and the geometry of
convex polytope A convex polytope is a special case of a polytope, having the additional property that it is also a convex set contained in the n-dimensional Euclidean space \mathbb^n. Most texts. use the term "polytope" for a bounded convex polytope, and the wo ...
s and
polyhedra In geometry, a polyhedron (plural polyhedra or polyhedrons; ) is a three-dimensional shape with flat polygonal faces, straight edges and sharp corners or vertices. A convex polyhedron is the convex hull of finitely many points, not all on t ...
, it is by now also capable of dealing with
simplicial complex In mathematics, a simplicial complex is a set composed of points, line segments, triangles, and their ''n''-dimensional counterparts (see illustration). Simplicial complexes should not be confused with the more abstract notion of a simplicial set ...
es,
matroid In combinatorics, a branch of mathematics, a matroid is a structure that abstracts and generalizes the notion of linear independence in vector spaces. There are many equivalent ways to define a matroid axiomatically, the most significant being ...
s, polyhedral fans,
graphs Graph may refer to: Mathematics *Graph (discrete mathematics), a structure made of vertices and edges **Graph theory, the study of such graphs and their properties *Graph (topology), a topological space resembling a graph in the sense of discre ...
,
tropical The tropics are the regions of Earth surrounding the Equator. They are defined in latitude by the Tropic of Cancer in the Northern Hemisphere at N and the Tropic of Capricorn in the Southern Hemisphere at S. The tropics are also referred to ...
objects,
toric varieties In algebraic geometry, a toric variety or torus embedding is an algebraic variety containing an algebraic torus as an open dense subset, such that the action of the torus on itself extends to the whole variety. Some authors also require it to be no ...
and other objects. In particular, its capability to compute the
convex hull In geometry, the convex hull or convex envelope or convex closure of a shape is the smallest convex set that contains it. The convex hull may be defined either as the intersection of all convex sets containing a given subset of a Euclidean space ...
and
lattice points In geometry and group theory, a lattice in the real coordinate space \mathbb^n is an infinite set of points in this space with the properties that coordinate wise addition or subtraction of two points in the lattice produces another lattice poin ...
of a polytope proved itself to be of quiet use for different kinds of research. polymake has been cited in over 300 recent articles indexed by
Zentralblatt MATH zbMATH Open, formerly Zentralblatt MATH, is a major reviewing service providing reviews and abstracts for articles in pure and applied mathematics, produced by the Berlin office of FIZ Karlsruhe – Leibniz Institute for Information Infrastructur ...
as can be seen from its entry in the swMATH database.


Special features and applications

polymake exhibits a few particularities, making it special to work with. Firstly, polymake can be used within a
Perl Perl is a family of two high-level, general-purpose, interpreted, dynamic programming languages. "Perl" refers to Perl 5, but from 2000 to 2019 it also referred to its redesigned "sister language", Perl 6, before the latter's name was offici ...
script. Moreover, users can extend polymake and define new objects, properties, rules for computing properties, and algorithms. Secondly, it exhibits an internal client-server scheme to accommodate the usage of Perl for object management and interfaces as well as C++ for mathematical algorithms. The server holds information about each object (e.g., a polytope), and the client sends requests to compute properties. The server has the job of determining how to complete each request from information already known about each object using a rule-based system. For example, there are many rules on how to compute the facets of a polytope. Facets can be computed from a vertex description of the polytope, and from a (possibly redundant) inequality description. polymake builds a dependency graph outlining the steps to process each request and selects the best path via a Dijkstra-type algorithm. polymake divides its collection of functions and objects into 10 different groups called applications. They behave like C++ namespaces. The polytope application was the first one developed and it is the largest. * Common: "helper" functions used in other applications. * Fan: functions for polyhedral complexes (which generalize
simplicial complex In mathematics, a simplicial complex is a set composed of points, line segments, triangles, and their ''n''-dimensional counterparts (see illustration). Simplicial complexes should not be confused with the more abstract notion of a simplicial set ...
es), planar drawings of 3-polytopes, polyhedral fans, and subdivisions of points or vectors. * Fulton: computations with normal
toric varieties In algebraic geometry, a toric variety or torus embedding is an algebraic variety containing an algebraic torus as an open dense subset, such that the action of the torus on itself extends to the whole variety. Some authors also require it to be no ...
. It is named after William Fulton, author "Introduction to Toric Varieties". * Graph: manipulation of directed and undirected graphs. * Group: focus on finite permutation groups. Basic properties of a group can be calculated like
characters Character or Characters may refer to: Arts, entertainment, and media Literature * ''Character'' (novel), a 1936 Dutch novel by Ferdinand Bordewijk * ''Characters'' (Theophrastus), a classical Greek set of character sketches attributed to The ...
and conjugacy classes. * Ideal: computations on polynomial ideals:
Gröbner basis In mathematics, and more specifically in computer algebra, computational algebraic geometry, and computational commutative algebra, a Gröbner basis is a particular kind of generating set of an ideal in a polynomial ring over a field . A Gröbn ...
,
Hilbert polynomial In commutative algebra, the Hilbert function, the Hilbert polynomial, and the Hilbert series of a graded commutative algebra finitely generated over a field are three strongly related notions which measure the growth of the dimension of the homoge ...
, and
radicals Radical may refer to: Politics and ideology Politics *Radical politics, the political intent of fundamental societal change *Radicalism (historical), the Radical Movement that began in late 18th century Britain and spread to continental Europe and ...
. * Matroid: computation of standard properties of a
matroid In combinatorics, a branch of mathematics, a matroid is a structure that abstracts and generalizes the notion of linear independence in vector spaces. There are many equivalent ways to define a matroid axiomatically, the most significant being ...
, like bases and circuits. This application can also compute more advanced properties like the Tutte polynomial of a matroid and realizing the matroid with a polytope. * Polytope: over 230 functions or calculations that can be done with a polytope. These functions range in complexity from simply calculating basic information about a polytope (e.g., number of vertices, number of facets, tests for simplicial polytopes, and converting a vertex description to an inequality description) to combinatorial or algebraic properties (e.g.,
H-vector In algebraic combinatorics, the ''h''-vector of a simplicial polytope is a fundamental invariant of the polytope which encodes the number of faces of different dimensions and allows one to express the Dehn–Sommerville equations in a particularly ...
,
Ehrhart polynomial In mathematics, an integral polytope has an associated Ehrhart polynomial that encodes the relationship between the volume of a polytope and the number of integer points the polytope contains. The theory of Ehrhart polynomials can be seen as a highe ...
,
Hilbert basis Hilbert basis may refer to * In Invariant theory, a finite set of invariant polynomials, such that every invariant polynomial may be written as a polynomial function of these basis elements * Orthonormal basis of a Hilbert space * Hilbert basis (li ...
, and
Schlegel diagram In geometry, a Schlegel diagram is a projection of a polytope from \mathbb^d into \mathbb^ through a point just outside one of its facets. The resulting entity is a polytopal subdivision of the facet in \mathbb^ that, together with the origina ...
s). There are also many visualization options. * Topaz: functions relating to
abstract simplicial complex In combinatorics, an abstract simplicial complex (ASC), often called an abstract complex or just a complex, is a family of sets that is closed under taking subsets, i.e., every subset of a set in the family is also in the family. It is a purely c ...
es. Many advanced topological calculations over simplicial complexes can be performed like
homology groups In mathematics, homology is a general way of associating a sequence of algebraic objects, such as abelian groups or modules, with other mathematical objects such as topological spaces. Homology groups were originally defined in algebraic topolog ...
, orientation and
fundamental group In the mathematical field of algebraic topology, the fundamental group of a topological space is the group of the equivalence classes under homotopy of the loops contained in the space. It records information about the basic shape, or holes, of ...
. There is also a combinatorial collection of properties that can be computed, like a shelling and
Hasse diagram In order theory, a Hasse diagram (; ) is a type of mathematical diagram used to represent a finite partially ordered set, in the form of a drawing of its transitive reduction. Concretely, for a partially ordered set ''(S, ≤)'' one represents ea ...
s. * Tropical: functions for exploring
tropical geometry In mathematics, tropical geometry is the study of polynomials and their geometric properties when addition is replaced with minimization and multiplication is replaced with ordinary addition: : x \oplus y = \min\, : x \otimes y = x + y. So f ...
; in particular, tropical hypersurfaces and tropical cones.


Development History

polymake version 1.0 first appeared in the proceedings of DMV-Seminar "Polytopes and Optimization" held in Oberwolfach, November 1997. Version 1.0 only contained the polytope application, but the system of "applications" was not yet developed. Version 2.0 was in July 2003, and version 3.0 was released in 2016. The last big revision, version 4.0, was released in January 2020.


Interaction with other software packages

polymake is highly modularly built and, therefore, displays great interaction with third party software packages for specialized computations, thereby providing a common interface and bridge between different tools. A user can easily (and unknowingly) switch between using different software packages in the process of computing properties of a polytope.


Used within polymake

Below is a list of third-party software packages that polymake can interface with as of version 4.0. Users are also able to write new rule files for interfacing with any software package. Note that there is some redundancy in this list (e.g., a few different packages can be used for finding the convex hull of a polytope). Because polymake uses rule files and a dependency graph for computing properties, most of these software packages are optional. However, some become necessary for specialized computations.
4ti2
software package for algebraic, geometric and combinatorial problems on linear spaces
a-tint
tropical intersection theory

enumeration of 0/1 vertices
barvinok
counting of integer points in parametrized and non-parametrized polytopes

double description method for converting between an inequality and vertex description of a polytope *
Geomview The Geometry Center was a mathematics research and education center at the University of Minnesota. It was established by the National Science Foundation in the late 1980s and closed in 1998. The focus of the center's work was the use of computer ...
: interactive 3D viewing program
Gfan
Gröbner fan In symbolic computation, computer algebra, the Gröbner fan of an Ideal (ring theory), ideal in the Polynomial ring, ring of polynomials is a concept in the theory of Gröbner basis, Gröbner bases. It is defined to be a Polyhedral complex#Fans, fan ...
s and tropical varieties *
GraphViz Graphviz (short for ''Graph Visualization Software'') is a package of open-source tools initiated by AT&T Labs Research for drawing graphs specified in DOT language scripts having the file name extension "gv". It also provides libraries for sof ...
: graph visualization software
homology
computation homology groups of simplicial complexes
LattE
(Lattice point Enumeration): counting lattice points inside polytopes and integration over polytopes
libnormaliz
affine monoids, vector configurations, lattice polytopes, and rational cones
lrs
implementation of the
reverse-search algorithm Reverse-search algorithms are a class of algorithms for generating all objects of a given size, from certain classes of combinatorial objects. In many cases, these methods allow the objects to be generated in polynomial time per object, using only ...
for the
vertex enumeration problem In mathematics, the vertex enumeration problem for a polytope, a polyhedral cell complex, a hyperplane arrangement, or some other object of discrete geometry, is the problem of determination of the object's vertices given some formal representation ...
and
convex hull In geometry, the convex hull or convex envelope or convex closure of a shape is the smallest convex set that contains it. The convex hull may be defined either as the intersection of all convex sets containing a given subset of a Euclidean space ...
problems
mptopcom
computation of triangulations of point configurations and matroids using parallel reverse search
nauty
automorphism groups of graphs
plantri
planar triangulations
permlib
set stabilizer and in-orbit computations
PORTA
enumerate lattice points of a polytope
ppl
Parma Polyhedra Library
qhull
Quickhull Quickhull is a method of computing the convex hull of a finite set of points in ''n''-dimensional space. It uses a divide and conquer approach similar to that of quicksort, from which its name derives. Its worst case time complexity for 2-dimensio ...
algorithm for convex hulls
singular
computer algebra system for polynomial computations, with special emphasis on commutative and non-commutative algebra, algebraic geometry, and singularity theory
sketch
for making line drawings of two- or three-dimensional solid objects * SplitsTree4: phylogenetic networks
sympol
tool to work with symmetric polyhedra * threejs: JavaScript library for animated 3D computer graphics *
tikz PGF/Ti''k''Z is a pair of languages for producing vector graphics (e.g., technical illustrations and drawings) from a geometric/algebraic description, with standard features including the drawing of points, lines, arrows, paths, circles, ellipse ...
: TeX packages for creating graphics programmatically
TropLi
for computing tropical linear spaces of matroids * tosimplex: Dual simplex algorithm implemented by Thomas Opfer
Vinci
volumes of polytopes


Used in conjunction with polymake


jupyter-polymake
allows polymake within
Jupyter Project Jupyter () is a project with goals to develop open-source software, open standards, and services for interactive computing across multiple programming languages. It was spun off from IPython in 2014 by Fernando Pérez and Brian Granger ...
notebooks.
OSCAR
Open Source Computer Algebra Research system currently under development
PolymakeInterface
package for using polymake in GAP.
PolyViewer
GUI The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inste ...
viewer for polymake fies.


References

{{Reflist Mathematical software Polyhedra Computational geometry