アルゴリズムの複雑さとオートマトンクラスの関係


8

次の質問に答えるグラフの描写またはテキストを見つけることができませんでした:アルゴリズムの複雑さ(クイックソートのベスト/ワーストケースなど)と、アルゴリズムを実装できるオートマトンのクラスの間に直接の関係はありますか?たとえば、オートマトンが表現できる複雑さの範囲はありますか?上記の質問に対する答えが「はい」の場合、関係を表すリソースはありますか?ありがとう!


1
「アルゴリズムを実装できるオートマトンのクラス」-どのセットからですか?通常、単一のタイプはありません。また、グーグル「複雑な動物園」。
ラファエル

回答:


7

はい、多くの場合、関係があります!

たとえば、反転境界カウンターマシンで受け入れられる言語はすべてであることが知られています(ここを参照)。P

同様に、NFAが特定の単語を受け入れるかどうかを決定する多項式時間アルゴリズムがあるため、すべての通常の言語がであることがわかります。P

ここで列挙するには数が多すぎますが、一般に、より限定された計算モデルは、より複雑なクラスにあります。


1
また、文脈自由言語はP(CYKアルゴリズム)である
フォンブランド、2016

9

既知の結果は次のとおりです。

  1. REG=DSPACE(1)=NSPACE(1)=DSPACE(o(loglogn))=NSPACE(o(loglogn))、ここでは通常の言語のセットです。証明については、 Wikipediaページを参照してください。REGDSPACE

  2. DCFLSC、ここでは決定論的な文脈自由言語のセットであり、はスティーブのクラスです。のWikipediaページを参照してください。DCFLSCDCFL

  3. NLLOGCFLAC1。ここで、は、文脈自由言語に対数変換可能な言語のセットです。のWikipediaページを参照してください。これにより、ログスペースの削減により、完全な言語も提供されます。LOGCFLLOGCFLLOGCFL

  4. CSL=NSPACE(n)、ここでは文脈依存言語のセットです。のWikipediaページを参照してください。CSLCSL

  5. 確定的非消去PDAで受け入れられる言語のクラスはであり、非確定的非消去PDAで受け入れられる言語のクラスはです。PDAのWikipediaページを参照してください。DSPACE(nlogn)NSPACE(n2)

  6. 2スタックオートマトンは、チューリングマシンと同等の機能を備えていますが、オートマトンを制限すると、モデルが弱くなります。サンピエトロのテクニカルレポートをご覧ください。


3

アルゴリズムの複雑さ(クイックソートのベスト/ワーストケースなど)と、アルゴリズムを実装できるオートマトンのクラスとの間に直接的な関係はありますか?

どのクラスのオートマトンが特定のアルゴリズムをクイックソートのように実装できるかという問題は、そのアルゴリズムの実装として何がカウントされるかが明確でないため、注意が必要です。クイックソートの場合、実行される比較は確かに同じでなければなりませんが、比較が行われる順序も同じである必要がありますか?入力の特定の要素への読み取りアクセスの順序はどうですか?特定の要素のコピー、移動、スワップ操作の順序は?

自分にとって重要な操作にはかなりの数のオラクルを指定する必要がありますが、その場合、アルゴリズムに基づいた非常に特殊な状況にあり、オートマトンの一般的なクラスの一般的な研究からはかなり離れています。このジレンマを回避する方法は、アルゴリズムの代わりに問題について話し、言語について話すことによって問題を形式化することです。

たとえば、オートマトンが表現できる複雑さの範囲はありますか?

プッシュダウンオートマトンは、その入力を1度だけ、前方向にしか読み取ることができないためです。ただし、マシンを必要に応じて前方および後方に入力を読み取ることができる部分に分割し、特定の入力位置(NL)へのポインターの有限数を維持する場合、および受信するプッシュダウンオートマトンである部分他の部分からの入力の場合、SAC 1(回路クラス)に等しい複雑度クラスLOGCFLを取得します。

これらの2つの部分を分離せず、NLにスタックを追加するだけで、複雑度クラスPに等しいオートマトンクラスAuxPDAを取得できます。ただし、そのオートマトンの実行時間(スタックおよび対数補助記憶装置を使用)を多項式時間に制限する場合は、NAUXPDA Pが得られます。これもLOGCFLと同じです。(そして、決定論的多項式ランタイムを主張し、スタックを廃棄するが、多対数補助記憶域を許可する場合、SCを取得します。)

一方、オートマトンがその入力を一度だけかつ順方向にしか読み取ることができないという制限を維持し、さらに、入力(つまり、入力シンボルそのオートマトンがスタックに何かをプッシュするか、スタックから何かをポップするか、スタックをそのままにするかを決定します)、次に、プッシュダウンオートマトンが表示され、ネストされた単語言語を正確に認識します。 。

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