---
# System prepended metadata

title: Project3 攻略
tags: [DSD]

---

#    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"];
```
