Home

オートマトンと言語理論 講義ノート

基本事項

  • アルファベット … 記号の有限集合

  • 語(記号列) … アルファベットΣ\Sigma上の記号からなる記号列

    • 空記号列 … 長さが 0 の記号列
  • 言語 … アルファベットΣ\Sigma上の語の集合

  • べき乗集合 … A の部分集合全体からなる集合

    A={a,b,c}2A={,{a},{b},{c},{a,b},{b,c},{a,c},{a,b,c}}A=n2A=2n\begin{aligned} A &= \{a,b,c\} \\ 2^A &= \{\varnothing,\{a\},\{b\},\{c\},\{a,b\},\{b,c\},\{a,c\},\{a,b,c\}\} \\ |A| &= n \Rightarrow |2^A| = 2^n \end{aligned}
  • クリーネ閉包 … Σ\Sigmaに含まれる 0 個以上の文字列を連結して作ることができる文字列の集合

    Σ={xx}Σ={,xx,xxxx,...}\begin{aligned} \Sigma &= \{xx\} \\ \Sigma^* &= \{\varnothing,xx,xxxx,...\} \end{aligned}

同値関係

xxyyの関係性をxRyxRyと書く
集合 X 上の関係 R が同値関係を満たすためには 3 つの条件が必要(a,b,cXa,b,c \in X)

  • 反射的 aRaaRa
  • 対称的 aRbbRaaRb \Rightarrow bRa
  • 推移的 aRbbRcaRcaRb \land bRc \Rightarrow aRc

DFA の基礎

A=Q,Σ,δ,q0,FA= \langle Q,\Sigma,\delta,q_0,F \rangle

  • QQ … 状態の有限集合
  • Σ\Sigma … 入力記号の有限集合
  • δ\delta … 動作関数 Q×Σ=QQ \times \Sigma = Q
  • q0q_0 … 初期状態(Q\in Q)
  • FF … 受理状態(Q\subseteq Q)
具体例ちょうど2個の0を含む語からなる言語
mermaid-image
A=Q,Σ,δ,q0,Fwhere Q={q0,q1,q2,q3}Σ={0,1}δ(q0,0)=q1,δ(q0,1)=q0,δ(q1,0)=q2,δ(q1,1)=q1,δ(q2,0)=q3,δ(q2,1)=q2,δ(q3,0)=q3,δ(q3,1)=q3,F={q2}\begin{matrix*}[l] A = \langle Q,\Sigma,\delta,q_0,F \rangle \\ \text{where } Q = \{q_0,q_1,q_2,q_3\} \\ \Sigma = \{0,1\} \\ \delta(q_0, 0) = q_1, \delta(q_0, 1) = q_0, \\ \delta(q_1, 0) = q_2, \delta(q_1, 1) = q_1, \\ \delta(q_2, 0) = q_3, \delta(q_2, 1) = q_2, \\ \delta(q_3, 0) = q_3, \delta(q_3, 1) = q_3, \\ F = \{q2\} \end{matrix*}

NFA の基礎

A=Q,Σ,δ,q0,FA= \langle Q,\Sigma,\delta,q_0,F \rangle

  • QQ … 状態の有限集合
  • Σ\Sigma … 入力記号の有限集合
  • δ\delta … 動作関数 Q×Σ=2QQ \times \Sigma = 2^Q
  • q0q_0 … 初期状態(Q\in Q)
  • FF … 受理状態(Q\subseteq Q)

DFA との違い

NFA は 0 個を含め複数の状態に遷移できる

具体例2個の連続した0を含む語全体からなる言語
mermaid-image

空動作付き NFA

ϵ\epsilon -NFA は δ(q,ϵ)\delta(q,\epsilon) となる動作(=空動作, ϵ\epsilon 動作)がある非決定性オートマトン

動作関数は Q×(Σ{ϵ})2QQ \times (\Sigma \cup \{\epsilon\}) \rightarrow 2^Q

定義より非決定性は ϵ\epsilon 動作のある非決定性の一部

icon

kq5y