スペースを使用したCFG解析


18

時間で文脈自由文法を解析できる多数のアルゴリズムがあります。行列乗算を使用すると、それよりも漸近的に高速化することもできます。O(n3)

ただし、私が知っている任意のCFGを解析するためのすべてのアルゴリズムは、最悪の場合のスペース使用量が(ただし、確かに、その行列乗算アルゴリズムのスペース使用量はわかりません)。私は、このスペース使用量を改善するアルゴリズムがあるかどうか疑問に思っていました(時間制限は無視します)。Ω(n2)

精神的に連結した後、私の心にポップアップ質問とΩ (N 2)全てのCFG解析アルゴリズムに結合した空間知っていた。おそらく実用的な関心はありませんが、単に知りたいと思うものです。CSG=NDSPACE(n)⊆DSPACE(n2)Ω(n2)


5
他のすべての解析ア​​ルゴリズムについては知りませんが、行列乗算に基づくアルゴリズムは空間を取ります。参照:cstheory.stackexchange.com/questions/1313/...Θ(n2)
— ライアン・ウィリアムズ

回答:


14

この答えの前半は、複雑な理論用語でのデイビッドの答えを効率的に(からlog 2(n ))言い換えることにすぎません。ログ4⁡(n)ログ2⁡(n)

文脈自由言語は、複雑度クラスこのクラスは、対数深度の半無限回路によって同等に特徴付けられます。これらは多項式サイズの回路であり、ORゲートには境界のないファンインがあり、ANDゲートには境界のあるファンインがあります(たとえば2)。ログファクターで深さを増やすことにより、すべての無制限のファンインORゲートを有界のファンインORに置き換えることができます。これにより、問題がN C 2に置かれました。LOGCFL。NC2。どのように表示することは困難ではないによって評価することができるD S P A C E (ログ2(NC2たとえば、これまでに探索されたゲートで子供の左/右のシーケンスを維持する深さ優先探索。結果はLewis-Hartmanisの論文に戻ります。これにより、Davidのスペース制限が改善されますが、 n log n時間かかります。よくわかりません。DSPACE(ログ2⁡(n))nログ⁡n

時間と空間のトレードオフを理解する従来の方法は、小石ゲームを使用することです。CYKに関するいくつかの論文がありました。より最近の試みはこのプレゼンテーションの最初の部分にあります。ここでは、(a)指数時間で線形空間を実現できること、および(b)時間をに制限する場合、CYKは少なくともn 2の空間を使用することを示します。O(n2)n2

確かに一見に値する非常に興味深い問題です。


リンクのおかげで、それは非常に興味深いプレゼンテーションでした。
— アレックス10ブリンク

13

O(ログ2⁡n)O(1)O(ログ⁡n)

O(ログ4⁡n)


3
ルイスらによる同様の結果に出会ったばかりです。ここに:ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=5397245。それでも、多項式時間のみを使用して2次空間よりもうまく処理できるかどうかは疑問です。
— アレックス10ブリンク

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.