すべてのコンテキストフリー言語と通常言語は効率的に決定可能ですか?


12

この図に出くわしたのは、コンテキストフリー言語と通常言語が効率的な問題の(適切な)サブセット(おそらく)であることを示しています。効率的な問題は決定可能なすべての問題のサブセットであることを完全に理解しています。なぜなら、それらを解決することはできますが、非常に長い時間がかかる可能性があるからです。P

コンテキストフリー言語と標準言語がすべて効率的に決定できるのはなぜですか?それらを解決するのに時間がかからないということですか?

ここに画像の説明を入力してください


3
好奇心から、この姿はどこで見つけましたか?「効率的」は正式な概念ではなく、さまざまな人が異なることを意味するために使用する可能性があるため、説明するコンテキストがあると役立つ場合があります。
ジル 'SO-悪であるのをやめる

2
「効率的な」手段「場合」(として一般的です)、「効率的に」多項式があまりにも、巨大な値を得て、「非常に長い時間がない」という意味ではありません。複雑さの基本的な結果は、問題の無限のシーケンスがあり、それぞれが次の問題より適切に簡単であることに注意してください。これはPの内側と外側の両方を保持します。PP
ラファエル

@Raphael:この文脈では、効率的とは、多項式時間で決定可能な言語のクラスです。決まった時間に解決策を見つけることができない未決定の問題とは対照的に、決定可能な問題には「非常に長い時間がかかる可能性があります」を使用しました。
ジギリ

これを言うための正しい技術的な方法は、Wは、単語とLであるw∈Lが言語であるかどうかを判断することはP.すなわち/別名であるという点である「言語認識」
vzn

回答:


15

On

On3

PEバツPTMEP


2
より良い実行時間を持ち、実用的なほぼすべてのコンテキストフリー文法でこのアルゴリズムが非常に効率的(線形)に動作する、コンテキストフリー文法の行列乗算アルゴリズムに言及することができます:sciencedirect.com/science/article/pii / 030439759190180A
アレックス10ブリンク

@AlextenBrinkこの質問は、「多項式かどうか」よりも細かい粒度を要求するとは思わない。
ラファエル

1
On

1
実際、通常の言語の場合、決定性オートマトンは明示的にも必要ありません。powersetの構造を模倣する方法ですべての状態を追跡することにより、すべての計算を並行してシミュレートします。
ヘンドリック

1
@Dave:入力文字列の長さは線形で、ここに示されている他の複雑さのように、通常の固定言語用です。
ヘンドリック

1

DCによる回答の詳細化/「細字」:Chomsky標準形式のすべてのCFLは、CYKアルゴリズム使用して効率的に解析でき、すべてのCFLはCNFに変換できます。ただし、一部のアルゴリズムによっては、任意のCFLをCNF に変換すると、最悪の場合指数関数的なスペースが必要になる場合があります。(私はここではP-時間変換を保証するアルゴリズムを認識していないよ、誰ですか?一つは、このような非決定的CFLのかなど、すべてのエッジ/最悪のケースを検討しなければならない曖昧なものを。)ウィキペディアはCNFのセクションで述べて変換の順序

|G|222|G|

したがって、効率的に解析できないCFLが存在する可能性があります。ほとんどのプログラミング言語はCNFに効率的に変換できます(または、CNFまたはほぼCNFでほぼ定義されているため)。カーソル検索で最近の論文を見つけてください)。例えば、この古い(1973)Greibachの研究論文は、最悪の場合のパフォーマンスがPによって制限されないかもしれないことを示しているようです。

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