基本介紹
- 中文名:狀態轉移表
- 外文名:State transition table
簡介,常見形式,一維狀態表,二維狀態表,變換成狀態圖,
簡介
狀態表是指定“狀態機”的多種方式之一,其他方式包括狀態圖,和“特徵等式”。
常見形式
一維狀態表
也叫做特徵表,一維狀態表比二維版本更像真值表。輸入通常放置在左側,分隔於在右側的輸出。輸出將表示這個機器的下一個狀態。下面是有兩個狀態和兩個組合輸入的狀態機的簡單例子:
A | B | 當前狀態 | 下一個狀態 | 輸出 |
---|---|---|---|---|
0 | 0 | S1 | S2 | 1 |
0 | 0 | S2 | S1 | 0 |
0 | 1 | S1 | S2 | 0 |
0 | 1 | S2 | S2 | 1 |
1 | 0 | S1 | S1 | 1 |
1 | 0 | S2 | S1 | 1 |
1 | 1 | S1 | S1 | 1 |
1 | 1 | S2 | S2 | 0 |
S1和S2最可能表示單一位0和1,因為單一位只有兩個狀態。
二維狀態表
狀態轉移圖典型的是二維表。有兩種安排它們的常用形式。
- 垂直(或水平)維指示當前狀態,水平(或垂直)維指示事件,表中的單元格包含在時間發生時的下一個狀態(和可能的聯繫於這個狀態轉移的動作)。
事件 狀態 | E1 | E2 | ... | En |
S1 | - | Ay/Sj | ... | - |
S2 | - | - | ... | Ax/Si |
... | ... | ... | ... | ... |
Sm | Az/Sk | - | ... | - |
(S:狀態, E:事件, A:動作, -:違法轉移)
- 垂直(或水平)維指示當前狀態,水平(或垂直)維指示下一個狀態,單元格包含導致特定下一個狀態的事件。
下一個 當前 | S1 | S2 | ... | Sm |
S1 | Ay/Ej | - | ... | - |
S2 | - | - | ... | Ax/Ei |
... | ... | ... | ... | ... |
Sm | - | Az/Ek | ... | - |
(S:狀態, E:事件, A:動作, -:不可能轉移)
變換成狀態圖
有可能從表格繪製狀態圖。下面給出步驟:
- 繪製圓圈表示給出狀態。
- 對於每個狀態,檢索對應的行繪製到目的狀態的箭頭。如果自動機是NFA則對一個輸入字母可能有多個箭頭。
- 指定一個狀態為開始狀態。開始狀態在自動機的形式定義中給出。
- 指定一個或多個狀態為接受狀態。它也在自動機的形式定義中給出。