Algorithm 具有最小停止次数的扭曲图遍历算法

Algorithm 具有最小停止次数的扭曲图遍历算法,algorithm,graph,Algorithm,Graph,我被这个家庭作业问题难住了。我想我的答案是正确的,但不确定如何证明。我也不确定如何接近证据。问题是: 盖科教授一直梦想着在北达科他州滑冰。他计划通过U.S.2号公路穿越该州,该公路从明尼苏达州东部边界的格兰德福克斯到蒙大拿州西部边界附近的威利斯顿。这位教授可以携带两升水,他可以滑冰m英里,直到水用完。(因为北达科他州相对平坦,教授不必担心上坡路段的饮用水速度比平地或下坡路段的饮用水速度要快)教授将从两公升水的Grand Forks出发。他的北达科他州官方地图显示了沿U.S.2的所有他可以补充水的

我被这个家庭作业问题难住了。我想我的答案是正确的,但不确定如何证明。我也不确定如何接近证据。问题是:

盖科教授一直梦想着在北达科他州滑冰。他计划通过U.S.2号公路穿越该州,该公路从明尼苏达州东部边界的格兰德福克斯到蒙大拿州西部边界附近的威利斯顿。这位教授可以携带两升水,他可以滑冰m英里,直到水用完。(因为北达科他州相对平坦,教授不必担心上坡路段的饮用水速度比平地或下坡路段的饮用水速度要快)教授将从两公升水的Grand Forks出发。他的北达科他州官方地图显示了沿U.S.2的所有他可以补充水的地方以及这些地方之间的距离

这位教授的目标是尽量减少他穿越该州路线上的停水次数。给出一个有效的方法,让他可以决定应该做哪些止水带。证明您的策略会产生最佳解决方案,并给出其运行时间

我认为他应该选择停车点,这样他就能在水用完之前跑完最远的距离。也就是说,在每一站,如果他继续前进,他会在下一站之前用完水


我不知道如何进行。我敢打赌这以前已经做过了,但我对计算机科学这一领域还比较陌生,需要一些指导。

这类问题的诀窍是将问题陈述为另一个问题,你可以证明一些东西

例如,对于这一个,您可以形成一个未加权图,其中停止点是节点,如果可以在两个节点之间移动而不停止,则两个节点之间有一条边。然后你所要做的就是在图中找到最短的路径,然后你就可以走了。
如果站点之间要行驶的距离相对较小,则这是很好的,否则图形会变得非常密集。我怀疑有一个更好的问题需要解决,因为您的路径在一条线上。

我希望我的第一次尝试真的被删除了。这是错误的


证明草图:如果贪婪失败了,那么将一座城市带到离起点(离终点线更远)比贪婪在某个点选择的城市更近的地方一定是最佳选择。忽略这个选择之前的问题,看看两个子问题:一个从贪婪选择的城市开始,另一个——包括子问题中的贪婪点。为了避免矛盾,离终点越远的城市,其最优解的跳数必须少于从贪婪点开始的最优解。忽略这两个子问题的最优解是如何得到的,只要它存在。由于非贪心起点包括贪心子问题,它必须具有相同或更多的最优子路径跳数(证明这一陈述。可以通过归纳法来完成,但我相信有一个更简单的证明,我实在想不起来了。也许你可以说它很明显?)。如果他们是平等的,那么贪婪的工作很好。如果它们更大,则会产生矛盾。

您的算法是正确的

尝试通过对通过的停车次数进行归纳来证明以下内容。在经过每个水路位置后,没有其他策略可以减少停靠次数,在那些停靠次数相同的站点中,没有其他策略可以为您留下更多的水

在0停止时,所有策略都是相等的,因此证明该语句很简单

如果你不在这个策略下的一站喝酒,结果很容易证明

如果你确实在一站喝酒,从上一站的陈述是正确的这一事实来看,你可以证明,要么是另一个策略在上一站做了更多的站(因此他们在站上没有领先,也不能在水上领先,因为你刚喝到水),要么是另一个策略也同样刚刚喝到水(否则,他们在下一站之前就会没水了)

这就足够填写归纳证明了


如果你正在为正式证明所需的概念以及如何做而苦苦挣扎,请参阅。我也在博客中介绍了我使用该讲义的经验。

他缺水后还能滑多少英里?或者是缺水==停止滑冰?他可以走
m
英里,水有点无关紧要。这个答案让我感到惊讶这对我来说是最有意义的。不过,我在旅程结束时开始工作,并朝着开始的方向前进。这对我来说更有意义,但似乎它可以双向工作。谢谢你的洞察力。