計算理論 第2章 有限自動機和正規文法(一)

2021-10-17 06:39:32 字數 1381 閱讀 1467

自動機是識別句子的機器。讀取乙個句子,句子符合條件就接收,否則不接收。因此自動機是描述語言的另一種方法。

dfa(determinate finite automation),即:確定的有限自動機。

dfa 是我們學習的第一種自動機,理解了 dfa ,後面的就都不難理解。

自動機是識別句子的機器,dfa 是一種自動機,所以它的工作是:識別特定型別的句子

從結構上,dfa 可以分為3部分:輸入帶、讀頭和有限控制器。

要識別的句子,就在輸入帶上。dfa 用讀頭,乙個乙個地讀取輸入帶上的字元。讀進來之後,用有限控制器來識別字元,即判斷該句子滿足特定型別的要求。所以有限控制器是有限自動機的核心。這就是 dfa 的工作流程。

上面介紹了 dfa 的抽象結構和工作流程,下面要介紹的是 dfa 的具體組成,或者叫形式描述。

dfa 是乙個五元組,記作 m = (k, σ, δ, q0, f)。

dfa 的工作過程,就是一系列狀態變化。而狀態變化的依據就是狀態轉移函式 δ

比如我想讓上例中的 dfa 識別句子「 00 」,dfa 初始狀態是 q0,讀取字元0,根據δ(q0, 0)= q2,dfa 狀態變為 q2。此時讀頭已向後移動一格,讀取字元0,根據δ(q2, 0)= q0,dfa 狀態變為 q0。讀頭再向後移動一格,發現已經讀完了。讀完輸入帶後要判斷,dfa 當前的狀態,是否在終止狀態集合 f 裡。如果在,則這個句子被識別;否則不被識別。

對於 dfa 而言,一張圖即可包含五元組所有的資訊,並且狀態轉移函式 δ 非常的清晰。實際做題時,我們通常畫圖來分析 dfa。在計算理論的課程中,有大量的**,使得原本抽象的方法具體化,理解簡單、操作簡便且考試會考。掌握**的使用方法,是拿分的主要方法。

不難理解,q0 是初始狀態(標誌是–>q0),q4 是終止狀態,(標誌是兩個同心圓)。

既然一張圖就能搞定,為什麼還要講上面的呢?因為在我看來,dfa 的結構、組成要素和工作原理,是自動機的乙個代表。縱然**千變萬化,其本質是一樣的,有助於我們理解和記憶。

自動機理論,語言和計算導論1 1節翻譯

在電腦科學內重要的核心內容中,有若干種原因需要我們研究狀態機理論及其複雜性。該節主要是向讀者展示理論研究動機及在本書當中的一些主要話題及一些輪廓。在圖1.2中,5個狀態分別以當前看到的then的字首來命名,輸入序列對應相應的字串行。我們可以把它想象成詞法分析器在編譯時刻一次檢驗程式的乙個字元的過程,...

通俗易懂理解有限狀態自動機 FSA 的表示和原理

有限狀態自動機 fsa 通常的作用就是用一種更加直觀的方式來表示正則化表示式。fsa識別字串的原理 用乙個例子來解釋fsa 以下簡稱自動機 的有向圖表達形式。我們把羊的語言 叫聲 抽象為 baaa 用正則化表示式可以表示為 baa 那麼如何用fsa來表示羊的語言呢,下面看一張圖。上圖就是用fsa表示...

自動機理論 語言與計算機導論讀書筆記(一)

兩類問題 1.計算機能有效解決的 2.計算機原則上能解決 但實際上要花費太長時間,以致於除了非常小的問題例項以外,計算機是毫無用處的。第二類問題定義為 難解的 或 np 難的 貫穿自動機理論的概念 字母表 串 語言。1.1.1有窮自動機簡介 重要應用型別 1.數位電路的設計和效能檢查軟體。2.典型編...