オートマトン・形式言語の問題
アルファベット 上の言語 を
と定める。マイヒル・ネローデの定理を用いて、 を受理する最小の完全 DFA(すべての状態とすべての文字について遷移が定義されている決定性有限オートマトン)の状態数を求めよ。
この問題で使うもの
- マイヒル・ネローデの定理と最小状態数(説明と入口の問題)
この問題を解けるようになるまで(22 技能)
読み込み中…
右端(太枠)がこの問題で使う技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
ヒント
行き詰まったら、上から順に 1 つずつ開いてください。
ヒント 1
マイヒル・ネローデの定理を使います。最小 DFA の状態数は、接尾辞 で区別できない文字列の同値類の個数です。
ヒント 2
の先頭部分 を候補にし、各 2 つについて一方だけを に入れる接尾辞 を探しましょう。
ヒント 3
と は で、 と は で区別できます。 は でほかの 3 つと区別できます。残りの組を区別し、同値類がこれ以上ないことを DFA を作って確かめましょう。
答えと解説
答えを見る
どこでつまずきましたか?(選ぶと、戻る場所を案内します)
解説を読む
方針. マイヒル・ネローデの定理によれば、 を受理する最小の完全 DFA の状態数は、次の同値関係 の同値類の個数に等しい。
そこで、互いに区別できる文字列を見つけて同値類の個数の下限を出し、その個数の状態をもつ DFA を作って上限を示す。
手順 1:区別できる 4 つの文字列. 候補として をとる。どの 2 つについても、一方だけを に入れる接尾辞 を次のように選べる。
- と : とすると 、。
- と : とすると 、。
- と : とすると 、。
- のそれぞれと : とすると で、。
したがってこの 4 つは互いに異なる同値類に属し、同値類は少なくとも 個ある。
手順 2:4 状態の DFA で受理できる. 「読んだ文字列の末尾と の先頭が最長で何文字一致しているか」を記憶する状態 (一致なし)、()、()、()をとる。初期状態を 、受理状態を とし、遷移を次のように定める。
| 状態 | ||
|---|---|---|
どの状態からでも を読めば末尾は になるので、 に移る。 を読んだときは、 の後なら になり、 の後なら になる。それ以外(直前が一致なし、または )の後では、 や で終わることになり の先頭と一致しないので に移る。
この DFA は完全であり、ちょうど で終わる文字列を受理する。同じ状態に到達する文字列どうしは同値なので、同値類は高々 個である。
結論. 同値類の個数はちょうど である。よって最小の完全 DFA の状態数は である。
別解
Myhill–Nerode の定理より、最小の完全 DFA の状態数は、 に関する分配同値関係 の同値類の個数に等しい。
代表元として を考える。これらは の「 のどこまで一致しているか」を表す(最長の接頭辞に相当する接尾辞の長さ 0,1,2,3)。
区別可能性
- と : で , なので区別できる。
- は他の 3 つと で区別される。
- と : で , なので区別できる。
- と : で , なので区別できる。
- と : で , なので、 で だが なので区別できる。
よって少なくとも 4 つの類がある。
4 つで尽きること
任意の語 について、 かどうかは の末尾のうち の接頭辞と一致する最長の接尾辞のみで決まる。その長さは 0,1,2,3 のいずれかであり、それぞれ と同値である。
DFA(状態 はそれぞれ の類)
| 状態 | a | b |
|---|---|---|
初期状態は 、受理状態は 。
検算: は で受理される。 は から で となり受理されない。これは正しい。
以上より、最小の完全 DFA の状態数は 4。