解答例

オ ート マト ン ・ 形式言語 演習問題解答
2015 年 12 月 1 日分
1. (a) x = a, y = b, z = a と x = ǫ, y = a, z = ba.
(b) x = a, y = b, z = ǫ と x = ǫ, y = a, z = b.
(c) x = ǫ, y = bb, z = aba と x = bb, y = a, z = ba.
2. (a) L1 は正規言語であ る . L1 を 表す正規表現は 0∗ 1∗ .
(b) L2 は正規言語ではな い. こ のこ と を 背理法を 用いて 示す.
L2 が正規言語であ る と 仮定する .
仮定と 反復補題よ り , 正整数 n が存在し て , |w| ≥ n である すべて の w ∈ L2 について , (1)∼ (3)
を 満た す分割 w = xyz が存在する .
(1) y 6= ǫ,
(2) |xy| ≤ n,
(3) すべて の k ≥ 0 に ついて xy k z ∈ L2 .
こ こ で, w = 0n 1n を L2 から 選択する . |w| = 2n ≥ n であ る ので, (1)∼ (3) を 満た す分割
w = xyz が存在する . (1) と (2) を 満た すこ と から , 0 < m ≤ n であ る よ う な m が存在し て
y = 0m であ る . さ ら に , 条件 (3) を 満た すこ と から , xy 2 z = 0n+m 1n ∈ L2 と な る . し かし ,
n + m > n であ る ので xy 2 z ∈
/ L2 であ る . よ っ て , 矛盾する .
(c) L3 は正規言語であ る . L3 を 表す正規表現は (00)∗ .
(d) L4 は正規言語でな い. こ のこ と を 背理法を 用いて 示す.
L4 が正規言語であ る と 仮定する .
仮定と 反復補題よ り , 正整数 n が存在し て , |w| ≥ n である すべて の w ∈ L4 について , (1)∼ (3)
を 満た すよ う な 分割 w = xyz が存在する .
(1) y 6= ǫ,
(2) |xy| ≤ n,
(3) すべて の k ≥ 0 に ついて xy k z ∈ L4 .
2
w = 0n を L4 から 選択する . |w| = n2 ≥ n であ る ので, (1)∼ (3) を 満た すよ う に 分割 w = xyz
が可能であ る . 条件 (3) よ り xy 2 z ∈ L4 であ る . し かし , 条件 (1) と (2) よ り ,
n2 = |w| = |xyz| < |xy 2 z|
≤ n2 + n
< (n + 1)2
すな わち , 以下が成り 立つ.
n2 < |xy 2 z| < (n + 1)2
長さ が平方数ではな いので, xy 2 z 6∈ L4 であ る . よ っ て , 矛盾する .
3. L(M2 ) の補集合を 認識する DFA M2′ を 構成し , L(M1 ) ∩ L(M2′ )(= L(M1 ) − L(M2 )) を 認識する DFA
Ma を M1 と M2′ から 構成する . Ma の状態遷移図は以下の通り であ る .