R语言旅行推销员问题TSP

原文连接:http://tecdat.cn/?p=6551

经常使用术语中的旅行推销员问题(TSP)是最复杂的问题之一,归结为组合优化。旅行到n个城市(顶点)须要检查(n-1)!可能性。3,000个地点有4 * 10 ^ 9131个可能的解决方案。app

本文调查了R包的性能:TSP和tspmeta。结果对个人使用很是满意。性能

如下代码输入您的TSP225.csv文件并输出您的解决方案和可视化。生成的'tour'对象是一类TOUR和整数;它包含您的解决方案。优化

coords.df <- data.frame(long=TSP225$Long, lat=TSP225$Lat)coords.mx <- as.matrix(coords.df)# Compute distance matrixdist.mx <- dist(coords.mx)# Construct a TSP objecttsp.ins <- tsp_instance(coords.mx, dist.mx )#tour <- run_solver(tsp.ins, method="2-opt")#Plotautoplot(tsp.ins, tour)

比较解决方案:下图显示了7种启发式解决方案的最佳旅游长度和协和式的确切解决方案。对于协和解决方案,我使用了在UW-Madison主持的NEOS-Server。spa

methods <- c("nearest_insertion" "2-opt")tours <- sapply(methods  simplify = FALSE)dotchart( ), )

在2D中的#2 3000个随机顶点3d

显然,随着顶点数量的增加,精确解和其余启发式解决方案之间的差别显着增长。2-opt解决方案最接近最优。重复的2-opt解决方案和挑选最小的值让我很是接近于确切的解决方案 。rest

相关文章
相关标签/搜索