简化您的工作流程:搜索 miniwebtool。
添加插件
相关工具
哈密顿路径检查器卡诺图 (K-Map) 求解器线性规划求解器网络最大流计算器稳定婚姻问题求解器
主页 > 数学 > 进阶数学计算 > 旅行商问题求解器 TSP
 

旅行商问题求解器 TSP

寻找访问每个城市恰好一次并返回起点的最短路径。针对小规模实例使用精确动态规划 (Held-Karp) 算法,针对大规模实例使用最近邻 + 2-opt 启发式算法。支持输入坐标或距离矩阵,并生成动画 SVG 路径图。

旅行商问题求解器 TSP
坐标行:A, 10, 2010 20。矩阵行:0 10 15 20 — 每行一行,方阵,非负。 最多 40 个城市。
以逗号或空格分隔的标签,每行矩阵对应一个。省略则默认为 A, B, C...

Embed 旅行商问题求解器 TSP Widget

旅行商问题求解器 TSP

旅行商问题求解器是一个实用且具有教育意义的计算器,用于解决经典的旅行商问题 (TSP):给定一组城市和两两之间的距离,寻找访问每个城市恰好一次并返回起点的最短可能路径。该求解器接受平面坐标或自定义距离矩阵,根据问题规模自动选择最佳算法,并将生成的路线渲染为动画 SVG 地图。

什么是旅行商问题?

形式上,给定一个带有顶点集 $V = \{1, 2, \dots, n\}$ 和边权重 $d(i, j)$ 的完全赋权图 $G = (V, E)$,TSP 寻求顶点的排列 $\pi$,使以下各项最小化:

最小化 $\sum_{i=1}^{n-1} d(\pi(i), \pi(i+1)) + d(\pi(n), \pi(1))$

最后一项用于闭合回路。TSP 是组合优化领域中历史最悠久、研究最深入的问题之一——它在一般情况下是 NP-hard 的,这意味着目前还没有已知算法能在多项式时间内解决所有实例。尽管如此,它出现在无数现实世界的应用中:车辆路径规划、PCB 钻孔、DNA 测序、仓库拣选路径、天文观测调度,甚至是农村邮递。

此求解器的工作原理

Held–Karp 动态规划(精确算法)

对于小规模实例(最多 12 个城市),求解器使用 1962 年由 Richard Bellman 和 Michael Held & Richard Karp 独立发表的 Held–Karp 算法计算可证明的最优路径。关键递推式如下,其中 $C(S, j)$ 是从顶点 1 到顶点 $j$ 恰好访问子集 $S$ 的最短路径:

$C(S, j) = \min_{k \in S \setminus \{j\}} [ C(S \setminus \{j\}, k) + d(k, j) ]$

最优路径成本即为 $\min_{j} [C(\{1,\dots,n\}, j) + d(j, 1)]$。Held–Karp 的运行时间复杂度为 $O(2^n \cdot n^2)$,空间复杂度为 $O(2^n \cdot n)$——这比暴力破解的 $n!$ 有了巨大进步,但仍然是指数级的。超过约 20 个城市后,内存占用就会变得不切实际。

Nearest-Neighbor + 2-opt(启发式算法)

对于较大的实例,求解器使用两阶段启发式算法。首先,Nearest-Neighbor(最近邻算法)通过从每个起始顶点贪婪地走向最近的未访问城市来构建一条快速路径。求解器尝试多个起始顶点并保留最佳路径。然后,2-opt 局部搜索通过迭代地移除两条边并以唯一可能的另一种方式重新连接产生的两条路径来改进路线:

之前: ... a — b ... c — d ... 2-opt 交换后: ... a — c ... b — d ... 如果 d(a,c) + d(b,d) < d(a,b) + d(c,d) → 接受交换,反转子路径 b..c

从几何上看,2-opt 移除了路线中的所有“交叉”:任何两个交叉的线段总是可以通过解叉来获得更短的总长度。算法在没有单一交换能提供帮助的局部最优处停止,这被称为 2-optimal 路线。在现实的欧几里得实例中,2-opt 通常能在几毫秒内找到与真实最优解相差 2–5% 以内的路线。

输入格式

坐标模式 (x, y)

每行一个城市。每行格式为 标签, x, y —— 标签是可选的。求解器会自动计算欧几里得距离,并在真实位置可视化城市。

A, 10, 20 B, 40, 70 C, 75, 30 Paris: 2.35, 48.86 10 20 ← 自动标记为 C1

距离矩阵模式

一个 $n \times n$ 的非负距离方阵,每行一行,值由空格或逗号分隔。矩阵可以是对称的或非对称的——非对称矩阵模拟了单行道、可用性不同的机票价格以及受风力影响的旅行。可在“矩阵标签”字段中选择性地提供标签。

