This project implements different automata I use in my research, including nondeterministic weighted automata and alternating weighted automata.
Differentiable Automata in JAX
The automatix.nfa
module implements differentiable automata in JAX, along with
automatix.algebra.semiring.jax_backend
.
Specifically, it does so by defining matrix operators on the automata transitions,
which can then be interpreted over a semiring to yield various acceptance and weighted
semantics.
The automatix.afa
module implements weighted alternating finite automata over
algebra defined in automatix.algebra.semiring
.
If you are just using it as a library, the Git repository should be installable pretty easily using
pip install git+https://github.com/anand-bala/automatix
The project is a standard Python package. I use uv
to
develop it, as it is the most straightforward Python packaging tool I have used.
You can look into the examples
folder for some examples, and generally hack away at
the code.