Macaulay2 » Documentation
Packages » MonomialAlgebras :: randomSemigroup
next | previous | forward | backward | up | index | toc

randomSemigroup -- Generate random semigroups.

Synopsis

Description

Generate a random generating set of a semigroups B in \mathbb{N}^d of full dimension with coordinate sum a and codimension c.

Note that the random number generator can be controlled by the command setRandomSeed. Alternatively you can also use the option SetSeed.

The option Num can be used to return a list of semigroups.

The option Simplicial can be used to return a simplicial semigroup such that the standard vectors a*e_i are among the Hilbert basis.

i1 : randomSemigroup(5,3,7)

o1 = {{1, 3, 1}, {0, 1, 4}, {2, 1, 2}, {0, 4, 1}, {2, 2, 1}, {3, 2, 0}, {3,
     ------------------------------------------------------------------------
     1, 1}, {5, 0, 0}, {2, 3, 0}, {0, 3, 2}}

o1 : List
i2 : setRandomSeed()
i3 : randomSemigroup(5,3,7)

o3 = {{5, 0, 0}, {1, 3, 1}, {1, 4, 0}, {0, 2, 3}, {3, 0, 2}, {0, 1, 4}, {0,
     ------------------------------------------------------------------------
     5, 0}, {4, 1, 0}, {2, 0, 3}, {4, 0, 1}}

o3 : List
i4 : setRandomSeed()
i5 : randomSemigroup(5,3,7)

o5 = {{5, 0, 0}, {1, 3, 1}, {1, 4, 0}, {0, 2, 3}, {3, 0, 2}, {0, 1, 4}, {0,
     ------------------------------------------------------------------------
     5, 0}, {4, 1, 0}, {2, 0, 3}, {4, 0, 1}}

o5 : List
i6 : setRandomSeed()
i7 : randomSemigroup(5,3,7,Num=>2)

o7 = {{{5, 0, 0}, {1, 3, 1}, {1, 4, 0}, {0, 2, 3}, {3, 0, 2}, {0, 1, 4}, {0,
     ------------------------------------------------------------------------
     5, 0}, {4, 1, 0}, {2, 0, 3}, {4, 0, 1}}, {{1, 3, 1}, {1, 4, 0}, {2, 3,
     ------------------------------------------------------------------------
     0}, {0, 5, 0}, {1, 2, 2}, {3, 1, 1}, {0, 0, 5}, {1, 1, 3}, {4, 0, 1},
     ------------------------------------------------------------------------
     {0, 2, 3}}}

o7 : List
i8 : setRandomSeed()
i9 : randomSemigroup(5,3,7,Simplicial=>true)

o9 = {{5, 0, 0}, {0, 5, 0}, {0, 0, 5}, {0, 1, 4}, {4, 0, 1}, {1, 1, 3}, {1,
     ------------------------------------------------------------------------
     3, 1}, {2, 3, 0}, {2, 0, 3}, {1, 4, 0}}

o9 : List

Ways to use randomSemigroup :

For the programmer

The object randomSemigroup is a method function with options.