P NPであると仮定すると、NP完全問題は「解決が難しいが、確認しやすい答えがあります」。正反対、つまり、正しい答えを計算するのは簡単ですが、任意の目的のソリューションを検証するのは難しい問題を考慮することは意味がありますか?
このような問題は次のいずれかを意味すると思います。
すべての正解を単純に計算することで検証を実行できるため、与えられた入力に対して指数関数的に多くの「正解」解答。
一部の「正しい」答えは簡単に計算できますが、他の答えは見つけるのが困難です。
P NPであると仮定すると、NP完全問題は「解決が難しいが、確認しやすい答えがあります」。正反対、つまり、正しい答えを計算するのは簡単ですが、任意の目的のソリューションを検証するのは難しい問題を考慮することは意味がありますか?
このような問題は次のいずれかを意味すると思います。
すべての正解を単純に計算することで検証を実行できるため、与えられた入力に対して指数関数的に多くの「正解」解答。
一部の「正しい」答えは簡単に計算できますが、他の答えは見つけるのが困難です。
回答:
人為的な問題に問題がなければ、たくさんの問題を作成できます。以下にいくつかを示します。
追加:ところで、最後の段落で書いたことが成り立つとは思わない:
そうしないと、すべての正解を単純に計算するだけで検証を実行できるため、このような問題は、与えられた入力に対して指数関数的に多くの「正解」解答を意味すると考えます。
問題に1つの解決策がある場合、実際に答えを確認することは、正しい解決策を計算することほど難しくありません。ただし、問題に1つの簡単な解決策と1つの難しい解決策がある場合、すべての解決策を効率的に計算することはできません。そのような問題の1つを示します(非常に人為的なものです)。
伊藤剛の答えは「主要な」答えをカバーしていますが、私が追加したい2つの微妙なメモがありました。
ソリューションの検証が困難な場合でも、短い証明文字列を使用してソリューションをチェックすることは簡単です。つまり、ソリューションに追加情報を少し拡張することで、簡単に確認できるようになります。検証は常にNPで行われます。これを確認する1つの方法は、ソリューションを計算するエージェントが使用するすべてのランダムビットを記録でき、検証者が同じランダム文字列を使用して同じ計算を実行できることです。(証明者はランダムビットを使用する必要があります。そうしないと、常に同じ答えが出力され、検証者は同じ方法で答えを計算することで常に簡単に確認できます。)
量子コンピューターの場合、これは非常に未解決の問題です。古典的なコンピューターの場合、検証者は常に証明者をシミュレートし、同じ答えが得られることを確認するようなことを行うことができます。いくつかのトリッキーな問題については、すべての(指数関数的に多くの)ソリューションにわたって均一な分布を生成する量子アルゴリズムが存在する可能性がありますが、検証は困難です。毎回異なる回答が返される可能性が高いため、証明者を再実行することはできません。
同様の種類の問題の例として、Deutsch-Jozsa問題はこれに少し苦しんでいます。オラクルがバランスの取れた機能でない場合、量子コンピューターはこれが事実であるとすぐに判断できますが、古典的なコンピューターがこれを検証することを可能にする短い証拠はありません。(これは別の量子コンピューターでチェックできるため、「類似した」問題にすぎません。また、チェックはPではなくても古典的なBPPで行われます。)