快捷搜索:  汽车  科技

算法技巧分析怎么学:如何用数学方式解决生活中的具体问题

算法技巧分析怎么学:如何用数学方式解决生活中的具体问题对于在中学时代就建立了恋爱关系的大一新生而言,感恩节就是一个严峻的考验:因为回家度过短短4天的假期之后,很多恋人就劳燕分飞了。大学辅导员把这个普遍现象称作“放弃火鸡”。——简·奥斯汀,《爱玛》所有的基督徒都会在结婚请柬的最前面郑重宣布,他们走进婚姻的殿堂是遵从上帝的特别安排。但是,我要站在哲学的角度,详细地探讨这个问题……——约翰尼斯·开普勒如果你觉得马丁先生是最优秀的人选,如果你觉得与他相处最为融洽,那么你还犹豫什么呢?

按:在道格拉斯·亚当斯的《银河系漫游指南》中,一个名叫深思(Deep Thought)的巨型超级计算机经过750万年的计算,得出“生命、宇宙以及任何事情的终极答案”是42。为什么是42?很多人都曾经尝试着对此作出解答。事实上,古希腊哲学家毕达哥拉斯就认为万物的本源是数。他认为数字先于事物存在,一切事物的性质都可以被归结为数的规定性,例如,比例关系、有限与无限的关系,此外,社会生活中也时常出现数字的隐喻类比。而当数字化如此彻底地席卷我们的生活,这种关系似乎变得更为富有深意。

在《算法之美》中,美国畅销书作家克里斯汀和认知科学家格里菲思告诉我们,不只是宇宙的终极答案,数学也可以解决人类生活中面对的具体问题。租房、收拾衣柜、选择餐厅、时间管理……无不能用算法解决。最优停止法则、时间调度法则、贝叶斯法则等等,这些法则看似艰深,其实连找停车位都能用得上!这本书告诉我们如何更有效地利用直觉、什么时候应该把选择权交给命运、无所适从的时候应该如何做出选择,以及如何有效地与他人保持联系。

经出版社授权,界面文化(ID:BooksAndFun)从中选择了部分章节,以飨读者。

37%:另一个神奇的数字

文 | 布莱恩·克里斯汀 汤姆·格里菲思

所有的基督徒都会在结婚请柬的最前面郑重宣布,他们走进婚姻的殿堂是遵从上帝的特别安排。但是,我要站在哲学的角度,详细地探讨这个问题……

——约翰尼斯·开普勒

如果你觉得马丁先生是最优秀的人选,如果你觉得与他相处最为融洽,那么你还犹豫什么呢?

——简·奥斯汀,《爱玛》

对于在中学时代就建立了恋爱关系的大一新生而言,感恩节就是一个严峻的考验:因为回家度过短短4天的假期之后,很多恋人就劳燕分飞了。大学辅导员把这个普遍现象称作“放弃火鸡”。

大一新生布莱恩就面临着这个问题。他中学时的女友在另外一所大学,天各一方的两个人不仅需要解决空间距离造成的麻烦,还需要认真思考一个问题:他们两人之间的感情到底有多深?他们从来没有考虑过这个具有哲学深度的问题。由于没有类似的感情可以参考,他们无从回答这个问题。于是,焦虑不安的布莱恩找到辅导员,向她寻求帮助。辅导员知道这是新生经常遭遇的一个典型难题,所以她用一种极其冷淡的语气给出了自己的建议:“先收集一些数据吧。”

显而易见,在连续性单配偶的生活方式中,人们不可避免地会遇到一个非常重要的问题:接触多少人之后,才可以确定自己的理想伴侣?如果在收集数据的过程中与自己的“真命天子”失之交臂,那该怎么办?这似乎成了感情问题上无解的“第22条军规”。

我们知道,这个令大一新生忧心忡忡、牢骚满腹的“第22条军规”其实就是数学界的“最优停止问题”,它的答案其实很简单,就是37%。

当然,前提条件是你愿意在爱情问题上做出各种假设。

