Generate numerical semigroups

Generate all numerical semigroups with a given genus.
Genus (max. 15)
Multiplicity
Conductor
Embedding dimension
Output format
Output  numbering graphics

Object info

A numerical semigroup $\Lambda$ is a subset of the non-negative integers $\{0,1,\ldots\}$ satisfying the following three conditions: The integer 0 must be contained in $\Lambda$; the set $\Lambda$ may miss only a finite number of integers; and $a,b\in\Lambda$ implies that $a+b\in\Lambda$, i.e., $\Lambda$ is closed under addition. A missing element of $\Lambda$ is called a gap, and the number of gaps is referred to as the genus of $\Lambda$. The multiplicity of $\Lambda$ is the smallest non-zero element in $\Lambda$. The conductor is the smallest element in $\Lambda$ that is larger than all gaps. The embedding dimension is the cardinality of a minimal system of generators of $\Lambda$.

The characteristic vector of a semigroup is the infinite bitstring that has a 1-bit at position $i$ if and only if the integer $i$ is contained in the group. We visualize the characteristic vector by colored boxes with 0=gray (gap) and 1=red (non-gap). For instance, the semigroup $\Lambda=\{0,5,8,9,10,12,13,14,15,16,\ldots\}$ has characteristic vector $10000100111011111\ldots$ which is visualized as ...

The algorithm running on this website is due to Bras-Amorós and Fernández-González (see [BA08], [Kap17], [BAFG18], [BAFG20]), and it generates numerical semigroups in lexicographic order of their characteristic vectors by a tree-based approach.

Enumeration (OEIS)

Numerical semigroups by genus are counted by OEIS A007323. The number of semigroups with genus $g$ and conductor $2g$, so-called symmetric numerical semigroups, is given by OEIS A158278.

Download source code

[Zipped C++ source code (GNU GPL)]

References