State complexity is an area of theoretical computer science dealing with the size of abstract automata, such as different kinds of finite automata. The classical result in the area is that simulating an n {\displaystyle n} -state nondeterministic finite automaton by a deterministic finite automaton requires exactly 2 n {\displaystyle 2^{n}} states in the worst case.
Finite automata can be deterministic and nondeterministic, one-way (DFA, NFA) and two-way (2DFA, 2NFA). Other related classes are unambiguous (UFA), self-verifying (SVFA) and alternating (AFA) finite automata. These automata can also be two-way (2UFA, 2SVFA, 2AFA).
All these machines can accept exactly the regular languages. However, the size of different types of automata necessary to accept the same language (measured in the number of their states) may be different. For any two types of finite automata, the state complexity tradeoff between them is an integer function f {\displaystyle f} where f ( n ) {\displaystyle f(n)} is the least number of states in automata of the second type sufficient to recognize every language recognized by an n {\displaystyle n} -state automaton of the first type. The following results are known.
It is an open problem whether all 2NFAs can be converted to 2DFAs with polynomially many states, i.e. whether there is a polynomial p ( n ) {\displaystyle p(n)} such that for every n {\displaystyle n} -state 2NFA there exists a p ( n ) {\displaystyle p(n)} -state 2DFA. The problem was raised by Sakoda and Sipser,[15] who compared it to the P vs. NP problem in the computational complexity theory. Berman and Lingas[16] discovered a formal relation between this problem and the L vs. NL open problem. This relation was further elaborated by Kapoutsis.[17]
Given a binary regularity-preserving operation on languages ∘ {\displaystyle \circ } and a family of automata X (DFA, NFA, etc.), the state complexity of ∘ {\displaystyle \circ } is an integer function f ( m , n ) {\displaystyle f(m,n)} such that
Analogous definition applies for operations with any number of arguments.
The first results on state complexity of operations for DFAs were published by Maslov [18] and by Yu, Zhuang and Salomaa. [19] Holzer and Kutrib [20] pioneered the state complexity of operations on NFA. The known results for basic operations are listed below.
If language L 1 {\displaystyle L_{1}} requires m states and language L 2 {\displaystyle L_{2}} requires n states, how many states does L 1 ∪ L 2 {\displaystyle L_{1}\cup L_{2}} require?
How many states does L 1 ∩ L 2 {\displaystyle L_{1}\cap L_{2}} require?
If language L requires n states then how many states does its complement require?
How many states does L 1 L 2 = { w 1 w 2 ∣ w 1 ∈ L 1 , w 2 ∈ L 2 } {\displaystyle L_{1}L_{2}=\{w_{1}w_{2}\mid w_{1}\in L_{1},w_{2}\in L_{2}\}} require?
State complexity of finite automata with a one-letter (unary) alphabet, pioneered by Chrobak,[34] is different from the multi-letter case.
Let g ( n ) = e Θ ( n ln n ) {\displaystyle g(n)=e^{\Theta ({\sqrt {n\ln n}})}} be Landau's function.
For a one-letter alphabet, transformations between different types of finite automata are sometimes more efficient than in the general case.
Surveys of state complexity were written by Holzer and Kutrib[40][41] and by Gao et al.[42]
New research on state complexity is commonly presented at the annual workshops on Descriptional Complexity of Formal Systems (DCFS), at the Conference on Implementation and Application of Automata (CIAA), and at various conferences on theoretical computer science in general.