mirror of
https://git.cs.ou.nl/joshua.moerman/mealy-decompose.git
synced 2025-04-30 02:07:44 +02:00
41 lines
1.1 KiB
Markdown
41 lines
1.1 KiB
Markdown
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
|
|
```
|