1.1 KiB
mealy-decompose
Tools to investigate decomposition of Mealy machines, aka finite state machines (FSMs). Notable entry points are:
-
hs/app/Main.hs
is a heuristic to decompose finite state machines into multiple components, based on their outputs. -
py/decompose_fsm_optimise.py
does the same, but optimally and with a SAT solver. This can only handle state spaces of at most a few hundred states. -
hs/app/RandomGen.hs
for generating FSMs which are decomposable.
How to run
The the haskell tools (tested with ghc 9.2.8 and ghc 9.10.1):
cabal run mealy-decompose-main -- <path-to-fsm>
For the python tools (tested with python 3.12):
pip install -r py/requirements.txt
python py/decompose_fsm_optimise.py -h
Copyright notice and license
(c) 2024-2025 Joshua Moerman, Open Universiteit, licensed under the EUPL (European Union Public License). You may find the license in the LICENSE file.
If you want to use this library and find the license not suitable for you, then please do get in touch.
SPDX-License-Identifier: EUPL-1.2