• Tidak ada hasil yang ditemukan

有限オートマトンで認識できない言語が存在する 有限

N/A
N/A
Protected

Academic year: 2024

Membagikan "有限オートマトンで認識できない言語が存在する 有限"

Copied!
36
0
0

Teks penuh

(1)

有限オートマトンで認識できない言語が存在する

有限オートマトンより強力な計算モデル

正規言語より広い範囲の言語を扱う

生成規則による言語の記述(生成文法)

(2)

生成規則・生成文法

生成規則を与えることでも

言語を定めることが出来る

→ 生成文法(generative grammar)

生成規則による文法に適っている語の生成

初期変数を書く

今ある文字列中の或る変数を

生成規則のどれかで書換える

変数がなくなったら終わり

(3)

文脈自由文法(context-free grammar) 文脈が全て空列 ε

即ち、規則が全て A→w (AV) の形 文脈自由文法の形式的定義

V : 有限集合(変数の集合)

Σ : 有限集合(終端記号の集合)

ここに VΣ=

R : 有限集合V×(VΣ)(規則の集合)

SV : 開始変数

(A, w)R が生成規則 A→w を表す

(4)

: 言語 A={anbnn0} は

正規言語ではないが文脈自由言語である :

S→aSb ε 従って、

文脈自由言語は正規言語より真に広い!!

さて、正規言語を計算するモデルが

有限オートマトンであった 文脈自由言語を計算するモデル

· · · プッシュダウンオートマトン

(5)

プッシュダウンオートマトン

(非決定性)有限オートマトンに

プッシュダウンスタックを取り付けたもの

a b

a b

a

c b

a

a d

a push a push b push c pop pop push d

無限(非有界)の情報を保持できるが、

読み書きは先頭だけ

· · · LIFO (Last In First Out)

(6)

プッシュダウンオートマトンの形式的定義 M= (Q, Σ, Γ, δ, s, F)

Q : 有限集合 · · · 状態の集合

Σ : 有限集合 · · · alphabet

Γ : 有限集合 · · · stack alphabet

Σε:= Σ{ε}, Γε:=Γ {ε} と置く

δ:Q×Σε×ΓεP(Q×Γε)

: 遷移関数(非決定的)· · · 可能な遷移先全体

sQ · · · 初期状態

FQ · · · 受理状態の集合

(7)

δ:Q×Σε×ΓεP(Q×Γε)

(r, y)δ(q, a, x) とは、

「入力 a を読んだとき、

状態 q でスタックの先頭が x なら、

スタックの先頭を y に書換えて、

状態 r に移って良い」

ということ (pop; push y)

x=y は書き換え無し

x=ε は push のみ

y=ε は pop のみ

a=ε は入力を読まずに遷移

(8)

スタックマシン このように

記憶場所としてプッシュダウンスタックを備えた 計算モデルや仮想機械・処理系を 一般にスタックマシンという

:

逆ポーランド電卓

PostScript

(9)

式と演算木

+

3 x

4 2

x 3

+ 2 4

3+4x2 3x4+2

Mathematica などの

数式処理(計算機代数)ソフトウェアでは、

通常、内部的に数式の木構造を保持

(10)

演算木の表記

演算子を置く場所により、中置・前置・後置がある

中置 前置 後置

3+4×2 + 3 × 4 2 3 4 2 × + (3+4)×2 × + 3 4 2 3 4 + 2 × 3×4+2 + × 3 4 2 3 4 × 2 +

(11)

後置記法(逆ポーランド記法)

後置 日本語

3 4 2 × + 342けたものをしたもの

3 4 + 2 × 34したものに2けたもの

3 4 × 2 + 34けたものに2したもの

スタックを用いた計算に便利

(12)

後置記法の演算式のスタックを用いた計算

(逆ポーランド電卓)

数値 =⇒ push

演算子 =⇒ 被演算子を(所定の個数だけ)pop

→ 演算を施し、結果を push

入力終了 =⇒ pop

→ スタックが丁度空になったらその値が答え

: 後置記法(逆ポーランド記法)の式に対し スタックを用いて値を計算する

アルゴリズムを実装せよ

(13)

後置記法の有利性

後置記法の演算式が簡明に計算できるのは、

(各演算子に対して

被演算子の個数が決まっていれば)

括弧が必要ない(優先順位を考慮しなくてよい)

ことが大きく効いている

式 :: 定数 || 変数 || 式 式 二項演算子

(+ も × も区別なし)

(14)

中置記法と演算子の優先順位 中置記法の演算式には括弧が必要

(演算子の優先順位を定めておく必要あり)

3×4+2 3+4×2

計算する際には優先順位を考慮する必要がある

式 :: 項 || 項+式

項 :: 因子 || 因子×

