Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Introduction to Automata Theory, Languages and Computability
Introduction to Automata Theory, Languages and Computability
Introduction to Algorithms
Performance of hardcoded finite automata
Software—Practice & Experience - Research Articles
A Compression Method for Natural Language Automata
Proceedings of the 2009 conference on Finite-State Methods and Natural Language Processing: Post-proceedings of the 7th International Workshop FSMNLP 2008
Hi-index | 0.00 |
In this paper we present two transformations on automata, called stretching and jamming. These transformations will, under certain conditions, reduce the size of the transition table, and under other conditions reduce the string recognition time. Given a deterministic finite automaton, we can stretch it by transforming each single transition into two or more sequential transitions, thereby introducing additional intermediate states. Jamming is the opposite transformation, in which two or more successive transitions are transformed into a single transition, thereby removing redundant intermediate states.We will present formal definitions of stretching and jamming. We will give algorithms for stretching and jamming and we will calculate theoretical bounds, when stretching/jamming is effective in terms of memory consumption and string recognition time.