2
A
回答
1
NFA的超過DFA的優點是財產,始終「選擇正確的道路」。由於您無法在算法中選擇「選擇正確的路徑」,因此通常會將NFA轉換爲DFA,從而創建符號化多個NFA狀態的DFA狀態。因此,當您的NFA處於A狀態並且可以選擇轉到A,B或C時,您的DFA中的下一個狀態將爲{A,B,C}。
這解釋的優點和缺點: DFA的可以,因爲他們的下一個狀態是由功能決定實施更加容易。 NFA允許用戶更容易地表達他們想要的內容,因爲NFA可以在多個路徑之間進行選擇。
1
的NFA和DFA的接受同一組的語言 - 正規語言。
NFA(不是DFA,因爲DFA是NFA的一個子集)的直接實現通常涉及允許回溯,而直接實現DFA只需要與輸入長度一樣多的步驟,所以在這個意義上,DFA「比」等效的NFA(不是DFA)更快地得出答案。
當試圖找到對應於給定語言或RE(例如,通過一種算法)一個FA,它通常更容易在NFA首先到達(因爲規則是不太嚴格的)。當試圖證明FA的存在時尤其如此,因爲NFA的存在與DFA的存在一樣好。如果需要DFA,則存在以下算法(a)將NFA轉換爲等效的DFA和(b)將DFA最小化。
製作總概括的DFA更快但更復雜的(在狀態和轉換的數量而言),而是NFA的速度較慢,但更簡單的(在相同的條件)。
0
NFA超過DFA的一個明顯優勢是,您可以使用NFA輕鬆構建FA代表兩種(或更多)語言的聯合,交集,靜止等語言。也就是說,如果你有一些簡單的FA做部分工作,你可以使用NFA來輕鬆地組合他們。在使用DFA時,您需要建立一個自動完成所有工作的新自動機。
看,實施起來比較容易。 但你提到的時間問題。
相關問題
- 1. NFA與DFA相比的優缺點?
- 2. XML與RDMS相比的優點/缺點
- 3. QLPreviewController與UIWebView - 優點/缺點
- 4. NFA到DFA算法
- 5. NFA轉換爲DFA
- 6. TryCatch與TryParse的優缺點
- 7. C#中的NFA/DFA實現
- 8. Cassandra UUID與TimeUUID的優點和缺點
- 9. CAAnimationGroup與CAKeyframeAnimation的優點和缺點
- 10. StyleCop,優點/缺點
- 11. 將NFA轉換爲DFA
- 12. DFA和NFA等效語言
- 13. 將nfa轉換爲dfa
- 14. 優點/缺點列表與子對象
- 15. php socket編程優點與缺點
- 16. 水晶報表與ReportViewer優點/缺點?
- 17. 註解與XML,優點和缺點
- 18. Android SDK與Adobe AIR:優點和缺點?
- 19. CCI與Mono.Cecil - 優點和缺點
- 20. DFA和NFA如何與正則表達式相關聯?
- 21. YSlow與Speed Tracer相比有哪些優點/缺點?
- 22. Three20的優點和缺點
- 23. smartGWT的缺點和優點
- 24. N2CMS的優點和缺點
- 25. SOAP Pooling的優點/缺點
- 26. Axis2優於WCF的優點和缺點
- 27. CouchDB的優缺點
- 28. XCODE4的優缺點?
- 29. CodeSmith的優缺點
- 30. Phonegap的優缺點
嗯,這是絕對正確的?我認爲NFA更復雜,因爲他們必須確定給定輸入採用哪條路徑,而使用DFA的路徑完全由輸入決定,因此給出了兩者之間的速度差異... – user559142 2011-05-14 18:36:53