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

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

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

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

長さ の文字列 (左から順に の 文字)について、根が である の導出木の個数を求めよ。

この問題で使うもの

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

読み込み中…

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

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

ヒント

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

ヒント 1

CYK 法の表の各欄に、非終端記号の集合ではなく「その非終端記号から部分文字列 を生成する導出木の個数」を記録する技能を使う。

ヒント 2

を、長さ 1 の欄から順に計算する。長さ 1 の欄は , から決まる。

ヒント 3

長さ 2 では 、長さ 3 では 、長さ 4 では , となる。最後に を について足し合わせる。

答えと解説

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

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

で計算する(分割位置と使う規則が違えば導出木の根の付近の形が違うので、重複なく数えられる)。以下、 でない値だけを書く。

長さ 1:, より
, 。

長さ 2: は などが なのでどこでも 。 より
、。
の欄はすべて 。

長さ 3:
。
。
の欄:、。

長さ 4:
。
。

長さ 5(全体): について で和をとる。

よって の導出木は 個である。これは の木( と に分ける、すなわち に相当)と、 の木( と に分ける、すなわち に相当)の 2 通りに対応している。

答え:

別解

生成規則 、 より、 は を導出する。したがって は実質 であり、 は と が交互に並ぶ文字列を導出する。

について、根の規則 で を が導出する前半と が導出する後半に分ける。 は で始まるので、分け方は次の 2 通りである。

1. 前半が 、後半が のとき。
で が 、 が を導出する。 が を導出する木は で 、 とするものだけなので 1 個である。
この場合の導出木は 1 個。

2. 前半が 、後半が のとき。
前半を が導出する木は 1 個(上と同じ)。後半を が導出する木は 、 の 1 個。
この場合の導出木は 1 個。

前半が や空になる分け方は、 が少なくとも 2 文字を導出するため不可能である。

合計 個となる。これは における 2 つの括弧づけ と に対応し、カタラン数 とも一致する。

この問題の確認

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

間違いを報告する

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

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

関連する問題