基本事項

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

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

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

  • べき乗集合 … Aの部分集合全体からなる集合
    A={a,b,c}A = \{a,b,c\}
    2A={,{a},{b},{c},{a,b},{b,c},{a,c},{a,b,c}}2^A = \{\varnothing,\{a\},\{b\},\{c\},\{a,b\},\{b,c\},\{a,c\},\{a,b,c\}\}
    A=n2A=2n|A|=n \Rightarrow |2^A|=2^n

  • クリーネ閉包 … Σ\Sigmaに含まれる0個以上の文字列を連結して作ることができる文字列の集合
    Σ={xx}\Sigma = \{xx\}
    Σ={,xx,xxxx,...}\Sigma^* = \{\varnothing,xx,xxxx,...\}

同値関係

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}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\}

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 動作のある非決定性の一部