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

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

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

アルファベット 上の決定性有限オートマトン を考える。状態の集合は 、初期状態は 、受理状態は と の 2 つであり、遷移関数 は次の表で与えられる。

状態入力 入力

上の長さ の文字列(全部で 個)のうち、 に受理されるものの個数を求めよ。

この問題で使うもの

この問題を解けるようになるまで(5 技能)
算数中学高校大学大学院

読み込み中…

右端(太枠)がこの問題で使う技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。

一覧で見る(前提が先)
  1. 決定性有限オートマトンの動作と受理判定
  2. 樹形図で数え上げる
  3. 積の法則と和の法則
  4. 和の法則・積の法則と樹形図
  5. 状態ごとの文字列数の漸化式

ヒント

行き詰まったら、上から順に 1 つずつ開いてください。

ヒント 1

技能「状態ごとの文字列数の漸化式」を使う。長さ の文字列を読み終えたとき各状態にいる個数 を、 から 1 文字ずつ更新していこう。

ヒント 2

遷移表から各状態に入る矢印を集めると、, , となる。初期値は 。

ヒント 3

順に計算すると で 、 で となる。あと 2 回更新して、受理状態 の個数を足せばよい。

答えと解説

答えを見る
結果を記録する(このブラウザにだけ保存されます):
解説を読む

長さ の文字列のうち、初期状態 から読み終えたときに状態 にいるものの個数を とおく。

手順 1: 初期値。 長さ の文字列は空文字列 1 個だけで、読み終えた状態は なので

手順 2: 漸化式を立てる。 長さ の文字列は、長さ の文字列の後ろに 1 文字 を付けたものである。 に従い、遷移表で「行き先が になる矢印」をすべて集める。
- に入る矢印: ,
- に入る矢印:
- に入る矢印: , ,

よって


手順 3: 順に計算する。 を並べると

合計
01001
11102
22114
33238
453816
5851932
61384364
7211394128
83421201256

例えば から では , , である。各行の合計が になっていることで計算を確かめられる。

手順 4: 受理状態の個数を足す。 受理状態は なので、求める個数は

(参考: この は「 が 2 つ続く部分を含まない文字列」を受理する。)

答え:

別解

状態 は入力に関わらず に留まり、受理状態ではない(行き止まりの状態)。したがって に受理される文字列は、 に一度も到達しない文字列である。

に入る遷移は だけである。 にいるのは「直前の文字が 1 で、それまでに に入っていない」ときに限られる( は初期状態か、直前が 0 の状態)。よって に到達することは、文字列に連続した部分列 が現れることと同値である。

したがって、受理される文字列は「 を含まない 0,1 列」である。

長さ の を含まない文字列の個数を とする。末尾が 0 なら前の 文字は自由に を含まない列で 通り。末尾が 1 なら直前は 0 でなければならず、その前の 文字が 通り。よって であり、 である。

。

検算:状態 にいる文字列の数を とする。漸化式は 、 である。初期値は 。これを繰り返すと となり、 で となって一致する。

この問題の確認

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

間違いを報告する

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

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

関連する問題