すなわち、f(a) は、原点からスタートして a の矢印の向きに従って2次元格子点上を遷移したときの軌跡を表す。 また、各 i=1,2,…,n に対し、∣x[i]∣+∣y[i]∣>∣x[i−1]∣+∣y[i−1]∣ のとき(a[i] によって原点から遠ざかる方向に遷移したとき) i を前進ステップ、そうでないとき(a[i] によって原点に近づく方向に遷移したとき) i を後進ステップと呼ぶ。
文字列 a が往復的であることを、任意の後進ステップ i に対し、
i0=max{j∣j≤i−1,p[j]=p[i−1],jは前進ステップ}
が存在し、p[i]=p[i0−1] が成り立つことと定義する。すなわち,往復的な文字列 a に おいては,後進ステップ i による p[i−1] から p[i] への遷移は,i に対応する前進ステッ プ i0 による p[i0−1] から p[i0] への遷移を逆にたどるものとなっている.往復的で f(a) の最後の要素が原点であるような文字列 a からなる言語
言語 L を以下のように定義する:
L=n≥0⋃{a∈Σn∣aは往復的,p=f(a),p[n]=(0,0)}.
について,次の各問いに答えよ.
以下の文字列 a1,a2,a3,a4 が L の要素であるか否かをそれぞれ判定せよ。
a1=↑↑↓→↓↑←↓
a2=→→←←←↑↓→
a3=↓←↑→
a4=←↑↑↓←→↓←↓↑
次の図は、アルファベットを {→,←} に限定した言語 L∩{→,←}∗ を最終状態によって受理するプッシュダウンオートマトン(PDA)の状態遷移図の一部である。空欄 ①, ②, ③ を埋めよ。(2か所の ③ には同じものが入る。)
遷移規則 a,b/s は,遷移元の状態で読んだ入力文字が a,スタックの先頭文字が b のとき,遷移先の状態に遷移し,スタックの先頭を文字 b から文字列 s に置き換える動作を表す.ただし,ϵ は空文字列を表す.初期状態では,スタックは,空であることを表す特殊文字 Z のみを保持しているとする.S0 は初期状態であり唯一の最終状態でもある. ヒント:状態 S0,S+,S− は,それぞれ,x[i]=0,x[i]>0,x[i]<0 であることを表す
次の図は、言語 L を最終状態で受理するPDAの状態遷移図の一部である。ただし、②と③は、(2)で求めたものと同じである。④と⑤を埋めよ。