M .task/taskchampion.sqlite3 A "Zettelkasten/Permanent Notes/20251223161108-andre-platzer.md" A "Zettelkasten/Permanent Notes/20251223162450-web-of-science.md" A "Zettelkasten/Permanent Notes/20251223162954-snowballing.md" A "Zettelkasten/Permanent Notes/20251223163648-deterministic-parity-automata.md" A "Zettelkasten/Permanent Notes/20251223165340-mealy-machines.md" A "Zettelkasten/Permanent Notes/20251223170627-finite-state-machines.md" A "Zettelkasten/Permanent Notes/20251223171835-moore-machines.md"
50 lines
1.6 KiB
Markdown
50 lines
1.6 KiB
Markdown
---
|
|
id: 20251223170627
|
|
title: Finite State Machines
|
|
type: permanent
|
|
created: 2025-12-23T22:06:27Z
|
|
modified: 2025-12-23T22:39:00Z
|
|
tags: []
|
|
---
|
|
|
|
# Finite State Machines
|
|
|
|
Finite State Machines are a computer science term for
|
|
machines that have a finite number of states, with clearly
|
|
defined transitions between them. Sometimes, FSM are
|
|
referred to simply as *state machines*.
|
|
|
|
FSM are an abstraction of a computational system. FSM are
|
|
heavily used in systems that have clearly defined discrete
|
|
states. Examples include traffic lights, elevators,
|
|
combination locks, or others.
|
|
|
|
FSM have **actions**. Actions are the unabstractified
|
|
version of whatever the execution is. For physical systems,
|
|
it might be something like turning a motor on.
|
|
|
|
FSM can be categorized into two main categories:
|
|
|
|
## Acceptors (or 'detectors' or 'recognizers') Acceptors are
|
|
a type of FSM that produce binary output, recognizing
|
|
whether or not a given input is accepted. Examples of
|
|
systems that are acceptors include things like ready-commit
|
|
systems, or a password checker. These systems have an input,
|
|
and reach a state that determines the input is acceptable,
|
|
or incorrect.
|
|
|
|
## Transducers
|
|
Transducers are a set of finite state machines that produce
|
|
an output based on input or state using *actions*. Actions
|
|
in this case represent a transition between state that
|
|
also has some external change. A finite state machine of an
|
|
elevator would have actions of the elevator changing between
|
|
floors, for example.
|
|
|
|
Transducers with respect to control have two different
|
|
types:
|
|
[[mealy-machines]] -- these have output depend on state and input
|
|
[[moore-machines]] -- these have output depend on state ONLY
|
|
|
|
|