在所有最优停止问题中,最大的难点不在于选择哪一种可选方案,而是确定自己需要考虑多少种可选方案。这些问题往往会引发不同的后果,不仅陷入爱河的人和需要租房的人必须慎重考虑,司机、房主、入室行窃者等也常常面临同样的抉择。

“37%法则”源于所谓的“秘书问题”——最优停止问题中最著名的一类难题。秘书问题的情境与我们前面考虑过的租房难题十分相似。假设一堆人申请一个秘书岗位,而你是面试官,你的目标是从这堆申请人中遴选出最佳人选。你不知道如何给每一名申请人评分,但是可以轻松地判断哪一名申请人更加优秀。(用数学语言来表述,就是说你只能看到序数,即申请人相互比较的排名,但是无法看到基数,即在一般性评分标准下的得分。)你按照随机顺序,每次面试一名申请人。你随时可以决定将这份工作交给其中一人,而对方只能接受,于是面试工作就此结束。但是,一旦你否决其中一名申请人,就不能改变主意再回头选择他。

在选择秘书时,遴选程序停止过早或者过晚都会导致不理想的结果。停止过早,最优秀的申请人还没有得到亮相的机会;停止过晚,就说明你在为一位根本不存在的更优秀的申请人保留这份工作。要取得最理想的结果,显然需要在两者之间找到最合适的平衡点,在甄选时既不可迟迟不决,又不可草草收手。

如果找到最优秀申请人是你追求的唯一目标,那么在整个面试过程中,只要不是已有申请人当中的最优秀人选,你都不会接受。但是,仅仅达到“目前最佳”这个条件,还不足以说服面试官。比如说,第一名申请人毫无疑问就符合这个条件。一般而言,我们有理由相信,随着面试程序不断进行下去,出现“目前最佳”申请人的概率将不断下降。例如,第二名申请人是截至目前最优秀申请人的可能性是50%,第五名的可能性只有1/5,第六名的可能性只有1/6,以此类推。因此,随着面试工作的深入,目前为止最优秀申请人一旦出现,必然会令人眼前一亮(别忘了,根据定义,这名申请人比之前所有申请人都更加优秀),不过,这种可能性在不断降低。

所以说,看到第一个目前最优秀申请人就欣然接受(也就是说,面试第一名申请人之后就结束面试程序),显然是过于草率了。在一共有100名申请人时,也不能因为第二名申请人比第一名申请人更优秀就迫不及待地选择他,因为这种做法同样有些操之过急。那么,我们到底该怎么办?

凭直觉,我们可以找到几种应对的办法。例如,当第三次(或者第四次)出现胜过前面所有的申请人时,就把工作机会交给他。或者,在连续多个申请人都不理想的情况下,一旦出现一名目前为止最优秀的人选,就毫不犹豫地接受他。

但是,事实证明,所有这些相对来说似乎有道理的策略都算不上是最明智的做法。事实上,效果最佳的做法是接受所谓的“摸清情况再行动准则”(look-then-leaprule):事先设定一个“观察”期,在这段时间里,无论人选多么优秀,都不要接受他(也就是说,你的任务就是考察目标,收集数据)。“观察”期结束之后,就进入了“行动”期。此时,一旦出现令之前最优秀申请人相形见绌的人选,就立即出手,再也不要犹豫了。

考虑申请人数极少时的秘书问题,“摸清情况再行动准则”就会自动显露出来。如果只有一名申请人,这个问题就非常简单——接受她的申请!如果有两名申请人,无论你如何选择,你成功选到优秀人选的概率都是50%。你可以接受第一名申请人(此时,她是半程最优秀申请人),或者拒绝她,而拒绝第一名申请人就意味着接受第二名申请人(她也是半程最优秀申请人)。

