単元一覧 › 大学数学 オートマトン・形式言語

オートマトン・形式言語の問題

難易度 1教科書の例題レベル大学数学 オートマトン・形式言語

アルファベット 上の言語 を

と定める。マイヒル・ネローデの定理を用いて、 を受理する最小の完全 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(状態 はそれぞれ の類)

状態ab

初期状態は 、受理状態は 。

検算: は で受理される。 は から で となり受理されない。これは正しい。

以上より、最小の完全 DFA の状態数は 4。

この問題の確認

AI が作成した問題です。公開前に次の確認を行いました。確認の方法について

間違いを報告する

この問題の誤り・分かりにくい点・難易度や学年のずれを知らせる
どこについての報告ですか

報告の内容と問題の番号を保存します。名前やメールアドレスは保存しません。

関連する問題