Sophie

Sophie

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

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 cyclic polytope</title>
<link rel="stylesheet" type="text/css" href="../../../../Macaulay2/Style/doc.css"/>
</head>
<body>
<table class="buttons">
  <tr>
    <td><div><a href="___Finding_spthe_spfacets_spof_spthe_sppermutahedron.html">next</a> | <a href="___Applications_spto_spmultigraded_sppolynomial_springs.html">previous</a> | <a href="___Finding_spthe_spfacets_spof_spthe_sppermutahedron.html">forward</a> | <a href="___Applications_spto_spmultigraded_sppolynomial_springs.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 cyclic polytope</h1>
<div>The <em>cyclic polytope</em> is the convex hull of distinct points on the moment curve.  The function <tt>cyclicPolytope</tt> produces a matrix such that columns generate the cyclic <tt>d</tt>-polytope with <tt>n</tt> vertices.<table class="examples"><tr><td><pre>i1 : cyclicPolytope = (d,n) -> map(ZZ^d, ZZ^n, (i,j) -> j^(i+1));</pre>
</td></tr>
<tr><td><pre>i2 : vertices = cyclicPolytope(4,8)

o2 = | 0 1 2  3  4   5   6    7    |
     | 0 1 4  9  16  25  36   49   |
     | 0 1 8  27 64  125 216  343  |
     | 0 1 16 81 256 625 1296 2401 |

              4        8
o2 : Matrix ZZ  &lt;--- ZZ</pre>
</td></tr>
</table>
<p/>
To find the halfspace representation for the convex hull of these points, we first pass from 4-space to 5-space.  Specifically, we make the cyclic polytope 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 : polyCone = homogenizePolytope vertices

o4 = | 1 1 1  1  1   1   1    1    |
     | 0 1 2  3  4   5   6    7    |
     | 0 1 4  9  16  25  36   49   |
     | 0 1 8  27 64  125 216  343  |
     | 0 1 16 81 256 625 1296 2401 |

              5        8
o4 : Matrix ZZ  &lt;--- ZZ</pre>
</td></tr>
<tr><td><pre>i5 : H = fourierMotzkin polyCone

o5 = (| 0   0   -24 0   -40 0   -120 -60 0   -180 -84 -360 -252 -504 -840
      | 6   12  50  20  78  30  154  112 42  216  152 342  288  450  638 
      | -11 -19 -35 -29 -49 -41 -71  -65 -55 -91  -83 -119 -113 -145 -179
      | 6   8   10  10  12  12  14   14  14  16   16  18   18   20   22  
      | -1  -1  -1  -1  -1  -1  -1   -1  -1  -1   -1  -1   -1   -1   -1  
     ------------------------------------------------------------------------
     0    0    0   0   0   |, 0)
     -210 -140 -84 -42 -14 |
     107  83   61  41  23  |
     -18  -16  -14 -12 -10 |
     1    1    1   1   1   |

o5 : Sequence</pre>
</td></tr>
<tr><td><pre>i6 : halfspaces = H#0

o6 = | 0   0   -24 0   -40 0   -120 -60 0   -180 -84 -360 -252 -504 -840 0   
     | 6   12  50  20  78  30  154  112 42  216  152 342  288  450  638  -210
     | -11 -19 -35 -29 -49 -41 -71  -65 -55 -91  -83 -119 -113 -145 -179 107 
     | 6   8   10  10  12  12  14   14  14  16   16  18   18   20   22   -18 
     | -1  -1  -1  -1  -1  -1  -1   -1  -1  -1   -1  -1   -1   -1   -1   1   
     ------------------------------------------------------------------------
     0    0   0   0   |
     -140 -84 -42 -14 |
     83   61  41  23  |
     -16  -14 -12 -10 |
     1    1   1   1   |

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

o7 = 20</pre>
</td></tr>
</table>
Since <tt>H#1</tt> is zero, the polyhedral cone spans 5-space.  The columns in the matrix <tt>halfspaces</tt> describe a complete minimal system of inequalities for the convex hull of these points.  In particular, this polytope has 20 facets.<p/>
To see the combinatorial structure of this polytope, we compute the facet-vertex incidence matrix.<table class="examples"><tr><td><pre>i8 : inequalityVector = transpose submatrix(halfspaces,{0},)

