Skip to content
Edi Muškardin edited this page Mar 19, 2021 · 26 revisions

Welcome to the AALpy wiki!

AALpy is a light-weight active automata learning library written in pure Python. By implementing a single method and a few lines of configuration, you can start learning automata.

Whether you work with regular languages, or you want to learn models of reactive systems, AALpy supports a wide range of modelling formalisms including deterministic, non-deterministic, and stochastic automata. You can use it to learn deterministic finite automata, Moore machines, and Mealy machines of deterministic systems. If the system that you want to learn shows non-deterministic or stochastic behavior, you can use AALpy to learn observable nondeterministic finite-state machines, Markov decision processes, or stochastic transducers.

AALpy enables efficient learning by providing a large array of equivalence oracles, implementing various conformance testing strategies. Learning is mostly based on Angluin's L* algorithm, for which AALpy supports a selection of optimizations, including efficient counterexample processing. Finally, support for learning abstracted nondeterministic Mealy machines enables efficient learning of system models with large input space.

If AALpy misses a feature that you need, you can easily extend it or request a feature. In case of any questions, start a discussion or open a pull request.