企业文化

依次收集全部检查点后怎样安排最短闭合路线:规则验证第07组

2026-11-14

地图上有多个检查点时,每次都走向最近的未访问点,最后回起点的路可能很长。把已经访问过哪些点与当前位置一起记为状态,才能比较完整路线的总代价。

本例采用的规则

本例六个检查点,零号为起终点,横纵步行距离作为两点间代价,途中没有障碍。状态包含已访问集合和最后一点,逐次加入一个未访问点;访问完一至五号后,再计入返回零号的距离,选择总代价最小的路线。

独立输入与结果

检查点零至五的坐标依次为[(0, 6), (3, 3), (8, 0), (0, 2), (5, 0), (7, 6)]。

两两距离矩阵: [0, 6, 14, 4, 11, 7] [6, 0, 8, 4, 5, 7] [14, 8, 0, 10, 3, 7] [4, 4, 10, 0, 7, 11] [11, 5, 3, 7, 0, 8] [7, 7, 7, 11, 8, 0] 按回程前最后一点分别取最优: (34, (0, 3, 4, 2, 5, 1, 0)) (40, (0, 3, 1, 5, 4, 2, 0)) (30, (0, 5, 2, 4, 1, 3, 0)) (36, (0, 3, 1, 5, 2, 4, 0)) (30, (0, 3, 1, 4, 2, 5, 0)) 全局最短路线与成本:(0, 3, 1, 4, 2, 5, 0) / 30。 最近优先路线[0, 3, 1, 4, 2, 5, 0],成本30,比最短多0。

表中的编号仅用于区分当前案例里的对象,不能与数值大小或另一份记录中的身份混淆。先核对输入、单位和边界约定,再跟随过程检查输出。空列表、不存在和数值零各有不同含义,分数则保留精确形式便于复算。

检查与练习

每个检查点应恰好作为访问目标出现一次,起点只在首尾重复。两点间最短行走路径可能经过别的点坐标,但本例只把明确列为目标的到访计入访问顺序。贪心路线仅用于对照,并不预设它一定更差或一定最优。

先按路线逐段加距离,特别核对最后一段回程。几条路线总长相同是正常现象,本例同成本取编号序列字典序较小者。只比较路线的前几段不能判断整体优劣,较贵的一段可能换来更便宜的后续连接。

结论适用范围

这些距离是无障碍格子移动模型,不包含转弯时间、单行通道或必须遵守的到达顺序。状态数量随检查点增加很快,六点练习能完整枚举验证,不代表同样办法适合任意规模。

这是一份可重复演算的游戏知识记录,结论只对写明的输入与规则成立。练习时可以先改变一个条件,再对照中间记录寻找变化从哪一步开始。若结果不同,应先确认操作顺序和边界定义,而不是只改最后一个数字;原始输入与完整过程应一起保留。