
68
|
第 3 章
同樣的,有限自動機沒有接收輸入的鍵盤、滑鼠、網路介面,只有每次能讀取一個輸入
字元的單一外部串流。
不同於可執行任意程式的通用型 CPU,每個有限自動機有 1 組已經寫死的
規則
(rule),
這些規則決定了在回應輸入時,如何從某種狀態移到另 1 種狀態。此自動機在某種特定
狀態下啟動,並從它的輸入串流讀取個別的字元,遵循的規則是每次讀取 1 個字元。
以下是某種特定有限自動機架構的視覺化方式:
上圖兩個圓表示自動機的兩種狀態,也就是狀態 1 和狀態 2,而不知從何而來的箭頭表
示自動機始終從狀態 1 開始,這是它的
起始狀態
(
start state
)。 狀態之間的箭頭表示
機器的規則,它們是:
• 如果是在狀態 1,且讀取了字元 a,就轉成狀態 2。
• 如果是在狀態 2,且讀取了字元 a,就轉成狀態 1。
這些資訊已經足以讓我們研究此機器如何處理輸入串流:
• 此機器起始於狀態 1。
• 此機器僅有從它的輸入串流讀取字元 a 的規則,因此那就是它唯一會發生的事情。
當它讀取 a 時,會從狀態 1 轉成狀態 2。
• 當此機器讀取另一個 a,會轉回狀態 1。
一旦轉回狀態 1,它就會開始重複自己,這也正是這個特定機器行為的範圍。關於目前
狀態的資訊,則假設是自動機的內部細節(它是當作『黑盒子』運作,不會揭露其內
部作業),所以它的徒勞無用加重了這種行為的無聊程度,不會造成任何類型的顯著輸
出。機器在狀態 1、2 之間反覆時,外部的世界沒有人能看到有任何事情發生,所以我
們在這種情況可能也有單一狀態,並且完全不會影響任何內部結構。 ...