Labelled formal languages and their uses

This research augments formal languages with the machinery to describe labelled combinatorial objects such as trees, permutations, and networks. These objects typically have requirements for their labels (trees, for example, can be equivalent under permutation of subtrees) that make certain labellings invalid or redundant. To deal with this problem, formal languages are augmented with partial orders--derived strings have partial orders specifying acceptable labellings, and productions of the grammar contain fragments of partial orders. The traditional rewrite step in a derivation is now coupled with a substitution that joins two partial orders. The most attractive feature of this method of describing combinatorial objects is the direct translation to generating functions. Treating the grammar of an ordinary formal language as a set of equations and then solving these equations yields an enumerating generating function. This is still true of labelled formal languages although the equations are usually differential rather than rational or algebraic. There are two promising applications for labelled formal languages. In the analysis of algorithms one often identifies combinatorial quantities that can be described with labelled formal languages and, using the translation mentioned above, these quantities can be easily computed. The other application uses labelled formal languages to control a general-purpose system for the ranking, sequencing, and selection of combinatorial objects. Both of these applications demonstrate the value of labelled formal languages as a descriptive and analytic tool.