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

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

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

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


文字列 について、 を根とし を生成する導出木(構文木)の個数を求めよ。

この問題で使うもの

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

読み込み中…

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

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

ヒント

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

ヒント 1

CYK 法の表の各欄に、非終端記号の集合ではなく「その記号を根としてその部分文字列を生成する導出木の個数」を書き込む方法を使う。

ヒント 2

を、長さ 1, 2, 3, 4 の順に計算する。積は左右の部分木の選び方、和は規則と分割位置の違いに対応する。

ヒント 3

長さ 2 では 、。長さ 3 では ( と から 1 ずつ)、( から)。あとは全体の欄 で のそれぞれについて分割位置ごとの積を足す。

答えと解説

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

とし、 を「非終端記号 を根として部分文字列 を生成する導出木の個数」とする。CYK 法と同じく短い部分文字列から順に表を埋めるが、各欄には集合ではなく個数を記録する。規則 と分割位置 について

で計算する(左右の部分木を独立に選べるので積、規則や分割位置が違えば別の木なので和)。

長さ 1:、、、。ほかは 。

長さ 2:
- : より 。 は右辺の各非終端記号が該当する欄に現れないので 。
- : より 。ほかは 。
- :どの規則でも 。

長さ 3:
- :
- : で ( は )。
- : で ( は )。
- : より 。
よって 。 は 。
- :
- : で 。
- : で 。
よって 。 は ( など)。

ここまでの表( でないものだけ記す):

欄個数

長さ 4: の について
- : で 、、。合計 。
- : で 。 は で 。合計 。
- : で 。 は で 。合計 。

したがって 。

(確認:3 つの木は のもの、 で左の が のもの、 で左の が のもの。)

答え:

別解

CYK 法の要領で、各区間 を非終端記号が生成する導出木の個数を数える。 の位置を 1〜4 とする。

長さ 1:。

長さ 2:
- : より 。
- : より 。
- : を生成する規則はないので 0。

長さ 3:
- : は 。 は 。 は なので 0。よって 。また 、。
- : は が 0 なので 0。 は 。よって 。

長さ 4、:
- :
- :
- :

合計は 。

検算:3 本の木を実際に書き出す。
1. 、内側 、。
2. 、内側 、。
3. 、、内側 。

この 3 本が過不足なく得られる。

この問題の確認

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

間違いを報告する

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

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

関連する問題