0 10 15 20 10 0 35 25 15 35 0 30 20 25 30 0

算法比较

算法 时间复杂度 内存消耗 结果质量 实用规模
暴力破解 O(n!) O(n) 最优 n ≤ 10
Held–Karp DP O(2n · n²) O(2n · n) 最优 n ≤ 20
Nearest-Neighbor O(n²) O(n) 比最优约差 25% n ≤ 数千
NN + 2-opt O(n² · passes) O(n) 比最优约差 2–5% n ≤ 数百

如何使用此求解器

  1. 选择输入模式。 如果您的城市有明确的 (x, y) 位置,请选择“坐标”;如果您的成本是非欧几里得或非对称的,请选择“距离矩阵”。
  2. 粘贴或输入数据。 每行一个城市或一行矩阵。点击表单上方的快速示例按钮可预填有效示例。
  3. 选择算法。 保持“自动”以使用正确的默认设置:当实例足够小以保证可证明的最优性时使用 Held–Karp,否则使用 NN + 2-opt。如果您想进行比较,可以强制指定特定算法。
  4. 选择闭合或开放。 闭合路径返回起点——这是传统的 TSP。开放路径模式解决相关的哈米尔顿路径问题,即销售员在不同的城市结束行程。
  5. 点击“求解”。 结果页面会显示路径总长度、路线动画 SVG(点击“重放动画”再次观看)、完整城市序列、逐边明细以及突出显示路径边的距离矩阵。

实例详解

考虑五个城市——一个矩形加一个顶点:A (0, 0), B (4, 0), C (4, 3), D (0, 3), E (2, 5)。求解器返回:

现实世界的应用

常见问题解答

什么是旅行商问题?

旅行商问题 (TSP) 要求找到访问每个城市恰好一次并返回起始城市的最短可能路径。它是组合优化中最著名的问题之一,在一般情况下属于 NP-hard 问题,这意味着目前还没有已知算法能在多项式时间内解决所有实例。

什么是 Held–Karp 算法?

Held–Karp 是一种动态规划算法,它在 $O(2^n \cdot n^2)$ 时间和 $O(2^n \cdot n)$ 内存内精确解决 TSP。它比暴力破解(n 阶乘)快得多,但仍是指数级的,因此在实践中仅用于约 20 个城市以下的实例。本求解器在城市数量不超过 12 个时使用 Held–Karp。

什么是 2-opt,为什么要使用它?

2-opt 是一种局部搜索启发式算法,它反复从当前路径中移除两条边,并以另一种可能的方式重新连接产生的两条路径。当新路径更短时,保留该交换。2-opt 每次迭代在多项式时间内运行,并能一致地找到与最优路径相差几个百分点以内的路径,这就是为什么它是大规模 TSP 实例的经典首选启发式算法。

我该什么时候使用坐标还是距离矩阵?

当您的城市位于具有直线距离的平面上时(例如地图上的点、仓库位置或电路板上的钻孔),请使用坐标。当成对成本非欧几里得时(例如机票价格、考虑交通的旅行时间、单行道距离或非对称成本),请使用距离矩阵。矩阵模式接受任何非负距离,甚至是由于单行道引起的非对称距离。

2-opt 解决方案是最优的吗?

不是,2-opt 返回的是 2-最优路径,这意味着无法通过交换单对边来产生更短的路线。这是一个局部最优解,在表现良好的实例上通常在全局最优解的几个百分点以内,但不保证是全局最佳。对于小规模实例的可证明最优路径,请选择 Held–Karp。

此工具是否支持非对称距离矩阵?

支持。在距离矩阵模式下,您可以输入任何非负方阵,包括 $D[i][j]$ 与 $D[j][i]$ 不同的非对称矩阵。Held–Karp 和 2-opt 都能正确处理非对称矩阵。这对于具有单行道、交通或受风力影响的飞行成本等实际路由问题非常有用。

延伸阅读

引用此内容、页面或工具为:

"旅行商问题求解器 TSP" 于 https://MiniWebtool.com/zh-cn/旅行商问题求解器-tsp/,来自 MiniWebtool,https://MiniWebtool.com/

由 miniwebtool 团队制作。更新日期:2026年4月21日

您还可以尝试我们的 AI数学解题器 GPT,通过自然语言问答解决您的数学问题。

进阶数学计算:

常用工具:

