簡體   English   中英

如果語言(L)被n狀態NFA識別,那么它是否也可以由不超過2 ^ n個狀態的DFA識別?

[英]If a language (L) is recognized by an n-state NFA, can it also be recognized by a DFA with no more than 2^n states?

我這么認為,因為上限是2 ^ n,並且鑒於這些都是有限機器,n狀態NFA和具有2 ^ n或更少狀態的DFA的交集將是有效的。

我錯了嗎?

你是對的。 2 ^ n是上限,因此生成的DFA不能具有超過該限制的狀態。 但這是最糟糕的情況。 在大多數常見情況下,狀態少於生成的DFA中的狀態。 有時甚至可能比原來的NFA還要少。

但據我所知,用於預測生成的DFA實際擁有的狀態的算法尚不存在。 所以,如果你能找到它,請告訴我;)

那是對的。 您可能已經知道,DFA和NFA都只接受常規語言。 這意味着他們可以接受的語言相同。 此外,將NFA轉換為DFA的最原始方法是使用子集構造(也稱為powerset構造) ,您只需在DFA中為NFA中的每個狀態組合創建一個狀態。 這被稱為國家的powerset,最多可以是2 ^ n。

但是,正如@SasQ所提到的那樣,這是最糟糕的情況。 通常,如果使用Hopcroft算法或Brozowski算法,您將不會得到那么多狀態。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM