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

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

難易度 4大学院入試の標準レベル大学数学 オートマトン・形式言語

終端記号 、非終端記号 、開始記号 をもち、次の生成規則からなるチョムスキー標準形の文脈自由文法 を考える。

文字列 ( を 個並べた文字列 )の、 における最左導出の個数を求めよ。

この問題で使うもの

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

読み込み中…

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

一覧で見る(前提が先)
  1. 文脈自由文法の導出と導出木
  2. CYK 法
  3. 導出木の個数の数え上げ

ヒント

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

ヒント 1

最左導出と導出木は 1 対 1 に対応するので、 の導出木の個数を数えればよい。文字列が だけなので、部分文字列は長さだけで区別すれば十分。

ヒント 2

を から導く導出木の数を 、 から導く数を とおくと、、()、。

ヒント 3

CYK 法の表のように長さの短い順に計算すると、、 となる。続けて を計算する。

答えと解説

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

文脈自由文法では、ある文字列の最左導出と、その文字列の導出木(構文木)は 1 対 1 に対応する。そこで導出木の個数を数える。

はチョムスキー標準形なので、CYK 法と同じように、部分文字列ごとに「各非終端記号から何通りの導出木で導けるか」を表にする。文字列は だけからなるので、部分文字列は長さだけで決まる。長さ の文字列 を から導く導出木の個数を 、 から導く導出木の個数を とする。

漸化式. 長さ の文字列を、根の規則が 2 つの非終端記号に分ける位置で場合分けする。
- だけが の規則なので、 で

- の規則は , , 。よって ()、 で

表の計算.
- : , 。
- : 。。
- : 。。
- : 。。
- : 。。
- : 。

123456
012726105
1131038154

よって の最左導出の個数は である。

(参考: の組は「 を 3 つに分ける」ことに当たるので、 は各内部節点の子が 2 個または 3 個の順序木で葉が 個のものの個数に等しい。)

別解

文法は曖昧でも、各導出木にはちょうど 1 つの最左導出が対応するので、最左導出の個数は導出木の個数に等しい。 を、それぞれ から 、 から を導く導出木(最左導出)の個数とする。

規則から(チョムスキー標準形で、, )

  • : , 。
  • : , , 。
  • : , , 。
  • : , , 。
  • : , , 。
  • : , , 。

よって求める個数は 。

検算: を直接数えると、 で分割 の 2 通り、 で , の 1 通り、合計 3 で と一致する。

この問題の確認

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

間違いを報告する

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

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

関連する問題