• 沒有找到結果。

本章介紹有限狀態機的基本定義以及在語言辨識中所會遇到的名詞。 關於 有限狀態機的基本設定,可以參考莫氏的論文[9]和余氏的論文[5]。

2.1 有限狀態機

有限狀態機又稱有限狀態自動機,或簡稱狀態機,實為簡單且高效能的數 學模型。它能夠反映有限的狀態中,輸入之初始動作至當下時刻的所有行為及轉 換,使得給定時刻的動作皆能根據轉移函數而轉移到下一狀態,讓所有屬於此有 限狀態機的函數,都對應不同的輸入關係而產生殊異的結果。

由於簡單實用,有限狀態機被廣泛運用於包括語言學、電子工程學、生物 學、數學等各領域中,無論是電路系統設計、軟硬體工程、網路組合技術乃至生 物醫學,只要有組合邏輯可循,它都能成為資訊動作處理的極大助力。

有限狀態機中,往往使用一個具方向性的圖來表示其動作環境;而有限狀態 機的所有圖形,均以 Node、Arc、和 Input-Output 來表示。

在本文的有限狀態自動機中,每個有限狀態機基本皆由六個元素所構成:

Q 是所有狀態的集合,i 是初始狀態(必定屬於 Q ), F 是終止狀態的集合,

輸入字元集(所有可接受的輸入字元),

是輸出字元集, 

是對應到狀態和輸 入字元再對應到下個狀態的轉移函式。

2.1.1 游標

在有限狀態機中,游標會出現在當下時間的輸入字元位置,亦即有限狀態 機目前正在處理的字元。在起始時,有限狀態機的游標多半位於輸入字串的第一 個字元位置;每對應一個轉移(轉移定義在 2.2.3 節),游標就向後指向後一個字 元,直到字串結束為止(必頇預先設定字串結束後有一個代表結束的特殊字元)。 在有限狀態機得到結束字元時,我們就藉由檢查最後的狀態,來判斷路徑是否可 被全然接受,以及路徑所對應到的字串是否皆已輸出。

2.1.2 狀態(state)

在有限狀態機中,Node 即稱為狀態。而在有限狀態機的理論中,狀態即是 某個時間點所對應的空間位置,同時代表了有限狀態機處理至當下的背景過程。

在使用有限狀態機時,系統必頇是以有限的狀態所組成,並且要有一個起始狀態 和零個以上的終止狀態來表示,如圖 2.1 所示,起始狀態以粗線圈來表示,一般 狀態(非起始狀態或終止狀態)則以單細線圈表示,終止狀態則以雙線圈示之。

在我們所使用的系統之中,除了以上三種狀態外,另外有狀態可能同時為起始又 為終止的特性,此時我們將以雙粗線圈來表示。

語音辨識系統在操作時,必定由起始狀態進入,經由輸入字元進行一連串 的狀態轉移;而當最後一個狀態轉移完成後,藉由檢查此轉移後的狀態,來判定 此一路徑可否為接受路徑。倘若此狀態為終止狀態,便是輸出接受;若此狀態不 為終止狀態,便是輸出拒絕。

2.1.3 轉移(Transition)

有限狀態機中,除了狀態,另外尚具有表示狀態間關係的圖形,就是有方 向性的轉移。轉移,即用來表示狀態間的轉換關係,亦可視為一種狀態和輸入字 元的函式。轉移 t,是一個有限狀態機裡面的函式庫,s[t]表示此一轉移 t 的來源 狀態(source state),d[t]表示此轉移 t 的目的狀態(destination state),i[t]則表示 此轉移 t 所對應的輸入字元。預先將這些轉移 t,集合成轉移集合 x;當游標鍵入 一輸入字元時,會自動由集合 x,查表找出對應 i[t]和 s[t]的 d[t],來使有限狀態 機轉移到下一個狀態。而當 i[t]無法和 s[t]找到符合的轉移函數時,有限狀態機 將否定這一路徑,並直接輸出拒絕。

2.1.4 輸入和輸出

一個有限狀態機,必頇定義其所能接受的語言,若一語言可被有限狀態自 動機接受,我們就稱之為正規語言。我們將輸入和輸出,放在轉移上以文字表示,

並且以冒號分開,倘若一轉移的輸入為 a,輸出為 b,我們就以 a:b 來表示。

2.1.5 路徑(Path)

