Skip to main content

A library for manipulating finite state machines

Project description

FiniteStateMachines

This is a Python class to perform basic operations on finite state machines, including union, intersection, and minimization.

It can be installed via pip with the command pip install finite_state_machines.

Usage

>>> from finite_state_machines import FiniteStateMachine as FSM

>>> M = FSM.fsm_for_words_avoiding("000", alphabet=["0","1"])
>>> M.smart_enumeration(10)
[1, 2, 4, 7, 13, 24, 44, 81, 149, 274, 504]

>>> N = FSM.fsm_for_words_avoiding("101", alphabet=["0","1"])
>>> N.smart_enumeration(10)
[1, 2, 4, 7, 12, 21, 37, 65, 114, 200, 351]

>>> M.intersection(N).words_generated(3)
{'001', '010', '011', '100', '110', '111'}

>>> M.intersection(N).smart_enumeration(10)
[1, 2, 4, 6, 9, 13, 19, 28, 41, 60, 88]

>>> M.union(N).smart_enumeration(10)
[1, 2, 4, 8, 16, 32, 62, 118, 222, 414, 767]

If this code was useful to you in your work, please consider citing it. To generate a BibTeX entry (or another format), click the badge below and locate the "Cite As" section.

DOI

Questions, comments, and improvements welcome!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

finite_state_machines-1.1.1.tar.gz (12.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

finite_state_machines-1.1.1-py3-none-any.whl (14.0 kB view details)

Uploaded Python 3

File details

Details for the file finite_state_machines-1.1.1.tar.gz.

File metadata

  • Download URL: finite_state_machines-1.1.1.tar.gz
  • Upload date:
  • Size: 12.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.7

File hashes

Hashes for finite_state_machines-1.1.1.tar.gz
Algorithm Hash digest
SHA256 3927a4389168255267c78258d876956300c149c594f3268233fa2581d1614885
MD5 d6e28f03f11405eb1033f94ed947c9f8
BLAKE2b-256 c57dc35d5e40177b3725f17b020e3d475afa0de9a9df662c97c11cb57042f60f

See more details on using hashes here.

File details

Details for the file finite_state_machines-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: finite_state_machines-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 14.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.7

File hashes

Hashes for finite_state_machines-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3fa7ab89376198f5cc6ff3de76a26fc105335d3b53cb6520a804bbb94cac9860
MD5 d58d2b14cfcba3cb02a6304fb74a21f1
BLAKE2b-256 be8a2fdcf51cdec327c87f8626141997b4d01bfe2a47f3b7058b0cc091684e96

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page