大阪大学 情報科学研究科 情報工学 2020年度 計算理論
Author
祭音Myyura (co-authored with GPT 5.6 SOL)
Description
(1) anbn の認識
L={anbn∣n≥1} とする。
- (1-1) PDAの開始状態 q0 は (a,Z)/0Z で自己遷移し、q1 から最終状態 q2 へは (ε,Z)/ε で移る。q0 の追加自己遷移(A)、q0→q1 の遷移(B)、q1 の自己遷移(C)を示せ。スタック記号は Z,0 で、初期スタックは Z。遷移 (r,s)/t は入力 r を読み、先頭記号 s を列 t に置換する。t の左端が新しいスタック先頭となり、t=ε なら取り出すだけ、r=ε なら入力を消費しない。
- (1-2-1) L2={anbn∣n=2} と L3={anbn∣n=3} のDFAを、全入力の遷移を含めて示せ。
- (1-2-2) 次の背理法の空欄(D)を埋めよ。L を認識するDFAが存在すると仮定し、その状態数を k とする。入力 akbk のうち a を i 個(0≤i≤k)読み終えた状態を pi とすると、[(D)]。よって仮定と矛盾し、そのようなDFAは存在しない。
- (1-3) L′={anbm∣n,m≥1} のDFAを全遷移付きで示せ。
(2) CYK法
文法 G=(V,T,P,S) は非終端記号集合 V、終端記号集合 T、生成規則 P、開始記号 S からなる。Chomsky標準形では規則は X→YZ または X→a(X,Y,Z∈V, a∈T)に限る。入力 w=a1⋯an に対し、M[i,j](1≤i≤j≤n)を部分語 ai⋯aj を導出できる非終端記号の集合とする。次のアルゴリズムを用いる。
すべての M[i,j] (1 ≤ i ≤ j ≤ n) ← 空集合
for i = 1 to n do
規則 X → a_i が P にある全 X を M[i,i] に追加
end for
for ℓ = 2 to n do
for i = 1 to n-ℓ+1 do
j ← i+ℓ-1
for k = i to j-1 do
Y ∈ M[i,k], Z ∈ M[k+1,j], X → YZ ∈ P
を満たす全 X を M[i,j] に追加
end for
end for
end for
S ∈ M[1,n] なら Yes、そうでなければ No を出力
(2-1) 規則
S→AB,A→CA∣AA∣a,B→DB∣b,C→a,D→b
を持ち、V={A,B,C,D,S}、T={a,b}、開始記号 S の文法を考える。入力 aaab の全ての M[i,j] を表で示せ。
参考として、同じ文法で入力 bab を処理すると、次の表となり S∈/M[1,3] のため No を出力する。
| M[i,j] | j=1 | j=2 | j=3 |
|---|
| i=1 | {B,D} | ∅ | ∅ |
| i=2 | — | {A,C} | {S} |
| i=3 | — | — | {B,D} |
(2-2) 文法 S→AB∣SA∣BS∣ε, A→a, B→b に上記アルゴリズムをそのまま適用すると誤判定する長さ2以上の語を示し、理由を説明せよ。
Kai
(1)
(1-1)
(A):(a,0)/00,(B):(b,0)/ε,(C):(b,0)/ε.
(1-2-1) Lr(r=2,3)について状態を q0,…,q2r,d とする。開始は q0、最終は q2r だけ。次の規則で全遷移が定まる。
状態qi (0≤i<r)qi (r≤i<2r)q2rdaqi+1dddbdqi+1dd
図の主経路以外の遷移は表の通り死状態 d へ移る。
(1-2-2) a を0個から k 個まで読んだ時点の k+1 状態のうち、ある 0≤i<j≤k で状態が一致する。その区間の aj−i をもう1回読むと、同じ状態へ戻るので ak+j−ibk も受理される。しかしこれは L に属さず矛盾する。
(1-3)
(2)
(2-1)
| M[i,j] | j=1 | j=2 | j=3 | j=4 |
|---|
| i=1 | {A,C} | {A} | {A} | {S} |
| i=2 | — | {A,C} | {A} | {S} |
| i=3 | — | — | {A,C} | {S} |
| i=4 | — | — | — | {B,D} |
S∈M[1,4] なので Yes。
(2-2) w=aa を選ぶ。文法では
S⇒SA⇒SAA⇒AA⇒aa
と導出できる。一方、アルゴリズムは M[1,1]=M[2,2]={A} とし、右辺が AA の規則がないので M[1,2]=∅ としてNoを返す。空語を生成する S による長さ0の部分語を処理しないことが原因である。