next up previous contents index
Next: Data for Applications Up: Basic Definitions Previous: Finite State Automata

Finite State Transducers

 

Transducers  are automata that have transitions labeled with two symbols. One of the symbols represents input, the other - output. Transducers translate (or transduce) strings. In automata theory (see [HU79]) they are called Mealy's automata.

Transducers can be seen as automata with transitions labeled with symbols from tex2html_wrap_inline4822, where tex2html_wrap_inline4824 and tex2html_wrap_inline4826 are the alphabets  of input and output, respectively. With such a perception in mind, all the definitions for automata hold for transducers. The alphabets tex2html_wrap_inline4824 and tex2html_wrap_inline4826 are frequently the same, so the definition ([RS95]) becomes simply tex2html_wrap_inline4832, where tex2html_wrap_inline4684 is a finite alphabet, Q is a finite set of states or vertices, tex2html_wrap_inline4680 is the initial state, tex2html_wrap_inline4682 is the set of final states, and tex2html_wrap_inline4842 is the set of transitions or edges. The state transition function d  that maps tex2html_wrap_inline4844 into tex2html_wrap_inline4846 is defined as tex2html_wrap_inline4848. The emission function  tex2html_wrap_inline4686 maps tex2html_wrap_inline4852 into tex2html_wrap_inline4854, and is defined as tex2html_wrap_inline4856.

  figure392
Figure 2.5: Simple transducer (adopted from [RS95])

Figure 2.5 shows a transducer T=({a,b,c,e,h}, {0,1,2,3}, 0, {3}, {(0,a,b,1), (0,a,c,2), (1,h,h,3), (2,e,e,3)}). It translates ab to bh and ae to ce.

Transducers translate or transduce strings. A transducer T is said to represent the transducing mapping f from tex2html_wrap_inline4706 to tex2html_wrap_inline4706. Let tex2html_wrap_inline4866 be the transitive closure of E defined by the following recursive relation ([RS95]):

Then the transducing mapping f(w) = w' iff tex2html_wrap_inline4878. One writes f = |T|. In the example figure, |T|(ah)=bh and |T|(ae)=ce. If, for some input w, more than one output is allowed, then f is called a rational transduction . Otherwise it is called a rational function .

Because transducers are used as a device to compute a function (or to translate one string into another), a different definition of being deterministic is used. In that definition, a transducer is said to be deterministic iff both the transition function d and the emission function tex2html_wrap_inline4686 lead to sets containing at most one element. More formally, tex2html_wrap_inline4894. Traditionally, such deterministic transducers are called subsequential   (sequential transducers   are deterministic transducers for which all states are final). For subsequential transducers, the transducing function can be computed by deterministically following a single path in the transducer.

The transducer in figure 2.5 is not subsequential; it computes a rational function. Because both transitions leaving the first state have a as their input labels, tex2html_wrap_inline4896 one cannot determine which path to follow without looking at further input.

Subsequential transducers are defined as seven-tuples tex2html_wrap_inline4898, where the meaning of tex2html_wrap_inline4684, Q, i, and F is the same as in simple transducers described above, tex2html_wrap_inline4908 is the deterministic state transition function that maps tex2html_wrap_inline4910 on Q, * is the deterministic emission function that maps tex2html_wrap_inline4910 on tex2html_wrap_inline4706 (this function should not be confused with the Kleene's star, which is written as a superscript), and the final emission function tex2html_wrap_inline4918 maps F on tex2html_wrap_inline4706. One writes tex2html_wrap_inline4924, q * a = w' and tex2html_wrap_inline4928. Figure 2.6 shows a subsequential transducer that accepts the same language as the transducer from fig. 2.5.

  figure429
Figure: Subsequential transducer - a transformation of the transducer from fig. 2.5 (taken from [RS95])

Subsequential transducers are faster in recognition tasks, but may take more space. They are faster, because one always follows a single path in the automaton, and there is no need to go back, as it is the case with simple transducers. They may take more space as one needs to store strings instead of characters (symbols) in transitions. 


next up previous contents index
Next: Data for Applications Up: Basic Definitions Previous: Finite State Automata

Jan Daciuk
Wed Jun 3 14:37:17 CEST 1998

Software at http://www.pg.gda.pl/~jandac/fsa.html