o8 = | 0    |
     | 0    |
     | -24  |
     | 0    |
     | -40  |
     | 0    |
     | -120 |
     | -60  |
     | 0    |
     | -180 |
     | -84  |
     | -360 |
     | -252 |
     | -504 |
     | -840 |
     | 0    |
     | 0    |
     | 0    |
     | 0    |
     | 0    |

              20        1
o8 : Matrix ZZ   &lt;--- ZZ</pre>
</td></tr>
<tr><td><pre>i9 : inequalityMatrix = transpose submatrix(halfspaces,{1..4},)

o9 = | 6    -11  6   -1 |
     | 12   -19  8   -1 |
     | 50   -35  10  -1 |
     | 20   -29  10  -1 |
     | 78   -49  12  -1 |
     | 30   -41  12  -1 |
     | 154  -71  14  -1 |
     | 112  -65  14  -1 |
     | 42   -55  14  -1 |
     | 216  -91  16  -1 |
     | 152  -83  16  -1 |
     | 342  -119 18  -1 |
     | 288  -113 18  -1 |
     | 450  -145 20  -1 |
     | 638  -179 22  -1 |
     | -210 107  -18 1  |
     | -140 83   -16 1  |
     | -84  61   -14 1  |
     | -42  41   -12 1  |
     | -14  23   -10 1  |

              20        4
o9 : Matrix ZZ   &lt;--- ZZ</pre>
</td></tr>
<tr><td><pre>i10 : ones = map(ZZ^1,ZZ^8,{toList(8:1)})

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

               1        8
o10 : Matrix ZZ  &lt;--- ZZ</pre>
</td></tr>
<tr><td><pre>i11 : M = (inequalityMatrix * vertices) + (ones ** inequalityVector)

o11 = | 0    0    0    0   -24 -120 -360 -840 |
      | 0    0    -4   0   0   -40  -180 -504 |
      | -24  0    0    0   0   -24  -120 -360 |
      | 0    0    -12  -12 0   0    -60  -252 |
      | -40  0    0    -4  0   0    -40  -180 |
      | 0    0    -24  -36 -24 0    0    -84  |
      | -120 -24  0    0   0   0    -24  -120 |
      | -60  0    0    -12 -12 0    0    -60  |
      | 0    0    -40  -72 -72 -40  0    0    |
      | -180 -40  0    0   -4  0    0    -40  |
      | -84  0    0    -24 -36 -24  0    0    |
      | -360 -120 -24  0   0   0    0    -24  |
      | -252 -60  0    0   -12 -12  0    0    |
      | -504 -180 -40  0   0   -4   0    0    |
      | -840 -360 -120 -24 0   0    0    0    |
      | 0    -120 -120 -72 -24 0    0    0    |
      | 0    -72  -60  -24 0   0    -12  0    |
      | 0    -36  -20  0   0   -20  -36  0    |
      | 0    -12  0    0   -24 -60  -72  0    |
      | 0    0    0    -24 -72 -120 -120 0    |

               20        8
o11 : Matrix ZZ   &lt;--- ZZ</pre>
</td></tr>
<tr><td><pre>i12 : incidence = matrix table(20,8, (i,j) -> if M_(i,j) == 0 then 1 else 0)

o12 = | 1 1 1 1 0 0 0 0 |
      | 1 1 0 1 1 0 0 0 |
      | 0 1 1 1 1 0 0 0 |
      | 1 1 0 0 1 1 0 0 |
      | 0 1 1 0 1 1 0 0 |
      | 1 1 0 0 0 1 1 0 |
      | 0 0 1 1 1 1 0 0 |
      | 0 1 1 0 0 1 1 0 |
      | 1 1 0 0 0 0 1 1 |
      | 0 0 1 1 0 1 1 0 |
      | 0 1 1 0 0 0 1 1 |
      | 0 0 0 1 1 1 1 0 |
      | 0 0 1 1 0 0 1 1 |
      | 0 0 0 1 1 0 1 1 |
      | 0 0 0 0 1 1 1 1 |
      | 1 0 0 0 0 1 1 1 |
      | 1 0 0 0 1 1 0 1 |
      | 1 0 0 1 1 0 0 1 |
      | 1 0 1 1 0 0 0 1 |
      | 1 1 1 0 0 0 0 1 |

               20        8
o12 : Matrix ZZ   &lt;--- ZZ</pre>
</td></tr>
</table>
From the rows of the matrix, we see Gale's evenness condition: every segment of consecutive <tt>1</tt>'s is of even length if it is not an initial or a final segment.  For more information, see Theorem 0.7 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>