意思決定問題に関する簡単な質問


8

(私は私の最初の理論的なcsコースの真ん中にいるので、おそらく愚かな質問であることを事前に謝罪します。)

したがって、一部の言語LはPにあると言います。これは、xがLにある場合は1を出力し、それ以外の場合は0を出力するチューリングマシンを構築できることを意味します。さらに、マシンは多項式時間で実行されます。これは分かります。

しかし、多くの人々は、Pには決定問題ではないように見える特定の問題があると言います。たとえば、線形制約の対象となる関数を最大化します。「線形計画法」がPにあるとはどういう意味ですか?確かに「最大値を見つける」ことは決断の問題ではありませんか?

回答:


16

正解です。正式にはPは決定問題のみを含みます。しかし、多くの決定問題には対応する最適化問題があります。グラフで最大のマッチングのサイズを見つけたり、グラフでsからtへの最短経路の長さを見つけたりするなどです。

多くの場合、これらの質問は、「グラフにk個を超えるエッジを使用したマッチングがありますか?」または「k未満の長さのs-> tパスはありますか?」

明らかに、最適化問題を解決できれば、決定問題を解決できます。逆もまた真の場合が多く、対数係数までです。たとえば、グラフ内の最大マッチングのサイズを知りたい場合は、「グラフにkを超えるエッジを使用したマッチングがあるか」という決定問題に対してアルゴリズムを繰り返し呼び出すことができます。そして、値 "k"でバイナリ検索を行います。この方法では、多くてもlog(m)の呼び出しが必要になります。ここで、mはエッジの数です。ほとんどの問題について、同様の削減があります。


アーロンの答えに沿って、線形計画法は、興味のある境界kを指定することにより、決定問題として定式化できます。これは一般的なトリックです。たとえば、すべての線形制約を満たし、かつ目的関数の値がk以上(それぞれ、以下)になるように、目的関数の変数に値が割り当てられていますか?たとえば、目的関数を最大化/最小化することにより、多項式時間でこれを決定できます。
ダニエルアポン

つまり、「Xの解決策はありますか?」Pの場合、通常(常にではない)の問題「Xの解決策はですか?」多項式時間で解けるでしょうか?
Xodarap

3
Xodarap:そうです。通常、意思決定の問題をすばやく解決できるため、検索の問題をすばやく解決できますが、常に解決できるわけではありません。有名な反例として:ナッシュの定理により、すべてのマトリックスゲームは混合ナッシュ均衡を持っているため、「このゲームはナッシュ均衡を持っていますか」という決定問題を解決するのは簡単です-答えはイエスです。しかし、一般的なゲームで実際にナッシュ均衡を見つけることは難しいと考えられています。
アーロンロス

これの別の例は、ラドンの定理です。R ^ dにd + 2ポイントが与えられると、2つの凸包が交差するように、ポイントが2つのセットに分割されます。候補パーティションを簡単に確認できますが、見つけるのは困難です。
Suresh Venkat

11

正式には、多項式時間で計算できる関数のクラスはFPと呼ばれます。区別は単なる構文であり、実際の混乱は起こらないため、「FP」ではなく「P」とよく言われます。


8

FNP複雑度クラス」というトピックでは、非常によく似た質問がすでに出されています。そこでは、質問者は本質的にNPとFNPの複雑さのクラスの違いを尋ねました。PとFPの複雑度クラスの違いを尋ねています。つまり、PとNPは決定クラスであり、「F」バージョン(FPとFNP)は関数クラスです。詳細については、上記のトピックを参照してください。


7

解決策がどれだけ優れているかを測定する方法がある場合、解決策を必要とする問題は意思決定問題に変わる可能性があります。決定バージョンでは、すべてのソリューションがしきい値よりも優れている必要があると指定されています。たとえば、線形計画法の決定版は、線形計画が実行可能かどうかを尋ねることによって得られます。


ああ、私は実際にはこれを認識していません-特定の値の実行可能なソリューションがあるかどうかを決定するよりも、実行可能なソリューションがあるかどうかを決定することは一般的ですか?
ダニエルアポン

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