オートマトン・形式言語の問題
アルファベット 上の決定性有限オートマトン を考える。状態の集合は 、初期状態は 、受理状態は のみであり、遷移関数 は次の表で与えられる(表の各欄は、左の状態で上の文字を読んだときの遷移先)。
| 状態 | |||
|---|---|---|---|
を正の整数とする。 が受理する長さ の文字列( の文字を 個並べたもの)の個数を の式で求めよ。
この問題で使うもの
- 状態ごとの文字列数の漸化式(説明と入口の問題)
この問題を解けるようになるまで(5 技能)
読み込み中…
右端(太枠)がこの問題で使う技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
ヒント
行き詰まったら、上から順に 1 つずつ開いてください。
ヒント 1
読み終えたときの状態が である長さ の文字列の個数をそれぞれ とおき、最後の 1 文字で場合分けして漸化式を立てる。
ヒント 2
表を列ごとに見ると、文字 はどの状態からも へ移す。したがって がすぐ分かる。 へ入る遷移を数えると 。
ヒント 3
と から を消すと、、 という 1 つの漸化式になる。
答えと解説
答えを見る
どこでつまずきましたか?(選ぶと、戻る場所を案内します)
解説を読む
長さ の文字列 のうち、 から読み始めて読み終えたときの状態が になるものの個数を、それぞれ とする。 であり、どの文字列も 3 つの状態のどれか 1 つで終わるので
が成り立つ。求めるものは である。
漸化式. 長さ の文字列を「長さ の部分 + 最後の 1 文字」に分け、最後の 1 文字でどの状態に移るかを表から読むと:
- へ入る遷移は、どの状態からも文字 による 1 通りずつ。よって 。
- へ入る遷移は、 から文字 の 2 通り、 から文字 の 1 通り。よって 。
の計算. なので、 のとき
これを に代入して
また (文字列 と )。
特殊解として を代入すると より 。同次式 の一般解は なので、 とおける。 から 。よって
確認. : ()。: 。実際、長さ 2 で に終わるのは、1 文字目で に入り 2 文字目が のもの()だけで、1 文字目が のときは から 1 文字で に入れない。: で、()と一致する。
したがって求める個数は である。
別解
長さ の文字列で から出発して状態 に至るものの個数をそれぞれ とする()。表を状態ごとに「入る遷移」で整理すると
- へ入る: (1 通り)、(2 通り)
- へ入る: (2 通り)、(1 通り)
- へ入る: 各状態から文字 (3 通り)
よって
()。したがって で 。これを に入れると、 で
特殊解を とおくと より 。一般解は 。 より 、。
受理状態は のみなので、答えは 。
検算: 直接計算で は , , , 。各行の和は 。式は , , , で一致する。