Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 7ebd25ac536d248d499a3ce2acda963a > files > 1934

Macaulay2-1.3.1-8.fc15.i686.rpm

<?xml version="1.0" encoding="utf-8" ?>  <!-- for emacs: -*- coding: utf-8 -*- -->
<!-- Apache may like this line in the file .htaccess: AddCharset utf-8 .html -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN"	 "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg-flat.dtd" >
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head><title>Finding the facets of the permutahedron</title>
<link rel="stylesheet" type="text/css" href="../../../../Macaulay2/Style/doc.css"/>
</head>
<body>
<table class="buttons">
  <tr>
    <td><div><a href="_fourier__Motzkin.html">next</a> | <a href="___Finding_spthe_spfacets_spof_spthe_spcyclic_sppolytope.html">previous</a> | <a href="_fourier__Motzkin.html">forward</a> | <a href="___Finding_spthe_spfacets_spof_spthe_spcyclic_sppolytope.html">backward</a> | up | <a href="index.html">top</a> | <a href="master.html">index</a> | <a href="toc.html">toc</a> | <a href="http://www.math.uiuc.edu/Macaulay2/">Macaulay2 web site</a></div>

    </td>
  </tr>
</table>
<hr/>
<div><h1>Finding the facets of the permutahedron</h1>
<div>The <em>permutahedron</em> is the convex hull of all vectors that are obtained by permuting the coordinates of the vector <tt>(1,2, ..., d)</tt>.  The function <tt>permutahedron</tt> produces a matrix such that columns generate the cyclic <tt>d</tt> permutahedron in <tt>(d+1)</tt>-space.<table class="examples"><tr><td><pre>i1 : permutahedron = d -> transpose matrix permutations toList(1..d+1);</pre>
</td></tr>
<tr><td><pre>i2 : vertices = permutahedron 3

o2 = | 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 3 3 4 4 4 4 4 4 |
     | 2 2 3 3 4 4 1 1 3 3 4 4 1 1 2 2 4 4 1 1 2 2 3 3 |
     | 3 4 2 4 2 3 3 4 1 4 1 3 2 4 1 4 1 2 2 3 1 3 1 2 |
     | 4 3 4 2 3 2 4 3 4 1 3 1 4 2 4 1 2 1 3 2 3 1 2 1 |

              4        24
o2 : Matrix ZZ  &lt;--- ZZ</pre>
</td></tr>
</table>
<p/>
To find the halfspace representation for permutahedron, we first pass from 4-space to 5-space.  Specifically, we make the permutahedron into a polyhedral cone by placing it a height 1 (we make the extra coordinate the zeroeth coordinate).<table class="examples"><tr><td><pre>i3 : homogenizePolytope = V -> (
          R := ring V;
          n := numgens source V;
          map(R^1, R^n, {toList(n:1)}) || V);</pre>
</td></tr>
<tr><td><pre>i4 : H = fourierMotzkin homogenizePolytope vertices

o4 = (| 0  0  0  0  0  0  0  0  0  0  0  0  0  0  |, | 10 |)
      | 1  3  3  -7 3  -2 -2 1  1  -9 3  -7 -2 -7 |  | -1 |
      | 1  3  -7 3  -2 3  -2 1  -9 1  -7 3  -2 -7 |  | -1 |
      | 1  -7 3  3  -2 -2 3  -9 1  1  -7 -7 -2 3  |  | -1 |
      | -9 -7 -7 -7 -2 -2 -2 1  1  1  3  3  3  3  |  | -1 |

o4 : Sequence</pre>
</td></tr>
<tr><td><pre>i5 : transpose H#1

o5 = | 10 -1 -1 -1 -1 |

              1        5
o5 : Matrix ZZ  &lt;--- ZZ</pre>
</td></tr>
<tr><td><pre>i6 : halfspaces = H#0;

              5        14
o6 : Matrix ZZ  &lt;--- ZZ</pre>
</td></tr>
<tr><td><pre>i7 : numgens source halfspaces

o7 = 14</pre>
</td></tr>
</table>
Since <tt>H#1</tt> has one column vector, the polyhedral cone spans a 4-dimensional subspace of 5-space.  Indeed, the sum of the components for each vertex is 10.  The columns in the matrix <tt>halfspaces</tt> describe a complete minimal system of inequalities for permutahedron.  In particular, this polytope has 14 facets.<p/>
To see the combinatorial structure of this polytope, we compute the facet-vertex incidence matrix.<table class="examples"><tr><td><pre>i8 : inequalityMatrix = transpose submatrix(halfspaces,{1..4},)

