オートマトン・形式言語の問題
アルファベット 上の決定性有限オートマトン を考える。状態の集合は 、初期状態は 、受理状態は のみであり、遷移関数 は次の表で与えられる。
| 状態 \\ 入力 | ||
|---|---|---|
上の長さ の文字列のうち、 が受理するものの個数を求めよ。
この問題で使うもの
- 状態ごとの文字列数の漸化式(説明と入口の問題)
この問題を解けるようになるまで(5 技能)
読み込み中…
右端(太枠)がこの問題で使う技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
ヒント
行き詰まったら、上から順に 1 つずつ開いてください。
ヒント 1
長さ の文字列を読んだ後に各状態にいる文字列の個数を とおき、 を ずつ増やして数えよう。
ヒント 2
各状態に入ってくる遷移を表から集めると、、、 となる。
ヒント 3
は で となる。これを まで続けよう。
答えと解説
答えを見る
どこでつまずきましたか?(選ぶと、戻る場所を案内します)
解説を読む
長さ の文字列を読み終えたときに状態が にあるような文字列の個数を、それぞれ とおく。初期状態は なので
である。
遷移表から、1 文字読んだ後に各状態へ入る遷移を集めると
- に入るのは と
- に入るのは と
- に入るのは と
である。 は決定性なので、各文字列はただ 1 つの状態に行き着く。よって
が成り立つ。これを順に計算すると次のようになる。
(検算: 各 で になっている。たとえば で 。)
受理状態は だけなので、求める個数は である。
(補足: と から となり、これを解くと が得られる。 を代入すると で一致する。)
答え:
別解
長さ の文字列で、 から出発して状態 に到達するものの個数をそれぞれ とする。表より へ入る遷移は と 、 へ入る遷移は と 、 へ入る遷移は と である。よって
初期値 。
| 0 | 1 | 0 | 0 |
| 1 | 0 | 1 | 1 |
| 2 | 2 | 1 | 1 |
| 3 | 2 | 3 | 3 |
| 4 | 6 | 5 | 5 |
| 5 | 10 | 11 | 11 |
| 6 | 22 | 21 | 21 |
| 7 | 42 | 43 | 43 |
| 8 | 86 | 85 | 85 |
| 9 | 170 | 171 | 171 |
| 10 | 342 | 341 | 341 |
受理状態は のみなので答えは 。
検算: 各 で ( で )。また より , から となり、 で で一致する。