Mealy machine

From Wikipedia, the free encyclopedia

The state diagram of a simple Mealy machine
The state diagram of a simple Mealy machine

In the theory of computation, a Mealy machine is a finite state machine (and more accurately, a finite state transducer) that generates an output based on its current state and an input. This means that the state diagram will include both an input and output signal for each transition edge. In contrast, the output of a Moore finite state machine depends only on the machine's current state, transitions having no input attached. However, for each Mealy machine there is an equivalent Moore machine whose states are the union of the Mealy machine's states and the Cartesian product of the Mealy machine's states and the input alphabet.

The name "Mealy machine" comes from that of the concept's promoter: G. H. Mealy, a state machine pioneer, who wrote A Method for Synthesizing Sequential Circuits, Bell System Tech. J. vol 34, pp. 1045–1079, September 1955.

Mealy machines provide a rudimentary mathematical model for cipher machines. Considering the input and output alphabet the Latin alphabet, for example, then a mealy machine can be designed that given a string of letters (a sequence of inputs), it can process it into a ciphered string (a sequence of outputs). However, although you could probably use a Mealy model to describe Enigma, the state diagram would be too complex to provide feasible means of designing complex ciphering machines.


[edit] Formal definition

A Mealy machine is a 6-tuple, (S, S0, Σ, Λ, T, G), consisting of

  • a finite set of states (S)
  • a start state (also called initial state) S0 which is an element of (S)
  • a finite set called the input alphabet (Σ)
  • a finite set called the output alphabet (Λ)
  • a transition function (T : S × Σ → S)
  • an output function (G : S × Σ → Λ)

[edit] See also