2016-12-18 1 views
0

Ich arbeite an der Schaffung eines grundlegenden Reisen Verkäufer Problem (TSP) in R, aber ich habe nicht die richtigen Ressourcen gefunden, um mir zu helfen optim() mit importierten Daten. Oder vielleicht optim() ist nicht wirklich, was ich suche. Ich werde mein Beispiel teilen und hoffe, dass Sie mich entweder in die richtige Richtung weisen oder bei dem spezifischen Problem helfen können.Wie mache ich eine Mathe-Optimierung (TSP) in R, vielleicht mit optim()

Es gibt eine Reihe von Orten, an denen ich versuche, die kürzeste Route zu finden. Jeder Standort muss einmal und nur einmal auf der Route besucht werden. Die Route muss am Ursprung beginnen und enden. Die möglichen Lösungen sind:

Von Herkunft> zu Location1> zu Location2> und zurück zur Herkunft oder

Von Herkunft> zu Location2> zu Location1> und

zu Herkunft zurück

Ich habe folgende importiert Daten in R:

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 

Jetzt versuche ich, um zu bestimmen, wie R zu sagen, dass:

die Zielfunktion die Summe o zu minimieren f die Entfernungen multipliziert mit x, wobei x eine Zuweisungsvariable (x = 0 oder 1) ist, die angibt, dass die spezifische Route ausgewählt wurde.

Die Einschränkungen sind:

(1) x zwischen 0 und 1 ist, x eine ganze Zahl ist (oder wenn es eine Verknüpfung mit Optim() ist, daß x ist binär, um anzuzeigen). (2) Summe von x über allen Ursprungsindizes = 1 (dh der LKW verlässt jeden Standort einmal) (3) Summe von x über alle Zielindizes = 1 (dh Lkw-Lkw kommt einmal an jedem Standort an) (4) initial Herkunft Index ist der Ursprung (5) endgültiger Zielindex ist der Ursprung

Mit optim(par, objective), ich bin nicht klar, was die Anfangsparameter wären oder wie würde ich diese Zielfunktion (dh min sum(i=1..n)sum(j=1...n) distance(i,j) * x(i,j))

+3

Haben Sie das [TSP-Paket] (https://cran.r-project.org/web/packages/TSP/index.html) gesehen? –

+1

Es gibt ein R-Paket speziell für diesen Zweck. Siehe das [TSP-Paket] (https://cran.r-project.org/web/packages/TSP/TSP.pdf) bei CRAN. – G5W

Antwort

Verwandte Themen