オートマトン・形式言語の問題
アルファベット 上の決定性有限オートマトン を考える。状態の集合は 、初期状態は 、受理状態は と の 2 つであり、遷移関数 は次の表で与えられる。
| 状態 | 入力 | 入力 |
|---|---|---|
が受理する長さ の文字列( 上の文字列)の個数を求めよ。
この問題で使うもの
- 状態ごとの文字列数の漸化式(説明と入口の問題)
この問題を解けるようになるまで(5 技能)
読み込み中…
右端(太枠)がこの問題で使う技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
ヒント
行き詰まったら、上から順に 1 つずつ開いてください。
ヒント 1
「状態ごとの文字列数の漸化式」を使う。長さ の文字列を読んだ後に各状態にいる文字列の個数 を、 から順に更新していこう。
ヒント 2
遷移表から各状態に入る矢印を集めると , , となる。初期値は 。
ヒント 3
計算を進めると で 、 で 、 で になる。あと 1 段更新して、受理状態の分を足そう。
答えと解説
答えを見る
どこでつまずきましたか?(選ぶと、戻る場所を案内します)
解説を読む
長さ の文字列 のうち、初期状態 から読んで最後の状態 が になるものの個数を とおく。
手順 1:初期値
長さ の文字列は空文字列 個だけで、状態は のままなので
手順 2:漸化式を作る
長さ の文字列は、長さ の文字列の後ろに 文字を付け加えたものである。状態 に入る矢印( となる組 )を表から探すと
- に入るのは ,
- に入るのは ,
- に入るのは ,
よって和の法則により
手順 3:順に計算する
を並べると
- :
- :
- :
- :
- :
- :
- :
(検算:各段の和は で、長さ の文字列全体の個数 に一致する。)
手順 4:受理状態について足す
受理状態は なので、求める個数は
別解
長さ の文字列を読んだ後に状態 にいる文字列の個数を とする。
遷移表から、次の漸化式が得られる。
- に入る遷移は、 から入力 と から入力 なので、
- に入る遷移は、 から入力 と から入力 なので、
- に入る遷移は、 から入力 と から入力 なので、
初期値は である。順に計算する。
- :
- :
- :
- :
- :
- :
検算として、各 で合計が になっている。 では である。
受理状態は と なので、受理される長さ の文字列の個数は 。