Polyhedral Computations an Introduction to Porta and Polymake

Polyhedral Computations an Introduction to Porta and Polymake

Polyhedral Computations An Introduction to Porta and polymake Marc Pfetsch 00A1, 00A2: Lecture and Exercises Block Course: “Combinatorial Optimization at Work” Zuse Institute Berlin Preliminaries This is an integrated lecture and exercise. Goals: ⊲ Repetition of polyhedral theory ⊲ Introduction to polyhedral combinatorics ⊲ Usage of software ◮ Porta ◮ polymake ◮ JavaView ◮ (Zimpl) ⊲ Preparation for forthcoming lectures Software Credits for the software we use: ⊲ Porta Thomas Christof, Andreas Löbel (ZIB) originally developed at U Heidelberg, maintained at ZIB ⊲ polymake Ewgenij Gawrilow (TU Berlin) and Michael Joswig (TU Darmstadt) developed at TU Berlin ⊲ JavaView Konrad Polthier, Klaus Hildebrandt, Eike Preuss, and Ulrich Reitebuch originally developed at TU Berlin – now ZIB ⊲ Zimpl Thorsten Koch (ZIB) Outline 1 Basic Definitions 2 Visualization of Polyhedra 3 Polyhedral Combinatorics 4 Simplex Algorithm 5 V- and H-Description 6 Stable Set Polytopes Outline 1 Basic Definitions 2 Visualization of Polyhedra 3 Polyhedral Combinatorics 4 Simplex Algorithm 5 V- and H-Description 6 Stable Set Polytopes Polyhedra, Polytopes ⊲ Polyhedron: Intersection of finitely many halfspaces: d m×d m Ê Ê P = {x ∈ Ê : Ax ≤ b}, where A ∈ , b ∈ . Halfspaces: d i T i {x ∈ Ê : (a ) x ≤ bi }, a = ith row of A. ⊲ Polytope: bounded polyhedron Examples: Platonic Solids Cube Octahedron Tetrahedron Dodecahedron Icosahedron Further Examples Some easy examples: d ⊲ Ê ⊲ ∅ d d Ê ⊲ Ê+ := {x ∈ : x ≥ 0} d ⊲ For v ∈ Ê : d {v} = {x ∈ Ê : xi ≤ vi , −xi ≤ −vi , i = 1,..., d} Further Examples Some easy examples: d ⊲ Ê ⊲ ∅ d d Ê ⊲ Ê+ := {x ∈ : x ≥ 0} d ⊲ For v ∈ Ê : d {v} = {x ∈ Ê : xi ≤ vi , −xi ≤ −vi , i = 1,..., d} Affine space: d m×d m Ê Ê S ⊆ Ê is affine if there exists A ∈ , b ∈ such that d S = {x ∈ Ê : Ax = b}, i.e., S is the solution of a linear equation system. d As polyhedron: S = {x ∈ Ê : Ax ≤ b, −Ax ≤ −b}. Faces d P polyhedron in Ê . ⊲ Valid Inequalities: T d Ê inequality c x ≤ c0, c ∈ Ê , c0 ∈ , is valid if d T P ⊆{x ∈ Ê : c x ≤ c0}. ⊲ Face of polyhedron P: T F = {x ∈ P : c x = c0}, T for valid inequality c x ≤ c0. Faces d P polyhedron in Ê . ⊲ Valid Inequalities: T d Ê inequality c x ≤ c0, c ∈ Ê , c0 ∈ , is valid if d T P ⊆{x ∈ Ê : c x ≤ c0}. ⊲ Face of polyhedron P: T F = {x ∈ P : c x = c0}, T for valid inequality c x ≤ c0. ⊲ Examples: ◮ P (take 0Tx ≤ 0) ◮ ∅ (take 0Tx ≤−1) “trivial faces”. Dimension ⊲ Affine hull: aff(S)= ∩{S ′ : S ′ ⊇ S, S ′ affine space}. d ⊲ Dimension of S ⊆ Ê : dim S = dimaff(S). d Let P be a polyhedron in Ê . Face F is a ⊲ vertex if dim F = 0 ⊲ edge if dim F = 1 ⊲ ridge if dim F = dim(P) − 2 ⊲ facet if dim F = dim(P) − 1 Main Theorem: Polytopes Theorem d Every polytope P ⊂ Ê is the convex hull of finitely many d vectors v1,..., vk ∈ Ê , i.e., P = conv{v1,..., vk }. Here d conv{v1,..., vk } = {x ∈ Ê : x =λ1v1 + ··· + λk vk , λ1 + ··· + λk = 1, λ1,...,λk ≥ 0}. Main Theorem: Polyhedra Theorem d Every polyhedron P ⊆ Ê can be written as P = conv{v1,..., vk } + cone{r1,..., rℓ} d d Ê with points v1,..., vk ∈ Ê and rays r1,..., rℓ ∈ . Here d cone{r1,..., rℓ} = {x ∈ Ê : x =µ1r1 + ··· + µℓrℓ, µ1,...,µℓ ≥ 0}. Outline 1 Basic Definitions 2 Visualization of Polyhedra 3 Polyhedral Combinatorics 4 Simplex Algorithm 5 V- and H-Description 6 Stable Set Polytopes Exercise 1: Illustration of Definitions With polymake ⊲... Exercise 1: Illustration of Definitions ⊲ Start JavaView. ⊲ Delete geometry: Inspector→Display, “Clean all”. ⊲ Load file cube3.jvx: File→Open→Browse Disk. ⊲ Keys: ◮ o: rotate ◮ t: translate ◮ s: scale ◮ Shift-z: z-buffer on/off ⊲ Open Inspector→Geometry→Material. ⊲ Turn off facets (“Element”). ⊲ Change size of vertices and edges. ⊲ Turn on facets; turn on Transparency, use slider below. ⊲ Delete geometry. Try tetrahedron.jvx, octahedron.jvx, dodecahedron.jvx, icosahedron.jvx. Schlegel Diagrams One visualization technique are Schlegel diagrams: Projection on a facet reduces dimension by 1. Example: Same idea for 3- and 4-dimensional polytopes. Exercise 2: Schlegel Diagrams ⊲ Start JavaView. ⊲ Delete geometry: Inspector→Display, “Clean all”. ⊲ Load file cube3.jvx: File→Open→Browse Disk. ⊲ Open Inspector→Geometry→Material. ⊲ Turn off facets (“Element”). ⊲ Change size of vertices and edges. ⊲ Rotate until you “see everything through a facet”. Exercise 2: Schlegel Diagrams ⊲ Start JavaView. ⊲ Delete geometry: Inspector→Display, “Clean all”. ⊲ Load file cube3.jvx: File→Open→Browse Disk. ⊲ Open Inspector→Geometry→Material. ⊲ Turn off facets (“Element”). ⊲ Change size of vertices and edges. ⊲ Rotate until you “see everything through a facet”. ⊲ Delete geometry. Load cube4.jvx. ⊲ Delete geometry. Load 24-cell.jvx or cross4.jvx. Exercise 2: Schlegel Diagrams ⊲ Start JavaView. ⊲ Delete geometry: Inspector→Display, “Clean all”. ⊲ Load file cube3.jvx: File→Open→Browse Disk. ⊲ Open Inspector→Geometry→Material. ⊲ Turn off facets (“Element”). ⊲ Change size of vertices and edges. ⊲ Rotate until you “see everything through a facet”. ⊲ Delete geometry. Load cube4.jvx. ⊲ Delete geometry. Load 24-cell.jvx or cross4.jvx. ⊲ Load cube4-e.jvx/cross4-e.jvx/24-cell-e.jvx. ⊲ Method→Effect→Explode Group of Geometries Outline 1 Basic Definitions 2 Visualization of Polyhedra 3 Polyhedral Combinatorics 4 Simplex Algorithm 5 V- and H-Description 6 Stable Set Polytopes Example: d-cube d-cube: d Cd :={x ∈ Ê : −1 ≤ xi ≤ 1, i = 1,..., d} = conv{{−1, 1}d } ⊲ 1 face of dimension d ⊲ 2 · d facets ⊲ d · 2d−1 edges ⊲ 2d vertices ⊲ 1 face of dimension −1 Example: d-crosspolytope d-crosspolytope: ∆ Cd := conv{e1, −e1,..., ed , −ed } d T d ={x ∈ Ê : a x ≤ 1, a ∈ {−1, 1} } ⊲ 1 face of dimension d ⊲ 2d facets ⊲ d · 2d−1 ridges ⊲ 2 · d vertices ⊲ 1 face of dimension −1 Upper Bound Theorem How many facets can a polytope with n vertices have? Theorem (McMullen 1970) The maximum number of facets that a d-polytope with n vertices can have is at most d 2 n − d − 1 + i d 2 ≈ c · n 2 (d even). i i= X0 Cyclic Polytopes The upper bound is attained by cyclic polytopes. Can be explicitly constructed. Examples for d = 3: n = 5 n = 6 n = 7 For d ≥ 4, cyclic polytopes are neighborly, i.e., every two vertices are connected by an edge. Hasse Diagram Hasse diagram of polytope P: ⊲ directed graph ⊲ nodes = faces of P ⊲ arc (G, F ) if F ⊆ G and dim(F )= dim(G) − 1 ⊲ has dim(P)+ 1 many layers Example of Hasse Diagram Hasse diagram of the 3-cube: 0 1 2 3 4 5 6 7 0 2 4 6 0 1 2 3 0 1 4 5 2 3 6 7 4 5 6 7 1 3 5 7 0 2 0 4 0 1 2 6 4 6 2 3 4 5 1 3 1 5 6 7 3 7 5 7 0 2 4 1 6 3 5 7 Dual Polytopes Definition Polytopes P and Q are dual polytopes, if the Hasse diagram of P is isomorphic to the Hasse diagram of Q turned upside down. k-faces ↔ (d − k − 1)-faces vertices ↔ facets edges ↔ ridges Combinatorial Equivalence Definition Two polytopes are combinatorially equivalent if their Hasse diagrams are isomorphic. Isomorphism: re-order nodes in each layer such that the resulting graphs are the same. Exercise 3 1. A polytope P is a 0/1-polytope if it vertices have coordinates 0 and 1 only. Find all 3-dimensional 0/1-polytopes that are not combinatorially equivalent. 2. Voluntary: Find all 3-dimensional polytopes with 4, 5, and 6 vertices that are not combinatorially equivalent. 3. Let P be a 3-polytope and v be a vertex of P. Show that the number of facets equals the number of edges containing v. Show or provide a counterexample for the claim in higher dimensions. Outline 1 Basic Definitions 2 Visualization of Polyhedra 3 Polyhedral Combinatorics 4 Simplex Algorithm 5 V- and H-Description 6 Stable Set Polytopes Linear Programming Linear programming problem: m×n m n Ê Ê ⊲ Given: A ∈ Ê , b ∈ , c ∈ ⊲ Find: x ⋆ ∈ P := {x : Ax ≤ b} maximizing cTx ⋆ Useful facts: ⊲ Optimum is attained at vertex of P. ⊲ Suffices to go from vertex to vertex Simplex-Algorithm. Geometric View on the Simplex Algorithm Objective function oriented to right top Geometric View on the Simplex Algorithm Start at vertex Geometric View on the Simplex Algorithm Walk along improving edge Geometric View on the Simplex Algorithm Keep walking as long as we can improve Geometric View on the Simplex Algorithm Keep walking as long as we can improve Geometric View on the Simplex Algorithm Keep walking as long as we can improve Geometric View on the Simplex Algorithm Keep walking as long as we can improve Geometric View on the Simplex Algorithm Keep walking as long as we can improve Geometric View on the Simplex Algorithm Keep walking as long as we can improve Long Paths More examples: ⊲ soccerball.jvx ⊲ Schrijver_KleeMinty.3.jvx Long Paths More examples: ⊲ soccerball.jvx ⊲ Schrijver_KleeMinty.3.jvx For most pivot rules: Exist examples in which simplex algorithm behaves bad, i.e., takes very (exponentially) long path. Long Paths More examples: ⊲ soccerball.jvx ⊲ Schrijver_KleeMinty.3.jvx For most pivot rules: Exist examples in which simplex algorithm behaves bad, i.e., takes very (exponentially) long path. On the other hand: Conjecture (Hirsch 1957) The shortest path between any two vertices in a d-polytope with m facets is at most m − d. unsolved Outline 1 Basic Definitions 2 Visualization of Polyhedra 3 Polyhedral Combinatorics 4 Simplex Algorithm 5 V- and H-Description 6 Stable Set Polytopes V- and H-Description Recall the main theorem: Theorem Every polytope P can be described by an H-description P = {x : Ax ≤ b} or by a V-description P = conv{v1,..., vk }.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    70 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us