randomSemigroup -- Generate random semigroups.

Synopsis

• Usage:
randomSemigroup(a,d,c)
• Inputs:
• Outputs:

Description

Generate a random generating set of a semigroups B in ℕ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*ei 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 :

• randomSemigroup(ZZ,ZZ,ZZ)