Learning automata theory