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"
1.2 KiB
| id | title | type | created | modified | tags |
|---|---|---|---|---|---|
| 20251223171835 | Moore Machines | permanent | 2025-12-23T22:18:35Z | 2025-12-23T22:39:56Z |
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
\Sigmais the input alphabet\Lambdais the output alphabetT : S \times \Sigma \rightarrow Sis the state transition functionG : S \rightarrow \Lambdais 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.