AALpy
The aria.automata.aalpy package vendors the upstream AALpy automata-learning toolkit under the ARIA
namespace.
Overview
aria.automata.aalpy provides active and passive automata-learning
algorithms, reusable equivalence oracles, systems-under-learning wrappers, and
automaton data structures for deterministic, nondeterministic, stochastic, and
visibly pushdown settings.
The vendored package keeps the upstream module layout while rewriting imports to the ARIA namespace:
aria.automata.aalpy.automatafor automaton definitionsaria.automata.aalpy.learning_algsfor learning algorithmsaria.automata.aalpy.oraclesfor equivalence oraclesaria.automata.aalpy.SULsfor SUL adaptersaria.automata.aalpy.utilsfor file IO, generators, and helpers
Typical Usage
from aria.automata.aalpy.SULs import AutomatonSUL
from aria.automata.aalpy.learning_algs import run_Lstar
from aria.automata.aalpy.oracles import RandomWalkEqOracle
from aria.automata.aalpy.utils import generate_random_deterministic_automata
model = generate_random_deterministic_automata(
automaton_type='dfa',
num_states=4,
input_alphabet_size=2,
output_alphabet_size=2,
)
alphabet = model.get_input_alphabet()
sul = AutomatonSUL(model)
eq_oracle = RandomWalkEqOracle(alphabet, sul, num_steps=500)
learned = run_Lstar(alphabet, sul, eq_oracle, automaton_type='dfa')
Notes
Visualization helpers rely on
pydotand Graphviz.Model-checking helpers in
aria.automata.aalpy.utils.ModelCheckinguse the configurable paths inaria.automata.aalpy.paths.Upstream reference material is copied into
aria/automata/aalpy/README.upstream.mdandaria/automata/aalpy/LICENSE.upstream.txt.