一个合理的假设!

为了讨论的方便起见,这一节我们要说明的是,事实上我们可以假设每个旅行者的速度都是不一样的。这样当我们说一些人中“最快的那个”,“次慢的那一个”时,都不会有歧义了,因为每个人的速度都是独一无二的。这个假设在讨论中并非必要,只是为了在证明的叙述过程中避免不断地啰嗦类似“我们让两人中最快的那个过桥,如果两人一样快,那就随便选一人”、“我们选在彼岸最快的那个人回来,如果上一步刚从此岸到彼岸的人中,其中有一个是现在彼岸走得最快的之一,我们就特别选择让他回来”之类的话。



  为什么我们可以假设每个旅行者的速度都是不一样的?原理就在于,我们可以把原来过桥时间相同的旅行者的过桥时间分别加上一个不同的但是非常非常小的量,这样就能保证旅行者的速度是不一样的了。但是因为加上去的量都非常小,所以对最终总的过桥时间的影响也非常小。所以这样改动过后得到的最佳方案在原来的条件下实施的话,也该是原来条件下的最佳方案。



  如果你对上面的说明满意了,就完全可以跳过这一节直接看第三节。这一节后面啰哩叭嗦的都是为了向一些对严格性要求比较高的朋友解释上面所说的方法的确可行。



  首先对于任何一组N个旅行者,假定他们过桥所需的时间分别为a1、a2、……、aN,它们都是大于零的实数。假设这个序列已经从小到大排列了(当然不排除其中有数相等)。每次都由第一个旅行者陪同一个人过桥,然后第一个旅行者回来,这样一个方案所需要的时间是:



    S = (N-2)*a1+a2+……+an



(第一个旅行者要返回N-2次)。所以最佳方案所需要的时间一定不会比S大。



  我们把一个过桥方案中让一个或者两个人拿着手电筒从桥的一边走到另一边的一次移动叫做这个方案中的一次移动或者“一步”,就是前面解四个人的题中使用“→”或“←”来表示的一个步骤。因为一次移动所需要的最少的时间是a1分钟,所以最佳方案中所需的移动步数一定不会多于K=[S/a1]步,这里"[]"是取整运算。



  让我们考虑一下所有在K步以内完成的方案。上面的例子表明这样的方案至少有一个,而且这样的方案显然只有有限多个,假设一共有M个。我们又设这些方案执行时要花的时间是



    t1、t2、……、tM



我们还可以假设上面这些时间已经从小到大排列了,t1就是最佳方案所需要的时间。



  现在是关键的步骤。我们要选取一个很小的正实数ε>0。它有多小呢?它必须满足下面的条件:



1) 对于任何两个过桥时间不同的旅行者(假设他们的过桥时间是a和b分钟),必须满足ε<|a-b|/N。换句话说,Nε要小于不同的旅行者过桥时间之间的差别。



2) 对于任何两个所需的完成时间不同的K步以内的方案(假设它们的所需时间是t和s分钟),必须满足ε<|t-s|/K。换句话说,Kε要小于不同的方案完成时间之间的差别。



因为旅行者的数目和方案的数目都是有限的,所以我们必然可以选取这样一个ε。至于这两个条件有什么用,我们马上就可以看到。



  假设若干个旅行者过桥的时间都是一样的a分钟,我们就把题目改一下,使得他们的过桥时间分别为



    a、a+ε/N、a+2ε/N、a+3ε/N……



如果有其他的旅行者过桥时间相互一样,也按照同样方式修改题目。这时在修改后的题目中,如果原来两个旅行者所需的过桥时间相同,那么现在就变得不同,差一个非常小的量(不会超过ε);如果原来两个旅行者所需的过桥时间不同,那么根据上面的条件1),现在还是不同,而且原来谁比较快,现在仍旧是他比较快。



  我们看看这个修改后的题目的最佳方案和原来的题目的最佳方案有什么联系。



  假设我们已经有一个关于修改后的题目的最佳方案,那么它所需要的时间必定是这个模样的:



    a + bε



我们知道bε部分是修改时把旅行者过桥时间“微调”了以后造成的,而且每走一步这部分的改变不会超过ε,所以我们有0<b<K=[S/a1]。



  如果我们把这个最佳移动方案照搬到原来的题目中去,所需要的时间就是a分钟。这个方案应该同样是原来题目中的最佳方案。否则的话,假设我们有另一个方案,所需时间为a',而且a'<a。根据上面取ε时候的条件2),我们有



    a' < a + Kε



把这个耗时a'的方案搬到改动过的题目里去的话,所需的时间就会是



    a' + b'ε



其中0<b'<K。所以根据a'<a+Kε



    a' + b'ε < a + bε



这就和a+bε是改动后题目的最佳方案所需的时间矛盾了。



  所以只要找到一个修改过的题目中的最佳方案,我们就得到了原来题目中的一个最佳方案,于是我们只要考虑所有旅行者的速度都不同的题目就可以了。
Das Leben ist wie eine Schachtel Pralinen. Man weiß nie, was man bekommt!
Share |
Share

TOP