zoukankan      html  css  js  c++  java
  • R语言旅行推销员问题TSP

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

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

    本文调查了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 matrix
    
    dist.mx <- dist(coords.mx)
    
    # Construct a TSP object
    
    tsp.ins <- tsp_instance(coords.mx, dist.mx )
    
    #
    
    tour <- run_solver(tsp.ins, method="2-opt")
    
    #Plot
    
    autoplot(tsp.ins, tour)

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

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

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

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

    如果您有任何疑问,请在下面发表评论。   

  • 相关阅读:
    博客作业6
    博客作业5
    3137102127 林志坤(实验3)
    3137102127 林志坤(实验2)
    个人简介
    Bookstore项目测试缺陷报告
    自我介绍
    第6次博客园作业
    软件测试第6次作业
    《构建之法》心得体会
  • 原文地址:https://www.cnblogs.com/tecdat/p/11515474.html
Copyright © 2011-2022 走看看