简化您的工作流程:搜索 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地址生成器样本量计算器cpm计算器图片打码工具厘米到英尺和英寸转换器随机IMEI生成器音频分割器🎮 游戏灵敏度转换器HEX计算器定期存款计算器调整视频速度百分比折扣计算器FPS 转换器考拉兹猜想计算器t检验计算器VAT计算器毛利率计算器SHA256 哈希生成器农历转换器真心话大冒险生成器kg到lbs转换器对数计算器比例计算器太阳位置计算器Log Base 10 计算器血糖转换器质数检查器百分比变化计算器随机字符串生成器📅 日期计算器Facebook用户ID查询斜边计算器卡方检验计算器随机选择器One Rep Max (1RM) 计算器罗马数字转换器为图片添加文字随机化数字职位查找器DOY日历随机字母生成器密码强度测试器翻转视频年度天数计算器 - 今天是今年的第几天图片压缩器标准偏差计算器 - 高精度英寸到厘米转换器磅转千克转换器位数计算器🖱️ 点击计数器随机装备生成器srt时间偏移椭圆周长计算器余弦定理计算器六西格玛过程能力计算器半衰期计算器颜料调色计算器根式化简器泰勒级数计算器视频转图片提取器百分比到ppm转换器💧 露点计算器PSI 转 Bar 转换器十六进制到十进制转换器两点间距离计算器积分计算器配色方案生成器变异系数计算器合并视频填字游戏制作器抛硬币极坐标方程绘图器螺栓扭矩计算器三角函数绘图器分贝 (dB) 计算器利润计算器弧长计算器条形码生成器Instagram用户ID查询原根计算器年龄计算器MD5哈希生成器分数计算器卧推计算器多项式展开计算器⏱️ 小时计算器新月和满月日历米到英尺转换器花样字体生成器随机虚假地址生成器利率计算器日出日落计算器雷诺数计算器因子计算器获取字符串长度视频分割器圆柱体体积计算器 高精度圆计算器最简分数计算器百分比计算器黄金时刻和蓝调时刻计算器体脂百分比计算器图片分割器年金现值计算器月亮星座计算器高斯分布生成器模计算器相关系数计算器🔊 音调发生器双重积分计算器复数计算器质数列表📷 OCR / 图片文字识别YouTube频道统计伊斯兰历转换器发音音标转换器圆锥展开图模板生成器百分比增加计算器视频压缩器随机颜色生成器隐形文本生成器🥧 饼图制作工具⚔️ DPS计算器kpa到psi转换器总和计算器数字提取器死链检查器磅到克转换器组合计算器AI Token 计数器Mann-Whitney U 检验计算器⏱️ 倒计时器圆形面积计算器随机坐标生成器Argon2哈希生成器GIF 转 MP4 转换器图片添加线条循环播放视频快速傅里叶变换FFT计算器📈 折线图制作工具数织生成器-picross杀手数独生成器迷宫生成器邻接矩阵计算器阅读时间计算器日历Webhook测试器摩尔斯电码生成器百分比增长率计算器误差函数计算器SRT合并工具Voronoi 图生成器凯撒密码工具指数计算器-高精度随机写作提示生成器atan2计算器MAC 地址分析工具中点计算器数字随机化器每个月的天数随机数学题生成器黄金分割计算器anova计算器JWT生成器圆台计算器度分秒到十进制转换器🎰 抽卡保底计算器排序数字样本标准差计算器百分比减少计算器直方图生成器矩形计算器随机域名生成器马丁格尔策略计算器两个日期之间亚马逊 FBA 计算器商和余数计算器图片Base64转换器康奈尔笔记生成器惯性矩计算器我的幸运数字是什么按位计算器旋转视频特征值和特征向量计算器随机英文单词生成器AI标点符号添加器p值计算器自行车尺寸计算器速通分段计时器斯特伯福计分计算器飞镖残局计算器板球投球经济率计算器板球击球率计算器净得分率计算器KD比率计算器Elo 等级分计算器心率恢复计算器徒步时间计算器划船配速计算器跑步年龄分级计算器FTP功率区间计算器Beep 测试计算器ACFT分数计算器Wilks & DOTS 计算器轮毂偏距计算器轮胎负荷指数与速度等级查询每英里成本计算器租赁买断计算器辛烷值混合计算器二冲程机油混合计算器发动机排量计算器沙发过门计算器木柴考得计算器空气净化器CADR计算器除湿机尺寸计算器吊扇尺寸计算器窗帘尺寸计算器地毯尺寸计算器挂画高度计算器电视安装高度计算器电视尺寸计算器池塘容积和衬垫计算器泳池盐量计算器泳池容积计算器热水器尺寸计算器环氧树脂计算器栏杆立柱间距计算器踢脚线和装饰线条计算器壁板计算器露台木器染色剂计算器草籽计算器草皮计算器沥青计算器立方码计算器天线长度计算器电线管填充率计算器串联并联电容计算器感抗计算器房间照明计算器勒克斯转流明计算器流明转瓦特转换器发电机功率计算器mah到wh转换器三相功率计算器kVA计算器安培转瓦特计算器瓦特转安培计算器串联电阻计算器摩擦力计算器斜面计算器机械效益计算器声速计算器波速计算器浮力计算器终端速度计算器德布罗意波长计算器光子能量计算器emc2计算器时间膨胀计算器开普勒第三定律计算器逃逸速度计算器万有引力计算器比尔-朗伯定律计算器能斯特方程计算器渗透压计算器沸点升高计算器凝固点降低计算器百分比组成计算器当量浓度计算器质量摩尔浓度计算器pKa到Ka转换器亨德森-哈塞尔巴尔赫计算器理论产量计算器限制反应物计算器电子排布计算器交互式元素周期表AI教案生成器AI测验生成器引用生成器 (APA/MLA/Chicago)出勤率计算器AP分数计算器ACT分数计算器SAT分数计算器百分比转CGPA转换器CGPA转百分比转换器简易评分器 EZ Grader养育孩子成本计算器宝宝奶量计算器尿布尺寸计算器婴儿名字生成器宝宝眼睛颜色预测器儿童BMI百分位计算器儿童身高预测器hcg翻倍时间计算器试管婴儿预产期计算器着床计算器中国生男生女预测器ISO 8601 日期格式化工具儒略日转换器小睡计算器月相计算器世界时钟日期罗马数字转换器退休倒计时戒瘾天数计算器半岁生日计算器纪念日计算器周数计算器小费分配计算器电子邮件营销ROI计算器每条线索成本计算器营运资本计算器youtube收益估算器随机RPG角色生成器