Score 0
Best -
配送顺序

配送顺序

按你要行驶的顺序点选配送点,凑出以街区计算的最短环线。

玩法

方块是仓库,圆圈是配送点。按你打算行驶的顺序点选配送点,然后按出发,货车最后会回到仓库。距离按街区计算,所以只能沿街道走,不能走对角线。每回合都会显示一个基准,那是这张图上实际存在的最短环线距离,由搜索精确算出而非估计。达到它,或者落在该回合允许的宽限街区之内,就算通过;从第七回合起宽限为 0,只接受真正的最短路线。每回合结束后会用绿色画出最优路线,让你看见自己漏掉了什么。每一回合多一个配送点、宽限更紧、计划时间更短。失败三次游戏结束,分数就是你通过的回合数。

技巧与策略

这个游戏之所以能有**基准**,是因为最短路线不是见仁见智的事。十二个配送点的可能顺序有数亿种,但真正的最小值依然能被精确求出,而你正是在和那个数字比。

几乎每个人最先想到的办法,是**去还没走过的最近的那个点**。它感觉很高效,但一量就知道不是。在数百张图上,五个点时约多走 **2 街区**,十二个点时接近 **6 街区**;在大图上,它找到真正最短路线的概率只有**六分之一**。绕着地图扫一圈更差,大约是这个损失的**两倍**。完全不动脑筋地排顺序,要多走三四十个街区。

为什么最近优先会失败?因为它**先花掉便宜的步子,把贵的留到最后**。每次你挑最近的点,同时也决定了此后你站在哪里;而被跳过的点不会消失,它们在地图边缘等着,最后你不得不横穿整座城去捡那个落单的。贪心路线的**最后一段几乎总是最长的一段**。

所以要规划的是**环**,不是下一步。点任何东西之前先看地图,找出轮廓:哪些点在最外围,环要往哪个方向绕。然后由外向内,把中间的点塞进它们本来就更靠近的那一边。看着像绕路的点,**顺路捎上几乎不花钱**,回头去取就是双倍。

有两个习惯很值。第一,**尽早定下行进方向**:一条路线和它的逆序长度永远相同,所以真正的问题是哪些点属于去程、哪些属于回程。第二,路线排完后**找交叉**:如果路径与自己交叉,把牵涉到的那两个点顺序对调,几乎总能变短。解开交叉是挤出最后一两个街区最省力的办法,而从第七回合起,那一两个街区就是整局游戏。