如果有第三名申请人,情况就一下子变得有意思了。如果随机选择一名申请人,得到理想结果的概率是1/3,也就是33%。有两名申请人时,我们没有办法取得比碰运气更好的结果。那么,在有三名申请人时,会怎么样?事实证明,我们可以取得更理想的结果,而其中的关键就在第二场面试。在面试第一名申请人时,我们没有任何信息——她肯定是目前最优秀的申请人。在面试第三名申请人时,我们没有任何能动性——我们只能将工作机会交给这名申请人,因为我们已经拒绝了其他人的申请。但是,在面试第二名申请人时,我们既掌握了一些信息,又有一定的能动性——我们知道她与第一名申请人相比孰优孰劣,同时我们既可以接受她,也可以拒绝她。如果她比第一名申请人优秀,我们接受她,反之就拒绝她,那么会产生什么样的结果?事实上,在有三名申请人时,这是最理想的方案。令人吃惊的是,在有三名申请人时采用这个方法,与有两名申请人时选择半程最优秀人选的方法相比,效果不相上下。

在有4名申请人时,穷举所有可能的情况之后就会发现,我们仍然应该在面试第二名申请人时采取行动;如果一共有5名申请人,我们应该等到面试第三名申请人时才采取行动。

随着申请人数不断增加,观察与行动之间的分界线正好处在全部申请人37%的位置,从而得出了37%法则:在考察前37%的申请人时,不要接受任何人的申请;然后,只要任何一名申请人比前面所有人选都优秀,就要毫不犹豫地选择他。

事实证明,利用这种最优方案,我们选中最优秀申请人的概率为37%。方案本身与出现理想结果的概率正好相等,这是这类问题表现出来的令人奇怪的数学对称性。上表列出了申请人数不同时的秘书问题最优解决方案。从中可以看出,随着申请人数不断增加,取得理想结果的概率(以及从观察期切换到行动期的时间点)在37%左右。

采用最理想的方案也会有63%的失败率,这是一个令人警醒的事实。在面对秘书问题时,即使我们采取了最理想的行动方案,在大多数情况下也会遭遇失败,也就是说,大多数情况下我们都无法选中所有人选当中最优秀的那名申请人。对于把爱情视为寻觅“真命天子”的人来说,这确实是一个坏消息。不过,也不完全都是坏消息。直觉告诉我们,随着申请人数的不断增加,选中最优秀申请人的可能性将稳步下降。例如,如果采用随机选择的方式,在申请人总数为100时,我们得到理想结果的可能性是1%,在总人数为100万时,可能性就会降到0.0001%。但是,令人意想不到的是,秘书问题的计算结果不会发生变化。如果采用最优停止理论,在100人当中选中最优秀申请人的可能性是37%。而总人数是100万时,无论你相信与否,你得到理想结果的可能性仍然是37%。因此,申请人总数越多,最优算法理论就越有价值。的确,在大多数情况下,大海捞针都会无功而返,但是,无论“海洋”多么辽阔,最优停止理论都是最理想的工具。

在秘书问题首次被提出后的几十年时间里,人们研究了各种各样的情境,并结合不同的条件提出了若干最优停止策略。例如,针对(求爱)可能遭到拒绝的问题,他们提出了一个简单明了的数学答案:尽早向多名对象伸出橄榄枝。假如遭到拒绝的可能性是50%,那么得出37%法则的那个数学分析过程就会告诉你,遴选过程完成1/4后就应该随时准备求婚了。如果遭到拒绝,那么在发现下一个最佳人选时要再次求婚,直到求婚成功为止。运用这个策略,获得成功(即向所有人选中的最佳人选求婚并被接纳)的总概率仍然可以达到25%。根据自己的标准寻觅爱情本身就有难度,再加上遭到拒绝这个不利条件,25%的成功概率可以算是一个还不错的结果了。

此外,人们还经常修改秘书问题的其他前提条件,使之与现实生活中寻觅爱情(或挑选秘书)等难题更为相似,结果形成了更多的秘书问题变种。不过,最优停止问题给我们的启发不仅限于约会与招聘这两个方面。事实上,在租房子、找停车位、见好就收的时机选择等问题中,我们同样需要面对一个又一个的可选方案,做出最有利的选择。从一定程度上说,这些问题已经得到了解决。

(本文选自《算法之美》第一章《最优停止理论:如何准确选择停止观望的时机? 》,有删节。)

算法技巧分析怎么学:如何用数学方式解决生活中的具体问题(1)

……………………………………

欢迎你来微博找我们,请点这里。

也可以关注我们的微信公众号“界面文化”【ID:BooksAndFun】

猜您喜欢: