オートマトン・形式言語の問題
アルファベット 上の言語 を次のように定める。
たとえば は に属する。一方、 は に属さない。
を受理する最小の完全 DFA(すべての状態と文字について遷移が定義された決定性有限オートマトン)の状態数を求めよ。
この問題で使うもの
- マイヒル・ネローデの定理と最小状態数(説明と入口の問題)
この問題を解けるようになるまで(22 技能)
読み込み中…
右端(太枠)がこの問題で使う技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
ヒント
行き詰まったら、上から順に 1 つずつ開いてください。
ヒント 1
マイヒル・ネローデの定理を使います。接尾辞 を付けたときに と の結果が食い違うかどうかで文字列を分類し、同値類の個数を数えましょう。
ヒント 2
となるかどうかに効くのは、 の最後の 2 文字だけです。長さが 2 未満の は、前に を補って考えるとよいでしょう。代表元として が考えられます。
ヒント 3
を付けると、 の元と の元を区別できます。残る 2 組( と 、 と )は、1 文字の接尾辞で区別できるか調べましょう。
答えと解説
答えを見る
どこでつまずきましたか?(選ぶと、戻る場所を案内します)
解説を読む
マイヒル・ネローデの定理より、最小の完全 DFA の状態数は、次の同値関係 の同値類の個数に等しい。
手順 1:同値類が高々 4 個であることを示す。
文字列 の前に を付けた の最後の 2 文字を の「末尾 2 文字」と呼ぶ( なら 、 なら 、 なら )。接尾辞 を付けたとき となるかは、次のように決まる。
- のとき: の後ろから 2 番目の文字は の後ろから 2 番目の文字なので、 によらない。
- のとき: の後ろから 2 番目の文字は の最後の文字。 なら で に属さないが、これは末尾 2 文字 の最後の文字 の場合と同じ結果になる。
- のとき: の後ろから 2 番目の文字が かどうか。 なら で、これも末尾 2 文字の 1 文字目が の場合と同じ結果になる。
よって、末尾 2 文字が等しい はすべての で同じ結果になり、 である。末尾 2 文字は の 4 通りなので、同値類は高々 4 個である。
手順 2:代表元 が互いに区別できることを示す。
- とする。、 である。よって の元と の元は区別できる(4 組)。
- と : とすると、(後ろから 2 番目が )、(後ろから 2 番目が )である。
- と : とすると、、 である。
これで 組すべてが区別できた。よって同値類はちょうど 4 個ある。
結論: マイヒル・ネローデの定理より、最小の完全 DFA の状態数は である。
別解
は「後ろから 2 番目の文字が 」から自動的に従うので、 は「後ろから 2 番目の文字が 」の言語と同じである。
【DFA の構成】
状態を「直近 2 文字」とし、 が 2 文字未満のときは先頭を で補う。状態は () の 4 個。
- 初期状態: (空語 に対応)
- 受理状態: (後ろから 2 番目が )
- 遷移:
| 状態 | a | b |
|---|---|---|
この DFA が を受理することは、状態が常に直近 2 文字(不足分は で補う)を表すことから従う。補った は先頭の にはならないので、長さ 1 以下の語は正しく棄却される。
【最小性】4 状態がすべて区別可能であることを示す。
- 受理状態 と非受理状態 は、空語 で区別できる。
- と は、続けて を読むと (受理)と (非受理)になるので区別できる。
- と は、続けて を読むと (受理)と (非受理)になるので区別できる。
よって 4 状態はすべて互いに区別でき、これ以上減らせない。到達可能性も、 により全状態で確かめられる。
【検算】: (受理)。: (非受理)。: (受理)。いずれも問題文の例と一致する。
答え: 4