Sophie

Sophie

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

Macaulay2-1.3.1-8.fc15.i686.rpm

-- -*- M2-comint -*- {* hash: 489085377 *}

i1 : permutahedron = d -> transpose matrix permutations toList(1..d+1);

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  <--- ZZ

i3 : homogenizePolytope = V -> (
          R := ring V;
          n := numgens source V;
          map(R^1, R^n, {toList(n:1)}) || V);

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

i5 : transpose H#1

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

              1        5
o5 : Matrix ZZ  <--- ZZ

i6 : halfspaces = H#0;

              5        14
o6 : Matrix ZZ  <--- ZZ

i7 : numgens source halfspaces

o7 = 14

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   <--- ZZ

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   <--- ZZ

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   <--- ZZ

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  <--- ZZ

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  <--- ZZ

i13 :