路徑是由有限狀態機中一連串的狀態和轉移所組成的。假設,目前有一條 路徑稱為 P=P…Pi…Pn,其中 Pi是代表此路徑上的第 i 個轉移,i=1,…,n;由於 Pi 是第 i 個轉移,所以 s[Pi]=d[Pi-1];此設定成立後,可以推導整段路徑的起始 狀態為 s[P] = s[P1],而整段路徑的目的狀態 d[P]=d[Pi],對應到這段路徑的輸入 字串為 i[P]=i[P1]*i[P2]*…*i[Pn]。

2.1.6 空轉移

在有限狀態機中,我們允許輸入和輸出字元可以為

,當一轉移輸入字元為

時,即表示此轉移,不需要輸入也可進入下一個狀態;而若當一轉移輸出字元 為

時,即表示此轉移,在轉移後並不會具有任何的輸出,只要具有其中一種空 字元

的轉移,我們都稱為空轉移。在我們設計有限狀態機時,有許多藉由空轉 移來表達或整合有限狀態機的特性

2.1.7 確定性與非確定性

在有限狀態自動機的設計中,我們對於來源狀態相同的所有轉移,其輸入字 元都不重覆,我們就定義這個有限狀態自動機是具確定性的(deterministic)。在 確定性的有限狀態機中,不論何時,我們必然只會有一個狀態的可能性;反之,

非確定性的有限狀態機,則會有多於一種的可能性狀態產生。

在我們所建立的系統之中,會用到非確定性的有限狀態機。在建立的時候我 們允許輸入字元為

的空轉移存在,這表示我們的有限狀態機遇到這種空轉移

時,就算沒有輸入,也可以進入下一個狀態。因此我們在同一個時間點,就有一 種以上的可能存在狀態產生。

又由於我們建造的有限狀態機是非確定性的,所以我們會儘量考慮所有可能 到達的狀態,在輸入一字串後,只要有一個以上的狀態可以為終止狀態,有限狀 態機就產生接受的訊號,並把相應的字串輸出。反之,當沒有任何一個狀態可能 為終止狀態時,有限狀態機才會輸出拒絕。

2.1.8 等價性

如 果 兩 個 有 限 狀態 自 動 機 所 接受 的 語言 相 同 , 我 們 就 稱 它們 為 等 價

(equivalent)。由於,此文的等價只定義在接受語言相同即可,因此等價的有限 狀態機,不一定包含相同的狀態和轉移。

2.1.9 加權值

在我們所建立有限狀態機的系統時,需要更多的參數來描述有限狀態機所具 有的特性。加權值是一項很重要的參數設定。我們藉由加權值,來賦予不同的轉 移不同的權重,我們用 [ ]w t 來表示轉移

t

的加權值,並且在圖上以斜線後的數值 來表示。

在 2.1 節一開始時,我們以 (Q

  

Q )來表示,再加上了加權值後,我 們更可進一步的把轉移函式進一步改寫為 (Q

  

Q K),其中 K 表示的是 加權值的集合。由於我們的加權值是用來表示機率的,所以當路徑上的加權值要 運算的話,我們必頇相乘才可以得到。

2.1.10 聯集運算

聯集運算在建構本論文中的有限狀態機時,是一種非常重要的運算;我們 在建立有限狀態機時,皆由小而大,由簡入繁,因此我們總是先個別建立小的有 限狀態機,再藉由聯集運算的方式,建構成一整個有限狀態機。當 A 和 B 要聯

集成一個有限狀態機時,其 A 和 B 的正規語言就以聯集的方式結合。

當我們要聯集 A 和 B 時,我們都會運用空轉移來達到不改變原本有限狀態 機的內容。一開始,我們都會先產生一個新的起始狀態(一個有限狀態機只能有 一個起始狀態),然後再產生兩個空轉移(輸入輸出皆為

),將這兩個空轉移的 目的狀態連到兩個的起始狀態,然後再將原本兩個有限狀態機的起始狀態,改為 一般狀態。這樣子就得到 A 和 B 聯集結果了。

2.2 字元、字串、語言

在語言辨識中,有些基本的名詞必頇介紹。我們分為字元(symbol)、字串 (string)和語言(language)。我們一般稱所有字元的集合為字元集(alphabet),而 字串是由字元所構成的有意義詞所串接而成,最後語言是由字串所集合而成。在 字串中,我們會以連接(concatenate)來將兩個字串接在一起。a b

我們就看成是b 字串接在a字串後面。

相關文件