看看實際效果
DFA 範例。
同一款工具,四種需求。下方每張圖都是實際產生的成果。
輸入內容
建立一個 {0, 1} DFA,接受 1 的個數為偶數的字串。使用兩個狀態 Even 和 Odd;Even 是起始狀態,也是接受狀態。
接著試試改成接受 1 的個數為奇數為其他符號新增死狀態
狀態圖 · OMG UML 2.5.1 §14 + Harel (1987) statechart · schematex-state
產生的圖表
DFA 是什麼。
確定有限自動機會一次讀取一個符號。從每個狀態出發,每個符號都恰好有一條箭頭,因此路徑不會產生歧義;如果路徑最後停在接受狀態,字串就會被接受。
將它繪製成狀態圖,就是自動機課程要求的答案格式:起始箭頭、每個狀態各一個節點、以符號標示的轉移,以及標記出的接受狀態。
- Standard
- OMG UML 2.5.1 §14 + Harel (1987) statechart
- Engine
- schematex-state
- Editable
- Double-click text, drag nodes
- Export
- SVG · PNG · PDF
適用對象
誰會繪製 DFA。
作業與考試練習:用一句話描述語言,將自動機呈現在頁面上。
為投影片和解答製作清楚的圖表,題目變更時也能在幾秒內重新繪製。
在撰寫 HDL 前,先將序列偵測器和控制器繪製成 Mealy 或 Moore 機器。
運作方式
三個步驟繪製 DFA。
01
描述需求
寫一段話就能開始。
“建立一個 {0, 1} DFA,接受 1 的個數為偶數的字串。使用兩個狀態 Even 和 Odd;Even 是起始狀態,也是接受狀態。”
02
查看圖表
由合適的繪圖引擎產生。
03
提出修改
每次修改都會保留版本。
改成接受 1 的個數為奇數
V2 · DRAWN FROM V1, NOTHING RETYPED常見問題
常見問題
什麼是 DFA?
確定有限自動機:由狀態集合、字母表、每個狀態與符號各一個轉移、起始狀態,以及接受狀態集合組成。如果從起始狀態讀取字串後停在接受狀態,就會接受該字串。
DFA 和 NFA 有什麼不同?
DFA 中每個狀態對每個符號恰好有一個轉移。NFA 可以有多個轉移、沒有轉移,也可以使用 ε-轉移;只要有任一路徑停在接受狀態,就會接受該字串。每個 NFA 都能轉換成等價的 DFA。
可以繪製 NFA、Mealy 和 Moore 機器嗎?
可以。請說明你要繪製哪一種。Mealy 的轉移會標示輸入/輸出。
可以從轉移表開始嗎?
可以。貼上表格,並說明哪個狀態是起始狀態、哪些是接受狀態。
起始狀態和接受狀態如何顯示?
起始狀態會以實心圓點引出的箭頭表示,每個接受狀態都會在圖上標示。
需要帳戶嗎?
可以,免費使用。不需要信用卡。
相關工具