从给邮递员规划送牛奶路线到把望远镜送入火星,TSP 这个问题的战场真不小。为了理解为什么绕一圈会变得那么难,咱们先看看它的基础:一个推销员需要访问所有城市再回到原点,要求总路程最短。虽然这听起来像小学生就能解决的数学题,但实际情况完全不同。一旦城市数量超过3个,问题就不再那么简单。穷举所有可能的路线所需时间会随着城市数量指数级增长。拿8个城市来说还能硬算出来,但如果有33个城市的话,计算时间可能会长达83亿亿年,比宇宙的年龄还久。 1962年,宝洁公司曾经悬赏1万美元解决这个问题。这在当时可不是个小数目,在纽约买一套海景公寓都够了。宝洁公司给出的这个问题成为了图论历史上最昂贵的“脑筋急转弯”。 TSP 的应用范围非常广泛。比如说送餐、邮递、物流这些行业的路径优化其实就是基于 TSP 或它的变种。路径优化1%,全国就可以省下几千万级别的运费。马里兰大学的团队还把切萨皮克湾的200个监测站数据也拆成了 TSP 问题,一次出海就相当于跑完一次“全球马拉松”。美国的石油公司甚至用它来规划海上采油平台的巡检路线。 在外太空里也需要解决类似的问题。哈勃望远镜每次转轴都需要消耗大量能量。如果把观测顺序排列成TSP的最短回路,就可以更有效地利用燃料。NASA的工程师们把这类问题称为“太空经济的命脉”。在电子制造领域,PCB工厂也需要解决类似的问题:钻头从一端飞到另一端,轨迹越短磨损越少。一条节省5%的路线意味着每月可以省下数十万的维护成本。 虽然精确算法能提供最优解,但现实中往往需要“够用就好”的近似解。贪心算法、启发式搜索还有元启发式这三个门派经常被用来解决这类问题。贪心算法简单粗暴,每步都选最短边;启发式搜索用启发函数估算节点价值;元启发式则模拟自然法则,在全局搜索和局部精修之间找到平衡。 稍微改动一下条件,TSP 就会变成其他类型的问题:无回溯最短路径、哈密尔顿回路、欧拉回路还有七桥问题等。每个改动都可能催生新的算法流派。目前 TSP 的研究正在往更深的层次发展:图嵌入、图卷积、图神经网络还有量子计算都在这个战场上较量着。它们的目标是让绕一圈变得更快、更省、更智能。 未来还会有更多的进展值得期待:Dijkstra 算法和 Floyd 算法在无回溯最短路径上展开较量;哈密尔顿回路探讨了经过所有点一次的路径;欧拉回路关注的是经过所有边一次的路径;七桥问题更是图论的发源地之一。这些看似简单的改动实际上催生了许多新算法流派。 宝洁公司曾经悬赏1万美元解决33城市的 TSP 问题;NASA 的工程师们把这类问题称为“太空经济的命脉”;马里兰大学团队把切萨皮克湾的200个监测站数据拆成了 TSP;Dijkstra 算法和 Floyd 算法是无回溯最短路径的主要算法;哈密尔顿回路和欧拉回路是两种不同类型的路径问题;七桥问题是经典图论的发源地;电子制造领域需要解决毫米级精度下的 PCB 钻孔路线问题;邮递员送牛奶和外星望远镜都属于 TSP 的应用场景之一;节省5%的 PCB 钻孔路线意味着每月可以省下数十万维护成本;马里兰大学团队在切萨皮克湾进行了大规模 TSP 实验;马里兰大学团队在切萨皮克湾进行了大规模 TSP 实验;NASA 的工程师们在哈勃望远镜上应用了 TSP 优化策略;电子制造领域需要解决毫米级精度下的 PCB 钻孔路线问题;邮递员送牛奶和外星望远镜都属于 TSP 的应用场景之一;节省5%的 PCB 钻孔路线意味着每月可以省下数十万维护成本。