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
If you want develop the project, you will need to install Pixi. Once you install it for you platform, you can install the project development dependencies and the current project as an editable install using:
pixi install -e dev
Then, you can use the following command to activate the pixi environment:
pixi shell -e dev
From here, you can look into the examples
folder for some examples, and generally hack
away at the code.