The numC parameter in Algorithm 1 represents the total number of tokens in all constraints.
the hypotheses in a beam can be separated into two types (see lines Grid ⇐ initGrid(maxLen, numC, k) initialize beams in grid 4: for t = 1, t++, t < maxLen do 6: n, s, g = ∅ 8: if hyp.isOpen() then the model in Algorithm 1 implements an interface with three functions: generate, start, and continue, which build new hypotheses in each of the three ways.