In automata theory and sequential logic, a state transition table is a table showing what state (or states in the case of a nondeterministic finite automaton) a finite semiautomaton or finite state machine will move to, based on the current state and other inputs. A state table is essentially a truth table in which some of the inputs are the current state, and the outputs include the next state, along with other outputs.
A state table is one of many ways to specify a state machine, other ways being a state diagram, and a characteristic equation.
Also called characteristic tables, single-dimension state tables are much more like truth tables than the two-dimensional versions. Inputs are usually placed on the left, and separated from the outputs, which are on the right. The outputs will represent the next state of the machine. A simple example of a state machine with two states and two combinational inputs follows:
S1 and S2 would most likely represent the single bits 0 and 1, since a single bit can only have two states.
State transition tables are typically two-dimensional tables. There are two common forms for arranging them.
(S: state, E: event, A: action, —: illegal transition)
(S: state, E: event, A: action, —: impossible transition)
Simultaneous transitions in multiple finite state machines can be shown in what is effectively an n-dimensional state transition table in which pairs of rows map (sets of) current states to next states. This is an alternative to representing communication between separate, interdependent state machines.
At the other extreme, separate tables have been used for each of the transitions within a single state machine: "AND/OR tables" are similar to incomplete decision tables in which the decision for the rules which are present is implicitly the activation of the associated transition.
An example of a state transition table for a machine M together with the corresponding state diagram is given below.
All the possible inputs to the machine are enumerated across the columns of the table. All the possible states are enumerated across the rows. From the state transition table given above, it is easy to see that if the machine is in S1 (the first row), and the next input is character 1, the machine will stay in S1. If a character 0 arrives, the machine will transition to S2 as can be seen from the second column. In the diagram this is denoted by the arrow from S1 to S2 labeled with a 0.