オートマトン・形式言語の問題
終端記号 、非終端記号 、開始記号 をもち、次の生成規則からなるチョムスキー標準形の文脈自由文法 を考える。
文字列 の における導出木(開始記号 を根とし、葉を左から読むと になるもの)の個数を求めよ。
この問題で使うもの
- 導出木の個数の数え上げ(説明と入口の問題)
この問題を解けるようになるまで(3 技能)
読み込み中…
右端(太枠)がこの問題で使う技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
一覧で見る(前提が先)
ヒント
行き詰まったら、上から順に 1 つずつ開いてください。
ヒント 1
CYK 法の表を、非終端記号の集合ではなく「 が を生成する導出木の個数 」で埋めていく技能を使います。
ヒント 2
を使います。 は 1 文字しか生成しないので、長さ 2 以上の欄では です。
ヒント 3
長さ 2 では 、、、長さ 3 では 、 となります。残るのは全体の欄 で、 の寄与を足すだけです。
答えと解説
答えを見る
どこでつまずきましたか?(選ぶと、戻る場所を案内します)
解説を読む
とし、 を「非終端記号 を根として部分文字列 を生成する導出木の個数」とする。CYK 法の表の各欄に、非終端記号の集合の代わりにこの個数を記録する。
漸化式. 長さ 1 の欄は、規則 があれば 、なければ である。長さ 2 以上の欄では、 という規則と分割位置 ()ごとに、左側 の導出木と右側 の導出木を自由に組み合わせられるので
となる。 は終端記号 1 文字しか生成しないので、長さ 2 以上では である。よって長さ 2 以上では だけを計算すればよく、
である。
長さ 1.
- :
- :
- : ( は )
- :
長さ 2.
- : のみ。。
- : 。
- : 。
長さ 3.
- :
- :
- :
- よって 。
- :
- :
- :
- よって 。
長さ 4(全体). :
- :
- :
- :
したがって 。
確認. この文法は、中心の の左にある を で、右にある を で 1 つずつはがしていく。左の 2 個(L, L)と右の 1 個(R)をはがす順序は 通りで、表の結果と一致する。
答えは である。
別解
では は左端に を 1 つ付け、 は右端に を 1 つ付ける。 で終了するので、 である。
では の左に が 2 個、右に が 1 個ある。 より左の は からしか出ず、右の は からしか出ない。したがって導出木は、根から順に「左を 1 つ剥がす ()」を 2 回、「右を 1 つ剥がす ()」を 1 回行い、最後に を使うものである。
異なる順序は異なる木を与えるので、木の個数は の並べ方の数 である。
3 つの木は次のとおり。
-
-
-
いずれも最後に と を使って を得る。
検算として の場合を調べると、 に至る順序は と の 2 通りで、 と一致する。
よって答えは 3。