简化您的工作流程:搜索 miniwebtool。
添加插件
主页 > 数学 > 进阶数学计算 > 旅行商问题求解器 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计算器样本量计算器百分比折扣计算器太阳、月亮与上升星座计算器 🌞🌙✨t检验计算器英尺英寸转换为厘米合并视频毛利率计算器VAT计算器cpm计算器Markdown编辑器随机选择器相关系数计算器HEX计算器磅转千克转换器FPS 转换器图片打码工具定期存款计算器🎮 游戏灵敏度转换器斜边计算器比例计算器标准偏差计算器 - 高精度音频提取器罗马数字转换器kg到lbs转换器SRT转为TXT工具条形码生成器血糖转换器分数计算器石头剪刀布生成器厘米到英尺和英寸转换器文本列提取器MAC地址生成器📅 日期计算器MAC 地址分析工具百分比变化计算器音频分割器对数计算器异常值计算器英寸到厘米转换器减重计算器AI Token 计数器SHA256 哈希生成器变异系数计算器视频转图片提取器椭圆周长计算器月亮星座计算器年龄计算器宏量营养素计算器 - 确定您的每日营养素需求百分比增长率计算器百分比增加计算器线性回归计算器调整视频速度随机分组生成器DOY日历利润计算器复利计算机股票平均成本计算器圆计算器厘米到英寸转换器🎰 抽卡保底计算器随机字符串生成器比例置信区间计算器随机IMEI生成器AI内容检测器图片压缩器为图片添加文字卡方检验计算器英尺到米转换器Log Base 10 计算器两点间距离计算器最简分数计算器因子计算器Facebook用户ID查询枢轴点计算器随机扑克牌生成器数字提取器One Rep Max (1RM) 计算器填字游戏制作器斜率截距式计算器组合计算器unix时间转换器srt时间偏移获取字符串长度复数计算器闰年清单RC时间常数计算器图片分割器年金现值计算器百分比计算器复合增长率计算器工资转换计算器AI标点符号添加器两个日期之间⬛ 宽高比计算器哈密顿路径检查器旅行商问题求解器 TSP线性规划求解器容斥原理计算器递推关系求解器邻接矩阵计算器拓扑排序计算器图着色计算器逻辑门模拟器卡诺图 (K-Map) 求解器布尔代数化简器分拆函数计算器数字根计算器斐波那契数检查器埃及分数计算器莫比乌斯函数计算器哥德巴赫猜想验证器梅森素数检查器孪生素数查找器亲和数检查器完全数检查器模幂运算计算器重复排列计算器效果量计算器相对风险计算器优势比计算器列联表计算器费舍尔精确检验计算器斯皮尔曼等级相关系数计算器贝塔分布计算器威布尔分布计算器指数分布计算器几何分布计算器负二项分布计算器超几何分布计算器F检验/F分布计算器贝叶斯定理计算器特征多项式计算器矩阵幂计算器乔列斯基分解计算器QR分解计算器矩阵对角化计算器克莱姆法则计算器列空间计算器零空间计算器向量夹角计算器单位向量计算器向量模计算器向量叉积计算器向量点积计算器矩阵乘法计算器逆矩阵计算器RREF计算器行最简阶梯形牛顿迭代法计算器雅可比矩阵计算器曲面积分计算器线积分计算器旋度计算器散度计算器梯度计算器多变量优化计算器微积分相关变化率求解器瞬时变化率计算器平均变化率计算器无限级数求和计算器级数收敛判定计算器幂级数计算器麦克劳林级数计算器洛必达法则计算器广义积分计算器辛普森法则计算器梯形法则计算器黎曼和计算器参数曲线绘图器旋转体表面积计算器旋转体体积计算器坐标几何距离计算器海伦公式计算器圆的切线计算器角平分线计算器内切圆计算器三角形外接圆计算器大圆距离计算器3D距离计算器环面计算器圆台计算器不规则多边形面积计算器正多边形计算器圆锥曲线识别器双曲线计算器抛物线计算器二项式定理展开计算器帕斯卡三角形生成器乘积符号计算器 (Pi记号)西格玛求和计算器有理根定理计算器笛卡尔符号法则计算器平行线和垂直线计算器直线方程计算器标准形式转斜截式转换器点斜式计算器非线性方程组求解器有理方程求解器字母方程求解器三角方程求解器指数方程求解器对数方程求解器四次方程求解器三次方程求解器估算计算器数字转分数转换器跳数生成器单位费率计算器上取整和下取整计算器绝对值计算器数列模式查找器位值图生成器运算顺序计算器PEMDAS竖式加减法计算器长乘法计算器乘法表生成器🎮 游戏货币换算器🎲 掉落概率计算器⚔️ DPS计算器❄️ 雪天计算器🚚 搬家费用估算器🔍 抄袭检测器📷 OCR / 图片文字识别📈 折线图制作工具🥧 饼图制作工具📊 柱状图制作工具🔊 音调发生器🖱️ 点击计数器在线记事本🌍 碳足迹计算器向 文胸尺码计算器轮胎尺寸计算器燃油费用计算器💧 露点计算器🌡️ 体感温度计算器🌬️ 风寒指数计算器⏰ 在线闹钟⏰ 考勤卡计算器📅 日期差计算器🕐 军事时间转换器⏱️ 小时计算器⏱️ 在线秒表⏱️ 倒计时器🌐 时区转换器地毯计算器挡土墙计算器HVAC容量计算器隔热材料计算器铺路石计算器钢筋计算器木材计算器平方英尺计算器交叉相乘计算器五数概括计算器百分位数计算器正态分布计算器p值计算器比率计算器配方法计算器四舍五入计算器长除法计算器科学计算器番茄钟学习计时器有效数字计算器考试成绩计算器加权成绩计算器期末成绩计算器成绩计算器谐振频率计算器阻抗计算器分贝 (dB) 计算器功率因数计算器变压器计算器线规计算器555定时器计算器电容器计算器并联电阻计算器分压器计算器LED电阻计算器摩尔/克/粒子转换器滴定计算器沸点计算器经验式计算器百分产率计算器化学计量计算器化学方程式配平器稀释计算器马力计算器扭矩计算器自由落体计算器理想气体状态方程计算器压力计算器密度计算器功和功率计算器势能计算器动能计算器抛体运动计算器动量计算器速度计算器加速度计算器力计算器网红营销ROI计算器ROAS计算器CTR计算器社交媒体用户名检查器社交媒体发帖时间优化器社交媒体ROI计算器Facebook广告费用计算器YouTube Shorts收益计算器Twitch收益计算器YouTube观看时间计算器Twitter/X 时间戳转换器YouTube频道统计TikTok收益计算器社交媒体图片尺寸指南Instagram字体生成器Twitter/X 字符计数器YouTube评论抽选器YouTube标签提取器YouTube缩略图下载器youtube收益估算器随机RPG角色生成器