Tree-walking automaton

From testwiki
Jump to navigation Jump to search

A tree-walking automaton (TWA) is a type of finite automaton that deals with tree structures rather than strings. The concept was originally proposed by Aho and Ullman.[1]

The following article deals with tree-walking automata. For a different notion of tree automaton, closely related to regular tree languages, see branching automaton.

Definition

All trees are assumed to be binary, with labels from a fixed alphabet ฮฃ.

Informally, a tree-walking automaton (TWA) A is a finite state device that walks over an input tree in a sequential manner. At each moment A visits a node v in state q. Depending on the state q, the label of the node v, and whether the node is the root, a left child, a right child or a leaf, A changes its state from q to q' and moves to the parent of v or its left or right child. A TWA accepts a tree if it enters an accepting state, and rejects if its enters a rejecting state or makes an infinite loop. As with string automata, a TWA may be deterministic or nondeterministic.

More formally, a (nondeterministic) tree-walking automaton over an alphabet ฮฃ is a tuple Template:Nowrap where Q is a finite set of states, its subsets I, F, and R are the sets of initial, accepting and rejecting states, respectively, and Template:Nowrap is the transition relation.

Example

A simple example of a tree-walking automaton is a TWA that performs depth-first search (DFS) on the input tree. The automaton A has three states, Q={q0,q๐‘™๐‘’๐‘“๐‘ก,q๐‘Ÿ๐‘–๐‘”โ„Ž๐‘ก}. A begins in the root in state q0 and descends to the left subtree. Then it processes the tree recursively. Whenever A enters a node v in state q๐‘™๐‘’๐‘“๐‘ก, it means that the left subtree of v has just been processed, so it proceeds to the right subtree of v. If A enters a node v in state q๐‘Ÿ๐‘–๐‘”โ„Ž๐‘ก, it means that the whole subtree with root v has been processed and A walks to the parent of v and changes its state to q๐‘™๐‘’๐‘“๐‘ก or q๐‘Ÿ๐‘–๐‘”โ„Ž๐‘ก, depending on whether v is a left or right child.

Properties

Unlike branching automata, tree-walking automata are difficult to analyze: even simple properties are nontrivial to prove. The following list summarizes some known facts related to TWA:

  • As shown by Bojaล„czyk and Colcombet,[2] deterministic TWA are strictly weaker than nondeterministic ones (๐ท๐‘‡๐‘Š๐ด๐‘‡๐‘Š๐ด)
  • Deterministic TWA are closed under complementation (but it is not known whether the same holds for nondeterministic ones[3])
  • The set of languages recognized by TWA is strictly contained in regular tree languages (๐‘‡๐‘Š๐ด๐‘…๐ธ๐บ), i.e. there exist regular languages that are not recognized by any tree-walking automaton, see Bojaล„czyk and Colcombet.[4]

See also

References

Template:Reflist