Polyhedral combinatorics
Polyhedral combinatorics is a branch of mathematics, within combinatorics and discrete geometry, that studies the problems of counting and describing the faces of convex polyhedra and higher-dimensional convex polytopes. Research in polyhedral combinatorics falls into two distinct areas. Mathematicians in this area study the combinatorics of polytopes; for instance, they seek inequalities that describe the relations between the numbers of vertices, edges, and faces of higher dimensions in arbitrary polytopes or in certain important subclasses of polytopes, and study other combinatorial properties of polytopes such as their connectivity and diameter (number of steps needed to reach any  vertex from any other vertex). Additionally, many computer scientists use the phrase “polyhedral combinatorics” to describe research into precise descriptions of the faces of certain specific polytopes (especially 0-1 polytopes, whose vertices are subsets of a hypercube) arising from integer programming problems. Faces and face-counting vectors. A "face" of a convex polytope "P" may be defined as the intersection of "P" and a closed halfspace "H" such that the boundary of "H" contains no interior point of "P". The dimension of a face is the dimension of this hull. The 0-dimensional faces are the vertices themselves, and  the 1-dimensional faces (called "edges") are line segments connecting pairs of vertices. Note that this definition also includes as faces the empty set and the whole polytope "P". If "P" itself has dimension "d", the faces of "P" with dimension "d" − 1 are called "facets" of "P" and the faces with dimension "d" − 2 are called "ridges". The faces of "P" may be partially ordered by inclusion, forming a face lattice that has as its top element "P" itself and as its bottom element the empty set. A key tool in polyhedral combinatorics is the "ƒ-vector  of a polytope, the vector (f", "f", ..., "f") where "f" is the number of "i"-dimensional features of the polytope. For instance, a cube has eight vertices, twelve edges, and six facets, so its ƒ-vector is (8,12,6). The dual polytope has a ƒ-vector with the same numbers in the reverse order; thus, for instance, the regular octahedron, the dual to a cube, has the ƒ-vector (6,12,8). Configuration matrices include the f-vectors of regular polytopes as diagonal elements. The "extended ƒ-vector" is formed by concatenating the number one at each end of the ƒ-vector, counting the  number of objects at all levels of the face lattice; on the left side of the vector, "f" = 1 counts the empty set as a face, while on the right side, "f" = 1 counts "P" itself. For the cube the extended ƒ-vector is (1,8,12,6,1) and for the octahedron it is (1,6,12,8,1). Although the vectors for these example polyhedra are unimodal (the coefficients, taken in left to right order, increase to a maximum and then decrease), there are higher-dimensional polytopes for which this is not true. For simplicial polytopes (polytopes in which every facet is a simplex ), it is often convenient to transform these vectors, producing a different vector called the "h"-vector. If we interpret the terms of the ƒ-vector (omitting the final 1) as coefficients of a polynomial ƒ("x") = Σ"fx" (for instance, for the octahedron this gives the polynomial ƒ("x") = "x" + 6"x" + 12"x" + 8), then the "h"-vector lists the coefficients of the polynomial "h"("x") = ƒ("x" − 1) (again, for the octahedron, "h"("x") = "x" + 3"x" + 3"x" + 1). As Ziegler writes, “for various problems about simplicial polytopes, "h"-vectors are a much more convenient and concise way to  encode the information about the face numbers than ƒ-vectors.” Equalities and inequalities. The most important relation among the coefficients of the ƒ-vector of a polytope is Euler's formula Σ(−1)"f" = 0, where the terms of the sum range over the coefficients of the extended ƒ-vector. In three dimensions, moving the two 1's at the left and right ends of the extended ƒ-vector (1, "v", "e", "f", 1) to the right hand side of the equation transforms this identity into the more familiar form "v" − "e" + "f" = 2. From the fact that  each facet of a three-dimensional polyhedron has at least three edges, it follows by double counting that 2"e" ≥ 3"f", and using this inequality to eliminate "e" and "f" from Euler's formula leads to the further inequalities "e" ≤ 3"v" − 6 and "f" ≤ 2"v" − 4. By duality, "e" ≤ 3"f" − 6 and "v" ≤ 2"f" − 4. It follows from Steinitz's theorem that any 3-dimensional integer vector satisfying these equalities and inequalities is the ƒ-vector of a convex polyhedron. In higher dimensions, other relations among the numbers of faces of a  polytope become important as well, including the Dehn–Sommerville equations which, expressed in terms of "h"-vectors of simplicial polytopes, take the simple form "h" = "h" for all "k". The instance of these equations with "k" = 0 is equivalent to Euler's formula but for "d" > 3 the other instances of these equations are linearly independent of each other and constrain the "h"-vectors (and therefore also the ƒ-vectors) in additional ways. Another important inequality on polytope face counts is given by the upper bound theorem, first proven by , which states that a "d"-dimensional polytope with "n" vertices  can have at most as many faces of any other dimension as a neighborly polytope with the same number of vertices: where the asterisk means that the final term of the sum should be halved when "d" is even. Asymptotically, this implies that there are at most formula_2 faces of all dimensions. Even in four dimensions, the set of possible ƒ-vectors of convex polytopes does not form a convex subset of the four-dimensional integer lattice, and much remains unknown about the possible values of these vectors. Graph-theoretic properties. Along with investigating the numbers of faces of polytopes , researchers have studied other combinatorial properties of them, such as descriptions of the graphs obtained from the vertices and edges of polytopes (their 1-skeleta). Balinski's theorem states that the graph obtained in this way from any "d"-dimensional convex polytope is "d"-vertex-connected. In the case of three-dimensional polyhedra, this property and planarity may be used to exactly characterize the graphs of polyhedra: Steinitz's theorem states that "G" is the skeleton of a three-dimensional polyhedron if and only if "G" is a 3-vertex-connected planar graph. A theorem of (previously conjectured by Micha Perles) states  that one can reconstruct the face structure of a simple polytope from its graph. That is, if a given undirected graph is the skeleton of a simple polytope, there is only one polytope (up to combinatorial equivalence) for which this is true. This is in sharp contrast with (non-simple) neighborly polytopes whose graph is a complete graph; there can be many different neighborly polytopes for the same graph. Another proof of this theorem based on unique sink orientations was given by , and showed how to use this theorem to derive a polynomial time algorithm for reconstructing the face lattices  of simple polytopes from their graphs. However, testing whether a given graph or lattice can be realized as the face lattice of a simple polytope is equivalent (by polarity) to realization of simplicial polytopes, which was shown to be complete for the existential theory of the reals by . In the context of the simplex method for linear programming, it is important to understand the diameter of a polytope, the minimum number of edges needed to reach any vertex by a path from any other vertex. The system of linear inequalities of a linear program define facets of a polytope representing  all feasible solutions to the program, and the simplex method finds the optimal solution by following a path in this polytope. Thus, the diameter provides a lower bound on the number of steps this method requires. The Hirsch conjecture, now disproved, suggested a strong (linear) bound on how large the diameter of a polytope with fixed dimension formula_3 and number of facets formula_4 could be. Weaker (quasi-polynomial in formula_3 and formula_4) upper bounds on their diameter are known, as well as proofs of the Hirsch conjecture for special classes of polytopes. Computational properties. Deciding whether the number of vertices  of a given polytope is bounded by some natural number "k" is a computationally difficult problem and complete for the complexity class PP. Facets of 0-1 polytopes. It is important in the context of cutting-plane methods for integer programming to be able to describe accurately the facets of polytopes that have vertices corresponding to the solutions of combinatorial optimization problems. Often, these problems have solutions that can be described by binary vectors, and the corresponding polytopes have vertex coordinates that are all zero or one. As an example, consider the Birkhoff polytope, the set of "n" × "n  matrices that can be formed from convex combinations of permutation matrices. Equivalently, its vertices can be thought of as describing all perfect matchings in a complete bipartite graph, and a linear optimization problem on this polytope can be interpreted as a bipartite minimum weight perfect matching problem. The Birkhoff–von Neumann theorem" states that this polytope can be described by two types of linear inequality or equality. First, for each matrix cell, there is a constraint that this cell has a non-negative value. And second, for each row or column of the matrix, there is a constraint that the  sum of the cells in that row or column equal one. The row and column constraints define a linear subspace of dimension "n" − 2"n" + 1 in which the Birkhoff polytope lies, and the non-negativity constraints define facets of the Birkhoff polytope within that subspace. However, the Birkhoff polytope is unusual in that a complete description of its facets is available. For many other 0-1 polytopes, there are exponentially many or superexponentially many facets, and only partial descriptions of their facets are available.