An automaton is an abstract concept of machine, modelled as a collection of states and transitions between states, together with an assignment of some external behavior (typically input and/or output) to these transitions. A quintessential example of an automaton is a vending machine, which can be in any number of different states (e.g., “READY”, “INSERT 2 TOKENS”, “OUT OF SERVICE”, etc.), and will transition between these states in response to user input (e.g., from “READY” to “INSERT 2 TOKENS” after the user makes a selection, and from “INSERT 2 TOKENS” to “INSERT 1 TOKEN” after the user inserts a token).
Many different notions of automaton exist in the literature. For now this article only considers one fairly basic notion taken from Joy of Cats, although it is by no means the simplest nor the most general.
A deterministic, sequential, Moore automaton is formally definable (as in Joy of Cats) as a sextuple (, , , , , ), where is the set of states, and are the sets of input symbols and output symbols, respectively, : is the transition map, is the initial state, and : is the output map. Morphisms from an automaton (, , , , , ) to an automaton (′, ′, ′, ′, ′, ′) are triples (, , ) of functions , , and satisfying the following conditions:
(i) preservation of transition: ((), ()) = ((, )),
(ii) preservation of outputs: (()) = (()),
(iii) preservation of initial state: () = .
Note that in such an automaton, the outputs are determined by the current state alone (and do not depend directly on the input).
A morphism : (, , , ) (, , , ) (called a simulation) is a function that preserves:
(i) the transitions, i.e., (, ()) = ((, )),
(ii) the initial state, i.e., () = , and
(iii) the final states, i.e., .
There are several variant forms of automaton. The above just gives a basic one. Others are treated in the entries:
There are tentative definitions of
higher dimensional automaton?
which take a more nPOV of automata theory.