因子 :: 定数 || 変数 || (式)

(+ と × とで純然たる区別あり)

(15)

中置記法と演算子の優先順位 中置記法の演算式には括弧が必要

(演算子の優先順位を定めておく必要あり)

3×4+2 3+4×2

計算する際には優先順位を考慮する必要がある

式 :: 項 || 項+式

項 :: 因子 || 因子×

因子 :: 定数 || 変数 || (式)

(+ と × とで純然たる区別あり)

(16)

スタックマシンの例 : PostScript ページ記述言語の一つ

Adobe Systemsが開発

PDF (Portable Document Format) の 元になった言語

レーザプリンタなどで実装

オープンソースなインタプリタとして

Ghostscript が良く利用されている

図形を描いたりフォントを置いたりする

逆ポーランド記法

(17)

スタックマシンの例 : PostScript 逆ポーランド記法

データを push

命令(演算子, operator)が

所定数のデータ(被演算子, operand)を pop して処理

: (100, 200) から (300+50, 400) へ、

引続き (200, 600−50) へ線を引く 100 200 moveto

300 50 add 400 lineto 200 600 50 sub lineto stroke

(18)

定理 :

L : 正規言語 m

L が或る有限オートマトンで認識される 定理 :

L : 文脈自由言語 m

L が或るプッシュダウンオートマトンで 認識される 本質的な違いは?

文脈自由言語は再帰(recursion)を記述できる

(19)

定理 :

L : 正規言語 m

L が或る有限オートマトンで認識される 定理 :

L : 文脈自由言語 m

L が或るプッシュダウンオートマトンで 認識される 本質的な違いは?

文脈自由言語は再帰(recursion)を記述できる

(20)

文脈自由言語と再帰

S→aSb ε S(){

either

"";

or

{ "a"; S(); "b"; } }

main(){

S();

}

再帰 : 関数 S() の中で、自分自身を呼び出す

(21)

計算機での関数呼出・再帰の実現

関数呼出は原理的には次の仕組みで行なっている

現在の実行番地(戻る場所)を覚えておく

関数を実行する

関数を実行し終えたら、

覚えていた実行番地に戻って呼出側の実行再開 再帰呼出では呼出す度に覚えておく番地が増える

→ スタックに積んで覚えておく

