オートマトンと言語

Similar documents
Microsoft PowerPoint - アルデIII 02回目10月15日

Microsoft PowerPoint - アルデIII 02回目10月14日

オートマトンと言語

Microsoft PowerPoint - アルデIII 10回目12月09日

Microsoft PowerPoint - 3.ppt [互換モード]

オートマトンと言語

PowerPoint プレゼンテーション

Microsoft PowerPoint - 11Syntax.ppt

Microsoft PowerPoint - 02LanguageTheory.ppt [互換モード]

nlp1-04a.key

C8

Microsoft PowerPoint L03-Syntex and Semantics-1-students ( )

文法と言語 ー文脈自由文法とLR構文解析2ー

Microsoft PowerPoint - 03BNFScanner.ppt [互換モード]

オートマトンと言語

オートマトン 形式言語及び演習 1. 有限オートマトンとは 酒井正彦 形式言語 言語とは : 文字列の集合例 : 偶数個の 1 の後に 0 を持つ列からなる集合 {0, 110, 11110,

Microsoft PowerPoint - 08LR-conflicts.ppt [互換モード]

数理言語

PowerPoint プレゼンテーション

Microsoft Word - Javacc.docx

PowerPoint プレゼンテーション

オートマトンと言語

オートマトンと言語

A(6, 13) B(1, 1) 65 y C 2 A(2, 1) B( 3, 2) C 66 x + 2y 1 = 0 2 A(1, 1) B(3, 0) P 67 3 A(3, 3) B(1, 2) C(4, 0) (1) ABC G (2) 3 A B C P 6

Microsoft PowerPoint ppt

76 3 B m n AB P m n AP : PB = m : n A P B P AB m : n m < n n AB Q Q m A B AQ : QB = m : n (m n) m > n m n Q AB m : n A B Q P AB Q AB 3. 3 A(1) B(3) C(

情報工学実験 C コンパイラ第 2 回説明資料 (2017 年度 ) 担当 : 笹倉 佐藤

Microsoft PowerPoint - 03BNFScanner-print.ppt

Microsoft PowerPoint - Compiler05note.pptx

計算機アーキテクチャ

Microsoft PowerPoint - アルデIII 13回目01月12日 [互換モード]

Microsoft PowerPoint - Compiler05.pptx

1 8 Z80 Z GBA ASIC 2 WINDOWS C 1

O E ( ) A a A A(a) O ( ) (1) O O () 467

Microsoft PowerPoint ppt

Microsoft Word - 中間試験 その1_解答例.doc

Z...QXD (Page 1)

Microsoft PowerPoint ppt

70 : 20 : A B (20 ) (30 ) 50 1

Microsoft PowerPoint - 10pda.ppt

, 1. x 2 1 = (x 1)(x + 1) x 3 1 = (x 1)(x 2 + x + 1). a 2 b 2 = (a b)(a + b) a 3 b 3 = (a b)(a 2 + ab + b 2 ) 2 2, 2.. x a b b 2. b {( 2 a } b )2 1 =

言語プロセッサ2005

システムソフトウエア2013/1/30 演習問題 学科 学籍番号 氏名 1. つぎの文章の空白を埋めなさい. コンピュータは,CPU( 中央処理装置 ) とメモリ, およびその他の入出力装置から構成されて いる. このうち,CPU は命令の (a) とデコードなどを行う制御部と, 実際の計 算を行う

PowerPoint Presentation

PSCHG000.PS


オートマトン 形式言語及び演習 4. 正規言語の性質 酒井正彦 正規言語の性質 反復補題正規言語が満たす性質 ある与えられた言語が正規言語でないことを証明するために その言語が正規言語であると

untitled

情報数理学

Microsoft Word - CompA-Ex doc


オートマトン 形式言語及び演習 3. 正規表現 酒井正彦 正規表現とは 正規表現 ( 正則表現, Regular Expression) オートマトン : 言語を定義する機械正規表現 : 言語

Microsoft PowerPoint - 1.ppt [互換モード]

コンピュータよもやま話 コンピュータの基礎

Microsoft PowerPoint - 5.ppt [互換モード]

プログラミング実習I

オートマトンと言語

Microsoft PowerPoint - 10pda.ppt

Microsoft PowerPoint - C1(演算と変数).ppt

言語プロセッサ2005 -No.6-

Microsoft PowerPoint - tm ppt [互換モード]

Microsoft Word - problem3.doc

Microsoft PowerPoint PCFG.ppt

日本内科学会雑誌第102巻第4号

Microsoft PowerPoint - 09re.ppt [互換モード]

18/12/06 情報工学実験 C コンパイラ (2018 年度 ) 担当 : 笹倉 佐藤 その 3 yacc の構造 定義部 %% 定義部の終了 規則部 %% 規則部の終了 ユーザ定義サブルーチン部 :C のプログラムを書く 形は lex と同じ 1

熊本県数学問題正解

1

nlp1-05.key

Microsoft PowerPoint - Compiler06.pptx

情報工学実験 C コンパイラ第 2 回説明資料 (2018 年度 ) 担当 : 笹倉 佐藤

koji07-01.dvi

JavaプログラミングⅠ

, ,279 w

2002.N.x.h.L g9/20

> > <., vs. > x 2 x y = ax 2 + bx + c y = 0 2 ax 2 + bx + c = 0 y = 0 x ( x ) y = ax 2 + bx + c D = b 2 4ac (1) D > 0 x (2) D = 0 x (3

Microsoft PowerPoint - 11.ppt [互換モード]

簡単な検索と整列(ソート)

PSCHG000.PS

第12回 モナドパーサ

Microsoft PowerPoint - Compiler06note.pptx

CプログラミングI

Microsoft PowerPoint - 7.pptx

模擬試験問題(第1章~第3章)

パソコンシミュレータの現状

離散数学

48 * *2

関東/関西/九州同時開催 女性エンジニア大集合!新春LT 座談会 スクリプト インタプリタを 作ってみた 1 スクリプトインタプリタを作ってみた

漸化式のすべてのパターンを解説しましたー高校数学の達人・河見賢司のサイト

04年度LS民法Ⅰ教材改訂版.PDF

ソフトウェア基礎 Ⅰ Report#2 提出日 : 2009 年 8 月 11 日 所属 : 工学部情報工学科 学籍番号 : K 氏名 : 當銘孔太

構造化プログラミングと データ抽象


) 9 81

Information Theory

データ構造


a n a n ( ) (1) a m a n = a m+n (2) (a m ) n = a mn (3) (ab) n = a n b n (4) a m a n = a m n ( m > n ) m n 4 ( ) 552

1 12 ( )150 ( ( ) ) x M x 0 1 M 2 5x 2 + 4x + 3 x 2 1 M x M 2 1 M x (x + 1) 2 (1) x 2 + x + 1 M (2) 1 3 M (3) x 4 +

program7app.ppt

Transcription:

アルゴリズムとデータ構造 III 2 回目 :10 月 15 日 文脈自由文法,CYK 法 授業資料 http://ir.cs.yamanashi.ac.jp/~ysuzuki/algorithm3/index.html

授業の予定 ( 中間試験まで ) 1 10/01 スタック ( 後置記法で書かれた式の計算 ) 2 3 4 5 6 7 8 9 10/15 文脈自由文法, 構文解析,CYK 法 10/22 構文解析 CYK 法 10/29 構文解析 CYK 法 11/12 構文解析 ( チャート法 ), グラフ ( ダイクストラ法 ) 11/ 構文解析 ( チャート法 ), グラフ ( ダイクストラ法, DPマッチング ) 11/ グラフ (DPマッチング,A* アルゴリズム ) 11/19 グラフ (A* アルゴリズム ), 前半のまとめ 11/26 中間試験 10/08, 11/05 の代わりの補講日は後日相談

授業の予定 ( 中間試験以降 ) 10 12/03 全文検索アルゴリズム (simple search, KMP) 11 12 13 14 15 12/10 全文検索アルゴリズム (BM, Aho-Corasick) 12/17 全文検索アルゴリズム (Aho-Corasick), データ圧縮 01/07 暗号 ( 黄金虫, 踊る人形 ) 符号化 ( モールス信号, Zipf の法則, ハフマン符号 ) テキスト圧縮 01/14 テキスト圧縮 (zip), 音声圧縮 (ADPCM,MP3,CELP), 画像圧縮 (JPEG) 01/21 期末試験

7 2 3 + - を計算してみよう ( アセンブリ言語でプログラミング ) 数式 (7 2 3 + -) をメモリ ( データ領域 ) に書き込まれている 1. データ領域から1 文字読み込む 1. 数字 ( アスキーコード :30H~39H) なら 1. 数値に変換し, 数値をスタックにプッシュ 2. 演算子なら 1. 一旦スタックにプッシュし, ポップする. 2. スタックからポップし, 数値をBレジスタに取り込む 3. スタックからポップし, 数値をAレジスタ ( アキュムレータ ) に取り込む 4. 演算子が+なら 1. A + B を計算し,Aレジスタに計算結果を格納 5. 演算子が-なら 1. A -B を計算し,Aレジスタに計算結果を格納 6. Aレジスタの内容をスタックにプッシュ 2. データ領域すべてを読み終えるまで続ける.

簡単な計算の例 7 2 3 + - ; 後置記法 7 2 3 + - の計算 ORG 8000H ; LD HL, DATA ; 数式の先頭番地を指定 LOOP: LD A, (HL) CP 00H JP Z, OWARI ; 数式を全部読み込んだら終わ り LD E, (HL) LD D, 0H LD A, (HL) INC HL CP 2BH JP Z, LOOPA ; + なら加算処理へ CP 2DH JP Z, LOOP ; - なら減算処理へ LD A, E UB 30H ; 数字なら数値に変換 ; Aレジスタの内容をスタックへプッシュ TPUH: シュ LD E, A LD D, 0H PUH DE ; 読み込んだ数値をスタックへプッ JP LOOP ; つぎの文字読み込みへ ; 加算 LOOPA: ; 減算 LOOP: PUH DE ; 演算子をスタックへプッシュ POP DE ; 演算子をスタックからポップ POP DE ; 数値をスタックからポップ LD B, E ; スタックトップの値を B レジスタへ POP DE ; 数値をスタックからポップ LD A, E ; スタックトップの値を A レジスタへ ADD A, B ; 加算 ( A <= A + B ) JP TPUH PUH DE ; 演算子をスタックへプッシュ POP DE ; 演算子をスタックからポップ POP DE ; 数値をスタックからポップ LD B, E ; スタックトップの値を B レジスタへ POP DE ; 数値をスタックからポップ LD A, E ; スタックトップの値を A レジスタへ UB B ; 減算 ( A <= A - B ) JP TPUH ; OWARI: HALT ; 入力データ DATA: DEFB 37H ;7 DEFB 32H ;2 DEFB 33H ;3 DEFB 2BH ;+ DEFB 2DH ;- DEFB 00H ;END END

Z80 シミュレータ Z80 シミュレータ for Win32 http://www.game3rd.com/soft/z80edit/index.htm

( スタックを含めた ) メモリの様子

オートマトン 4.5.3 オートマトンと計算理論 オートマトンの受理する言語クラス 受理言語型言語クラス チューリング機械 第 0 型言語 句構造言語 (PL) 線形拘束チューリング機械 第 1 型言語 文脈依存言語 (CL) プッシュダウンオートマ 第 2 型言語 文脈自由言語 (CFL) トン 有限オートマトン 第 3 型言語 正規言語 (RL) RL CFL CL PL ( チョムスキーの言語階層 ) ( は包含関係を表す) 8

形式言語と有限オートマトン入門 5 形式言語理論入門 5.1 形式言語理論 5.2 文脈自由文法 5.3 線形文法と正規言語 5.4 形式言語のクラス階層とオートマトン 5.5 言語処理への応用 9

形式文法 G の定義 G=(N,T,P,) N: 非終端記号の集合 T: 終端記号の集合 P: プロダクション : 開始記号 10

5.2 文脈自由文法 文脈自由文法 (CFG: Context Free Grammar) 文脈自由プロダクションのみから構成される 文脈自由プロダクション α β ただし,α N,β V* N: 非終端記号の集合,T: 終端記号の集合,V: NとTの直和 左辺が変数 1つ 文脈依存文法 (CG: Context ensitive Grammar) 文脈依存プロダクションを含むプロダクションから構成される 文脈依存プロダクション uαv uβv ただし,α N,u,v V*,β V + N: 非終端記号の集合,T: 終端記号の集合,V: NとTの直和 u=v=εのとき (α β) 文脈自由プロダクションとなる 11

文脈自由文法の例 ( 例題 5.9) CFG G=(N,T,P,) N( 非終端記号 )={B,} T( 終端記号 )={a,b} P: : ab ab B b 語 aaabbb の導出過程 L(G) はどのような言語か 12

例題 5.9 の解答例 ab aabb aaabbb aaabbb aaabbb L(G): a n b n 正規表現では表せない CFG G=(N,T,P,) N={B,} T={a,b} P: ab ab, B b : プッシュダウンオートマトンでは表現可能 構文木 a B a B a b b b 13

練習問題 1 例題 5.10 文脈依存文法の例 CG G=(N,T,P,) N={A,B,} T={a,b} P: aba aba, AB BA, bb bb, ba ba, aa aa : 語 aabbaa の導出過程 L(G) はどのような言語か 14

練習問題 1 解答 例題 5.10 aabbaa CG G=(N,T,P,) N={A,B,} T={a,b} P: aba aba, AB BA, bb bb, ba ba, aa aa : 語 aabbaa の導出過程 aba aababa aabbaa aabbaa aabbaa aabbaa L(G) はどのような言語か L(G): a n b n a n 15

構文木 ( 導出木 ) Time flies like an arrow. 2 種類の導出木 文法が曖昧 NP VP NP VP N V PP ADJ N V NP PREP NP DET N DET N Time flies like 光陰矢の如し an arrow Time flies like an 時蠅は矢を好む arrow 16

問題 : 例題 5.11 文法 N={},T={x,+,*},P={ + * x}, = 語 w= +*xx*+xxx を導出せよ 語 wの導出木 導出木 + * * 解答例 x x + 導出 : x x + +* +*x +*xx +*xx* +*xx *+ +*xx*+xxx x 17

例題 5.12 1 問題 文法 解答例 N={},T={x,+,*},P={ + * x} 中置記法 x+x*(x+x*x) 前置記法 +x*x+x*xx + +x +x* +x*x +x*x+ +x*x+x +x*x+x* +x*x+x*x +x*x+x*xx + x 導出木 * x + x * x x 18

練習問題 2 例題 5.12 2 問題 文法 N={},T={x,+,*},P={ + * x} 中置記法 (x*x+x*x)*(x+x)*x 前置記法 最左導出 構文木 19

練習問題 2 例題 5.12 2 の解答例 問題 文法 N={},T={x,+,*},P={ + * x} 中置記法 (x*x+x*x)*(x+x)*x 導出木 解答例 前置記法 **+*xx*xx+xxx * ** **+ **+* **+*x **+*xx **+*xx* **+*xx*x **+*xx*xx **+*xx*xx+ **+*xx*xx+xxx 20

文脈自由文法の曖昧性 どのような導出を行っても同じ導出木が得られる 文法 G は曖昧でない 複数の異なった導出木が構成できるような語を含む 文法 G は曖昧である 21

例題 5.26 文法 G=(N,T,P,) において, N={,A,B},T={a,b}, P: AB aab, A aa a, B bb b この文法が曖昧であることを示せ 22

例題 5.26 解答例 同一文字列に対して 2 種類の導出 木が構成可能 曖昧である 1. AB aab aabb aabb aabb 2. aab aab aabb aabb P: AB aab A aa a B bb b 23

練習問題 3 例題 5.27 文法 G=(N,T,P,) において, N={,A,B,C},T={a,b}, P: AC CB, A aa a, A aab ab, B bb ba C ac a この文法が曖昧であることを,aabba の導出木を構成して示せ 24

練習問題 3 例題 5.27 解答例 同一文字列に対して 2 種類の導出 木が構成可能 曖昧である 1. AC aabc aaba aabba 2. CB acb acbb aabb aabba P: AC CB A aa a, A aab ab B bb ba C ac a 25

CFG の構文図式 文脈自由プロダクション A α A 構文図式 α A α 1 α 2 α n A α 1 α 2 α n A α 1 α 2 α n A α 1 α 2 α n A α αa A α A ε α αa A α A ε α A α 26

ここまで 構文解析 CYK 法 文脈自由文法で生成された文から自動的に構文木を生成する.

構文解析とは (Wikipedia より ) ある文章の文法的な関係を説明すること (parse) 計算機科学の世界では 構文解析は字句解析 (Lexical Analysis) とともに おもにプログラミング言語などの形式言語の解析に使用される また 自然言語処理に応用されることもある コンパイラにおいて構文解析を行う機構を構文解析器 (Parser) と呼ぶ 構文解析は入力テキストを通常 木構造のデータ構造に変換し その後の処理に適した形にする 字句解析によって入力文字列から字句を取り出し それらを構文解析器の入力として 構文木や抽象構文木のようなデータ構造を生成する

構文解析 入力文 ( 記号列 ) が与えられたとき, 文法によってその文を解析し, その構造を明らかにする 代表的な構文解析アルゴリズム CYK 法 チャート法 アーリー法 LR 法

構文木 ( 一郎が速いボールを軽々と投げた ) 文動詞句後置詞句後置詞句名詞句動詞句名詞助詞形容詞名詞助詞副詞動詞 一郎が速いボールを軽々と投げた

CYK(Cocke-Younger-Kasami) 法 ボトムアップアルゴリズム 扱える文法 チョムスキーの標準形 A BC A a CYK 表 構文解析の途中経過を保持するための表

CYK アルゴリズム チョムスキーの標準形で表される文脈自由文法を対象とした構文解析法 チョムスキーの標準形 A BC (A,B,C Vn) A a (A Vn, a Vt) X ab はチョムスキーの標準形ではないが X AB, A a に分解できる X ABC はチョムスキーの標準形ではないが X AY, Y BC に分解できる