Introduction and Definitions LattE and Barvinok’s algorithm Calculating the Hilbert basis using 4ti2 Integer Programming and Lattice Point Enumeration Seminar ”Mathematical Software”, Prof. Komei Fukuda Christoph Glanzer November 25, 2014
Introduction and Definitions LattE and Barvinok’s algorithm Calculating the Hilbert basis using 4ti2 Outline of the Seminar Goal: Present a computational approach towards solving two common problems in Integer Programming: The enumeration of lattice points of a polyhedron and the calculation of a Hilbert basis. Outline: 1. Introduction and Definitions 1.1 Integer and Linear Programming 1.2 Hilbert Basis 2. LattE and Barvinok’s algorithm 2.1 Introduction to LattE 2.2 Barvinok’s algorithm 2.3 Input file format and examples 3. 4ti2 3.1 Input file format 3.2 Example: Calculating the Hilbert basis
Introduction and Definitions LattE and Barvinok’s algorithm Calculating the Hilbert basis using 4ti2 Section 1 Introduction and Definitions
Introduction and Definitions LattE and Barvinok’s algorithm Calculating the Hilbert basis using 4ti2 Basic Definitions Definition (Half-Space) For a ∈ Q d , α ∈ Q , { x ∈ R d | a T x ≤ α } is called a (rational) half-space. Definition (Polyhedron) A polyhedron P is an intersection of a finite amount of halfspaces, P = { x ∈ R d | Ax ≤ b } where the inequality is considered to be element-wise and A ∈ Q m × d .
Introduction and Definitions LattE and Barvinok’s algorithm Calculating the Hilbert basis using 4ti2 Linear Programming • Goal: Maximize an objective function defined by c over a given polyhedron P . • Linear programs can be expressed in the following form: x ∈ R d c T x max subject to: Ax ≤ b x ∈ R d , A ∈ R m × d , b ∈ R m , c ∈ R d where • For d = 2, they can easily be solved graphically.
Introduction and Definitions LattE and Barvinok’s algorithm Calculating the Hilbert basis using 4ti2 Integer Programming • Goal: Maximize an objective function defined by c ∈ Q d over a given polyhedron P , where x ∈ Z d . • Integral optimization programs can be expressed in the following form: x ∈ Z d c T x max subject to: Ax ≤ b x ∈ Z d , A ∈ Q m × d , b ∈ Q m , c ∈ Q d where • LattE only accepts inputs in Q d , which have to be rescaled to lie in Z d , which is why we restrict the inputs to Q d .
Introduction and Definitions LattE and Barvinok’s algorithm Calculating the Hilbert basis using 4ti2 Graphical Example • By moving the affine subspace x 2 = c upwards, we can find both the linear and integral solution graphically.
Introduction and Definitions LattE and Barvinok’s algorithm Calculating the Hilbert basis using 4ti2 Hilbert Basis Definition (Polyhedral Cone) A polyhedron C is a cone if C := { x ∈ R d | Ax ≤ 0 } . Lemma (Properties of a cone) Let C be a polyhedral cone. Then, i) ∀ λ ≥ 0 , x ∈ C : λ x ∈ C, ii) ∀ x 1 , x 2 ∈ C : x 1 + x 2 ∈ C, iii) 0 ∈ C. Proof. i) A λ x = λ Ax ≤ λ 0 = 0 . ii) A ( x 1 + x 2 ) = Ax 1 + Ax 2 ≤ 0 + 0 = 0. iii) A0 = 0 ≤ 0 . �
Introduction and Definitions LattE and Barvinok’s algorithm Calculating the Hilbert basis using 4ti2 Hilbert Basis Definition (Hilbert Basis) Let C be a polyhedral pointed cone. A set of vectors { a 1 , . . . , a k } ⊂ C ∩ Z d is called the (unique) Hilbert basis of the cone C, where k ≥ d , if i) for every integral vector x ∈ C ∩ Z d , there’s an integral conic combination of the a i equal to x , i.e. k ∀ x ∈ C ∩ Z d : ∃ λ 1 , . . . , λ k ≥ 0 , λ i ∈ Z : x = � λ i a i i = 1 ii) and if the set of vectors { a 1 , . . . , a k } has minimal cardinality with respect to all subsets of C ∩ Z d for which i) holds.
Introduction and Definitions LattE and Barvinok’s algorithm Calculating the Hilbert basis using 4ti2 Hilbert Basis - Example • A cone generated by ( 2 , 2 ) T and ( 2 , 0 ) T . The Hilbert basis is given by { ( 1 , 1 ) T , ( 1 , 0 ) T } .
Introduction and Definitions LattE and Barvinok’s algorithm Calculating the Hilbert basis using 4ti2 Section 2 LattE and Barvinok’s algorithm
Introduction and Definitions LattE and Barvinok’s algorithm Calculating the Hilbert basis using 4ti2 Introduction to LattE • Short for L a tt ice Point E numeration. • Development started in 2001; current project supervisors: Prof. Matthias K¨ oppe and Prof. Jes´ us A. De Loera. • While the initial program’s only purpose was to count lattice points, the newer versions, LattE macchiato and LattE integrale , offer a variety of features connected to polyhedra. • Important: LattE cannot compute with irrational numbers!
Introduction and Definitions LattE and Barvinok’s algorithm Calculating the Hilbert basis using 4ti2 Barvinok’s Algorithm • LattE uses Barvinok’s algorithm to count the amount of lattice points in a given polyhedron. • Main idea: Represent the polyhedron’s lattice points as a multivariate polynomial: Definition (Generating Function) Let P be a (rational) polyhedron. We define the multivariate generating function as � z a , f ( P ) := a ∈ P ∩ Z d where we use the notation that z a = z a 1 1 . . . z a d d .
Introduction and Definitions LattE and Barvinok’s algorithm Calculating the Hilbert basis using 4ti2 Generating Function - Example • For a simple square, the multivariate generating function is equal to f ( P ) = z 0 1 z 0 2 + z 1 1 z 0 2 + z 0 1 z 1 2 + z 1 1 z 1 2 = 1 + z 1 + z 2 + z 1 z 2 • Main Idea: Evaluate f ( P ) at z = ( 1 , 1 , . . . , 1 ) T to get the amount of lattice points in the polyhedron.
Introduction and Definitions LattE and Barvinok’s algorithm Calculating the Hilbert basis using 4ti2 Brion’s Theorem • We need to make the computation of f ( P ) as easy and fast as possible. Definition (supporting cone) Let P be a polyhedron and v be a vertex of P . Then, the supporting cone of P at v is defined as K ( P , v ) := v + { u ∈ R d | ∃ δ > 0 s . t . v + ǫ u ∈ P ∀ ǫ ∈ [ 0 , δ ) }
Introduction and Definitions LattE and Barvinok’s algorithm Calculating the Hilbert basis using 4ti2 Brion’s Theorem Figure: The supporting cone of the square at v = ( 0 , 1 ) T
Introduction and Definitions LattE and Barvinok’s algorithm Calculating the Hilbert basis using 4ti2 Brion’s Theorem Theorem (Brion’s Theorem) Let P be a polyhedron and V(P) be the vertex set of P . Then, � f ( P ) = f ( K ( P , v )) . v ∈ V ( P ) • As an example, we use Brion’s Theorem to calculate the generating function f ( P ) = 1 + z 1 + z 2 + z 1 z 2 of the square ( → Blackboard).
Introduction and Definitions LattE and Barvinok’s algorithm Calculating the Hilbert basis using 4ti2 Further Simplifications • There’s another Theorem that will simplify the calculation of the generating function. Definition (Simplicial cone) Let C be a rational cone. C is simplicial if and only if it’s generated by a set of at most d (linear independent) vectors. ⇒ All cones in R 2 are simplicial. However, there are counterexamples in R 3 ( → Blackboard).
Introduction and Definitions LattE and Barvinok’s algorithm Calculating the Hilbert basis using 4ti2 Further Simplifications Theorem Let C be a simplicial cone generated by { u 1 , u 2 , . . . , u k } . Consider the fundamental parallelepiped S defined by k � S = { λ i u i , 0 ≤ λ i < 1 , i = 1 , . . . , k } . i = 1 Then, the generating function for the lattice points in C is k 1 z a = � � � z τ 1 − z u i . a ∈ C ∩ Z d τ ∈ S ∩ Z d i = 1 • This is what we’ve witnessed when we’ve calculated the generating function of the square.
Introduction and Definitions LattE and Barvinok’s algorithm Calculating the Hilbert basis using 4ti2 Further Simplifications • We have crafted the following algorithm: 1. Calculate the supporting cone at every vertex of the polyhedron. 2. Decompose the supporting cones into simplicial cones. 3. Apply the Theorem to calculate the generating function of P . 4. Plug in 1 = ( 1 , 1 , . . . , 1 ) T to receive the amount of lattice points in P . Problem: Especially in higher dimensions, the fundamental parallelepiped tends to contain many lattice points, which makes the calculation quite expensive. ⇒ Barvinok’s idea is to further decompose the simplicial cones.
Introduction and Definitions LattE and Barvinok’s algorithm Calculating the Hilbert basis using 4ti2 Barvinok’s idea Definition (Unimodular Cone) A simplicial cone C is said to be unimodular, if its fundamental parallelepiped only contains one point. Lemma Let C be an unimodular cone. Then, its generating function is given by z β � k 1 1 − z u i , where β is the unique point in the i = 1 fundamental parallelepiped of C.
Introduction and Definitions LattE and Barvinok’s algorithm Calculating the Hilbert basis using 4ti2 Example of an unimodular cone Figure: The cone on the left is unimodular while the one on the right isn’t. ⇒ More details on the decomposition algorithm can be found in the final report.
Recommend
More recommend