# Project3 攻略 ### 主要目的 化簡狀態圖 初始狀態圖 ![image](https://hackmd.io/_uploads/HJs0Vv9gJl.png) ## 第一步 插入Table 這邊採用正常矩陣下去做,如果使用教授教的下三角矩陣也是同樣方式 ![image](https://hackmd.io/_uploads/ryZXUw9eyl.png) ### 插入規則 去比較兩個狀態的 OUTPUT 值是否都一樣,不用管下一格狀態,如果不一樣請將格子打叉,如果一樣,請再格子裡面放入對應 OUTPUT 的相連狀態(參考下面範例)。 ### 範例一 A B 比對 ![image](https://hackmd.io/_uploads/HJGqdPcx1e.png) 發現 A B OUTPUT 一樣 依序放入相鄰狀態 A-C (INPUT 0) B-D (INPUT 1) ![image](https://hackmd.io/_uploads/HyxmMOv9xyx.png) 因為 AB 跟 BA 一樣所以都會插入 ### 範例二 A D 比對 ![image](https://hackmd.io/_uploads/rkZsuPcxkg.png) 其中一組 OUTPUT 不一樣所以對應的格子打叉 ![image](https://hackmd.io/_uploads/HyYWFD9eke.png) 因為 AD 跟 DA 一樣所以都會打叉 ### 最後 Table 正常矩陣 ![image](https://hackmd.io/_uploads/SkQlhPqeyx.png) 下三角矩陣 ![image](https://hackmd.io/_uploads/r16ihv9gkg.png) ## 第二步 化簡 將現在表格裡面的每組相鄰狀態對應到表格假設有對應到 X 時,該表格也將表示為 X,需重複直到沒有狀態符合到此規則 下面範例如果有變成 X 時將以灰色呈現。 ### 範例一 以 AB 來看 A-C 對應到沒有打叉 但是 B-D 對應到打叉格子 所以 AB 會變成打叉 , BA 也是因為對稱。 ![image](https://hackmd.io/_uploads/Sk8XADqekx.png) ### 最後 Table 正常矩陣 ![image](https://hackmd.io/_uploads/rkSL-u9gkx.png) 下三角矩陣 ![image](https://hackmd.io/_uploads/S1KYJdcl1g.png) ## 第三步 將可以取代的元素移除 觀察尚未移除的元素所對應到行跟列,兩者代表可以一樣,可以互相取代。 **行列相同,我們將不用理會。** ### 範例一 DF 尚未移除 所以 F 可以用 D 取代 將所有 F 替換成 D, F 行列移除。 ![image](https://hackmd.io/_uploads/SJXzbdce1x.png) ![image](https://hackmd.io/_uploads/B1thM_5lyx.png) ### 範例二 GE 尚未移除 所以 G 可以用 E 取代 將所有 G 替換成 E, G 行列移除。 ![image](https://hackmd.io/_uploads/rkay7_cxyx.png) ![image](https://hackmd.io/_uploads/HyY-X_qekg.png) ## 最終化簡成果 ![image](https://hackmd.io/_uploads/rJuNmO5eJl.png) ## 輸出格式提醒 假設如果出現以下請況連線地方需要合併輸出在 Dot 檔案 ![image](https://hackmd.io/_uploads/B1ixVu5l1l.png) 未合併顯示 ```dot A -> A [label="0/0"]; A -> A [label="1/1"]; ``` 合併顯示 ```dot A -> A [label="0/0,1/1"]; ```