web-dev-qa-db-ja.com

巡回購入者問題の正確な解決策のアルゴリズム

Traveling Purchaser Problem の正確なソリューションを提供するアルゴリズムを知っていますか?私は発見的で確率的なアプローチしか見つけることができません。

私はこれまでに遺伝的アルゴリズムを実装しましたが、その性質上、それ自体では終了せず、常に最適な結果が得られるとは限りません。したがって、私は自分のソリューションを特定のテストデータセットの正確な/最適値と比較できるように、問題の正確なソリューションを探しています。

旅行購入者問題(TPP)を聞いたことがない方のために、これはではない巡回セールスマン問題(TSP)ですが、それを一般化したものです。したがって、これもNP困難です。

7
scravy

問題のNPハードドメインは、現在の数学的知識に関する限り、すべての順列を試して正しい答えを選択することによってのみ問題を解決できることを意味します。

力ずくの方法よりも効率的に問題を解くことができれば、ボーナスとして数学でノーブル賞を獲得できます。何十年もの間、最高の数学者たちはこの問題に対する一般的な答えに取り組んできました。

おそらく、NP-Hard問題ソルバーのテストデータセットを作成する場合、NP-Hard問題を解決するのではなく、テストデータを逆方向に設計して、既知の回答でNP-Hard問題を作成するというアプローチが考えられます。 -それがそれ自体でNP-Hard問題であるかどうかさえ知りません。

16
mattnz

整数線形計画法を試すこともできますが、私は 移動するセールスマンの定式化 のみを提供できますが、一度アイデアを理解すれば、変更することは難しくありません。他のオプションは、いくつかの制約プログラミングライブラリを使用することです(JaCoP: http://www.jacop.eu/ など)。私の経験では、通常のデスクトップコンピューターを使用して、数百のノードでNP困難な問題を解決することが可能です。データが大きい場合、近似/遺伝的プログラミングなどを使用する必要があるよりも、正確な解決策を得ることができません。

1
malejpavouk

たとえNPが難しい場合でも、TPPは実際には(TSPとして)さまざまな正確な方法で効率的に解決できます。動的プログラミング、数学プログラミング(分岐および切断、分岐および限定)、および制約プログラミングベースのアルゴリズムが存在し、OPPのオペレーションリサーチ/コンピュータサイエンスの文献で提案されています。このトピックに関する最新の調査を読むことをお勧めします。

もちろん、TPPを正確に解決することの実際的な複雑さは、市場と製品(特に市場)の数とともに増大します。ただし、適切な方法を使用することにより、150/200の市場と200/300の製品を使用する最新のコンピューターでは、適切な時間内に正確なソリューションを見つけることができます。

一部の既知のソルバー(Cplex、Gurobiなど)も、モデルが入力として指定されている場合、TPPのいくつかの小/中インスタンスを正確に解決できます。これは、ヒューリスティックをバーチマークするためだけにこれらのソリューションが必要な場合に非常に役立ちます。その場合、問題の数学的定式化は対処するべき重要な問題です。

PS:民間伝承では、NP困難な問題を解く多項式の時間の複雑さを持つ正確なアルゴリズムを見つけた場合、Clay InstituteがMillenium Problemsの1つとして提案した「P vs NP」の未解決問題も解決し、勝つ100万ドル。

0
bamboss