如果语言(L)被n状态NFA识别,那么它是否也可以由不超过2 ^ n个状态的DFA识别?

时间:2010-10-15 10:54:23

标签: deterministic automata dfa nfa

我这么认为,因为上限是2 ^ n,并且鉴于这些都是有限机器,n状态NFA和具有2 ^ n或更少状态的DFA的交点将是有效的。

我错了吗?

2 个答案:

答案 0 :(得分:1)

你是对的。 2 ^ n是上限,因此生成的DFA不能具有超过该限制的状态。但这是最糟糕的情况。在大多数常见情况下,状态少于生成的DFA中的状态。有时甚至可能比原来的NFA还要少。

但据我所知,用于预测生成的DFA实际拥有多少个状态的算法尚不存在。所以,如果你能找到它,请告诉我;)

答案 1 :(得分:1)

这是正确的。您可能已经知道,DFA和NFA都只接受常规语言。这意味着他们可以接受的语言相同。此外,将NFA转换为DFA的最原始方法是使用subset construction (also called powerset construction),您只需在DFA中为NFA中的每个状态组合创建一个状态。这被称为国家的权力机构,最多可以是2 ^ n。

但是,正如@SasQ所说,这是最糟糕的情况。通常,如果使用Hopcroft算法或Brozowski算法,您将不会得到那么多状态。