View on GitHub

AALpy

An Active Automata Learning Library

Dive into Automata Learning with AALpy

Whether you work with regular languages or you would like to learn models of 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 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 and query caching. Finally, support for learning abstracted nondeterministic Mealy machines enables efficient learning of system models with large input space.

AALpy also has an efficient implementation of the Alergia algorithm, suited for passive learning of Markov Chains and Markov Decision processes.

Installation

Use the package manager pip to install AALpy.

pip install aalpy

Ensure that you have Graphviz installed and added to your path if you want to visualize models.

Documentation and Wiki

Please check out our Wiki. On Wiki, you will find more detailed examples on how to use AALpy.

For the official documentation of all classes and methods, check out:

Interactive examples can be found in the notebooks folder.

Many examples covering whole AALpy functionality are in Examples.py.

Usage

All automata learning procedures follow this high-level approach:

For more detailed examples, check out:

Selected Applications

AALpy has been used to: