Extensions of a MAT learner
for regular tree languages


In an earlier paper, we introduced a learning algorithm for regular tree languages in the MAT model and investigated its complexity. Here, we propose two extensions of the basic algorithm and study their usefulness in an experimental setting, by running the three variants of the algorithm against target languages with different characteristics.


A java implementation of the MAT learner is available for download. If you are only interested in trying out the learner, then the easiest way to get it running is to grab the jar-file, change directory to where you put the file, and type

java -cp learner.jar learner.Run [n] mode [verboose] language

at the prompt, where
  • n is the number of times to execute the algorithm (default is 1),
  • mode determines how old counterexamples are treated, and is one of
    • plain - discard after first piece of information is found,
    • reuse - discard when no new information can be found, and
    • save - never discard.
  • verboose makes the observation table be printed to standard out every time the learner synthesizes a new automaton, and
  • language is one of For a presentation of a particular language, click on the name of the language in the list.
For example, the command
java -cp learner.jar learner.Run 10 plain contexts

causes the learner to infer the target language contexts 10 times in plain mode.

However, if your interest is of a deeper nature, then you might want to read the system description, download the source code, or view the java doc.


To increase legibility, we chose not to include all data derived during the test runs in the technical report. The interested reader can find the complete set here, together with a discussion of why the Learner behaved as it did in each run.

Last updated Feb 23 2006 by Johanna Högberg.