ベスト・ケースNP完全問題を解決するために、時間を実行していますか?
-
21-09-2019 - |
質問
特定のNP完全問題を解決するために、最大存在する最速のアルゴリズムは何ですか?例えば、走行セールスマンでのナイーブな実装では、O(N!)であるが、動的でそれをプログラム(N ^ 2 * 2 ^ n)のOで行うことができます。より良い実行している時間を持つ任意おそらく「簡単に」NP完全問題はありますか?
私は厳密解ではなく、近似値について興味があります。
解決
[...]それはO(N ^ 2 * 2 ^ N)で行うことができるプログラミング動的有します。より良い実行している時間を持つ任意おそらく「簡単に」NP完全問題はありますか?
のソート。あなたは多項式大きな入力に同じ溶液をエンコードする人工的な問題を作成することで、任意の多項式の要因を取り除くことができます。限り入力のみ多項式大きいほど、得られた問題は依然としてNP完全です。複雑さは、定義により、入力サイズは、関数が低くOクラスに入っ大きくなった場合、時間を実行する入力のサイズをマップする関数であるので。
はしたがって、入力とTSP上で実行されている同じアルゴリズムが複雑O(1 * 2 ^ SQRT(N))を有するであろう、N ^ 2無駄ビットで埋められます。
他のヒント
NP完全問題の特性は、NP中の問題のいずれかを機械的多項式時間、最大で、でNP完全問題のいずれかに変換することができることです。
そのため、任意のNP完全問題のための最善の解決策が何であれ、それは自動的に他のNP問題についても同様に、良い解決策です。
ダイナミックプログラミングは2 ^ nは、時間と2 ^ n個のスペースにセールスマン問題旅行解くことができることを考えると、同じことが他のすべてのNPの問題[ほか、プラス変換を適用するための時間の真でなければならない、私は推測する - それができたので、 ] 2 ^(N + 1)である。
一般的には、の最高のすべての組み合わせをしようとせず、一般的な巡回セールスマン問題の解決策(があるかもしれない負の距離など)を見つけることができません。
追加の制限を追加し、の最高の解決策を得るための必要条件を緩めることにより、あなたはかなり物事をスピードアップすることができます。
たとえば問題における距離は、「それはAからBに直接移動に時間がないですAからCまでBに行くよりも、」従うならば、あなたは、多項式の実行時間を取得することができます(つまり、Aショートカットが長くなることはありません)、< EM>とのあなたは結果を最大限に1.5倍の最適値であると一緒に暮らすことができます。 http://en.wikipedia.org/wiki/Travelling_salesman_problem#Metric_TSPする