---
title: 自動機 ch.2
---
# Automata Theory and Formal Languages
NTNU 自動機理論與正規語言
##### [Back to Note Overview](https://hackmd.io/@NTNUCSIE112/NTNUNote)
##### [Back to Automata Theory and Formal Languages](https://hackmd.io/@NTNUCSIE112/AT110-1)
{%hackmd @sophie8909/pink_theme %}
###### tags: `AutomataTheoryandFormalLanguages` `110-1` `選修` `CSIE` `NTNU`
## Ch.02 Finite Automata
### 2.1 Deterministic Finite Accepters (DFA)
<!-- slide 4 -->
#### Definition of DFA
- DFA is defined by the quintuple $M =(Q, \Sigma, \delta, q_0, F)$
- $Q$: a finite set of **internal states**
- $\Sigma$: a finite set of symbols called the **input alphabet**
- $\delta$: $Q\times\Sigma\to Q$: a total function called the **transition function**
- $q_0 \in Q$: the **initial state**
- $F \subseteq Q$: a set of **final state**
#### DFA 的運作
1. 最開始處於初始狀態 $q_0$ ,讀取指標位於輸入字串最左邊的符號
2. 每次移動時,讀取指標都會向右移動一個位置,每次移動消耗一個符號
3. 轉換由轉換函數 $\delta$ 控制
4. 當到了字串尾時,如果自動機處於最終狀態之一,則接受該字串,反之拒絕
#### Transition Graph 轉變圖

#### 轉變圖($G_M$)vs dfa($M$)
+ A dfa $M=(Q, \Sigma, \delta, q_0, F)$
+ $G_M$ 有剛好 |Q| 個頂點,每個頂點都有不同的 $q_i\in Q$
+ 每個轉移規則 $\delta(q_i, a)=q_j$ 在圖上標記為 a 的邊$(qi, qj)$
+ 初始頂點:與 $q_0$ 有關聯的頂點
+ 最終頂點:$q_f\in F$
#### Definition of $L(M)$
<!-- slide 11 -->
- The language accepted by a dfs $M = (Q, \Sigma, \lambda, q_0, F)$ is the set of all strings on $\Sigma$ accepted by $M$.
- $L(M) = \{w\in \Sigma^*:\lambda^*(q_0, w)\in F\}$
- All $\lambda$'s must be total functions
- Unaccepted:
- $\overline{L(M)} = \{w\in \Sigma^*:\lambda^*(q_0, w)\not\in F\}$
#### 擴展轉移函數
+ $\delta^*:Q\times\Sigma^*\rightarrow Q$ 其中 $\Sigma^*$ 為一個字串
+ 定義
+ $\delta^*(q, \lambda)=q$
+ $\delta^*(q, wa)=\delta(\delta^*(q, w), a)\forall q\in Q, w\in \Sigma^*, a\in \Sigma$
+ 舉例: $\delta(q_0, a)=q_1, \delta(q_1, b )=q_2$ 則 $\delta^*(q_0, ab )=q_2$
#### Regular Language 正規語言
- A language L is called regular iff there exists some deterministic finite accepter M such that L = L(M)
- 找到 DFA 即可確認任何語言是否為正規語言
### 2.2 Nondeterministic Finite Accepters 非確定有限狀態自動機
<!-- Slide 21 -->
+ 非確定性代表自動機可以選擇移動
+ 我們允許在每種狀況下可以採取的一系列行動
#### NFA 的定義
+ NFA 被五元組 $M=(Q, \Sigma, \delta, q_0, F)$ 所定義
+ $Q, \Sigma, q_0, F$ 的定義都與 DFA 相同
+ $\delta:Q\times(\Sigma\cup\{\lambda\})\rightarrow2^Q$

#### 三個不同
+ nfa 中,$\delta$ 的範圍在冪集合中
+ e.g. $\delta(q_1, a)=\{q_0, q_2\}$
+ nfa 中,允許 $\lambda$ 作為 $\delta$ 的第二個參數,意謂著 nfa 可以在不消耗輸入符號的狀況進行轉移
+ nfa 中,集合 $\delta(q_i, a)$ 可能為空,意謂著 nfa 沒有為這個特殊情形定義轉移
#### 被 nfa 所接受的東西
+ 存在一些轉移的順序,可以使機器在字串結束時處於最終狀態的輸入,則會被 nfa 接受
+ 不確定性可以被視為涉及直覺的洞察力,使其在每個狀態都可以選擇最佳轉移
#### 擴展轉移函數
對於 nfa ,擴展轉移函數在 $\delta^*(q_i, w)$ 包含 $q_j$ 被定義
i.f.f.
在 $G_M$ 中存在一條從 $q_i$ 到 $q_j$ 的路徑,標籤為 w ,適用於 $\forall q_i, q_j\in Q, w\in \Sigma^*$
#### L(M) 的定義
+ 被 nfa $M=(Q, \Sigma, \delta, q_0, F)$ 所接受的語言為在 $\Sigma$ 上被 $M$ 所接受字串的集合
+ $L(M)=\{w\in\Sigma^*:\delta^*(q_0, w)\cap F\neq\emptyset\}$
+ 換句話說,該語言包含所有在轉移圖中可以從初始節點走到最終節點被標註為 w 的路徑的字串 w
### 2.3 Equivalence of Deterministic and Nondeterministic Finite Accepters
#### 有限接收器的等價定義
兩有限接收器 $M_1, M_2$ 在 $L(M_1)=L(M_2)$ (換句話說,如果他們都接收相同的語言)時,稱兩有限接收器等價
#### dfa 跟 nfa
+ 兩者的級別都一樣強大
+ 對於每個被某些 nfa 接受的語言都可以找到一個同樣可以接受該語言的 dfa
#### Theorem 2.2
設一語言 L 可以被 nfa $M_N=(Q_N, \Sigma, \delta_N, q_0, F_N)$ 所接受,則必存在一個 dfa $M_D=(Q_D, \Sigma, \delta_D, \{q_0\}, F_D)$ 使得 $L(M_N)=L(M_D)$
#### 把 nfa 轉成 dfa
#### 正規語言
+ 所有可以被 nfa 所接受的語言都是正規的
+ 可以從 Theorem2.2 中得出
### 統整筆記
#### DFA vs NFA
<!-- 可以開新charater了 我晚上再把它整理完 -->
<!-- ch3已開 -->