automaton learning