|
|
Line 1: |
Line 1: |
| {{Unreferenced|date=September 2010}}
| | Marvella is what you can call her but it's not the most female title out there. To collect coins is what her family and her enjoy. Hiring is her day job now but she's always needed her own company. California is exactly where her house is but she needs to move simply because of her family.<br><br>Here is my weblog home std test kit ([http://netwk.hannam.ac.kr/xe/data_2/38191 Going At this website]) |
| A '''tree automaton''' is a type of [[state machine]]. Tree automata deal with [[tree structure]]s, rather than the [[string (computer science)|strings]] of more conventional state machines.
| |
| | |
| The following article deals with branching tree automata, which correspond to regular languages of trees. For a different notion of tree automaton, see [[tree walking automaton]].
| |
| | |
| As with classical automata, finite tree automata (FTA) can be either a [[deterministic automaton]] or not. According to how the automaton processes the input tree, finite tree automata can be of two types: (a) bottom up, (b) top down. This is an important issue, as although non-deterministic (ND) top-down and ND bottom-up tree automata are equivalent in expressive power, deterministic top-down automata are strictly less powerful than their deterministic bottom-up counterparts, because tree properties specified by deterministic top-down tree automata can only depend on path properties. (Deterministic bottom-up tree automata are as powerful as ND tree automata.)
| |
| | |
| ==Definitions==
| |
| A '''ranked alphabet''' is a pair of [[Alphabet (computer science)|ordinary alphabet]] <math>F</math> and a function <math>Arity: F\rightarrow\mathbb{N}</math>. Each letter has its [[arity]] so it can be used to build [[Term (mathematics)|terms]]. Nullary elements (of zero arity) are also called '''constants'''. Terms built with unary symbols and constants can be considered as [[string (computer science)|strings]]. Higher arity leads to [[Tree (graph theory)|trees]].
| |
| | |
| A bottom-up '''finite tree automaton''' over <math>F</math> is defined by:
| |
| <math>(Q, F, Q_{f}, \Delta).</math>
| |
| | |
| Here <math>Q</math> is a set of unary letters (states), <math>F</math> is a ranked alphabet, <math>Q_{f} \subseteq Q</math> is a set of final states, and <math>\Delta</math> is a set of [[Production (computer science)|transition rules]], that is, rewrite rules from nodes whose childs' roots are states, to nodes whose roots are states. Thus the state of a node is deduced from the states of its children.
| |
| | |
| There is no initial state as such, but the transition rules for constant symbols (leaves) can be considered as initial states. The tree is accepted if the state labeled at the root is an accepting state.
| |
| | |
| A top-down finite tree automaton over <math>F</math> is defined by:
| |
| <math>(Q, F, I, \Delta).</math>
| |
| | |
| There are two differences with bottom-up tree automata : first, <math>I \subseteq Q</math>, the set of its initial states, replaces <math>Q_F</math> ; second, its transition rules are the converse, that is, rewrite rules from nodes whose roots are states to nodes whose child's roots are states. The tree is accepted if every branch can be gone through this way.
| |
| | |
| The rewrite rules cause symbols from <math>Q</math> to 'travel' along branches of the tree.
| |
| | |
| One can easily guess that non-deterministic top-down tree automata are equivalent to non-deterministic bottom-up ones ; the transition rules are simply reversed, and the final states become the initial states.
| |
| | |
| Why then are '''deterministic''' top-down FTA less powerful than their bottom-up counterparts? Because a deterministic TA is by definition one where no two transition rules have the same left-hand side. For tree automata, transition rules are rewrite rules ; and for top-down ones, the left-hand side will be parent nodes. Consequently a deterministic top-down tree automaton will only be able to test for tree properties that are true in all branches, because the choice of the state to write into each child branch is determined at the parent node, without knowing the child branches contents.
| |
| | |
| ==Properties==
| |
| ===Determinism===
| |
| As said before, a deterministic tree automaton is one where no two transition rules have the same left-hand side. This definition matches the intuitive idea that for an automaton to be deterministic, one and only one transition must be possible for a given node.
| |
| | |
| ===Recognizability===
| |
| For a bottom-up automaton, a ground term <math>t</math> (that is, a tree) is accepted if there exists a reduction that starts from <math>t</math> and ends with <math>q(t)</math>, where <math>q</math> is a final state. For a top-down automaton, a ground term <math>t</math> is accepted if there exists a reduction that starts from <math>q(t)</math> and ends with <math>t</math>, where <math>q(t)</math> is an initial state.
| |
| | |
| The tree language <math>L(A)</math> '''recognized''' by a tree automaton <math>A</math> is the set of all ground terms accepted by <math>A</math>. A set of ground terms is '''recognizable''' if there exists a tree automaton that recognizes it.
| |
| | |
| One important property is that ''linear'' (that is, arity-preserving) '''homomorphisms preserve recognizability'''.
| |
| | |
| ===Completeness and Reduction===
| |
| A non-deterministic finite tree automaton is '''complete''' if there is at least one transition rule available for every possible symbol-states combination. A state <math>q</math> is '''accessible''' if there exists a ground term <math>t</math> such that there exists a reduction from <math>t</math> to <math>q(t)</math>. An FTA is '''reduced''' if all its states are accessible.
| |
| | |
| ===Pumping Lemma===
| |
| Let <math>L</math> be a recognizable set of ground terms. Then, there exists a constant <math>k > 0</math> satisfying: for every ground term <math>t</math> in <math>L</math> such that <math>Height(t) > k</math>, there exists a context <math>C \in C(F)</math>, a nontrivial context <math>C' \in C(F)</math> and a ground term <math>u</math> such that <math>t = C[C'[u]]</math> and, for all <math>n \geq 0</math> <math>C[C'^n[u]] \in L</math>.
| |
| | |
| ===Closure===
| |
| The class of recognizable tree languages is closed under union, under complementation, and under intersection.
| |
| | |
| ===Myhill-Nerode Theorem===
| |
| A congruence on tree languages is a relation such that
| |
| | |
| :<math>u_1 \equiv v_1 \wedge\ldots \wedge u_n\equiv v_n \Rightarrow f(u_1,\ldots,u_n) \equiv f(v_1,\ldots,v_n)</math>
| |
| | |
| It is of finite index if its number of equivalence-classes is finite.
| |
| | |
| For a given tree-language <math>L</math>, define <math>u \equiv_L v</math> if for all contexts <math>C \in C(F)</math>, <math>C[u] \in L\Leftrightarrow C[v] \in L</math>.
| |
| | |
| The Myhill-Nerode Theorem for tree automaton states that the following three statements are equivalent:
| |
| # L is a recognizable tree language
| |
| # L is the union of some equivalence classes of congruence of finite index
| |
| # the relation <math>\equiv_L</math> is a congruence of finite index
| |
| | |
| ==See also==
| |
| * [[Courcelle's theorem]]
| |
| | |
| ==External links==
| |
| All the information in this page was taken from Chapter 1 of http://tata.gforge.inria.fr
| |
| | |
| ===Implementations===
| |
| (OCaml) Grappa - Ranked and Unranked Tree Automata Libraries (http://www.grappa.univ-lille3.fr/~filiot/tata/)
| |
| | |
| (OCaml) Timbuk - Tools for Reachability Analysis and Tree Automata Calculations (http://www.irisa.fr/celtique/genet/timbuk/)
| |
| | |
| (Java) LETHAL - Library for working with finite tree and hedge automata (http://lethal.sf.net/)
| |
| | |
| (Isabelle [OCaml, SML, Haskell]) - Machine-Checked Tree Automata Library (http://afp.sourceforge.net/entries/Tree-Automata.shtml)
| |
| | |
| (C++) VATA: A Library for Efficient Manipulation of Non-Deterministic Tree Automata - (http://www.fit.vutbr.cz/research/groups/verifit/tools/libvata/)
| |
| | |
| {{DEFAULTSORT:Tree Automaton}}
| |
| [[Category:Trees (data structures)]]
| |
| [[Category:Automata theory]]
| |
Marvella is what you can call her but it's not the most female title out there. To collect coins is what her family and her enjoy. Hiring is her day job now but she's always needed her own company. California is exactly where her house is but she needs to move simply because of her family.
Here is my weblog home std test kit (Going At this website)