简化您的工作流程:搜索 miniwebtool。
添加插件
你可能也用得上
盎司转毫升转换器L-System分形生成器迷宫生成器万花尺图案生成器
主页 > 数学 > 进阶数学计算 > 旅行商问题求解器 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计算器随机扑克牌生成器SRT转为TXT工具🎮 游戏灵敏度转换器MAC地址生成器🌡️ 体感温度计算器百分比折扣计算器图片打码工具比例计算器厘米到英尺和英寸转换器按字母顺序排序HEX计算器样本量计算器Instagram用户ID查询斜边计算器商和余数计算器定期存款计算器音频分割器cpm计算器质数检查器VAT计算器农历转换器太阳位置计算器FPS 转换器调整视频速度毛利率计算器合并视频罗马数字转换器随机IMEI生成器kg到lbs转换器📅 日期差计算器随机字符串生成器磅转千克转换器Log Base 10 计算器srt时间偏移Facebook用户ID查询血糖转换器真心话大冒险生成器随机选择器One Rep Max (1RM) 计算器视频转图片提取器位数计算器百分比到ppm转换器分数计算器L-System分形生成器极坐标方程绘图器JPG 转 PDF对数计算器为图片添加文字年度天数计算器 - 今天是今年的第几天随机化数字月相计算器🖱️ 点击计数器翻转视频PSI 转 Bar 转换器WHOIS查询指数计算器(高精度)根式化简器卡方检验计算器合并 PDF沸点计算器半衰期计算器年金现值计算器随机扑克手牌生成器kpa到psi转换器卧推计算器两点间距离计算器旋转视频骰子滚轮复数计算器开普勒第三定律计算器AI故事生成器MD5哈希生成器Zalgo文本生成器考拉兹猜想计算器黄金时刻和蓝调时刻计算器SHA256 哈希生成器📅 日期计算器为视频添加水印凯利公式计算器双曲函数计算器密码强度测试器积分计算器压缩 PDF圆计算器毫米到英寸转换器随机域名生成器随机日期生成器🥧 饼图制作工具磅到克转换器t检验计算器惯性矩计算器百分比增长率计算器颜料调色计算器不可见字符移除器图片分割器随机超能力生成器跑步年龄分级计算器退休倒计时拆分 PDF数字提取器最简分数计算器箱线图生成器随机数字选择器图着色计算器散点图制作器加价率计算器密码生成器平方根计算器最小公倍数计算器ASCII码表日历三角函数绘图器百分比变化计算器螺栓扭矩计算器迷宫生成器原根计算器圆锥展开图模板生成器英寸到厘米转换器八进制计算器利率计算器发音音标转换器📈 折线图制作工具死链检查器百分比增加计算器随机问题生成器体脂百分比计算器闰年清单反向文字多项式展开计算器相关系数计算器行数统计工具逻辑门模拟器SRT合并工具Voronoi 图生成器图片旋转器在线记事本每个月的天数配色方案生成器随机装备生成器csv转srt电视安装高度计算器百分比减少计算器相同字母异序词生成器组合计算器质数列表镶嵌图案生成器随机锦标赛对阵生成器隐形文本生成器DOY日历psi到kpa转换器YouTube Shorts收益计算器⏱️ 倒计时器删除线文字生成器反函数计算器反正切计算器复利储蓄计算器平均值计算器我的幸运数字是什么椭圆周长计算器楼梯计算器💧 露点计算器黄金分割计算器MAC 地址分析工具二选一问题生成器倒立文本生成器儒略日转换器变异系数计算器AI Token 计数器AI标点符号添加器AI解梦Bar to PSI 转换器RC时间常数计算器中位数计算器二进制计算器圆台计算器复利计算机泰勒级数计算器英尺到米转换器视频压缩器角速度计算器随机坐标生成器随机颜色生成器高斯分布生成器亚马逊 FBA 计算器十六进制转CMYK转换器排序数字日复利计算器百分比计算器自行车尺寸计算器随机RPG角色生成器Twitter (X) 视频转换器游戏昵称生成器团队名称生成器昵称生成器说唱艺名生成器乐队名称生成器奇幻名字生成器幸运饼干生成器绘画创意生成器日记提示生成器每日肯定语生成器赞美生成器搭讪台词生成器老爸笑话生成器随机笑话生成器随机冷知识生成器趣味问答题生成器猜词游戏单词生成器你画我猜词语生成器猜词游戏生成器破冰问题生成器我从来没有生成器AI感谢信生成器AI婚礼致辞生成器AI新闻稿生成器AI产品描述生成器AI视频脚本生成器AI YouTube标题和描述生成器AI Instagram标题生成器AI LinkedIn标题和简介生成器AI简历要点生成器AI求职信生成器AI说唱歌词生成器PDF展平工具PDF解锁-移除所有者密码PDF转文本提取器提取PDF页面PDF 字数统计PDF加密给PDF添加页码重新排序 PDF 页面删除 PDF 页面旋转 PDFPDF 转 JPGPT转PX转换器PX转REM转换器托拉转克转换器印度土地单位转换器微克转毫克转换器AI歌词生成器AI诗歌生成器AI翻译器AI文本摘要工具毫克到毫升转换器英里每小时转公里每小时转换器节到英里每小时转换器立方米转立方英尺立方英尺转立方码转换器平方英尺转平方米转换器平方米转平方英尺转换器盎司转毫升转换器毫升转盎司转换器加仑转升转换器升到加仑转换器千克到英石转换器英石转千克转换器英寸到毫米转换器英里转千米转换器千米转英里转换器华氏度到摄氏度转换器摄氏度转华氏度转换器背包尺寸计算器冲浪板体积计算器网球握把尺寸计算器头盔尺寸计算器手套尺寸计算器帽子尺码转换器单板滑雪板尺寸计算器双板滑雪板尺寸计算器速通分段计时器斯特伯福计分计算器飞镖残局计算器板球投球经济率计算器板球击球率计算器净得分率计算器KD比率计算器Elo 等级分计算器心率恢复计算器徒步时间计算器划船配速计算器FTP功率区间计算器Beep 测试计算器ACFT分数计算器Wilks & DOTS 计算器轮毂偏距计算器轮胎负荷指数与速度等级查询每英里成本计算器租赁买断计算器辛烷值混合计算器二冲程机油混合计算器发动机排量计算器沙发过门计算器木柴考得计算器空气净化器CADR计算器除湿机尺寸计算器吊扇尺寸计算器窗帘尺寸计算器地毯尺寸计算器挂画高度计算器电视尺寸计算器池塘容积和衬垫计算器泳池盐量计算器泳池容积计算器热水器尺寸计算器环氧树脂计算器栏杆立柱间距计算器踢脚线和装饰线条计算器壁板计算器露台木器染色剂计算器草籽计算器草皮计算器沥青计算器立方码计算器天线长度计算器电线管填充率计算器串联并联电容计算器感抗计算器房间照明计算器勒克斯转流明计算器流明转瓦特转换器发电机功率计算器mah到wh转换器三相功率计算器kVA计算器安培转瓦特计算器瓦特转安培计算器串联电阻计算器摩擦力计算器斜面计算器机械效益计算器声速计算器波速计算器浮力计算器终端速度计算器德布罗意波长计算器光子能量计算器emc2计算器时间膨胀计算器逃逸速度计算器万有引力计算器比尔-朗伯定律计算器能斯特方程计算器渗透压计算器沸点升高计算器凝固点降低计算器百分比组成计算器当量浓度计算器质量摩尔浓度计算器pKa到Ka转换器亨德森-哈塞尔巴尔赫计算器理论产量计算器限制反应物计算器电子排布计算器交互式元素周期表AI教案生成器AI测验生成器引用生成器 (APA/MLA/Chicago)出勤率计算器AP分数计算器ACT分数计算器SAT分数计算器youtube收益估算器