We then use a variation on the beam search algorithm (Reddy, 1977) and devise a methodology to select the k-best scoring trees to be carried on to the next iteration.
we use a Breadth-First algorithm for expanding the tree and define a dynamic programming algorithm that takes the score of a derivation tree of n − 1 expanded nodes, selects a new rule for the next non-expanded node, and from it, calculates the score of the expanded tree with now n nodes.