随机信用卡生成器MAC地址查找彩票号码生成器网址提取器凯利公式计算器英尺英寸转换为厘米太阳、月亮与上升星座计算器 🌞🌙✨相对标准偏差计算器CAGR计算器🌡️ 体感温度计算器cpm计算器厘米到英尺和英寸转换器定期存款计算器比例计算器VAT计算器SRT转为TXT工具样本量计算器调整视频速度MAC地址生成器毛利率计算器百分比折扣计算器🎮 游戏灵敏度转换器FPS 转换器分数计算器音频提取器斜边计算器图片打码工具太阳位置计算器百分比增长率计算器srt时间偏移音频分割器血糖转换器对数计算器随机字符串生成器随机选择器随机扑克牌生成器kg到lbs转换器t检验计算器HEX计算器百分比变化计算器高斯分布生成器随机化数字wpa密钥生成器为图片添加文字随机IMEI生成器卡方检验计算器职位查找器One Rep Max (1RM) 计算器SHA256 哈希生成器合并视频💧 露点计算器年龄计算器真心话大冒险生成器随机超能力生成器圆形面积计算器视频转图片提取器原根计算器磅转千克转换器SRT合并工具Facebook用户ID查询Log Base 10 计算器年度天数计算器 - 今天是今年的第几天直方图生成器圆计算器YouTube频道统计随机英文句子生成器两点间距离计算器农历转换器椭圆周长计算器三角函数绘图器百分比减少计算器误差函数计算器DOY日历MAC 地址分析工具质数检查器足球 xG预期进球计算器标准偏差计算器 - 高精度指数计算器-高精度📅 日期计算器根式化简器随机虚假地址生成器随机颜色生成器多项式展开计算器罗马数字转换器🔊 音调发生器kpa到psi转换器YouTube缩略图下载器体脂百分比计算器泰勒级数计算器积分计算器英寸到厘米转换器随机RPG角色生成器图片压缩器🎲 掉落概率计算器死链检查器颜料调色计算器利润计算器变异系数计算器图片分割器黄金时刻和蓝调时刻计算器MD5哈希生成器偏导数计算器百分比增加计算器亚马逊 FBA 计算器先付年金现值计算器八进制计算器利率计算器真实命中率计算器📈 折线图制作工具月亮星座计算器删除空格半衰期计算器按位计算器迷宫生成器雷诺数计算器因子计算器楼梯计算器逻辑门模拟器HEX转换器PER计算器位数计算器发音音标转换器朱利亚集合生成器百分比计算器科学记数法计算器英尺到米转换器视频分割器IPv4/IPv6到十六进制转换器万花尺图案生成器圆柱体体积计算器 高精度快速傅里叶变换FFT计算器角度转换器伊斯兰历转换器名人名言搜索 (英文)最简分数计算器条形码生成器身高百分位数计算器阻抗计算器PSI 转 Bar 转换器不可见字符移除器图片Base64转换器图片添加线条排序数字水星逆行日历🖱️ 点击计数器获取字符串长度退休倒计时随机生日生成器随机英文单词生成器黄金分割计算器ppm到百分比转换器Voronoi 图生成器分贝 (dB) 计算器平方根计算器投注赔率转换器数字提取器瘦体重计算器花样字体生成器质数分解计算器配方法计算器锥体表面积计算器 高精度随机字母生成器随机整数生成器AI Token 计数器atan2计算器互补误差函数计算器十进制到十六进制转换器卧推计算器在视频中添加或替换音频按字母顺序排序旋转视频沸点计算器燃气与电力成本对比百分比到ppm转换器磅到克转换器组合计算器英亩到平方米转换器隐形文本生成器F检验/F分布计算器npv计算器为视频添加水印平均值计算器新月和满月日历随机名称生成器随机装备生成器AI标点符号添加器Argon2哈希生成器PayPal手续费计算器Webhook测试器体型计算器克到磅转换器有效命中率计算器比例置信区间计算器比较分数计算器直线方程计算器相关系数计算器翻转视频配色方案生成器随机小数生成器Zalgo文本生成器CGPA转百分比转换器简易评分器 EZ Grader养育孩子成本计算器宝宝奶量计算器尿布尺寸计算器婴儿名字生成器宝宝眼睛颜色预测器儿童BMI百分位计算器儿童身高预测器hcg翻倍时间计算器试管婴儿预产期计算器着床计算器中国生男生女预测器ISO 8601 日期格式化工具儒略日转换器小睡计算器月相计算器日出日落计算器世界时钟日期罗马数字转换器戒瘾天数计算器半岁生日计算器纪念日计算器周数计算器小费分配计算器电子邮件营销ROI计算器每条线索成本计算器营运资本计算器边际贡献计算器FIFO / LIFO 计算器安全库存计算器再订货点计算器经济订货量eoq计算器折旧计算器手工艺品定价计算器批发价格计算器Shopify 利润计算器eBay费用计算器Etsy费用计算器Stripe 手续费计算器十一奉献计算器天课计算器英国印花税计算器HRA免税计算器服务酬金计算器NPS计算器EPF计算器PPF计算器RD计算器SWP计算器税前工资倒推计算器贷款比较计算器信用使用率计算器CD阶梯计算器美国国库券T-Bill计算器I 系列储蓄债券计算器529大学储蓄计算器HSA计算器遣散费计算器加薪计算器发票生成器出差津贴计算器里程报销计算器房租涨幅计算器按比例租金计算器房租承受能力计算器汽车落地价计算器购车预算计算器摩托车贷款计算器房车贷款计算器船舶贷款计算器土地贷款计算器建筑贷款计算器只付利息抵押贷款计算器气球贷计算器房贷点数计算器PMI计算器双周房贷还款计算器ARM浮动利率房贷计算器VA贷款计算器实发工资计算器AI SQL 查询生成器AI正则表达式生成器AI 数据可视化工具 (粘贴 CSV)AI文本语气分析器AI简历分析器AI单位转换器自然语言AI道歉信生成器AI礼貌借口生成器AI旅行行程生成器AI阅读清单生成器AI健身计划生成器AI膳食计划生成器AI礼物点子生成器ai食谱生成器根据现有食材奖学金投资回报率计算器大学费用计算器语言学习流利度小时数计算器词汇测验生成器康奈尔笔记生成器学习曲线计算器抽认卡间隔重复调度器瓷砖填缝剂计算器洗碗机装载优化器洗涤剂用量计算器染发剂调配计算器打印成本计算器礼品卡小费计算器搬家纸箱数量计算器储物单元尺寸计算器胶囊衣橱搭配计算器皮带长度计算器液压缸推力计算器滑轮组计算器齿轮比计算器机械比热容计算器热膨胀计算器热传递计算器伯努利方程计算器潮汐时间计算器星空可见度计算器绳结打法参考工具睡袋温度评级指南帐篷地布尺寸计算器背包旅行食物重量计算器奈史密斯徒步配速计算器刺绣线长度计算器树脂浇注用量计算器串珠图案计算器陶土收缩率计算器折纸纸张尺寸计算器被子滚边计算器十字绣绣线计算器针织图案计算器编织针尺寸转换器钩针尺寸转换器马匹干草计算器宠物航空旅行航空箱尺寸查询器爬虫栖息地UVB计算器鸟笼尺寸计算器鱼缸加热棒瓦数计算器猫砂盆数量计算器前照灯光束距离计算器发动机压缩比计算器轮胎花纹磨损计算器挂车舌重计算器车辆重量分布计算器旅行费用分摊计算器刹车距离计算器工伤赔偿计算器遗嘱资产分配计算器商标分类查询工具专利申请费计算器销售税关联检查器刑期减免计算器诉讼时效计算器Airbnb 定价优化器室友房租分摊计算器Section 8 租金计算器BRRRR 方法计算器现金对现金回报率计算器租金收益率计算器1031 交换计算器财富增长可视化工具午餐花费计算器健身房 vs 家庭健身花费计算器咖啡花费计算器远程办公省钱计算器副业ROI计算器订阅费用追踪器SaaS定价计算器自由职业项目报价计算器烟熏木材搭配指南发酵时间计算器腌制时间计算器饮食限制食谱筛选器香料替代查找器咖啡因半衰期追踪器标准杯计算器葡萄酒搭配建议器攀岩难度等级转换器自行车齿轮比计算器钓鱼结强度计算器瑜伽体式保持计时器游泳SWOLF计算器跑步成绩预测计算器拳击出拳力量计算器橄榄球得分计算器板球得分率计算器网球计分器Wells评分计算器 (DVT/PE)格拉斯哥昏迷评分计算器阿普加评分计算器FFMI计算器库珀12分钟跑步计算器一英里步行测试Rockport计算器瘦体重力量计算器碳水化合物胰岛素比例计算器胰岛素敏感系数计算器希伯来历转换器跨文化年龄计算器多久以前计算器还有多久倒计时计算器日期模式生成器中间日期计算器日期添加工作日工作日计算器词频分析器句子长度方差分析器海明威风格可读性编辑器维吉尼亚密码工具埃特巴什密码工具ROT13编码解码器EXIF数据查看与移除工具猪拉丁文翻译器倒推首字母缩写生成器首字母缩写生成器全字母句检查器漏字文检测器图像转SVG描摹器图片转 ASCII 艺术转换器JSON Schema 生成器TypeScript 在线演练场Less 到 CSS 编译器SCSS转CSS编译器SVG 转 React/JSX 转换器查询字符串生成器URL解析器UUID验证和解码器HTTP状态码参考cURL命令构建器谢尔宾斯基三角形生成器3D曲面绘图器极坐标方程绘图器曼德博集合探索器L-System分形生成器Delaunay 三角剖分生成器镶嵌图案生成器六西格玛过程能力计算器youtube收益估算器