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

# 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.
