[英]Why the conversion of an NFA to DFA is useful?
有人能告訴我為什么將 NFA 轉換為 DFA 有用嗎? 到目前為止,我發現了以下原因(我不確定):
有誰知道此轉換有用的另一個原因?
DFA 比 NFA 更快
是和不是。
一方面,給定的 DFA 當然比給定的 NFA 運行得“更快”,因為運行 NFA 的算法需要以某種方式解決非確定性問題(例如,通過在運行時構建冪集)。
另一方面,不:等同於 NFA 的 DFA 也可能比 NFA 大很多,尤其是當 NFA 使用冪集構造派生時。 這樣兩者的運行時間將幾乎相同。
但我認為這幾乎不是這里的重點。 我們正在談論我們用來解決理論問題的計算抽象。 我們從不在“真實”計算機上實施 DFA,所以真的不需要擔心速度。
DFA 更易於實施
這有點令人困惑。 你的意思是想出做 X 的 DFA 比做 X 的 NFA 更容易嗎? 我非常不同意這一點,有時 NFA 是比 DFA 更好的解決問題的工具,有時 DFA 就足夠了。
如果您的意思是實現運行那些自動機的算法更容易,那么您是對的,對於 DFA,您只需遵循轉換 function。
回到你的主要問題。 為什么轉換?
簡而言之:如果你想運行一個 NFA,你必須去除非確定性,否則確定性算法無法執行它。 問題是誰做的。 可以運行 NFA 的算法會為您做到這一點,如果您手邊沒有該工具,則需要事先進行轉換。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.