o8 = | 1  1  1  -9 |
     | 3  3  -7 -7 |
     | 3  -7 3  -7 |
     | -7 3  3  -7 |
     | 3  -2 -2 -2 |
     | -2 3  -2 -2 |
     | -2 -2 3  -2 |
     | 1  1  -9 1  |
     | 1  -9 1  1  |
     | -9 1  1  1  |
     | 3  -7 -7 3  |
     | -7 3  -7 3  |
     | -2 -2 -2 3  |
     | -7 -7 3  3  |

              14        4
o8 : Matrix ZZ   &lt;--- ZZ</pre>
</td></tr>
<tr><td><pre>i9 : M = inequalityMatrix * vertices

o9 = | -30 -20 -30 -10 -20 -10 -30 -20 -30 0   -20 0   -30 -10 -30 0   -10
     | -40 -40 -30 -30 -20 -20 -40 -40 -20 -20 -10 -10 -30 -30 -20 -20 0  
     | -30 -20 -40 -20 -40 -30 -20 -10 -40 -10 -40 -20 -20 0   -30 0   -30
     | -20 -10 -20 0   -10 0   -30 -20 -30 0   -20 0   -40 -20 -40 -10 -20
     | -15 -15 -15 -15 -15 -15 -10 -10 -10 -10 -10 -10 -5  -5  -5  -5  -5 
     | -10 -10 -5  -5  0   0   -15 -15 -5  -5  0   0   -15 -15 -10 -10 0  
     | -5  0   -10 0   -10 -5  -5  0   -15 0   -15 -5  -10 0   -15 0   -15
     | -20 -30 -10 -30 -10 -20 -20 -30 0   -30 0   -20 -10 -30 0   -30 0  
     | -10 -10 -20 -20 -30 -30 0   0   -20 -20 -30 -30 0   0   -10 -10 -30
     | 0   0   0   0   0   0   -10 -10 -10 -10 -10 -10 -20 -20 -20 -20 -20
     | -20 -30 -20 -40 -30 -40 -10 -20 -10 -40 -20 -40 0   -20 0   -30 -20
     | -10 -20 0   -20 0   -10 -20 -30 0   -30 0   -20 -20 -40 -10 -40 -10
     | 0   -5  0   -10 -5  -10 0   -5  0   -15 -5  -15 0   -10 0   -15 -10
     | 0   0   -10 -10 -20 -20 0   0   -20 -20 -30 -30 -10 -10 -20 -20 -40
     ------------------------------------------------------------------------
     0   -20 -10 -20 0   -10 0   |
     0   -20 -20 -10 -10 0   0   |
     -20 -10 0   -20 0   -20 -10 |
     -10 -40 -30 -40 -20 -30 -20 |
     -5  0   0   0   0   0   0   |
     0   -15 -15 -10 -10 -5  -5  |
     -10 -10 -5  -15 -5  -15 -10 |
     -10 -10 -20 0   -20 0   -10 |
     -30 0   0   -10 -10 -20 -20 |
     -20 -30 -30 -30 -30 -30 -30 |
     -30 0   -10 0   -20 -10 -20 |
     -20 -30 -40 -20 -40 -20 -30 |
     -15 -5  -10 -5  -15 -10 -15 |
     -40 -20 -20 -30 -30 -40 -40 |

              14        24
o9 : Matrix ZZ   &lt;--- ZZ</pre>
</td></tr>
<tr><td><pre>i10 : incidence = matrix table(14,24, (i,j) -> if M_(i,j) == 0 then 1 else 0)

o10 = | 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 |
      | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 |
      | 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 |
      | 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 |
      | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 |
      | 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 |
      | 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 |
      | 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 |
      | 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 |
      | 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
      | 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 |
      | 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 |
      | 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 |
      | 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |

               14        24
o10 : Matrix ZZ   &lt;--- ZZ</pre>
</td></tr>
<tr><td><pre>i11 : vertexDegree = map(ZZ^1,ZZ^14,{toList(14:1)}) * incidence

o11 = | 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 |

               1        24
o11 : Matrix ZZ  &lt;--- ZZ</pre>
</td></tr>
<tr><td><pre>i12 : facets = transpose(incidence * transpose map(ZZ^1,ZZ^24,{toList(24:1)}))

o12 = | 6 4 4 4 6 6 6 6 6 6 4 4 6 4 |

               1        14
o12 : Matrix ZZ  &lt;--- ZZ</pre>
</td></tr>
</table>
We see that each vertex has degree 3.  Moreover, there are 8 hexagonal facets and 6 quadrilateral facets.  For pictures, see pages 17-18 in <a href="http://www.math.tu-berlin.de/~ziegler/">Gunter M. Ziegler's</a> <em>Lectures on Polytopes</em>, Graduate Texts in Mathematics 152, Springer-Verlag, New York, 1995.</div>
</div>
</body>
</html>