Character Recognition with k-Head Finite Array Automata Henning Fernau1? , Rudolf Freund2 , and Markus Holzer1 1

Wilhelm-Schickard-Institut fur Informatik, Universitat Tubingen Sand 13, D-72076 Tubingen, Germany email: ffernau,[email protected] 2 Institut fur Computersprachen, Technische Universitat Wien Resselgasse 3, A-1040 Wien, Austria, email: [email protected]

Abstract. We introduce the concept of k-head nite two-dimensional array

automata and show how this model of two-dimensional array automata can be applied in the eld of syntactic character recognition. Moreover, we discuss some of the problems arising with implementing the theoretical concept to obtain an ecient tool for the syntactic analysis of handwritten (uppercase) characters.

1 Introduction In the eld of syntactic character recognition, the theoretical concept of array grammars represents an interesting formal framework that allows for accurate descriptions of two-dimensional patterns like (handwritten, uppercase) characters. Whereas \pure" context-free array grammars as proposed in [19] not yet allow ecient implementations of the array grammar approach for the syntactic clustering analysis of handwritten characters, additional features like the controlled use of productions yield more ecient algorithms as exhibited in [9] within the framework of graph controlled grammars; moreover, the model has to incorporate suitable error measures computed during the analysis of the underlying pattern in order to allow for most accurate analysis results distinguishing between dierent clusters of characters. Seen from a theoretical point of view, such additional features increase the generative power of the array model, yet as we operate on a bounded rectangle only, this is of minor importance; on the other hand, a controlled use of array productions reduces the non-determinism of the analyzing device and thus increases eciency by minimizing the needs to backtrack. There are some crucial dierences between an approach based on neural networks and an approach based on a syntactical model like that proposed in this paper: In a trained neural network, the incorporated features are hardly transparent to the user. In our syntactical approach, we obtain reproducible results, because the characteristics of the letters as well as suitable error measures have to be de ned during the design phase of the tool. This also allows us to make experiments ?

Supported by Deutsche Forschungsgemeinschaft grant DFG La 618/3-2.

with the parameters weighting dierent errors as deviations of lines, gaps in the lines, etc. Hence, the more complicated design of all the dierent grammars for each letter on the other hand allows us to obtain more accurate results. In [5] prescribed teams of array productions ( rst investigated from a theoretical point of view in [8]) were proposed as another control mechanism to be used for increasing the eciency of the analyzing model. With prescibed teams, a bounded number of array productions is applied in parallel to the underlying array. This approach resembles the idea of the cooperation of agents, which is a usual strategy for solving complex problems. In this paper we elaborate how k-head nite array automata, which were already de ned in [7] and, from a theoretical point of view, are closely related to regulated array grammar systems with prescribed teams of nite index as investigated in [6], can be used for the syntactic clustering analysis of handwritten characters. In the next section, we present the formal framework of (two-dimensional) arrays and array grammars as well as of the new model of k-head nite array automata. In the third section, we describe how (handwritten) characters can be analyzed by using suitable k-head nite array automata and discuss some of the problems arising when going to implement such a theoretical model in such a way that an ecient analysis of given arrays representing handwritten characters becomes possible. A short discussion of the results exhibited in this paper and an outlook to future research topics conclude the paper.

2 The Formal Framework In this section we introduce the de nitions and notations for arrays, (graph controlled) array grammars, and k-head nite array automata (e.g. see [2], [6], [16], [18]). For the basic notions and results of formal language theory addressed in this paper we refer the reader to [3].

