Katana VentraIP

Moore machine

In the theory of computation, a Moore machine is a finite-state machine whose current output values are determined only by its current state. This is in contrast to a Mealy machine, whose output values are determined both by its current state and by the values of its inputs. Like other finite state machines, in Moore machines, the input typically influences the next state. Thus the input may indirectly influence subsequent outputs, but not the current or immediate output. The Moore machine is named after Edward F. Moore, who presented the concept in a 1956 paper, “Gedanken-experiments on Sequential Machines.”[1]

A finite set of

states

A start state (also called initial state) which is an element of

A finite set called the input

alphabet

A finite set called the output

alphabet

A transition mapping a state and the input alphabet to the next state

function

An output function mapping each state to the output alphabet

A Moore machine can be defined as a 6-tuple consisting of the following:


A Moore machine can be regarded as a restricted type of finite-state transducer.

Visual representation[edit]

Table[edit]

A state transition table is a table listing all the triples in the transition relation .

Diagram[edit]

The state diagram for a Moore machine, or Moore diagram, is a diagram state diagram that associates an output value with each state.

for a Moore machine, each node (state) is labeled with an output value;

for a Mealy machine, each arc (transition) is labeled with an output value.

As Moore and Mealy machines are both types of finite-state machines, they are equally expressive: either type can be used to parse a regular language.


The difference between Moore machines and Mealy machines is that in the latter, the output of a transition is determined by the combination of current state and current input ( as the domain of ), as opposed to just the current state ( as the domain of ). When represented as a state diagram,


Every Moore machine is equivalent to the Mealy machine with the same states and transitions and the output function , which takes each state-input pair and yields , where is 's output function and is 's transition function.


However, not every Mealy machine can be converted to an equivalent Moore machine. Some can be converted only to an almost equivalent Moore machine, with outputs shifted in time. This is due to the way that state labels are paired with transition labels to form the input/output pairs. Consider a transition from state to state . The input causing the transition labels the edge . The output corresponding to that input, is the label of state .[2] Notice that this is the source state of the transition. So for each input, the output is already fixed before the input is received, and depends solely on the present state. This is the original definition by E. Moore. It is a common mistake to use the label of state as output for the transition .

using XOR

edge detector

binary adding machine

(a restricted form of Moore machine where the state changes only when the global clock signal changes)

clocked sequential systems

Synchronous circuit

Mealy machine

Algorithmic state machine

Autonomous system (mathematics)

(1971). Regular algebra and finite machines. London: Chapman and Hall. ISBN 0-412-10620-5. Zbl 0231.94041.

Conway, J.H.

Moore E. F. Gedanken-experiments on Sequential Machines. Automata Studies, Annals of Mathematical Studies, 34, 129–153. Princeton University Press, Princeton, N.J.(1956).

Karatsuba A. A. Solution of one problem from the theory of finite automata. Usp. Mat. Nauk, 15:3, 157–159 (1960).

Karatsuba A. A. Experimente mit Automaten (German) Elektron. Informationsverarb. Kybernetik, 11, 611–612 (1975).

Karatsuba A. A. .

List of research works

Media related to Moore machine at Wikimedia Commons