最优停止问题,也叫麦穗问题,傻博士相亲,公主选婿,秘书招聘等等。总之就是有n个候选者,你逐一面试不能回头,每次只能看一个,看完之后马上决定要不要选他,如果“要”则立即停止面试,如果“不要”则继续面试下一位,直到选中一个或者面试完所有人为止。
你知道候选者的相对名次但不知道绝对名次,也就是说每个候选者在你心中都能排个相对优劣的次序,但你不清楚这n个候选者中最好的那个有多好(绝对名次),否则你可以一直面试到那个人出现为止。换句话说,你不知道后面是否还有人比已经面试过的人都更优秀,你只有把所有面试者都看完一遍才知道,但这样你就只能选择最后一个了(因为不能回头),所以你就面临一个很棘手的问题:要设置怎样的面试策略,才能使选中绝对最佳者(#1)的概率最大呢?
经典方案
最经典的方案就是把前面r-1个候选者当做参考组只看不选,从第r个开始才认真考虑,只要遇到一个比参考组里的所有人都更优秀的面试者,就立刻选定他并结束面试。
那现在问题是:r取值多少(即参考组设置多大),才能使得选中#1的概率P(r)最大呢?
如果取r=1,按照该策略,遇到第一个人就定下来了,而“第一个人恰好是#1”的概率是1/n,因此P(r)=1/n。
同样道理,如果取r=n,遇到最后一个人才做决定,而“最后一个恰好是#1”的概率也是1/n,因此P(r)也等于1/n。
假设n=100,我们可以看看r取不同值时“选中#1”的概率P(r)。(公式会在下文给出,这里提前看一下概率分布图)
(a)概率P(r)的离散函数(n=100)
(b)概率P(x)的连续函数
当r=2时,P(2)≈6/100;
当r=99时,P100(99)≈2/100.
要找出r的最优值,我们得先知道当r取值一定的情况下,从r开始的每一个人被选中而且他恰好就是#1的概率。因为“在i位置选中#1”和“在j位置选中#1”(r≤i<j≤n)是互斥的,把这些事件的概率加起来就是这个r值所对应的“选中#1”的概率。
现在考察“在i位置选中#1”(r≤i≤n)事件的概率,这个事件等价于以下两个事件同时发生:
一,第i个人被面试。这个事件发生说明从第r个到第i-1个人都不比参考组里面的临时最优者更好,否则会提前结束面试,而不会等到第i个人出场了。换句话说,“第i个人被面试”事件发生的条件是:前面i-1个人中的临时最优者必在参考组r-1个人里面,此概率为(r-1)/(i-1)。
二,第i个人恰好就是#1。该事件发生的概率为1/n。
这两个事件是独立的。只要这两个事件同时发生,就一定可以确保选中#1,因为#1优于其他所有面试者,只要在观察组之后面试到#1就一定会选择他(#1“面试即选中”,后面我们还会看到如果是#2则不一定“面试即选中”)。
而选中第i个就不可能同时选中第j个(i≠j),两者是互斥的。所以可以把从第r个到第n个人分别“被选中且为#1”的事件的概率加起来,就可以得到在r取值一定的情况下“选中#1”的概率:
将上面的数值用于“相亲”问题。当n=100的时候,得到r=36。也就是说,在相亲过程中,如果有100个面试者,首先应该忽略掉前面35位面试者。然后,从第36位面试者开始,只要看见第一个优于前面所有人的面试者,就选定他!利用这样的策略,选中#1的可能性是36%,大于1/3。这个方案比起前面所举的几种情况的概率1/100、6/100等,要大多了。
修改方案
进一步,假设我们不要那么挑剔,选中绝对次优者#2也不错哦!这样我们可以修改一下方案:如果在r之后迟迟没有出现比参考组更好的面试者(即临时最优者),则从第s个人开始不仅考虑临时最优者,也考虑临时次优者,那么“成功选中了一个候选者(临时最优或次优者),而且选中者恰好也是绝对最优者#1或绝对次优者#2”的概率是多少呢?
不妨将面试者分为三组:[1, r-1]为观察组,[r, s-1]为面试一组,[s, n]为面试二组。
选择策略为:观察组只看不选;在面试一组的过程中,遇到临时最优者就选定并结束;在面试二组的过程中,遇到临时最优或次优者就选定并结束。
在该策略下,“选中#1或#2”事件可以拆分为以下两个互斥的事件:
事件一:在面试一组的过程中,选定一个临时最优者,而且此人恰好是#1或#2。
事件二:在面试二组的过程中,选定一个临时最优或次优者,而且此人恰好是#1或#2。
先看事件二的概率,假设面试二组中的第i个(s≤i≤n)人被选中。这个事件的发生说明从第s个到第i-1个人都不是临时最优或次优者,否则面试会提前结束,而第i个人就不可能被面试到了。换句话说,“第i个人被面试”的事件发生的条件就是:前面i-1个人中的临时最优者必在参考组r-1个人当中,而且其次优者也必在之前面试过的人当中(在排除掉最优者之后剩下的i-2个人之中,次优者必在剩下的s-2个人之中),因此概率为(r-1)/(i-1)×(s-2)/(i-2)。同时,如果选中的人恰好是#1或#2,则概率为2/n。所以事件二发生的概率为:
把事件一和事件二的概率加起来,就是采取新方案成功“选中#1或#2”的概率,即