On Constructing Finite Automata by Relational Programming
Attila Egri-Nagy, Chrystopher L. Nehaniv
TL;DR
The paper tackles constructing minimal finite-state transducers that realize a given set of input–output word pairs, framing this as a lossless, non-statistical learning problem. It introduces relational programming, specifically using miniKanren via core.logic in Clojure, to infer transducers by solving constraint-based formulations, and contrasts this with a classical trie-based minimization approach. Through several examples, the authors show that the relational method can produce truly minimal transducers for the training set, albeit at a high computational cost and limited scalability, whereas the trie-based method runs faster but does not guarantee minimality due to flexible output assignments. The work highlights the potential of exact transducer design for algebraic analysis of games and points to future directions, including incremental relational construction and hybrid classical techniques to improve scalability and practicality.
Abstract
We consider ways to construct a transducer for a given set of input word to output symbol pairs. This is motivated by the need for representing game playing programs in a low-level mathematical format that can be analyzed by algebraic tools. This is different from the classical applications of finite state automata, thus the usual optimization techniques are not directly applicable. Therefore, we use relational programming tools to find minimal transducers realizing a given set of input-output pairs.