(関数呼出の際に番地を push、戻ったら pop

(22)

計算機での関数呼出・再帰の実現

関数呼出は原理的には次の仕組みで行なっている

現在の実行番地(戻る場所)を覚えておく

関数を実行する

関数を実行し終えたら、

覚えていた実行番地に戻って呼出側の実行再開 再帰呼出では呼出す度に覚えておく番地が増える

→ スタックに積んで覚えておく

(関数呼出の際に番地を push、戻ったら pop

(23)

計算機での関数呼出・再帰の実現

関数呼出は原理的には次の仕組みで行なっている

現在の実行番地(戻る場所)を覚えておく

関数を実行する

関数を実行し終えたら、

覚えていた実行番地に戻って呼出側の実行再開 再帰呼出では呼出す度に覚えておく番地が増える

→ スタックに積んで覚えておく

(関数呼出の際に番地を push、戻ったら pop

(24)

正規言語における再帰 正規表現 : (aa)

S→aaS ε S(){

either

"";

or

{ "aa"; S(); } }

main(){

S();

}

→ 末尾再帰の除去

main(){

loop {

"aa";

} }

繰返しで記述可能

(再帰は不要)

(25)

正規言語における再帰 正規表現 : (aa)

S→aaS ε S(){

either

"";

or

{ "aa"; S(); } }

main(){

S();

}

→ 末尾再帰の除去 main(){

loop {

"aa";

} }

繰返しで記述可能

(再帰は不要)

(26)

正規言語・文脈自由言語と再帰

正規言語は繰返しを記述できる

文脈自由言語は再帰を記述できる

再帰の実装にはスタックを要す

正規言語の生成規則は次の形に出来る

? X→xY (X, Y V, x Σ)

? X→x (XV, x Σε)

特に、末尾再帰であり再帰の除去可能

(27)

文脈自由言語の Pumping Lemma 文脈自由言語 A に対し、

nN:

wA,|w|n:

u, v, x, y, zΣ :w=uvxyz

(1) vy6=ε(即ち v6=ε または y6=ε)

(2) |vxy|n

(3) k0:uvkxykz A

(28)

構文解析木

生成規則の適用過程を木で表したもの

G= (V, Σ, R, E)

V ={E, T, F}

Σ={a,+,×, (,) }

R:

? E→T | T +E

? T →F | F×T

? F→a | (E)

)

+ x

( a

F E

T

a

F

a

F

T

T E

E T F

(29)

文脈自由言語の例

回文全体の成す言語は文脈自由

S→aSa bSb a b ε

: 回文全体の成す言語を認識する

プッシュダウンオートマトンを構成せよ

(30)

文脈自由言語の例

回文全体の成す言語は文脈自由

S→aSa bSb a b ε

: 回文全体の成す言語を認識する

プッシュダウンオートマトンを構成せよ

(31)

文脈自由言語の例

回文全体の成す言語は文脈自由

S→aSa bSb a b ε

: 回文全体の成す言語を認識する

プッシュダウンオートマトンを構成せよ

(32)

プッシュダウンオートマトンでは

認識できない言語の例 同じ文字列 2 回の繰返しから成る文字列全体

A={ww wΣ}

入力を読み直せないのが弱点

→ より強力な計算モデルが必要

(33)

プッシュダウンオートマトンでは

認識できない言語の例 同じ文字列 2 回の繰返しから成る文字列全体

A={ww wΣ}

入力を読み直せないのが弱点

→ より強力な計算モデルが必要

(34)

プッシュダウンオートマトンでは

認識できない言語の例 同じ文字列 2 回の繰返しから成る文字列全体

A={ww wΣ}

入力を読み直せないのが弱点

→ より強力な計算モデルが必要

(35)

一つの方法としては、

入力を覚えておくために

プッシュダウンスタックをもう一つ

使えることにする 実際これで真により強い計算モデルが得られる しかし、通常はこれと同等な

次のような計算モデルを考える

· · · チューリングマシン

(36)

一つの方法としては、

入力を覚えておくために

プッシュダウンスタックをもう一つ

使えることにする 実際これで真により強い計算モデルが得られる しかし、通常はこれと同等な

次のような計算モデルを考える

· · · チューリングマシン

Referensi

Dokumen terkait

- 31 - 1.はじめに 「すべての人にとって『母語』と『母国語』が 必ずしも一致しているとは限らないのではない か?」本研究の出発はこの疑問からである。筆者 にとって母語は韓国語である。もちろん,国籍も 韓国なので,母国語は何ですかと聞かれると迷わ ず韓国語だと答えるだろう。それは筆者にとって 当然のことであり,疑ったこともなかった。しか

- 11 - 1. 問題の所在―言葉の獲得とは 何か 一般的に,教科書を用いた学習活動では,教科 書で提示されている「学ぶべき」知識の吸収に学 習者を集中させることが多い。「学ぶべき」知識 を理解したら,練習で知識を定着させ,「必要な 時」に正確にそれを呼び出す。「必要な時」に適 切な知識を呼び出して,正しく「運用」できれば,

キャリア教育論 授業科目名 CB22081 科目番号 2.0 単位 単位数 2 年次 標準履修年次 春AB秋AB火6 時間割 担当教員 キャリア教育に先行して実践されてきた職業指導・進路指導の歴史的展開と理論的背 景、キャリア教育提唱後の推進施策及び学校における諸実践の特質と課題に関する講義 を通して、キャリア教育についての理解を深め、今後の在り方を探る。

授業科目名 聴覚障害児の言語指導 科目番号 CE24021 単位数 1.0単位 標準履修年次 3年次 時間割 春B集中 担当教員 廣田 栄子 授業概要 聴覚障害児の言語・音声・コミュニケーションの発達、およびその指導に関する理論 と方法・成果について講述する。 備考 詳細後日周知 授業形態 講義 授業の到達目標

授業科目名 比較学校経営論 科目番号 CB24171 単位数 2.0単位 標準履修年次 2年次 時間割 春AB秋AB火5 担当教員 佐藤 博志 授業概要 日本、イギリス、オーストラリア等の学校経営の理論・政策・実践について検討し,今 後の学校経営改革の在り方を考える。前半は知識・視点・考え方の習得理論と実践

1 改心の理由 私が 突然 意味タグづけの研究なんかを始めたわけ 黒田 航 独立行政法人 情報通信研究機構 知識創成コミュニケーション研究センター Modified on 10/15/2007, 02/01/2010; Created on MM/DD/2005 1 はじめに 私は博士号取得後の二年ほどの留学1を終え,日

置換を許す体系はどんな文字列の対応関係でも 記述できるのだが,見通しが効かないのである. この点の下で,次のことにも注意しておくと 有益だろう: 注意3: 変形に置換を含め,sとtの型が同じで あるという制約を外した場合,変形は写 像と等しい.従って,それはすべてのこ とが扱える. 具体的に言えば,h s, t i の型として ih 統語 構造, 統語構造

じゅけんばんごう らん じゅけんひょう #. 受験番号となまえをしたの欄に、受験票とおなじように かいてください。 Write your examinee registration number and name clearly in each box below as written on your test voucher.. もんだいよう し ぜん ぶ