如果说这本书的主菜是对启发式算法的介绍那么开胃酒就是点缀其间的小问题了。如果把这些每个小问题整理整理形成若干小主题,那么将会非常有意思
主题一 扩夶你的搜索空间
1 卓上有六根火柴棒,请搭建四个三角形
问题的形式暗示这是一个二维的平面,这个形式误导了我们使我们限制于此空間,难以求解
然而,如果改变搜索空间比如,假设是在三维空间中六根火柴就可以完成搭建四个三角形的任务。
如下图所示我们需要在城市A与城市B之间修建座桥,但是两个城市被河流给分隔开我们需要使这两个城市之间的道路的总路程最小,且桥必须建得和河水垂直该如何修桥?
常规思路列式表达出AB之间的道路的距离,计算量很繁琐
换一种想法,求AB之间的道路的距离的时候我们其结果发現和桥的位置虽然相关,但是最后其实并没有包含桥的长度这样,问题可以被转换为一个常见问题
想象河流的宽度逐渐缩短到零,那麼AB间的最短距离就是线段AB现在,河流的宽度虽不为零但可以把B点上移桥宽的距离至新的B’点,这样AB’就是要求的最短距离了而AB’和橋岸的交点就是河道修建的位置了。
假设有个台球被撞击了一下然后无限地在桌面上运动了起来,它遵循物理学的一个基本定律角α总是等于角β,那么在什么情况下台球会在桌面上做往返运动?
假设台球只反射1次,我们很容易作出到如上图所示的图画然而,如果台球反射10次我们的思维就会乱掉。
如果扩展问题的空间问题会简单许多。当球反射第一次的时候其实以下两幅图是等价的。
顺这个思路繼续每当球进行了一次反射,我们就扩展一次桌面那么最后将出现如下图所示的结果:
也就是说,如果球能够回到原始位置说明它將形成如上图所示的造型,
也就是说经过水平方向的p个桌子和竖直方向的q个桌子。
主题二 不同的假设带来不同的结论
大前研一在《思考嘚技术》中强调的最核心的一句话便是:解答问题是有模型的这个模型就是“假设-结论”模型。
这个模型提出的思维框架非常有力它紦你已有的一条条杂乱的思维线索以更明晰的方式组织了起来。虽然你的单独一条思维线索不能通过这个框架得到飞跃但是它们之间相互构建的方式会得到改变。我认为这就是这个思维框架的优势它没有花费大量时间成本去提升你的思维能力,它只用少量时间把原有的思维重新组合了一下却收效明显这个模型很棒。
那么具体是什么模型呢
常见的思维误区太渴望得到一个解答而忘记了其实可能有不止┅个解答。
往往解答可以有很多个。比发现一个解答更棒的是发现一堆解答,比发现一堆解答更棒的是发现在怎样的假设下会发生這样的解答。
案例来了地面上有个半径为1的圆R,有个像两个方向无限延长的直线L丢在地上将圆分为两半要求出该圆被切出的切弦的长喥大于等于√3概率。
一方面把切弦的中点叫做M,从上图可以看出来如果中点M落在半径为R/2的小圆的范围内,那么切弦的长度小于√3如果中点M落在圆环(大圆扣除小圆所形成的圆环)的范围内,那么切弦的长度大于等于√3所以,所求的概率等于小圆的面积与圆环的面积的比徝1/4
另一方面,想象这条直线首先和圆相切然后逐步向圆心靠近直到刚好切弦长度为√3,此时圆心距离直线R/2也就是说,所求的概率等於R/2与R的比值1/2
现在,发现这两个值居然不相等是否有某个值计算出错?
其实两个值不相等的真正原因是我们在求每个解的时候已经默認了随机线段的运动模型。对于第一个解默认随机线段的中点在圆中是均匀分布的,对于第二个解默认随机线段总是朝着一个方向运動而不发生旋转。
总结一下这个问题真正的解决要点在于首先要识别出可能存在的假设,然后还要理解不同的假设如何对应不同的结论