2016-12-18 7 views
0

Rで基本的なトラベルセールスマン問題(TSP)を作成していますが、私が使用するのに役立つリソースは見つかりませんでしたoptim()にインポートされたデータ。またはおそらくoptim()は私が探しているものではありません。私は私の例を共有し、あなたが正しい方向に私を指し示すか、特定の問題を助けることができると願っています。Rで数学最適化(TSP)を行う方法、おそらくはoptim()で

最短ルートを探すための一連の場所があります。各場所は、経路上で一度だけ訪れる必要があります。ルートはOriginで開始および終了する必要があります。位置1にLOCATION2へ

LOCATION2に位置1、原点から

>>>バック原点または原点から

>>>バック起源

私は次のようにインポートした:可能な解決策がありますRへのデータ:目的関数は合計Oを最小限に抑えることである

distances <- read.csv("distances_test.csv") 

ORIGIN-----DESTINATION-----DISTANCE 

Origin-----Location2-------4.161917178 

Origin-----Location1-------31.16857564 

Location1--Location2-------30.75861336 

Location1--Origin----------31.16857564 

Location2--Location1-------30.75861336 

Location2--Origin----------4.161917178 

は今、私はそれをRに伝える方法を決定しようとしていますfは距離をx倍したもので、xは特定の経路が選択されたことを示す代入変数(x = 0または1)です。

制約がある:

(1)xは(xはバイナリであることを示すために)またはOPTIMとショートカットが(存在する場合)、xは整数であり、0と1の間です。 (2)すべての起点インデックスに対するxの合計= 1(トラックが各場所を一度離している) (3)すべての目的地指数に対するxの合計= 1(トラックトラックが各地に一度到着する) 原点指数は、(5)、最終的な送信先インデックスは、Origin optim(par, objective)

で、私は最初のパラメータは次のようになりか、私は(すなわちmin sum(i=1..n)sum(j=1...n) distance(i,j) * x(i,j)

+3

あなたは[TSPパッケージ](https://cran.r-project.org/web/packages/TSP/index.html)を見ましたか? –

+1

この目的のために特にRパッケージがあります。 CRANの[TSPパッケージ](https://cran.r-project.org/web/packages/TSP/TSP.pdf)を参照してください。 – G5W

答えて

1

Rこの目的関数を書くだろうか何に明確ではないよ起源 です単純なsimplexアルゴリズムを使ってTSPを解きたい場合はsolve()関数を使用すると助けになります。また、この問題のいくつかのヒューリスティックがあるこのWebサイトを見ることもできますeで実装されています https://operatiology.wordpress.com/2014/05/15/traveling-salesman-problem-in-r/

関連する問題