神戸大学 システム情報学研究科 2018年8月実施 専門科目 計算機科学 [1]
Author
祭音Myyura (co-authored with GPT 5.6 SOL)
Description
a,b を記号とする。a,b の記号列 w に対し,逆順の記号列を wR,w を n 個並べた記号列を wn と表す。
つぎの DFA を A とし,A の受理言語を K とする。
- 入力記号:a,b
- 状態:p,q,r
- 開始状態:p
- 受理状態:r
| 状態 | a | b |
|---|
| p | p | q |
| q | r | q |
| r | q | p |
また,
L={wwR∣w∈K}
とする。CFG を答える問いでは,変数記号,開始記号,生成規則をそれぞれ示せ。
- A の遷移図を描け。
- K を表す正規表現を書け。
- K を生成する CFG を書け。
- L を生成する CFG を書け。
- L を受理言語とする PDA の遷移図を描け。最初にスタックの底にある記号は Z0 とする。
- 正規言語の反復補題を用いて,L は正規言語ではないことを示せ。
题目描述
字母表为 {a,b}。对字符串 w,以 wR 表示逆序串,以 wn 表示重复 n 次所得字符串。DFA A 的初态为 p、唯一终态为 r,转移表如下。
| 状态 | a | b |
|---|
| p | p | q |
| q | r | q |
| r | q | p |
令 K=L(A),并定义
L={wwR∣w∈K}.
- 画出 A 的状态转移图。
- 写出表示 K 的正则表达式。
- 给出生成 K 的上下文无关文法。
- 给出生成 L 的上下文无关文法。
- 画出接受 L 的下推自动机;栈底符号为 Z。
- 用正则语言的泵引理证明 L 不是正则语言。
Kai
(1)
(2)
p から初めて r に到達する語は a∗bb∗a である。また,r から途中で r を通らずに r に戻る語は
ab∗aまたはba∗bb∗a
である。よって,例えばつぎの正規表現が K を表す。
a∗bb∗a(ab∗a+ba∗bb∗a)∗.
(3)
変数記号を {P,Q,R},開始記号を P とし,生成規則を
PQR→aP∣bQ,→aR∣bQ,→ε∣aQ∣bP
とすればよい。各変数は DFA の同名状態に対応する。
(4)
変数記号を {P,Q,R},開始記号を P とし,
PQR→aPa∣bQb,→aRa∣bQb,→ε∣aQa∣bPb
とする。外側から読んだ前半で DFA の遷移を模擬し,状態 r に達したときだけ ε で中央を閉じるので,生成語はちょうど wwR(w∈K)となる。
(5)
Γ={Z0,a,b} をスタック記号の集合とする。状態 P,Q,R では前半を読みながら DFA を模擬し,読んだ記号をスタックに積む。R から U への ε 遷移で中央を非決定的に選び,U では後半とスタックを照合する。
ここで積む遷移の γ は任意の γ∈Γ を表す。入力をすべて読み,スタックが Z0 に戻ったとき F で受理する。
(6)
L が正規言語であると仮定し,反復補題の定数を m とする。
w=amba∈K,s=wwR=amba2bam∈L
を選ぶ。任意の分解 s=xyz で ∣xy∣≤m,∣y∣>0 を満たすものについて,y=ak(1≤k≤m)である。i=0 として反復すると
xy0z=am−kba2bam.
この語は先頭と末尾の a の連続長が異なるため回文ではない。一方,L のすべての語 vvR は回文であるから xy0z∈/L。これは反復補題に矛盾する。したがって
L は正規言語ではない。