algorithm - 大量顶点的旅行商问题
问题描述
我需要以良好的准确性和足够的时间(如 1-2 天)解决大量顶点(30-100)的 TSP。我的图可以包含不对称边(g[i][j] 不等于 g[j][i])。
我尝试了贪婪,很少(也许是我的坏事,但这显示出比贪婪更糟糕的结果),简单的遗传算法(几乎比贪婪好),动态 O(2^n*n) (内存快耗尽)。
解决方案
嗯,30-100 并不是很多顶点。你错过了一些零吗?或者您正面临一些特殊的难以解决的案例,例如来自 TSPLIB 的 p43?
无论如何,如果您正在寻找一个好的启发式算法,我曾经使用 Ant Colony Optimization for Asymmetric TSP。它很容易实现并且提供了相当好的性能。
你可以看看我的旧实现:https ://github.com/aligusnet/optimer/tree/master/src/heuristics/aco
推荐阅读
- sql - 基于月度数据中特定条件的 SQL 报告
- google-bigquery - 在 BQ(标准)中以 yyyymmdd 格式转换日期
- c# - ComputeSignature 和手动生成的哈希是不同的
- fuse.js - 加权搜索选项在 Fuse.js 中是否正常工作?
- url - 如何使免费的超文本传输协议安全?
- javascript - jQuery 没有正确链接到 HTML 文件
- java - 类加载器问题。来自同一个 jar 的子类不是“子类型”
- html - 为什么里面
- java - 在 URL 查询参数中使用某些字符时出现 Java 9 HttpClient 异常
- swift - 将 JSON 编码器与 Codable 类型的计算变量一起使用