オートマトン・形式言語の問題
アルファベット 上の文字列 に含まれる の個数を 、 の個数を と書き、言語
を考える。ここで決定性有限オートマトン(DFA)とは、有限の状態集合 、遷移関数 (すべての状態と文字に対して遷移先がただ 1 つ定まる)、初期状態 、受理状態の集合 の組 とし、拡張遷移関数を 、 で定め、 が受理されるのは のときとする。DFA の状態数とは のことである。
を受理する DFA の状態数の最小値が であることを証明せよ。
この問題で使うもの
- 言語の条件から DFA を作る(余り・接尾辞・積構成)(説明と入口の問題)
- マイヒル・ネローデの定理と最小状態数(説明と入口の問題)
この問題を解けるようになるまで(22 技能)
読み込み中…
右端(太枠)がこの問題で使う技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
ヒント
行き詰まったら、上から順に 1 つずつ開いてください。
ヒント 1
「6 状態の DFA が作れること(上界)」と「どの DFA も 6 状態以上必要であること(下界)」を分けて示す。下界は、互いに区別できる文字列を 6 個見つけて鳩の巣原理を使う。
ヒント 2
状態として を記憶する DFA を考える。下界には 6 個の文字列 (, )が使える。
ヒント 3
に をつなぐと に入る。別の に同じ をつなぐと、 の個数が奇数になるか、 の個数が 3 の倍数でなくなるかのどちらかになる。
採点の観点と模範解答
自分で証明を書いてから、採点の観点で見比べてください。
採点の観点を見る
上界と下界に分けて示す方針を立て、状態 をもつ 6 状態の DFA を遷移・初期状態・受理状態まで具体的に与えている(2 点)
構成した DFA について を帰納法で示し、受理言語が であることを結論づけている(2 点)
6 個の文字列( など)を選び、どの 2 つについても一方だけを に入れる接尾辞 を具体的に与え、 と の場合分けで確認している(3 点)
状態数 5 以下の DFA を仮定し、鳩の巣原理で同じ状態に到達する 2 つの文字列をとり、 から と の受理・非受理が一致することを導いて矛盾を示している(3 点)
どこでつまずきましたか?(選ぶと、戻る場所を案内します)
模範解答を読む
「状態数 の DFA で を受理するものが存在すること」と「 を受理する DFA の状態数は必ず 以上であること」の 2 つを示す。以下、0 以上の整数 と正の整数 に対し、 を で割った余りを と書く。
(1) 状態数 6 の DFA の構成 状態集合を (6 個)とし、
初期状態 、受理状態の集合 とする DFA を考える。
すべての について であることを、 についての帰納法で示す。 なら両辺とも である。 で について が成り立つとすると、 のとき であり、, なのでこれは に等しい。 のときも、 は第 2 成分だけを 進め、, なので同じ理由で成り立つ。
より、 が受理される 。よって は を受理し、状態数は である。
(2) 状態数は 6 以上であること , に対し とおく(6 個の文字列)。
*補題* ならば、ある が存在して、 かつ となる。
*証明* とおく。 の の個数は で偶数、 の個数は で、 なら 、 なら なので 3 の倍数である。よって 。一方 の の個数は 、 の個数は である。
- のとき: なので は奇数であり、。
- のとき: より で、 だから 、よって であり、。
どちらの場合も主張が成り立つ。(補題の証明終わり)
背理法で示す。 を受理する DFA で のものがあると仮定する。6 個の文字列 に状態 を対応させると、鳩の巣原理より、ある について となる。補題の をとる。一般に が成り立つ( の長さについての帰納法: なら定義そのもの、 なら両辺とも の場合に を施したものになる)ので、
である。よって と は両方受理されるか両方受理されないかのどちらかであるが、これは , に矛盾する。したがって を受理する DFA の状態数は 以上である。
(1), (2) より、 を受理する DFA の状態数の最小値は である。