算法之美
第一章
最优停止理论 如何选择停止观望的时机?
![640?wx_fmt=png](https://i-blog.csdnimg.cn/blog_migrate/03faa1563fcfba92aebbacf226e861a8.png)
约翰尼斯 · 开普勒:
“所有的基督徒都会在结婚请柬的最前面郑重宣布,他们走进婚姻的殿堂是遵从上帝的特别安排。但是,我要站在哲学的角度,详细地探讨这个问题……”
简 · 奥斯汀,《爱玛》
“如果你觉得马丁先生是最优秀的人选,如果你觉得与他相处最为融洽,那么你还犹豫什么呢?”
对于在中学时代就建立了恋爱关系的大一新生而言,感恩节就是一个严峻的考验:因为回家度过短短4天的假期之后,很多恋人就劳燕分飞了。大学辅导员把这个普遍现象称作“放弃火鸡”。
大一新生布莱恩就面临着这个问题。他中学时的女友在另外一所大学,天各一方的两个人不仅需要解决空间距离造成的麻烦,还需要认真思考一个问题:他们两人之间的感情到底有多深?他们从来没有考虑过这个具有哲学深度的问题。由于没有类似的感情可以参考,他们无从回答这个问题。
于是,焦虑不安的布莱恩找到辅导员,向她寻求帮助。辅导员知道这是新生经常遭遇的一个典型难题,所以她用一种极其冷淡的语气给出了自己的建议:“先收集一些数据吧。”
显而易见,在连续性单配偶的生活方式中,人们不可避免地会遇到一个非常重要的问题:接触多少人之后,才可以确定自己的理想伴侣?如果在收集数据的过程中与自己的“真命天子”失之交臂,那该怎么办?这似乎成了感情问题上无解的“第22条军规”。
我们知道,这个令大一新生忧心忡忡、牢骚满腹的“第22条军规”其实就是数学界的“最优停止问题”,它的答案其实很简单,就是37%。
当然,前提条件是你愿意在爱情问题上做出各种假设。
秘书问题
在所有最优停止问题中,最大的难点不在于选择哪一种可选方案,而是确定自己需要考虑多少种可选方案。这些问题往往会引发不同的后果,不仅陷入爱河的人和需要租房的人必须慎重考虑,司机、房主、入室行窃者等也常常面临同样的抉择。
“37%法则”
源于所谓的“秘书问题”——最优停止问题中最著名的一类难题。秘书问题的情境与我们前面考虑过的租房难题十分相似。假设一堆人申请一个秘书岗位,而你是面试官,你的目标是从这堆申请人中遴选出最佳人选。你不知道如何给每一名申请人评分,但是可以轻松地判断哪一名申请人更加优秀。
(用数学语言来表述,就是说你只能看到序数,即申请人相互比较的排名,但是无法看到基数,即在一般性评分标准下的得分。)
你按照随机顺序,每次面试一名申请人。你随时可以决定将这份工作交给其中一人,而对方只能接受,于是面试工作就此结束。但是,一旦你否决其中一名申请人,就不能改变主意再回头选择他。
![640?wx_fmt=png](https://i-blog.csdnimg.cn/blog_migrate/03faa1563fcfba92aebbacf226e861a8.png)
普遍认为,秘书问题第一次出现在出版物中是在1960年2月,那一期的《科学美国人》杂志在马丁 · 伽德纳最喜欢的栏目——“趣味数学”专栏中刊登了几个难题,其中之一就是秘书问题,不过当时没有明确地提到“秘书”这个词。但是,这个问题到底从何而来,这是一个非常神秘的谜。除了一些推测以外,初期的调查没有任何确凿的结论。随后,我们风尘仆仆地赶到斯坦福大学,查阅伽德纳的文书档案。伽德纳在20世纪中期留下来的那一盒盒书信,出乎意料地把我们的调查变成了侦探工作。
阅读书信有点儿像偷听别人打电话,你只能听到通话一方所说的话,因此需要推断另一方到底说了什么。从这些回信看,大约50年前,伽德纳本人似乎正在调查秘书问题的来源。但是,看完这些书信,我们更是一头雾水了。
哈佛大学数学家弗雷德里克 · 莫斯特勒回忆说,1955年,他听同事安德烈 · 格里森提到过这个问题,而格里森又是从其他人那里听说的。阿尔伯塔大学的里奥 · 莫泽在信中说,他曾经在波音公司 R. E. 加斯克尔的“笔记”中看到过这个问题,而加斯克尔本人则说他是从一位同事那里听说这个问题的。
罗格斯大学的罗杰 · 平克汉姆称,他是1955年从杜克大学数学家 J. 舍恩菲尔德那里第一次听说秘书问题的,他还说:“我记得,他说他是从密歇根大学的某个人那里听说的。”
几乎可以肯定,“密歇根大学的某个人”其实就是梅里尔 · 弗拉德。尽管在数学界以外几乎没有人知道弗拉德,但是他对计算机科学的影响很难被忽略。
他把“旅行商问题”(我们将在第8章深入讨论)变成了一个广为人知的内容,还设计了“囚徒的困境”(参见第11章),甚至“软件”(software)一词也可能是他造出来的。1958年,他成了已知的第一个发现37%法则的人,同时他宣称,他从1949年就开始考虑这个问题了。但是,在说到最初来源时,弗拉德本人提到了另外几名数学家。
秘书问题是一个近乎完美的数学难题:问题本身表述简单,解题难度非常高,答案简洁明了,而影响力又足以让人产生浓厚的兴趣。因此,通过人们的口口相传,这个问题以燎原之势在20世纪50年代的数学界迅速蔓延开来。
1960年,在伽德纳专栏的推波助澜之下,它又大大地激发了普通大众的想象力。至20世纪80年代,秘书问题已经变成了一个研究分支,无数人撰文讨论这个问题及与其相关的变体。
至于这个问题是如何与秘书产生联系的,这是一个非常有意思的过程——每种文化的社会偏爱都会对社会的形式系统产生影响。例如,在我们的心中国际象棋是中世纪欧洲人的象征,但是实际上国际象棋起源于8世纪的印度。
15世纪,粗暴的“欧洲化”过程把沙阿(即国王)变成了王,维齐尔(即高官)变成了王后,而大象则成了基督教主教的形象。最优停止问题同样有多种不同化身,每种化身都是当时关注热点的某种反映。
19世纪,最优停止问题的典型形式是巴洛克彩票和女性挑选求婚者的行为;20世纪初,常见的表现形式是驾车度假的人挑选宾馆、男性选择约会对象;在官僚作风盛行、男性占主导地位的20世纪中叶,最典型的最优停止问题是讨论男性老板如何挑选女性助手的问题。第一次明确提出“秘书问题”的是发表于1964年的一篇论文,自此之后,这个名称就再也没有发生变化。
37%从何而来?
![640?wx_fmt=png](https://i-blog.csdnimg.cn/blog_migrate/fe57b249f8bbf2f3814ba833af6af73e.png)
在选择秘书时,遴选程序停止过早或者过晚都会导致不理想的结果。停止过早,最优秀的申请人还没有得到亮相的机会;停止过晚,就说明你在为一位根本不存在的更优秀的申请人保留这份工作。要取得最理想的结果,显然需要在两者之间找到最合适的平衡点,在甄选时既不可迟迟不决,又不可草草收手。
如果找到最优秀申请人是你追求的唯一目标,那么在整个面试过程中,只要不是已有申请人当中的最优秀人选,你都不会接受。
但是,仅仅达到“目前最佳”这个条件,还不足以说服面试官。比如说,第一名申请人毫无疑问就符合这个条件。一般而言,我们有理由相信,随着面试程序不断进行下去,出现“目前最佳”申请人的概率将不断下降。
例如:
第二名申请人是截至目前最优秀申请人的可能性是50%,第五名的可能性只有1/5,第六名的可能性只有1/6,以此类推。
因此,随着面试工作的深入,目前为止最优秀申请人一旦出现,必然会令人眼前一亮(别忘了,根据定义,这名申请人比之前所有申请人都更加优秀),不过,这种可能性在不断降低。
所以说,看到第一个目前最优秀申请人就欣然接受(也就是说,面试第一名申请人之后就结束面试程序),显然是过于草率了。在一共有100名申请人时,也不能因为第二名申请人比第一名申请人更优秀就迫不及待地选择他,因为这种做法同样有些操之过急。那么,我们到底该怎么办?
凭直觉,我们可以找到几种应对的办法。例如,当第三次(或者第四次)出现胜过前面所有的申请人时,就把工作机会交给他。或者,在连续多个申请人都不理想的情况下,一旦出现一名目前为止最优秀的人选,就毫不犹豫地接受他。
摸清情况再行动准则
但是,事实证明,所有这些相对来说似乎有道理的策略都算不上是最明智的做法。
事实上,效果最佳的做法是接受所谓的“摸清情况再行动准则”(look-then-leap rule):事先设定一个“观察”期,在这段时间里,无论人选多么优秀,都不要接受他(也就是说,你的任务就是考察目标,收集数据)。
“观察”期结束之后,就进入了“行动”期。此时,一旦出现令之前最优秀申请人相形见绌的人选,就立即出手,再也不要犹豫了。
![640?wx_fmt=png](https://i-blog.csdnimg.cn/blog_migrate/03faa1563fcfba92aebbacf226e861a8.png)
考虑申请人数极少时的秘书问题,“摸清情况再行动准则”就会自动显露出来。如果只有一名申请人,这个问题就非常简单——接受她的申请!如果有两名申请人,无论你如何选择,你成功选到优秀人选的概率都是50%。
你可以接受第一名申请人(此时,她是半程最优秀申请人),或者拒绝她,而拒绝第一名申请人就意味着接受第二名申请人(她也是半程最优秀申请人)。
![640?wx_fmt=jpeg](https://i-blog.csdnimg.cn/blog_migrate/0d6cd1d367a8d87f0a573d5d10409b36.jpeg)
如果有第三名申请人,情况就一下子变得有意思了。如果随机选择一名申请人,得到理想结果的概率是1/3,也就是33%。有两名申请人时,我们没有办法取得比碰运气更好的结果。
那么,在有三名申请人时,会怎么样?事实证明,我们可以取得更理想的结果,而其中的关键就在第二场面试。
分析
在面试第一名申请人时,我们没有任何信息——她肯定是目前最优秀的申请人。
在面试第三名申请人时,我们没有任何能动性——我们只能将工作机会交给这名申请人,因为我们已经拒绝了其他人的申请。
但是,在面试第二名申请人时,我们既掌握了一些信息,又有一定的能动性——我们知道她与第一名申请人相比孰优孰劣,同时我们既可以接受她,也可以拒绝她。如果她比第一名申请人优秀,我们接受她,反之就拒绝她,那么会产生什么样的结果?
事实上,在有三名申请人时,这是最理想的方案。
令人吃惊的是,在有三名申请人时采用这个方法,与有两名申请人时选择半程最优秀人选的方法相比,效果不相上下。
在有4名申请人时,穷举所有可能的情况之后就会发现,我们仍然应该在面试第二名申请人时采取行动;如果一共有5名申请人,我们应该等到面试第三名申请人时才采取行动。
“37”法则
随着申请人数不断增加,观察与行动之间的分界线正好处在全部申请人37%的位置,从而得出了37%法则:在考察前37%的申请人时,不要接受任何人的申请;
然后,只要任何一名申请人比前面所有人选都优秀,就要毫不犹豫地选择他。
挑选秘书的最优方案:
![640?wx_fmt=png](https://i-blog.csdnimg.cn/blog_migrate/881be78d1ea9236d539ffddda42a0244.jpeg)
事实证明,利用这种最优方案,我们选中最优秀申请人的概率为 37%。
方案本身与出现理想结果的概率正好相等,这是这类问题表现出来的令人奇怪的数学对称性。上表列出了申请人数不同时的秘书问题最优解决方案。
从中可以看出,随着申请人数不断增加,取得理想结果的概率(以及从观察期切换到行动期的时间点)在37%左右。
采用最理想的方案也会有63%的失败率,这是一个令人警醒的事实。在面对秘书问题时,即使我们采取了最理想的行动方案,在大多数情况下也会遭遇失败,也就是说,大多数情况下我们都无法选中所有人选当中最优秀的那名申请人。对于把爱情视为寻觅“真命天子”的人来说,这确实是一个坏消息。不过,也不完全都是坏消息。直觉告诉我们,随着申请人数的不断增加,选中最优秀申请人的可能性将稳步下降。例如,如果采用随机选择的方式,在申请人总数为100时,我们得到理想结果的可能性是1%,在总人数为100万时,可能性就会降到0.0001%。但是,令人意想不到的是,秘书问题的计算结果不会发生变化。
最优算法理论的价值
如果采用最优停止理论,在100人当中选中最优秀申请人的可能性是37%。
而总人数是100万时,无论你相信与否,你得到理想结果的可能性仍然是37%。因此,申请人总数越多,最优算法理论就越有价值。的确,在大多数情况下,大海捞针都会无功而返,但是,无论“海洋”多么辽阔,最优停止理论都是最理想的工具。
情场上的出手时机
托马斯 · 马尔萨斯:
两性之间的情欲几乎不会随着时代的变迁而发生改变。在代数学上,我们可以称之为给定量。
芭芭拉 · 布什:
夺走我的初吻的男人后来成了我的丈夫。我把这些告诉孩子们时,他们的反应十分强烈。
卡内基-梅隆大学的运筹学教授迈克尔 · 特里克也曾经为寻觅真爱而苦恼,当时他还是一名研究生。他回忆说:“我突然想起来,人们研究过这个问题,这不就是秘书问题吗?我身边有一个空缺,现在有若干人提出了申请,而我的目标就是从中选出最优秀的申请者。”于是,他进行了量化分析。
他不知道他一辈子可以结识多少名女性,但是37%法则有一定的灵活性,既可以表示申请者的人数,也可以表示遴选过程持续的时间。
假设遴选过程从18岁开始,至40岁结束,那么根据37%法则,在26.1岁时他就应该结束观察期,随时果断出手。碰巧的是,当时的特里克正好处于这个年龄。
因此,当他发现某一名女性比之前所有约会对象都优秀的时候,他知道机会来了,于是他果断行动。他说:“我不知道她会不会是完美的妻子(模型的各种假设都无法帮助我做出这个判断),但是毫无疑问,她符合算法为这个步骤开出的所有条件。于是,我向她求婚了。”
“结果,她拒绝了我的求婚。”
至少从17世纪开始,爱情问题就已经让数学家头疼了。现代人知道约翰尼斯 · 开普勒这个名字,或许是因为他发现行星轨道是椭圆形的,此外他还是“哥白尼革命”的重要成员,与伽利略、牛顿等人一起,颠覆了人类对自己在宇宙中所处位置的认知。
不过,开普勒也不是不食人间烟火。1611年,在他的第一任妻子离世后,渴盼重建家庭的开普勒开始了漫长而艰苦的求爱经历,前后一共交往了11名女性。在前4名交往对象中,开普勒最喜欢第4个(“因为她身材高挑,英姿飒爽”),但是他没有就此打住。开普勒回忆说:“如果不是爱情和理智把第5名女性强推给我,我应该已经安定下来了。
但是,这名女性对我的爱,她的谦恭忠诚、勤俭持家以及她对继子继女的爱,一下子征服了我。”
他接着说道:“不过,我仍然我行我素,继续与其他女性交往。”
亲朋好友继续为开普勒牵线搭桥,开普勒也没有拒绝,不过兴致不是很高,因为他的心仍然被第5名交往对象占据着。在一共交往了11名女性之后,开普勒决定收手了。他回忆说:“就在我准备前往雷根斯堡的时候,我回过头来去找第5名交往对象并向她求婚,结果她同意了。”
于是,开普勒和苏珊娜 · 罗伊特林格举行了婚礼。除了第一次婚姻留给他的几个孩子之外,开普勒和罗伊特林格又生了6个孩子。据说,开普勒之后的家庭生活十分幸福美满。
![640?wx_fmt=png](https://i-blog.csdnimg.cn/blog_migrate/03faa1563fcfba92aebbacf226e861a8.png)
开普勒和特里克在寻觅爱情上的亲身经历告诉我们(两者的结局正好相反),秘书问题把情况想得过于简单了。在经典的秘书问题中,申请者肯定希望得到那份工作,像特里克那样遭遇拒绝的情况绝不会发生。
此外,申请者一旦被否决之后,就不可以“复活”,因此开普勒采取的策略是行不通的。
![640?wx_fmt=png](https://i-blog.csdnimg.cn/blog_migrate/fe57b249f8bbf2f3814ba833af6af73e.png)
在秘书问题首次被提出后的几十年时间里,人们研究了各种各样的情境,并结合不同的条件提出了若干最优停止策略。
尽早向多名对象伸出橄榄枝
例如,针对可能遭到拒绝的问题,他们提出了一个简单明了的数学答案:尽早向多名对象伸出橄榄枝。假如遭到拒绝的可能性是50%,那么得出37%法则的那个数学分析过程就会告诉你,遴选过程完成1/4后就应该随时准备求婚了。
如果遭到拒绝,那么在发现下一个最佳人选时要再次求婚,直到求婚成功为止。运用这个策略,获得成功(即向所有人选中的最佳人选求婚并被接纳)的总概率仍然可以达到25%。
根据自己的标准寻觅爱情本身就有难度,再加上遭到拒绝这个不利条件,25%的成功概率可以算是一个还不错的结果了。
开普勒把自己没有及时出手的原因归咎于“不安现状、心存疑虑”。
他在一封信中向自己的知己好友哀叹:“难道非得四处碰壁,所有欲望都落空之后,我的心才会平静下来,接受命运的摆布吗?”在这种情况下,最优停止理论同样可以起到一定的安慰作用。事实证明,不安现状和心存疑虑并不是道德沦丧或者心理退化的标志,而是在合适情境下捕捉二次机会的最有效策略的一个组成部分。
如果可以复活之前被放弃的人选,最优算法就会对我们所熟悉的摸清情况再行动准则做一个小的调整:推迟表态时间,制订备用计划。
例如,我们假设即时求婚肯定会被接受,而迟滞求婚则有一半的可能遭到拒绝。根据数学分析,我们在观察前61%的人选时都不应该表态,等到剩余39%的人选中出现目前最优秀人选时再出手。
如果考察完了所有人选之后仍然没有找到合适对象(开普勒当时就面临这种情况),就回过头,在你淘汰的人选当中选择最优秀的那个。在这种情况下,策略与结果之间再次表现出对称性,在允许二次选择这个条件下,你最终选中最优秀人选的概率仍然是61%。
正因为现实与经典秘书问题有所不同,所以开普勒最终还是找到了自己的幸福。事实上,经典问题发生的那个小变化也没有导致特里克愿望落空。在遭到拒绝之后,特里克读完大学并在德国找了一份工作。
特里克回忆说:“我在酒吧里遇到一位漂亮的姑娘,我们一见钟情,三周后就同居了。后来,我邀请她去美国‘暂住一段时间’。”姑娘接受了邀请。6年后,他们举行了婚礼。
总结
本章借用了多部知名著作中对算法的定义,只是想让大家对算法有一个“宽容”一点的理解。通过我亲身经历的两个例子,说明了程序员与算法之间“剪不断,理还乱”的关系。除此之外,还简单探讨了算法乐趣的来源、算法和代码的关系,以及研究代码本身的乐趣等内容。
如果你认同我的观点,就可以继续阅读本书了。本书的每一章都是独立的,没有前后关系,你可以根据自己的喜好直接阅读相关的章节。
希望本书能使你有所收获,并体会到算法的乐趣。
本文摘自极客书:《算法之美》
作者:布莱恩 · 克里斯汀 等
文章顺序有调整,请扫描二维码免费阅读第一章完整内容
《极客书》
·扫描二维码·
阅读完整内容
![640?wx_fmt=png](https://i-blog.csdnimg.cn/blog_migrate/2b746d5add684fe71c6972a1649476bb.jpeg)
内容简介
我们所有人的生活都受到有限空间和有限时间的限制,因此常常面临一系列难以抉择的问题。在一天或者一生的时光里,哪些事是我们应该做的,哪些是应该放弃的?我们对杂乱无序的容忍底线是什么?新的活动与熟悉并喜爱的活动之间如何平衡,才能取得令人愉快的结果?这些看似是人类特有的难题,其实不然,因为计算机也面临同样的问题,计算机科学家几十年来也一直在努力解决这些问题,而他们找到的解决方案可以给我们很多启发。
通过丰富的跨学科研究,作者指出,计算机算法也可以用来解答人类面临的这些问题。这本书告诉我们如何更有效地利用直觉、什么时候应该把选择权交给命运、无所适从的时候应该如何做出选择,以及如何有效地与他人保持联系。从找配偶到找停车位,从组织管理个人邮箱的收件箱到理解人类记忆的作用原理,这本书把计算机科学的智慧转化为人类生活的策略,引导我们做出明智的选择。
作者简介
布莱恩·克里斯汀,《华尔街日报》畅销书《最有人性的人》作者,该书入选《纽约时报》编辑推荐书目,被《纽约客》杂志评为年度好书。他的多篇作品先后刊登在《纽约客》《大西洋》《连线》《华尔街日报》《卫报》《巴黎评论》及《认知科学》等杂志上,被翻译成11种语言。
汤姆 · 格里菲思,加州大学伯克利分校心理学和认知科学教授,计算认知科学实验室主任。格里菲思发表过150多篇科学论文,内容涉及认知心理学、文化演进等,受到美国国家科学基金会、斯隆基金会、美国心理学会和心理环境学会等颁发的各类奖项。
![640?wx_fmt=png](https://i-blog.csdnimg.cn/blog_migrate/03faa1563fcfba92aebbacf226e861a8.png)
今天没有防不胜防,关注我吧~
![640?wx_fmt=jpeg](https://i-blog.csdnimg.cn/blog_migrate/51c0f574d054ca0780f229694992bfee.jpeg)