艺术与科学,都是对称与不对称的巧妙组合
——李政道
传说亚历山大城有一位精通数学和物理的学者,名叫海伦。一天,一位罗马将军专程去拜访他,向他请教一个百思不得其解的问题:将军每天从军营B出发,先到河边饮马,然后再去河岸同侧的A地开会,应该怎样走才能使路程最短?
刚学了垂线的四年级小朋友们普遍表示应该先从B向河流这条直线作一条垂线,然后先就近走到河边饮水,然后再走到A。但问题是,虽然第一段是最优的,后面这一段却不是最优的。按照最优化的理论,这实际上是一种贪婪算法,仅仅达到了局部最优。
假如营地A不在河的这一边,而是在河的对岸A’,那应该怎么走呢?这个问题所有小朋友都知道,就是从B到A’连一条直线,与河流相交的点P就是使得总路程最近的饮马点,其原因在于欧式几何中的两点之间直线距离最短。如今,A在河的同一侧,实际上,如果我们把A根据河流做一个镜像A’, 那么从B到河流任一点P’,再到A的距离之和BP’+P’A=BP’+P’A’≥BA’。因此,最短的距离就是从B到A’的线段的长度,饮马点就是P点。
最近昍正在学角度,不由得联想起了他们作业中出现的简单桌球问题。实际上,要打好桌球,也得懂点数学才行。在斯诺克中,如果直接击球被挡,那就要利用桌球壁反弹击球。在下图中,如果白球想击中红球B,直接击打被绿球遮挡,此时,就可以利用反弹,将球击至P。反弹的特点保证∠APK=∠BPL。此时,P实际上就是使得AP+PB最短的这个点,即上面的饮马点。也就是说,虽然球是反弹的,但如果从A想击中B,那么依然是走的最短的那条路径。而如果白球想要击打C,直接击打被黄球遮挡,利用NM反弹被紫球遮挡,利用KL反弹被绿球遮挡。此时,就得考虑二次反弹,如图所示,作A的镜像A’, C的镜像C’,直接连接A’C’得到与台球壁的两个交点Q, R,因此,沿着A-Q-R-C可以利用二次反弹击中C球。当然,也可以利用其它的台球壁反弹击球。而如果二次反弹不行,则还有可能需要使用三次反弹,如后面一个图所示。
0
推荐