An Active Automata Learning Library-AALpy

AALpy is a light-weight automata learning library written in Python. You can start learning automata in just a few lines of code.

Whether you work with regular languages or you would like to learn models of (black-box) reactive systems, AALpy supports a wide range of modeling formalisms, including deterministic, non-deterministic, and stochastic automata.

AALpy enables efficient learning by providing a large set of equivalence oracles, implementing various conformance testing strategies. Active learning is mostly based on Angluin's L* algorithm External link., for which AALpy supports a selection of optimizations, including efficient counterexample processing caching. However, the recent addition of efficiently implemented KV External link. algorithm requires (on average) much less interaction with the system under learning than L*.

AALpy also includes passive automata learning algorithms, namely RPNI for deterministic and ALERGIA for stochastic models. Unlike active algorithms which learn by interaction with the system, passive learning algorithms construct a model based on provided data.

For more information, please visit https://github.com/DES-Lab/AALpy External link, opens in new window.