Copyright © Philip M. Parker, INSEAD. Terms of Use.

FINITE STATE MACHINE

Specialty Definition: FINITE STATE MACHINE

DomainDefinition

Computing

Finite State Machine (FSM or "Finite State Automaton", "transducer") An abstract machine consisting of a set of states (including the initial state), a set of input events, a set of output events, and a state transition function. The function takes the current state and an input event and returns the new set of output events and the next state. Some states may be designated as "terminal states". The state machine can also be viewed as a function which maps an ordered sequence of input events into a corresponding sequence of (sets of) output events. A deterministic FSM (DFA) is one where the next state is uniquely determinied by a single input event. The next state of a nondeterministic FSM (NFA) depends not only on the current input event, but also on an arbitrary number of subsequent input events. Until these subsequent events occur it is not possible to determine which state the machine is in. It is possible to automatically translate any nondeterministic FSM into a deterministic one which will produce the same output given the same input. Each state in the DFA represents the set of states the NFA might be in at a given time. In a probabilistic FSM [proper name?], there is a predetermined probability of each next state given the current state and input (compare Markov chain). The terms "acceptor" and "transducer" are used particularly in language theory where automata are often considered as abstract machines capable of recognising a language (certain sequences of input events). An acceptor has a single Boolean output and accepts or rejects the input sequence by outputting true or false respectively, whereas a transducer translates the input into a sequence of output events. FSMs are used in computability theory and in some practical applications such as regular expressions and digital logic design. See also state transition diagram, Turing Machine. [J.H. Conway, "regular algebra and finite machines", 1971, Eds Chapman & Hall]. [S.C. Kleene, "Representation of events in nerve nets and finite automata", 1956, Automata Studies. Princeton]. [Hopcroft & Ullman, 1979, "Introduction to automata theory, languages and computations", Addison-Wesley]. [M. Crochemore "tranducters and repetitions", Theoritical. Comp. Sc. 46, 1986]. (2001-09-22). Source: The Free On-line Dictionary of Computing.

Math

A model of computation consisting of a set of states, a start state, an input alphabet, and a transition function that maps input symbols and current states to a next state. Computation begins in the start state with an input string. It changes to new states depending on the transition function. There are many variants, for instance, machines having actions (outputs) associated with transitions (Mealy machine) or states (Moore machine), multiple start states, transitions conditioned on no input symbol (a null) or more than one transition for a given symbol and state (nondeterministic finite state machine), one or more states designated as accepting states (recognizer), etc. (references)

Source: compiled by the editor from various references; see credits.

Top     

Specialty Definition: Finite state machine

(From Wikipedia, the free Encyclopedia)

In computer science, a finite state machine (FSM) or finite state automaton (FSA) is an abstract machine used in the study of computation and languages that has only a finite, constant amount of memory (the states). It can be conceptualised as a directed graph. There are a finite number of states, and each state has transitions to zero or more states. There is an input string that determines which transition is followed. Finite state machines are studied in automata theory, a subfield of theoretical computer science.

There are several types of finite state machines:

Acceptors produce a "yes or no" answer to the input; either accepting the input or not. Recognizers categorise the input. \'Transducers' are used to generate an output from a given input.

Finite automata may operate on languages of finite words (the standard case), infinite words (Rabin automata, Büchi automata), or various types of trees (tree automata), to name the most important cases.

A further distinction is between deterministic and non-deterministic automata. In deterministic automata, for each state there is at most one transition for each possible input. In non-deterministic automata, there can be more than one transition from a given state for a given possible input. Non-deterministic automata are usually implemented by converting them to deterministic automata - in the worst case, the generated deterministic automaton is exponentially bigger than the non-deterministic automaton (although it can usually be substantially optimised).

The standard acceptance condition for non-deterministic automata requires that some computation accepts the input. Alternating automata also provide a dual notion, where for acceptance all non-deterministic computations must accept.

Apart from theory, finite state machines occur also in hardware circuits, where the input, the state and the output are bit vectors of fixed size (Moore machines and Mealy machines).

Mealy machines have actions (outputs) associated with transitions and Moore machines have actions associated with states.

Formal definitions

Deterministic finite automaton

Formally, a deterministic finite automaton (DFA) is a 5-tuple: (S, Σ, T, s, A)

The machine starts in the start state and reads in a string of symbols from its alphabet. It uses the transition function T to determine the next state using the current state and the symbol just read. If, when it has finished reading, it is in an accepting state, it is said to accept the string, otherwise it is said to reject the string. The set of strings it accepts form a language, which is the language the DFA recognises.

Non-deterministic finite automaton

A non-deterministic finite automaton (NFA) is a 5-tuple: (S, Σ, T, s, A)

