310 likes | 421 Views
スタック長の 特徴付けによる 言語の非 DCFL 性 証明. 上里 友弥 南出 靖彦. 筑波大学. IPSJ PRO 98. または 決定性プッシュダウンオートマトン はいかにして スタック を用い マッチング を行うか. 決定性プッシュダウンオートマトン. Σ 入力記号の集合. Q 状態集合 F 最終状態の集合 初期計算状況. Γ スタック記号の集合. δ 遷移関数. q 0. ⊥. aabb を入力とする計算. *. *. *. *. ⊥. ⊥. ⊥. ⊥. ⊥. δ. δ. δ. δ. δ. b. b. a. a.
E N D
スタック長の特徴付けによる言語の非DCFL性証明スタック長の特徴付けによる言語の非DCFL性証明 上里友弥 南出靖彦 筑波大学 IPSJ PRO 98
または決定性プッシュダウンオートマトンはいかにしてスタックを用いマッチングを行うかまたは決定性プッシュダウンオートマトンはいかにしてスタックを用いマッチングを行うか
決定性プッシュダウンオートマトン Σ入力記号の集合 Q状態集合 F最終状態の集合 初期計算状況 Γスタック記号の集合 δ遷移関数 q0 ⊥ aabbを入力とする計算 * * * * ⊥ ⊥ ⊥ ⊥ ⊥ δ δ δ δ δ b b a a ε qok qa qa qb qb q0 ⊥ ∈ F
決定性プッシュダウンオートマトン δ : Q×Γ (ΣQ×Γ*)∪(εQ× {ε}) 計算状況 で q A B ⊥ ・・・ • 入力を読んで遷移するか • 入力を読まずに遷移するか • を決定する
決定性プッシュダウンオートマトン δ : Q×Γ (ΣQ×Γ*) ∪(εQ× {ε}) 入力σを消費する遷移 pop p1 ⊥ A ・・・ local p2 q A B A B ⊥ ⊥ ・・・ ・・・ push p3 A B C ⊥ ・・・
(入力を消費しない)遷移 決定性プッシュダウンオートマトン pop q p A B A ⊥ ⊥ ・・・ ・・・ δ : Q×Γ (ΣQ×Γ*) ∪(εQ× {ε}) ε ※ DPDAを知っている人向けの注意書き 遷移関数をこの形に制限しても良いというのは フォークロア的に知られてはいましたが 今回はこれも明示的に示しました
定義語wを受理する( M(w) = true ). wを全て読んだのちにFを訪れる. 定義言語Lを受理する. w ∈ L iff wを受理する. 例{anbn | n ≧1}はDPDAで受理できる. ★ * * * b a b a ⊥ ⊥ ⊥ ⊥ ⊥ qa qa qb qok∈F q0
{ an bn }∪{ an b2n }はDCFLではない スタックの 高さ ✗ an bn bn 読んだ文字数 (経過時間) スタックが殆ど 空になってしまう
マッチングMatch[x,y] ここまでは 受理しない ここで 初めて受理 an bn b 任意のn について xn, xny, xny2, ... は受理されないが xn ynは受理される ならば,マッチングをしているという. bn-1 ただし,x, yは 空でない文字列
発表の流れ • 定義 • 決定性プッシュダウンオートマトンと そのクラスDCFLとは何かを復習 • マッチングを形式的に定義 • { an bn } ∪ { an b2n } がDCFLでないことを示す • マッチングをすると スタックが殆ど空になる直感がある • 入力の周期性とスタック中の周期性 • マッチングにはスタックの全体が必要 • 殆ど空になることが形式化し証明 ✔ ✓
周期的な入力と周期的なスタック ε遷移のないDPDAで 文字cが無限に長くやってくる計算を考えると, 計算に周期性があらわれる! A B β γ ・・・ A B β ⊥ β ・・・ ・・・ ⊥ β q q α cm cn cn cm cn cn cn
補題 : 周期的な入力と周期的なスタック 任意のDPDAで 文字列w が無限に長くやってくる計算を考えると, 計算に周期性があらわれる! α,β, γは w にだけ依存する と考えて良い γ β β β α wm wn wn wn
マッチングするには何が必要か? ⊥ bnとマッチングするには スタックをどこまでポップしなければ ならないだろうか? anを復元するには 少なくともどこまでみなければ ならない? an β β β γ α ⊥ ・・・ この辺りまでは みなくてはならない 👀
αまでみない場合に何が起こるか? γ β ・・・ ⊥ ⊥ an bn を受理! β β β α α ⊥ an bn
αまでみない場合に何が起こるか? γ γ β β ・・・ an+m bn を誤認 ・・・ β ⊥ ⊥ ⊥ β β β β β β α α α ⊥ an am bn
定理 : マッチングはそこそこ大変 ⊥ • マッチングMatch[a,b] を行っているならば, • bn を読んでいる間に,スタックの高さが定数Ha,b以下になる. an β β β γ α ⊥ ・・・ 👀
いつHa,bとするのか? 定理により,Ha,b以下にはなることが分かったが, 受理するまでどれぐらいの位置で そのようにするかを考えたい. an bn 受理! Ha,b ???
定理 : マッチング成功直前でHa,bとする aとbにだけ依存する定数Ra,bが存在し, Ha,bとなるのは 入力の残りがRa,bになってからである. an bn 受理! Ha,b Ra,b
定理 : マッチング成功時で高々Ha,b+ Ra,b aとbにだけ依存する定数Ha,b , Ra,bが存在し, Ha,bとなるのは 入力の残りがRa,bになってからである,ので… 受理! an bn Ha,b Ra,b Ra,b
{ an bn }∪{ an b2n }はDCFLではない ≤ Ha,b+Ra,b ✗ an bn • bs を読んでからはじめて受理 • btを読んでからはじめて受理 • とする計算状況及び s < tが存在 • これは明らかに矛盾. bn
関連研究 • 周期的な入力は周期的なスタックを生成する • Ginsburg & Greibach : Deterministic context free languages, 1966. • { an bn , an b2n | n ≧ 1 }の非DCFL性を 類似した方法で証明している • マッチングでは本質的にスタックを空にする • Li & Vitányi : A New Approach to Formal Language Theory by Kolmogorov Complexity, 1995. • Glier : Kolmogorov Complexity and Deterministic Context-Free Languages, 2003. • DCFL版のポンピング補題 • Harrison : Introduction to Formal Language Theory, 1978. • Yu : A Pumping Lemma for Deterministic Context-free Languages, 1989.
帰納的可算言語 {ap | pは素数} {an bn cn | n ≧ 1} [5.4] {an bn2| n ≧ 1} 文脈自由言語 {an bn,an b2n | n ≧ 1} [5.1] { w wR | w ∈ {a,b}* , wRはwの反転} [5.2] { x # y xR z | x,y,z ∈ {a,b}* } [5.6] 決定性文脈自由言語
まとめ 直感 証明したこと マッチングをしていると, 受理段階でのスタックの 高さは, 一様に定数H +R以下になる • 入力の中で個数の • 比較をしているよう • な場合には, • 受理段階での • スタックの高さは • 殆ど空になる. 周期的な入力は周期的なスタックを生成 一度はスタック全体を読むことになる 受理直前にスタックが殆ど空にする
今後の課題 • 非決定性プッシュダウンオートマトンに対しても同様の議論ができないか? • {an bn cn | n ≧ 1} • は同じような原因でダメであるように思えるが…? • 決定性2階プッシュダウンオートマトンに対しても同様の議論は可能か? • Parsing Expression Grammar などの本質的にスタックを用いていそうな体系に対しても同様の議論は可能か?
{ an bn cn | n ≧ 1} はDCFLではない ? スタックの 高さ an bn cn 読んだ文字数 (経過時間) スタックが殆ど 空になってしまう
改訂マッチングMatch[x, y, E] ここまでは Fしない ここで 初めてF an bn b 任意のn について xn, xny, xny2, ... ではEを訪ねないが xn ynではEを訪ねる ならば,マッチングをしているという. bn-1 ただし,x, yは 空でない文字列
an bnを読んだことが分かるか? • { an bn cn | n ≧ 1} を受理するDPDA M • (が存在したとすると) 到達可能性解析 !! an bnを読んだときに 特殊な状態を訪れるDPDA M’を 構成することができる!
(後ろ向き)到達可能性解析 wi∈ L w2 c3 cn c1 c2 w1 F w3 wn Pre(F,L) がregular set
an bnを読んだことが分かるか? • { an bn cn | n ≧ 1} を受理するDPDA M • (が存在したとすると) Pre( F , c* ) を監視する an bnを読んだときに 特殊な状態を訪れるDPDA M’を 構成することができる!