SATソルバーがあるときにTSPソルバーが必要なのはなぜですか?


回答:


11

TL; DR:多項式の削減は問題のサイズを大きくします。特定のソルバーを使用すると、問題の構造を利用できます。

あるNP完全問題を別の問題に縮小すると、問題のサイズは通常多項式で大きくなります。たとえば、ノードのグラフのHAMPATH をSATに削減すると、結果の式のサイズは(単純なTSP-> SATで発生する定数については覚えていません削減)。クック・レビンの定理を使用する場合、チューリングマシンには非常に大きな(多項式の)オーバーヘッドがあるため、成長はさらに大きくなる可能性があります。NP完全性は、ほとんどが理論上の考え方です。多項式時間の削減も同様です。多くの理論的論文、それがどれほど実用的であるかについては何も述べておらず、削減があるとだけ述べていますΘ

TSPはSAT と同じくらい難しいと非公式に仮定しましょう。つまり、各問題に最先端のソルバーを使用する場合、ノードのTSP と句を使用したSAT を解決するには、同様の計算リソースが必要になります。これで、問題をSATに減らして既存のSATソルバーを使用するよりも、別のソルバーを書くほうが実用的であることが簡単にわかります。それは多項式オーバーヘッドに関するすべてです。

注意すべきことがもう1つあります。正確な問題は通常、広範な問題よりも単純です。TSPをSATに削減すると、SATソルバーは数式の基本構造について何も知りません。そしてもちろん、TSPの特別なソルバーは、入力がグラフであるという事実を扱います。問題は最短のハミルトニアンパスを見つけることなどです。

一部の問題については、SATへの削減は妥当である可能性がありますが、ほとんどの場合、問題が十分に調査されておらず(かつクールなソルバーが存在しない場合)、削減によって問題のサイズが大幅に増加しない場合です。SATソルバーは、依然として多くの実用的な目的で非常に強力です。


1
これは本質的に正しい答えだと思います。ただし、問題が減少し、サイズがわずかに増加するだけの可能性があります。また、SATソルバーは賢く、特に問題のエンコーディングが適切な場合は構造を検出できます。したがって、SATソルバーに勝る問題固有のソルバーを構築するには、おそらく少しの作業が必要です。
Juho
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.