Where P(S) is the power set of S and ε is the empty string.

The machine starts in the start state and reads in a string of symbols from its alphabet. It uses the transition relation T to determine the next state(s) using the current state and the symbol just read or the empty string. If, when it has finished reading, it is in an accepting state, it is said to accept the string, otherwise it is said to reject the string. The set of strings it accepts form a language, which is the language the NFA recognises.

Generalized non-deterministic finite automaton

A generalized non-deterministic finite automaton (GNFA) is a 5-tuple: (S, Σ, T, s, a)

Where R is the collection of all regular expressions over the alphabet Σ.

A DFA or NFA can easily be converted into a GNFA and then the GNFA can be easily converted into a regular expression by reducing the number of states until S = {s, a}.

Examples of FSMs

Deterministic finite state machine

The following example explains a deterministic finite state machine (M) with a binary alphabet, which determines if the input contains an even number of 0s.

M = (S, Σ, T, s, A) Simply put, the state S1 represents that there has been an even number of 0s in the input so far, while S2 signifies an odd number. A 1 in the input does not change the state of the automaton. When the input ends, the state will show whether the input contained an even number of 0s or not.

Optimization and Canonicalisation

The problem of optimizing an FSM (finding the machine with the least number of states that performs the same function) is decidable, unlike the same problem for more computationally powerful machines. Furthermore, it is possible to construct a canonical version of any FSM, in order to test for equality. Both of these problems can be solved using a colouring algorithm.

Computational power

FSMs can only recognize regular languages, and hence they are less computationally powerful than Turing machines - there are decidable problems that are not computable using a FSM.

For each non-deterministic FSM a deterministic FSM of equal computational power can be constructed with an algorithm.

Representation

A FSM may be represented using a state transition table or a state diagram.

Implementation

A finite state machine can be implemented in software with a state transition matrix (in some cases a sparse matrix implemented with linked lists or a huge switch-statement for detecting the internal state and then individual switch statements for decoding the input symbol.

In hardware a FSM may be built from a programmable logic device.

See also

References

Source: adapted by the editor from Wikipedia, the free encyclopedia under a copyleft GNU Free Documentation License (GFDL) from the article "Finite state machine."

Top     

Crosswords: FINITE STATE MACHINE

Specialty definitions using "FINITE STATE MACHINE": abstract machine, accepting statecellular automatondeterministic finite automata string search, deterministic finite state machine, deterministic finite tree automaton, deterministic tree automaton, directed acyclic word graphFinite Automata, Finite Automaton, Finite State Automata, Finite State Automaton, FSMhidden Markov modelKnuth-Morris-Pratt algorithm, Kripke structureMealy machine, model checking, Moore machinenext state, NFA, nondeterministic finite state machine, nondeterministic finite tree automaton, nondeterministic tree automatonSDL, state machinetransition function, tree contraction, Turing reduction. (references)

Top     

Anagrams: FINITE STATE MACHINE

Scrabble® Enable2K-Verified Anagrams

Words within the letters "a-a-c-e-e-e-f-h-i-i-i-m-n-n-s-t-t-t"

-5 letters: antihistamine, antimechanist.

Source: compiled by the editor from various references; see credits.

SCRABBLE® is a registered trademark. All intellectual property rights in and to the game are owned in the U.S.A and Canada by Hasbro Inc., and throughout the rest of the world by J.W. Spear & Sons Limited of Maidenhead, Berkshire, England, a subsidiary of Mattel Inc. Mattel and Spear are not affiliated with Hasbro.

Top     

Alternative Orthography: FINITE STATE MACHINE


Hexadecimal (or equivalents, 770AD-1900s) (references)

46 49 4E 49 54 45      53 54 41 54 45      4D 41 43 48 49 4E 45

Leonardo da Vinci (1452-1519; backwards) (references)

        

Binary Code (1918-1938, probably earlier) (references)

01000110 01001001 01001110 01001001 01010100 01000101 00100000 01010011 01010100 01000001 01010100 01000101 00100000 01001101 01000001 01000011 01001000 01001001 01001110 01000101

HTML Code (1990) (references)

&#70 &#73 &#78 &#73 &#84 &#69 &#32 &#83 &#84 &#65 &#84 &#69 &#32 &#77 &#65 &#67 &#72 &#73 &#78 &#69

ISO 10646 (1991-1993) (references)

0046 0049 004E 0049 0054 0045      0053 0054 0041 0054 0045      004D 0041 0043 0048 0049 004E 0045

Encryption (beginner's substitution cypher): (references)

40434843543925354355439247353742434839

Top     



INDEX

1. Crosswords
2. Anagrams
3. Orthography
4. Bibliography


  

Copyright © Philip M. Parker, INSEAD. Terms of Use.