「決定可能性」と「検証可能性」について説明してください


8

私は(直感的に)「決定可能性」と「検証可能性」という2つの用語を理解しようとしています。

私はかなりの量の検索を行い、手に入れることができるさまざまなテキストを調べました。しかし、彼らの直感的な理解は、特に2番目のものについては、私から逃れているようです。

見つかった多くの定義の中で、このページにある次の定義は、決定性を明確に説明してくれました。

特定の単語がその言語に属しているかどうかを判別するメソッドが存在する場合、その言語は決定可能と呼ばれます。

ただし、検証可能性についての並列定義は見つかりません。

Sipserによって計算書の理論、私たちは、見つけます

P =メンバーシップを すばやく決定できる言語のクラス。

NP =メンバーシップをすばやく確認できる言語のクラス 。

以上を踏まえ、検証可能性を理解したい。

できるだけ多くの例を挙げてください。ある意味、意味を理解しようとしますが、次の例ではまた混乱します。


この記事(cs.uky.edu/~lewis/cs-heuristic/text/class/p-np.html)は、この問題についていくつかの良い例を示しています。
Masroor 2013年

2
これらの概念は、PとNPに限定されません。計算可能性と列挙可能性に関する章に戻ります。そして、正式な定義を見てください。
ラファエル

回答:


7

ここで理解する鍵は、PとNPが決定問題のクラスであることです。つまり、それらのすべてに「はい/いいえ」の答えがあります。

したがって、3-SATのような問題がNP-Completeであると言う場合、それは3-SATのインスタンス(つまり、言語内の単語の可能性)が与えられた場合、その単語がそうであるかどうかをテストする既知の効率的な方法がないことを意味します言語で。

何かがNPにあると言うことは、言語内の各文字列にある種の「証明」が存在することを意味します。これは、入力の長さの多項式です。

たとえば、3-SATでは、ブール式の変数のセットにTrue / Falseの割り当てが存在し、式がtrueになることが求められます。テストしている単語はブール式です。式全体を真にする単一のソリューションがあるかどうかを確認する既知の方法はありません。ただし、変数のtrue / false値のセットがある場合、式がtrueと評価されるかどうかを(多項式時間で)チェックするのは非常に簡単です。

ここで重要なのは、テストしている単語が各変数の真偽値ではないということです。テストしている単語は変数を含む式であり、言語は真と評価されるすべてのブール式のセットです。

単語(式)が言語に含まれているかどうかを効率的にテストする方法がわからない(trueと評価できる)が、true / falseの割り当てのセットが与えられると、trueと評価されるかどうか、つまり「証明」であるかどうかを確認できます。 "単語(式)が言語にあること。したがって、問題はNPにありますが、Pにあることはわかっていません。

NPは実際には、非決定論的な多項式の解ける決定問題のクラスです。これは、非決定的チューリングマシンでは、複数のアクションの1つを実行できる「決定」ポイントがあり、多項式認証者は基本的に、各決定ポイントでどの決定を行うかを指示しているためです。


見つける「それ」はありません。PとNPは決定クラスであるため、検索の問題ではなく、はい/いいえの問題です。問題の潜在的な解決策には検索が含まれる可能性があります。つまり、問題が「存在するか...」と尋ねる場合ですが、技術的には何かを「見つける」必要はなく、条件が真か偽かをテストするだけです。
jmite 2013年

わかりました、すみません。あなたは完全に正しいです。
2013年

訂正していただきありがとうございます。私の間違いをもう一度申し訳ありません。
2013年

気にしないで!
jmite 2013年

まあそれは
役に立つ

1

あなたが私に問題を与えて、私に解決策を尋ねたとしましょう。私があなたに私の解決策のすべての証明を送るとき、私の証明の多項式の量だけを確認できるとしましょう(つまり、あなたは私の証明で効率的なコンピュータープログラムを実行できます)。プログラムを実行し、プログラムが何を出力するかに従って決定します。
例:グラフが3色で表示できるかどうかを尋ねた場合、私がしなければならないことは、グラフの3色を送信することです。次に、隣接するすべての頂点の色が異なるかどうかを確認し、色が合っていてプログラムが終了します。 「受け入れる」(そうでない場合、証明は受け入れられず、「拒否」で終了します)。
「迅速に」確認するために呼び出されます。
入力(長さnの文字列)が言語である場合(またはプログラムが1 \ "accept"を出力する場合)を表す「効率的な」「コンピュータプログラム」(または単に多項式アルゴリズム)を構築できる場合、これは複雑さのクラスPを意味します。
例:文字列のリスト(電話帳としましょう)を渡して、本にあるかどうかを言わなければならない名前について尋ねたとします。1つの解決策は、すべての名前をスローし、各名前を指定された名前と比較することです。つまり、線形時間で解決できるということです。
別の例は次のとおりです。グラフG =(V、E)とエッジe =(u、v)が与えられ、エッジがグラフ内にあるかどうかを伝えたいとします。

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