質問

特定の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する

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top