1.1 オートマトンと状態遷移図

第2章 基礎となる考え方
2.1
2.2
2.3
2.4
2.5
オートマトンと状態遷移図
形式言語と自然言語
形式言語のモデル化
言語の理論
プログラムの構成要素
2.1 オートマトンと状態遷移図
(1)非決定性有限オートマトン
(NFA: non-deterministic finite automaton)
A(Q, X, δ, q0, F)
【定義】オートマトンA ⇒
Q
: 内部状態の集合
{q1, q2, q3, ・ ・ ・, qn}
X
: 入力記号の集合
{x1, x2, x3, ・ ・ ・, xn}
δ(遷移関数):S×(X∪{ε})からSのべき集合への関数
q0
: 初期状態の要素(Qの特定の要素)
F
: 最終状態の集合(Qの部分集合)
非決定的で取り扱いが不便なので、実際は決定的有
限オートマトン(DFA: deterministic finite automaton)が
用いられる。
(2)決定的有限オートマトン
【定義】オートマトンA ⇒
Q
X
Y
δ関数
q(t)
λ関数
A(Q, X, Y, δ, λ)
: 内部状態の集合 {q1, q2, q3, ・ ・ ・, qn}
: 入力記号の集合 {x1, x2, x3, ・ ・ ・, xn}
: 出力記号の集合 {y1, y2, y3, ・ ・ ・, yn}
: q(t+1)=δ[q(t), x(t)]
: 時刻 t における内部状態
: y(t+1)=λ[q(t),x(t)]
[注]確定オートマトンとも呼ばれる
確定オートマトン
時刻 t における状態 q(t) と入力x(t) に対して
必ず時刻(t+1)の状態q(t+1) と出力y(t+1)が
存在する。
表現方法
①状態遷移図
②状態遷移表
③遷移行列
(3)状態遷移図
【例】
x2/y1
q2
x2/y2
x1/y2
q1
x1/y1
x2/y1
x1/y2
q3
(4)状態遷移表
【例】
q1
q2
q3
x1
(q1, y2)
(q3, y1)
(q2, y2)
x2
(q2, y1)
(q2, y2)
(q1, y1)
(5)状態遷移行列
【例】
q1
q2
q3
q1
x1/y2
0
x2/y1
q2
x2/y1
x2/y2
x1/y2
q3
0
x1/y1
0
【例】
(6)状態行列による表現(1)
P0 ( xk )  [ Pi , j ( xk )]
(i, j  1, 2, , n, k  1, 2, , m)
Pi,j は条件確率⇒有限オートマトンの場合、0または1
q1
q2
q3
q1 q2
x1/y2 x2/y1
0
x2/y2
x2/y1 x1/y2
q3
0
x1/y1
0
【例】
状態行列による表現(2)
1 0 0
 0 1 0




P0 ( x1 )   0 0 1 , P0 ( x2 )   0 1 0 




0 1 0
1 0 0




入力があると確定的に
他の状態に遷移する
ことを示す。
q1
q2
q3
q1 q2
x1/y2 x2/y1
0
x2/y2
x2/y1 x1/y2
q3
0
x1/y1
0
(7)確率オートマトン
状態遷移は遷移確率で決まる(確定的でな
い)
q(t+1)
y(t)
q(t)
q1
q2
・・
・
x1
x2
P(x1) P(x2)
…
xn
…
P(xn) Y(x1) Y(x2)
x1
x2
…
xn
…
Y(xn)
qn
n
P( x)  [ p ]
x
i, j

0  p  1,
x
i, j
p
j 1
x
i, j
1
状態遷移図と確率行列の例
マルコフ連鎖:
ある時刻の状態が次の時刻の状態を確率的に規定する
0.2
0.6
q1
q1
0.8
0.4
x1
x2
0.7
0.3
q2
q2
0.3
0.7
 0.2 0.8 

P ( x1 )  
 0.7 0.3 


 0.6 0.4 

P ( x2 )  
 0 .3 0 .7 


ある行の列方向に
加算すると1になる
ことに注意