4

さまざまな価格の商品sを提供するショップが多数あります。aショップが特定の商品を提供していない可能性があります。お店同士(通り)をつなぐことができます。

タスクは、合計価格が最小になるように、あるホーム ロケーションから (およびホーム ロケーションに戻る) 最適なルート (サイクル) を見つけることです。合計価格は、商品の価格の合計と店舗間の距離の合計です。

商品の価格はショップごとにわかっています。この情報を入手するために店舗に行く必要はありません。

制約は次のとおりです。

  • バイヤー/旅行者は記事のリストを購入したいと考えており、すべての記事の可能性もあります
  • すべての商品は、少なくとも 1 つのショップで入手可能です
  • 店舗間の距離はコストで表されるため、ルートの合計コストを計算する際に、購入した商品のコストに単純に追加できます。
  • ショップは複数回訪れることができますが、それによって移動が増加し、ルートの総コストが高くなります

私はnetworkxで最初のモデリングを行い、各ノード (ショップ) が提供する製品のすべての価格のリストを保持する有向グラフ (距離/コストを重みとして) としてショップ (および家) をモデル化しました。

私の最初の試みは力ずくのソリューションを作成することでした。すべての単純なサイクルを反復することで成功しました。次に、サイクルごとに、移動コストと商品のコスト (つまり、サイクルのショップに表示される最低価格) を計算します。

現在、上記は機能しますが、スケーリングしません: すべてのサイクルを列挙するための時間の複雑さはO((n+e)(c+1))、n 個のノード、e 個のエッジ、および c 個の基本回路 (有向グラフのすべての基本回路を見つけることです。DB Johnson、SIAM Journal on Computing 4、いいえ. 1, 77-84, 1975 )。そして、サイクル (回路) の数は非常に急速に増加します。

# random 'streetlike' shop-graphs

number of shops: 3, cycles: 2
number of shops: 4, cycles: 11
number of shops: 5, cycles: 11
number of shops: 6, cycles: 60
number of shops: 7, cycles: 229
number of shops: 8, cycles: 868
number of shops: 9, cycles: 1399
number of shops: 10, cycles: 61139
number of shops: 11, cycles: 60066
number of shops: 12, cycles: 1246579
number of shops: 13, cycles: 7993420

よりスケーラブルな問題の説明について何か提案はありますか? 動的または線形計画法のソリューションについて考えていますが、アイデアを聞きたいです。


更新: このトピックに関する博士論文全体を見つけました: ftp://tesis.bbtk.ull.es/ccppytec/cp181.pdf

4

2 に答える 2

4

1 分前に、この正確な問題のように見えるウィキペディアのエントリにリンクされたコメントがありました: http://en.wikipedia.org/wiki/Traveling_purchaser_problem

そのページから、さまざまな解決方法を説明する論文へのリンクがいくつかあります。

動的プログラミング: http://www.di.unipi.it/optimize/Events/proceedings/T/C/4/TC4-1.pdf

タブー検索-- http://infos2008.fci.cu.edu.eg/infos/DSS_04_P024-030.pdf (これは「かなり良い」解決策を見つけるだけであり、必ずしも絶対的な最善とは限りませんが、はるかに高速である可能性があります)

編集:ありがとう、@soulcheck -- あなたのコメントはしばらく消えていましたが、今は戻ってきました。

于 2012-01-11T20:49:21.327 に答える
0

より多くの情報が必要だと思います-総「コスト」が移動距離と費やした金額の合計である場合、それらは同じ単位ではないために苦労します-したがって、距離が安い場合、これは巡回セールスマン問題のインスタンスになります-毎回の最低コストのアイテムを特定し、それらをすべて取得するためのルートを計算します。アイテムのコストと比較して距離が高い場合は、別の問題が発生します。

まとめ-この問題は、制約を追加すれば完了すると思います-走行距離1マイルあたりの費用は$ R $単位で、ソリューションの構築を開始できます...

于 2012-01-11T20:51:05.753 に答える