Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do we know that an NFA has a minimum amount of states?

Tags:

nfa

Is there some kind of proof for this? How can we know that the current NFA has the minimum amount?

like image 662
Brian Avatar asked Sep 01 '25 18:09

Brian


1 Answers

As opposed to DFA minimization, where efficient methods exist to not only determine the size of, but actually compute, the smallest DFA in terms of number of states that describes a given regular language, no such general method is known for determining the size of a smallest NFA. Moreover, unless P=PSPACE, no polynomial-time algorithm exists to compute a minimal NFA to recognize a language, as the following decision problem is PSPACE-complete:

Given a DFA M that accepts the regular language L, and an integer k, is there an NFA with ≤ k states accepting L?

(Jiang & Ravikumar 1993).

There is, however, a simple theorem from Glaister and Shallit that can be used to determine lower bounds on the number of states of a minimal NFA:

Let L ⊆ Σ* be a regular language and suppose that there exist n pairs P = { (xi, wi) | 1 ≤ in } such that:

  1. xi wiL for 1 ≤ in
  2. xj wiL for 1 ≤ j, in and ji

Then any NFA accepting L has at least n states.

See: Ian Glaister and Jeffrey Shallit (1996). "A lower bound technique for the size of nondeterministic finite automata". Information Processing Letters 59 (2), pp. 75–77. DOI:10.1016/0020-0190(96)00095-6.

like image 187
Daniel Trebbien Avatar answered Sep 13 '25 13:09

Daniel Trebbien