Obsidian/Zettelkasten/Permanent Notes/20251223171835-moore-machines.md
Dane Sabo fd636222b8 Auto sync: 2025-12-23 17:52:41 (2 files changed)
M  .task/taskchampion.sqlite3

M  "Zettelkasten/Permanent Notes/20251223171835-moore-machines.md"
2025-12-23 17:52:41 -05:00

1.2 KiB

id title type created modified tags
20251223171835 Moore Machines permanent 2025-12-23T22:18:35Z 2025-12-23T22:52:38Z

Moore Machines

Moore machines are a type of finite state machine whose output only depends on output state. Moore machines are useful because they simplify the behavior of a system to the simplest behaviours possible. They can be defined as a six-tuple:

(S, S_0, \Sigma, \Lambda, T, G)

where

  • S is the finite set of states
  • S_0 is the start state
  • \Sigma is the input alphabet
  • \Lambda is the output alphabet
  • T : S \times \Sigma \rightarrow S is the state transition function
  • G : S \rightarrow \Lambda is the output function

Moore machines do not have exit actions. They can only change their output based on a change of state. This means for systems with physical characteristics, such as a door opening or closing system, the intermediate states of opening and closing have to exist in a Moore machine. It is not possible to go from Open to Closed directly, because Open can't generate the output Closed. Instead, Open + the input 'open_door' or similar goes to the state 'closing', which can then create an action of 'motor_on' or similar, and then finally get to the final state Closed.