2.1 Arrays and array grammars Let Z denote the set of integers, and let V be an alphabet. Then a (two-dimensional) array A over V is a function A : Z 2 ! V [ f#g, where shape (A) = 2 v 2 Z j A (v) 6= # is nite and # 2= V is called the background or blank symbol. We usually shall write A = f(v; A (v)) j v 2 shape (A)g. The set of all two-dimensional non-empty arrays over V shall be denoted by V +2 . Any subset of V +2 is called an array language. Given an array A 2 V +2 (for some alphabet V ) and a nite pattern (i.e., a partial function Z 2 ! V [ f#g with nite domain) of symbols in V [ f#g, we can say that is a sub-pattern of A, if we can place on A such that all squares of marked by symbols in V coincide with the corresponding symbols in A and each blank symbol # in corresponds to a blank symbol # in A. An (isometric) array grammar is a construct G = (VN ; VT ; #; P; (v0 ; S )), where VN ; VT are disjoint alphabets, # is a special (blank) symbol, v0 2 Z 2 is the start vector and S 2 N is the start symbol, and P is a nite set of rewriting rules of

the form ! , where ; are nite patterns over VN [ VT [ f#g satisfying the condition that the shapes of and are identical (we say that they are isometric ). Thus, for an array grammar G = (VN ; VT ; #; P; (v0 ; S )) we can de ne the relation A =) B, for A; B 2 (VN [ VT )+2 , if there is a rule ! 2 P such that is a sub-pattern of A and B is obtained by replacing in A by (remember that and are isometric). The re exive and transitive closure of =) is denoted by =) , and the array language generated by G is de ned by L(G) = A 2 VT+2 j f(v0 ; S )g =) A . An array production ! in an array grammar is said to be 1. monotone if the non-# symbols in are not replaced by # in , 2. #-context-free if consists of exactly one nonterminal and some occurrences of blank symbols #, 3. context-free if it is #-context-free and monotone. An array grammar is said to be of type MON , #-CF , or CF , respectively, if every array production in P is monotone, #-context-free, or context-free, respectively. The same notation is used for the corresponding (families of) array languages.

2.2 Control mechanisms

In the following, we give the necessary de nitions of graph controlled array grammars and languages. Concerning these control mechanisms as well as many other interesting results about regulated rewriting in the theory of string languages, the reader is referred to [3]. A two-dimensional graph controlled grammar [9] is a construct G = (VN , VT , #, (P; Lin ; Lfin ), (v0 ; S )); VN and VT are disjoint alphabets of non-terminal and terminal symbols, respectively; v0 is the start vector, S 2 VN is the start symbol; P is a nite set of productions p of the form (l (p) : (l (p)) ; (l (p)) ; ' (l (p))), where l (p) 2 Lab (G), Lab (G) being a set of labels associated (in a one-to-one manner) to the rules p in P , (l (p)) is an array production over VN [ VT , (l (p)) Lab (G) is the success eld of the rule p, and ' (l (p)) is the failure eld of the rule p; Lin Lab (G) is the set of initial labels, and Lfin Lab (G) is the set of nal labels. For p 2 P and v; w 2 (VN [ VT )+2 we de ne (v; l (p)) =)G (w; k) if and only if either (l (p)) is applicable to v, the result of the application of the production (l(p)) to v is w, and k 2 (l (p)), or (l (p)) is not applicable to v, w = v, and k 2 ' (l (p)). Let w0 (v0 ) = S and w0 (v) = # for v 2 Z 2 n v0 de ne the start array w0 . The array language generated by G is L (G) = w 2 VT+2 j (w0 ; l0 ) =)G (w1 ; l1 ) =)G : : : (wk ; lk ) ; k 0; wj 2 (VN [ VT )+2 and lj 2 Lab (G) for 0 j k; wk = w; l0 2 Lin ; lk 2 Lfin g : If the failure elds ' (l (p)) are empty for all p 2 P , then G is called a graph controlled array grammar without appearance checking. A graph controlled array grammar is said to be of type X if every array production appearing in this grammar is of the corresponding type X , too; for every X 2 f#-CF , CF g, by GCac (X ) and GC (X ) we denote the array languages described by graph controlled array grammars and graph controlled array grammars without appearance checking, respectively, containing only productions of type X .

2.3 The nite index restriction Usually, the number of non-terminal symbols occurring in the sentential forms of a derivation is not bounded, yet a natural measure for the complexity of the evolving terminal object. Even in some applications as character recognition we can restrict ourselves to a quite low bound of non-terminal symbols occurring in the sentential forms of a derivation as, for example, exhibited in [5]. Hence, we introduce the following de nitions: The index of a derivation D of a terminal object w in an array grammar G is de ned as the maximal number of non-terminal symbols occurring in an intermediate sentential form. A grammar G is said to be of index k if every word w 2 L(G) has a derivation D of index at most k. This de nition also makes sense for graph controlled array grammars with or without appearance checking etc. For a given array language L and the class of graph controlled array grammars of type X , we say that L has index k with respect to this class, abbreviated as L 2 GCacdke (X ), if there exists a graph controlled grammar G of index k and type X S dke dfine (X ) denote the such that L = L (G). Furthermore, let GCac (X ) = k1 GCac class of graph controlled nite index languages of type X . In those cases where we do not allow appearance checking, we simply omit the subscript ac.

2.4

k-head

nite array automata

We are now going to de ne k-head nite array automata, which we will use as the formal basis of the tool for syntactic character recognition described in the following section. In the string case, multi-head nite automata rst were described in [14]. For various results on two-dimensional automata, the reader is referred to [1], [10], [11], and [12]. A (2-dimensional) k-head nite array automaton of type X; X 2 f#-CF; CF g is a construct M = (VN ; VT ; #; (P; R; F ) ; (v0 ; S )) ; such that (1) (VN ; VT ; #; P; (v0 ; S )) is a grammar of type X ; (2) R is a set of subsets (called teams ) of P such that each set (team) in R contains at most k array productions and for each set (team) R 2 R it is true that each non-terminal symbol occurs at most once within the left-hand side of a rule in R; (3) F P so that R = fp1 ; : : : ; pm g can be applied in the so-called appearance checking mode in such a way that any of the pi appearing in F can be skipped, if pi is not applicable to the sentential form after having team R chosen to be applied. If F is empty, then we call M a nite k-head array automaton without appearance checking. In general, the con gurations of M are objects from the set

f(a; a) ; (a; X ) ; (#; Y ) j a 2 VT ; X 2 VN [ f#g ; Y 2 VN g+2 ; where the rst component always contains the input array and the second component keeps track of the array scanned so far by M . The work of the automaton M on a given array from VT+2 now is de ned as follows: Given an input array A 2 VT+2 , the initial sentential array form (con guration) is

C0 (A) = (v; (A(v); #)) j v 2 Z 2 n fv0 g [ f(v0 ; (A(v0 ); S ))g :

More precisely, a con guration C of such an automaton may be split into (1) a set of already veri ed (read) positions containing symbols (a; a) with a 2 VT , (2) a set of positions containing symbols (a; #) which remain to be veri ed, (3) a set of at most k symbols of the form (b; X ) with b 2 VT [ f#g, X 2 VN . Comparing our automaton model with traditional ones, one sees that the current state of the automaton M is represented by the set of non-terminal symbols Y occurring in the pairs (b; Y ) of the current array. The idea of applying a team in R is as follows: (1) By applying the team all the non-terminal symbols appearing in the current array are derived in parallel. (2) At each position where we already nd a terminal symbol in the underlying array, this terminal symbol must coincide with the corresponding symbol at this position in the originally given array. We would like to mention that the chosen domains of the array productions might overlap. As in [6] we demand that at those positions where a non-blank symbol will result the domains of the chosen subarrays must not overlap, whereas we allow the sensing for a blank symbol at a special position from dierent positions. Furthermore, the application of a team is only allowed if all nonterminal symbols occurring in the sentential form are aected by the team, at least in the appearance checking mode. This guarantees that in a derivation yielding a terminal object the number of non-terminal symbols occurring in the intermediate sentential forms can never exceed the maximal number of context-free productions occurring in any of the teams in R. Formally, the derivation relation =)M for M is de ned as the union over all team relations `R for R 2 R. Let R = fp1; : : : ; pn g. For a con guration C , let C (2) denote the projection to the second component of the letters. Having two con gurations C , C 0 , we write C `R C 0 if and only if (1) every variable occurring in C (2) occurs only once; (2) every variable occurring in C 0 (2) occurs only once; (3) every pi 2 R either is applicable to C (2) or belongs to F ; (4) let R(C ) denote the set of applicable rules of R; then, the set of variables occurring in left-hand sides of rules in R(C ) coincides with the set of variables occurring in C ; (5) the domains of the subarrays to be replaced by the applicable rules of R must not overlap at positions where according to the right-hand sides of these rules non-blank symbols will result. The array language accepted by M therefore is de ned by L (M ) = A j A 2 VT+2 ; C0 (A) =)M f(v; (A (v) ; A (v))) j v 2 shape (A)g : Observe that due to our de nitions, a head of the automaton, which is represented by one of the at most k (dierent) variables appearing in the current array, reads out the symbol in the rst component just when leaving this position with putting there the exactly same terminal symbol into the second component. As the terminal symbol at a speci c position is already uniquely determined by the rst position we could also put only a speci c marker symbol into the second components just to mark these positions as non-reachable by any head of the automaton anymore. The family of all array languages accepted by k-head nite array automata of type X , X 2 f#-CF; CF g, is denoted by k-FAac (X ). In those cases where we do not allow appearance checking we simply omit the subscript ac.

2.5 A concrete example Let us now give an example of a two-dimensional 4-head nite array automaton that accepts the cluster of ideal letters \H" of arbitrary size:

M = (fS; L; R; DL; UL; DR ; UR g ; fag ; #; (P; R; ;) ; fv0 ; S g) ; P = S # ! L R; # L ! L a; R # ! a R; UR # ; UL ! Ua L ; # ! Ua R ; U R DR DL # # DL ! a ; DR ! a ; U ! a; U ! a; D ! a; D ! a ; L R L R # DL # DR #

L!

UL

a; R

#

!a

R = S # ! L R ; # L ! L a; R # ! a R ; 8

Wilhelm-Schickard-Institut fur Informatik, Universitat Tubingen Sand 13, D-72076 Tubingen, Germany email: ffernau,[email protected] 2 Institut fur Computersprachen, Technische Universitat Wien Resselgasse 3, A-1040 Wien, Austria, email: [email protected]

Abstract. We introduce the concept of k-head nite two-dimensional array

automata and show how this model of two-dimensional array automata can be applied in the eld of syntactic character recognition. Moreover, we discuss some of the problems arising with implementing the theoretical concept to obtain an ecient tool for the syntactic analysis of handwritten (uppercase) characters.

1 Introduction In the eld of syntactic character recognition, the theoretical concept of array grammars represents an interesting formal framework that allows for accurate descriptions of two-dimensional patterns like (handwritten, uppercase) characters. Whereas \pure" context-free array grammars as proposed in [19] not yet allow ecient implementations of the array grammar approach for the syntactic clustering analysis of handwritten characters, additional features like the controlled use of productions yield more ecient algorithms as exhibited in [9] within the framework of graph controlled grammars; moreover, the model has to incorporate suitable error measures computed during the analysis of the underlying pattern in order to allow for most accurate analysis results distinguishing between dierent clusters of characters. Seen from a theoretical point of view, such additional features increase the generative power of the array model, yet as we operate on a bounded rectangle only, this is of minor importance; on the other hand, a controlled use of array productions reduces the non-determinism of the analyzing device and thus increases eciency by minimizing the needs to backtrack. There are some crucial dierences between an approach based on neural networks and an approach based on a syntactical model like that proposed in this paper: In a trained neural network, the incorporated features are hardly transparent to the user. In our syntactical approach, we obtain reproducible results, because the characteristics of the letters as well as suitable error measures have to be de ned during the design phase of the tool. This also allows us to make experiments ?

Supported by Deutsche Forschungsgemeinschaft grant DFG La 618/3-2.

with the parameters weighting dierent errors as deviations of lines, gaps in the lines, etc. Hence, the more complicated design of all the dierent grammars for each letter on the other hand allows us to obtain more accurate results. In [5] prescribed teams of array productions ( rst investigated from a theoretical point of view in [8]) were proposed as another control mechanism to be used for increasing the eciency of the analyzing model. With prescibed teams, a bounded number of array productions is applied in parallel to the underlying array. This approach resembles the idea of the cooperation of agents, which is a usual strategy for solving complex problems. In this paper we elaborate how k-head nite array automata, which were already de ned in [7] and, from a theoretical point of view, are closely related to regulated array grammar systems with prescribed teams of nite index as investigated in [6], can be used for the syntactic clustering analysis of handwritten characters. In the next section, we present the formal framework of (two-dimensional) arrays and array grammars as well as of the new model of k-head nite array automata. In the third section, we describe how (handwritten) characters can be analyzed by using suitable k-head nite array automata and discuss some of the problems arising when going to implement such a theoretical model in such a way that an ecient analysis of given arrays representing handwritten characters becomes possible. A short discussion of the results exhibited in this paper and an outlook to future research topics conclude the paper.

2 The Formal Framework In this section we introduce the de nitions and notations for arrays, (graph controlled) array grammars, and k-head nite array automata (e.g. see [2], [6], [16], [18]). For the basic notions and results of formal language theory addressed in this paper we refer the reader to [3].

2.1 Arrays and array grammars Let Z denote the set of integers, and let V be an alphabet. Then a (two-dimensional) array A over V is a function A : Z 2 ! V [ f#g, where shape (A) = 2 v 2 Z j A (v) 6= # is nite and # 2= V is called the background or blank symbol. We usually shall write A = f(v; A (v)) j v 2 shape (A)g. The set of all two-dimensional non-empty arrays over V shall be denoted by V +2 . Any subset of V +2 is called an array language. Given an array A 2 V +2 (for some alphabet V ) and a nite pattern (i.e., a partial function Z 2 ! V [ f#g with nite domain) of symbols in V [ f#g, we can say that is a sub-pattern of A, if we can place on A such that all squares of marked by symbols in V coincide with the corresponding symbols in A and each blank symbol # in corresponds to a blank symbol # in A. An (isometric) array grammar is a construct G = (VN ; VT ; #; P; (v0 ; S )), where VN ; VT are disjoint alphabets, # is a special (blank) symbol, v0 2 Z 2 is the start vector and S 2 N is the start symbol, and P is a nite set of rewriting rules of

the form ! , where ; are nite patterns over VN [ VT [ f#g satisfying the condition that the shapes of and are identical (we say that they are isometric ). Thus, for an array grammar G = (VN ; VT ; #; P; (v0 ; S )) we can de ne the relation A =) B, for A; B 2 (VN [ VT )+2 , if there is a rule ! 2 P such that is a sub-pattern of A and B is obtained by replacing in A by (remember that and are isometric). The re exive and transitive closure of =) is denoted by =) , and the array language generated by G is de ned by L(G) = A 2 VT+2 j f(v0 ; S )g =) A . An array production ! in an array grammar is said to be 1. monotone if the non-# symbols in are not replaced by # in , 2. #-context-free if consists of exactly one nonterminal and some occurrences of blank symbols #, 3. context-free if it is #-context-free and monotone. An array grammar is said to be of type MON , #-CF , or CF , respectively, if every array production in P is monotone, #-context-free, or context-free, respectively. The same notation is used for the corresponding (families of) array languages.

2.2 Control mechanisms

In the following, we give the necessary de nitions of graph controlled array grammars and languages. Concerning these control mechanisms as well as many other interesting results about regulated rewriting in the theory of string languages, the reader is referred to [3]. A two-dimensional graph controlled grammar [9] is a construct G = (VN , VT , #, (P; Lin ; Lfin ), (v0 ; S )); VN and VT are disjoint alphabets of non-terminal and terminal symbols, respectively; v0 is the start vector, S 2 VN is the start symbol; P is a nite set of productions p of the form (l (p) : (l (p)) ; (l (p)) ; ' (l (p))), where l (p) 2 Lab (G), Lab (G) being a set of labels associated (in a one-to-one manner) to the rules p in P , (l (p)) is an array production over VN [ VT , (l (p)) Lab (G) is the success eld of the rule p, and ' (l (p)) is the failure eld of the rule p; Lin Lab (G) is the set of initial labels, and Lfin Lab (G) is the set of nal labels. For p 2 P and v; w 2 (VN [ VT )+2 we de ne (v; l (p)) =)G (w; k) if and only if either (l (p)) is applicable to v, the result of the application of the production (l(p)) to v is w, and k 2 (l (p)), or (l (p)) is not applicable to v, w = v, and k 2 ' (l (p)). Let w0 (v0 ) = S and w0 (v) = # for v 2 Z 2 n v0 de ne the start array w0 . The array language generated by G is L (G) = w 2 VT+2 j (w0 ; l0 ) =)G (w1 ; l1 ) =)G : : : (wk ; lk ) ; k 0; wj 2 (VN [ VT )+2 and lj 2 Lab (G) for 0 j k; wk = w; l0 2 Lin ; lk 2 Lfin g : If the failure elds ' (l (p)) are empty for all p 2 P , then G is called a graph controlled array grammar without appearance checking. A graph controlled array grammar is said to be of type X if every array production appearing in this grammar is of the corresponding type X , too; for every X 2 f#-CF , CF g, by GCac (X ) and GC (X ) we denote the array languages described by graph controlled array grammars and graph controlled array grammars without appearance checking, respectively, containing only productions of type X .

2.3 The nite index restriction Usually, the number of non-terminal symbols occurring in the sentential forms of a derivation is not bounded, yet a natural measure for the complexity of the evolving terminal object. Even in some applications as character recognition we can restrict ourselves to a quite low bound of non-terminal symbols occurring in the sentential forms of a derivation as, for example, exhibited in [5]. Hence, we introduce the following de nitions: The index of a derivation D of a terminal object w in an array grammar G is de ned as the maximal number of non-terminal symbols occurring in an intermediate sentential form. A grammar G is said to be of index k if every word w 2 L(G) has a derivation D of index at most k. This de nition also makes sense for graph controlled array grammars with or without appearance checking etc. For a given array language L and the class of graph controlled array grammars of type X , we say that L has index k with respect to this class, abbreviated as L 2 GCacdke (X ), if there exists a graph controlled grammar G of index k and type X S dke dfine (X ) denote the such that L = L (G). Furthermore, let GCac (X ) = k1 GCac class of graph controlled nite index languages of type X . In those cases where we do not allow appearance checking, we simply omit the subscript ac.

2.4

k-head

nite array automata

We are now going to de ne k-head nite array automata, which we will use as the formal basis of the tool for syntactic character recognition described in the following section. In the string case, multi-head nite automata rst were described in [14]. For various results on two-dimensional automata, the reader is referred to [1], [10], [11], and [12]. A (2-dimensional) k-head nite array automaton of type X; X 2 f#-CF; CF g is a construct M = (VN ; VT ; #; (P; R; F ) ; (v0 ; S )) ; such that (1) (VN ; VT ; #; P; (v0 ; S )) is a grammar of type X ; (2) R is a set of subsets (called teams ) of P such that each set (team) in R contains at most k array productions and for each set (team) R 2 R it is true that each non-terminal symbol occurs at most once within the left-hand side of a rule in R; (3) F P so that R = fp1 ; : : : ; pm g can be applied in the so-called appearance checking mode in such a way that any of the pi appearing in F can be skipped, if pi is not applicable to the sentential form after having team R chosen to be applied. If F is empty, then we call M a nite k-head array automaton without appearance checking. In general, the con gurations of M are objects from the set

f(a; a) ; (a; X ) ; (#; Y ) j a 2 VT ; X 2 VN [ f#g ; Y 2 VN g+2 ; where the rst component always contains the input array and the second component keeps track of the array scanned so far by M . The work of the automaton M on a given array from VT+2 now is de ned as follows: Given an input array A 2 VT+2 , the initial sentential array form (con guration) is

C0 (A) = (v; (A(v); #)) j v 2 Z 2 n fv0 g [ f(v0 ; (A(v0 ); S ))g :

More precisely, a con guration C of such an automaton may be split into (1) a set of already veri ed (read) positions containing symbols (a; a) with a 2 VT , (2) a set of positions containing symbols (a; #) which remain to be veri ed, (3) a set of at most k symbols of the form (b; X ) with b 2 VT [ f#g, X 2 VN . Comparing our automaton model with traditional ones, one sees that the current state of the automaton M is represented by the set of non-terminal symbols Y occurring in the pairs (b; Y ) of the current array. The idea of applying a team in R is as follows: (1) By applying the team all the non-terminal symbols appearing in the current array are derived in parallel. (2) At each position where we already nd a terminal symbol in the underlying array, this terminal symbol must coincide with the corresponding symbol at this position in the originally given array. We would like to mention that the chosen domains of the array productions might overlap. As in [6] we demand that at those positions where a non-blank symbol will result the domains of the chosen subarrays must not overlap, whereas we allow the sensing for a blank symbol at a special position from dierent positions. Furthermore, the application of a team is only allowed if all nonterminal symbols occurring in the sentential form are aected by the team, at least in the appearance checking mode. This guarantees that in a derivation yielding a terminal object the number of non-terminal symbols occurring in the intermediate sentential forms can never exceed the maximal number of context-free productions occurring in any of the teams in R. Formally, the derivation relation =)M for M is de ned as the union over all team relations `R for R 2 R. Let R = fp1; : : : ; pn g. For a con guration C , let C (2) denote the projection to the second component of the letters. Having two con gurations C , C 0 , we write C `R C 0 if and only if (1) every variable occurring in C (2) occurs only once; (2) every variable occurring in C 0 (2) occurs only once; (3) every pi 2 R either is applicable to C (2) or belongs to F ; (4) let R(C ) denote the set of applicable rules of R; then, the set of variables occurring in left-hand sides of rules in R(C ) coincides with the set of variables occurring in C ; (5) the domains of the subarrays to be replaced by the applicable rules of R must not overlap at positions where according to the right-hand sides of these rules non-blank symbols will result. The array language accepted by M therefore is de ned by L (M ) = A j A 2 VT+2 ; C0 (A) =)M f(v; (A (v) ; A (v))) j v 2 shape (A)g : Observe that due to our de nitions, a head of the automaton, which is represented by one of the at most k (dierent) variables appearing in the current array, reads out the symbol in the rst component just when leaving this position with putting there the exactly same terminal symbol into the second component. As the terminal symbol at a speci c position is already uniquely determined by the rst position we could also put only a speci c marker symbol into the second components just to mark these positions as non-reachable by any head of the automaton anymore. The family of all array languages accepted by k-head nite array automata of type X , X 2 f#-CF; CF g, is denoted by k-FAac (X ). In those cases where we do not allow appearance checking we simply omit the subscript ac.

2.5 A concrete example Let us now give an example of a two-dimensional 4-head nite array automaton that accepts the cluster of ideal letters \H" of arbitrary size:

M = (fS; L; R; DL; UL; DR ; UR g ; fag ; #; (P; R; ;) ; fv0 ; S g) ; P = S # ! L R; # L ! L a; R # ! a R; UR # ; UL ! Ua L ; # ! Ua R ; U R DR DL # # DL ! a ; DR ! a ; U ! a; U ! a; D ! a; D ! a ; L R L R # DL # DR #

L!

UL

a; R

#

!a

R = S # ! L R ; # L ! L a; R # ! a R ; 8