4.プッシュダウンオートマトンと 文脈自由文法の等価性

Slides:



Advertisements
Similar presentations
プログラミング言語論 第3回 BNF 記法について(演習付き) 篠埜 功. 構文の記述 プログラミング言語の構文はどのように定式化できるか? 例1 : for ループの中に for ループが書ける。 for (i=0; i
Advertisements

システムソフトウェア 第3回:2007年10月17日(水)   . 2 本日学ぶこと 文法  文字と文字列  無限集合  文法とそのクラス  オートマトン.
0章 数学基礎.
和田俊和 資料保存場所 /2/26 文法と言語 ー正規表現とオートマトンー 和田俊和 資料保存場所
プログラミング言語論 第10回(演習) 情報工学科 木村昌臣   篠埜 功.
文法と言語 ー字句解析とオートマトンlexー
自然言語処理:第3回 1.前回の確認 2.構文解析 3.格文法.
コンパイラ 2011年10月17日
計算の理論 I 決定性有限オートマトン(DFA) と 非決定性有限オートマトン(NFA)
言語処理系(6) 金子敬一.
5.チューリングマシンと計算.
5.チューリングマシンと計算.
授業展開#11 コンピュータは 何ができるか、できないか.
集中講義(九州大学数理学研究院) バイオ構造データに対する数理モデルと アルゴリズム(3) + 数理談話会 木構造および画像データの文法圧縮
8.クラスNPと多項式時間帰着.
文法と言語 ー文脈自由文法とLR構文解析2ー
文法と言語 ー文脈自由文法とLL構文解析ー
プログラミング言語論 第4回 式の構文、式の評価
東京工科大学 コンピュータサイエンス学部 亀田弘之
計算の理論 II 文脈自由文法と プッシュダウンオートマトン
Semantics with Applications
9.NP完全問題とNP困難問題.
言語処理系(5) 金子敬一.
スタック長の 特徴付けによる 言語の非DCFL性 証明
コンパイラ 2012年10月15日
コンパイラ 2012年10月22日
10.通信路符号化手法2 (誤り検出と誤り訂正符号)
コンパイラ 2011年10月24日
7.時間限定チューリングマシンと   クラスP.
チューリング機械 状態の有限集合 ヘッドの方向を表す。 L:1コマ左へ R:1コマ右へ テープ記号の有限集合 入力記号の有限集合 動作関数
7-3.高度な木 (平衡木) AVL木 平衡2分木。回転操作に基づくバランス回復機構により平衡を保つ。 B木
形式言語とオートマトン2013 ー有限オートマトンー 第5日目
プログラミング言語論 第3回 BNF記法について(演習付き)
東京工科大学 コンピュータサイエンス学部 亀田弘之
正則言語 2011/6/27.
形式言語の理論 5. 文脈依存言語.
東京工科大学 コンピュータサイエンス学部 亀田弘之
東京工科大学 コンピュータサイエンス学部 亀田弘之
東京工科大学 コンピュータサイエンス学部 亀田弘之
オートマトンとチューリング機械.
言語と文法 言語とは,ルールに従う記号列の無限集合である. 文法を与えることで言語が定義できる.
文法と言語 ー文脈自由文法とLR構文解析2ー
言語プロセッサ ー第9回目ー 構文解析(続き).
平成20年10月5日(月) 東京工科大学 コンピュータサイエンス学部 亀田弘之
文法と言語 ー文脈自由文法とLR構文解析3ー
計算の理論 II 前期の復習 -有限オートマトン-
東京工科大学 コンピュータサイエンス学部 亀田弘之
2007年度 情報数理学.
プログラミング言語論 第9回 情報工学科 木村昌臣 篠埜 功.
文法と言語 ー文脈自由文法とLL構文解析ー
コンパイラ 2011年10月20日
計算の理論 I 決定性有限オートマトン(DFA) と 非決定性有限オートマトン(NFA)
文法と言語 ー文脈自由文法とLR構文解析ー
計算の理論 I 反復補題 月曜3校時 大月 美佳 平成15年7月14日 佐賀大学知能情報システム学科.
計算の理論 I 非決定性有限オートマトン(NFA)
5.チューリングマシンと計算.
計算の理論 I -プッシュダウンオートマトン-
計算の理論 I ー正則表現とFAの等価性ー 月曜3校時 大月 美佳.
計算の理論 I プッシュダウンオートマトン 火曜3校時 大月 美佳 平成16年7月6日 佐賀大学知能情報システム学科.
形式言語とオートマトン 第14回 プッシュダウンオートマトンと全体のまとめ
計算の理論 I 反復補題 火曜3校時 大月 美佳 平成16年7月13日 佐賀大学知能情報システム学科.
東京工科大学 コンピュータサイエンス学部 亀田弘之
コンパイラ 2012年10月11日
言語プロセッサ ー第9回目ー 構文解析(続き).
非決定性有限オートマトン 状態の有限集合 入力記号の有限集合 注意 動作関数 初期状態 受理状態の有限集合.
参考:大きい要素の処理.
文法と言語 ー文脈自由文法とLR構文解析2ー
情報数理Ⅱ 第10章 オートマトン 平成28年12月21日.
計算の理論 I プッシュダウンオートマトン 月曜3校時 大月 美佳 平成15年7月7日 佐賀大学知能情報システム学科.
4.2 再帰下降解析 (1)再帰下降解析とは ■再帰下降解析(Recursive Descent Parsing)
Presentation transcript:

4.プッシュダウンオートマトンと 文脈自由文法の等価性 4.プッシュダウンオートマトンと   文脈自由文法の等価性

4-1.目標 ここでは、PDAの受理する言語と、CFGが表現できる言語 が等しいことを示す。この言語を文脈自由言語(CFL)と呼ぶ。 PDA (の受理する言語) CFG (の表現できる言語)

CLG→PDAのアイディア 生成途中の文字列をスタックに入れておく。 例、下記生成規則における       の生成過程。

このとき、次のように動作するPDAを構成すればよい。 入力テープ 読み取り ヘッド 有限 制御部 PDAの途中の状態(様相) スタック スタックの動き

スタックの拡張 スタックの各セルには、   の一文字だけでなく、   の文字列 を蓄えることが可能であるとする。

CFG PDA ある言語がCFGで記述できるとき、 その言語を受理するPDAが存在する。 証明 CFGを とする。 このとき、PDA  を構成する。 まず、 とする。 また、 とし、 とする。 ここで、  はスタックの拡張を実現する付加的な状態 の集合である。

状態遷移関数  は次のように定める。 規則による導出過程 を表す遷移 各 に対して、 各 に対して、 左の終端記号の除去。 テープ読み取りヘッド の移動を伴う。

(拡張スタックを用いた)等価なPDA

1文字スタックへの変換

練習 次のCFGが記述している言語を受理するPDAを 状態遷移図で示せ。

PDA→CFGのアイディア PDAのスタックの高さを基にして、CFGの規則を生成する。 そのために、PDAを次のように制限する。 1.唯一つの受理状態   を持つ。 2.受理する前にスタックを空にする。 3.各遷移は、pushかpopのいずれかであり、   同時には行わない。 このように制限しても、PDAの受理能力に変化はない。

PDAからCFGの構成 として、 PDAを CFG を構成する。 1.変数の設定 任意の状態の組に 対応して変数を用意 2.終端記号の設定 アルファベットは共通 3.開始記号の設定

4.規則の設定 (1) 各々の                    に対して、 かつ ならば をRに加える。 同一文字  をpushと popする全ての組合せ

(2) 各々の        に対して、 をRに加える。 (3) 各々の     に対して、 をRに加える。

イメージ1 (1) スタックの高さ 文字列

イメージ2 (2) スタックの高さ 文字列

例 まず、

のとき、 (1) のとき、

(2) ・・・ (3) ・・・ なお、規則としては、以下だけで生成できることがわかる。

練習 次のPDAが受理する言語を生成する CFGを示せ。 (変数、規則は、必要部分だけでよい。)

正規言語(RL)と文脈自由言語(CFL) 正規言語は有限オートマトンで受理される。 文脈自由言語はプッシュダウンオートマトンで受理される。 プッシュ機能を用いなければPDAはDFAとしても機能する。 よって、正規言語すべてをPDAは受理する。 逆に、正規言語でない言語もPDAは受理できる。 したがって、言語の包含関係は下図のようになる。 文脈自由言語 (CFL) 正規言語(RL)

(CFLの)ポンピング補題 (CFLの)ポンピング補題 AがCFLであるならば、ある数 (ポンピング長)が 存在して、  より長い任意の文字列      に対して、 次を満たすように   を に分割できる。 1.各     について、 2. 3.

ポンピング補題の意味 ものすごく長い文字列では、構文解析木の高さも高くなる。 このとき、開始変数から終端記号までの“道”上に 同じ非終端記号が現れてします。 このように、いったん同じ非終端記号が現れたときには、 この非終端記号を繰り返し適用することによって、 文字列を長くできる。 高い構文解析木 同一の非終端記号 が現れる。 がものすごく長い

構文解析木の葉から開始記号までの道上に 同じ非終端記号が現れたとき、 下のような言語もCFGにより生成されるはずである。

ポンピング補題の証明 CFL を認識するCFGをGとし、 を基礎の右辺にある文字の最大数とする。 としてよい。   を基礎の右辺にある文字の最大数とする。 としてよい。 このとき、構文解析木の各節点は、   より多くの子 を持つことができない。 したがって、開始記号からの距離が   であるところには、 高々   個の節点しかない。 ここで、    をGの非終端記号の総数とする。 ポンプ長   を      とおく。 このとき、構文解析木の高さ、すなわちSから葉までの 道の長さは、少なくとも       である。

  を少なくとも長さ  であるAの文字列とする。 このとき  を生成する構文解析木の高さは、少なくとも、        である。 構文解析木において、終端記号は、葉だけであるので、 開始記号Sから葉の一つ手前まではすべて非終端記号である。 すなわち、     個の非終端記号が出現しているはずである。 一方、非終端記号は   個しかないので、 同じ非終端記号が繰り返して出現しているはずである。 この記号を   とあらわす。 この場合、前述の図のように、        と分割できること がわかる。

CFLの限界 次の言語は文脈自由言語ではない。

証明 ポンピング補題を用いる。 CがCFLであると仮定する。(背理法の仮定) をポンピング長とする。 文字列を とする。    をポンピング長とする。 文字列を           とする。 このとき、明らかに、        である。 このとき、ポンピング補題より、   は と分割できるはずである。

このとき、次の2つの場合に分けて考える。 (1)   と   はどちらも1種類の文字からなる。 (2)   と   のどちらかが2種類以上の文字からなる。 場合(1)、 このときは、文字列        は 同じ個数の     を含むことができない。 したがって矛盾が生じる。 場合(2)、このときは、文字列        では 同じ個数の       を含むことかもしれない。 しかし、     の順序に狂いか生じる。 よって、矛盾である。 いずれの場合も矛盾が生じるので、 命題が証明された。