数学家相亲——最优停止问题

百科   2024-12-02 21:54   广东  


最优停止问题,也叫麦穗问题,傻博士相亲,公主选婿,秘书招聘等等。总之就是有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”的概率: 示意图如下:


为了将P(r)变成连续函数以便使用微积分,我们可以做变量代换x=r/n、t=i/n,将离散变量r和i化为连续变量x和t。当n趋于无穷大时,1/n是无穷小量,可以用微分量dt表示,然后用积分代替求和,就可以将P(r)化为连续函数P(x): 如果令P'(x)=0,就可以得到函数的极值点:x=1/e≈0.36,此时P(x)的值也等于1/e≈0.36。


将上面的数值用于“相亲”问题。当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”的要求放宽为“选中#1或者#2”,我们知道“在某个位置选中#2”的事件与“在某个位置选中#1”的事件是互斥的,两者的概率均为1/n,加起来就是2/n,所以事件一概率似乎应该为: 

但仔细想一想就会发现,在面试一组中,#2并非如#1那样“面试即选中”,因为“选中#2”的事件除了要满足“前面i-1个人中的最优者在参考组r-1个人当中”的面试条件之外,还要满足“#1不在前面i-1个人当中”,否则#2即使被面试也不会被选中,因为此时#2不可能优于前面i-1个人,不符合面试一组的选择条件。而“#1不在前面i-1个人当中”的概率为1-(i-1)/n。所以“在面试一组中选中#2”的概率为: 因此,事件一的概率等于在面试一组中选中#1”的概率与在面试一组中选中#2”的概率之和,即: 

事件一事件二的概率加起来,就是采取新方案成功“选中#1或#2”的概率,即 当n→∞时,令x=r/n,y=s/n,则上式化为连续函数: 


 
该函数随x和y的变化可用一个三维空间中的二维曲面表示,如下图所示。

二维概率分布函数

求这个函数的极值,令P(x, y)对x和y的偏导数为0,解方程即得新方案下最优停止问题的解:当x=0.347, y=0.667时,概率函数P(x, y)取极大值0.574。当n=100时,四舍五入的结果是r=35,s=67。

因此,如果采取策略“选择#1或#2”的话,成功的概率大约是57%,比单纯“选择#1”的成功概率36%又高出了许多。这个结果充分体现了数学的威力。


后记

本文主要参考张天蓉博士的科普文章《数学家的相亲模式,你或许可以用到》,尤其是最后“选择#1或#2”的修改方案,张博士给出了最终的连续概率公式,但作为中间结果的离散概率公式只是一笔带过而没有给出来。我查阅了其附录文献并浏览互联网都找不到这个公式,于是决定自己研究,折腾了几个小时终于弄出来:

认为这个公式还是比较重要的,不然整个内容就显得不够完整了,于是写了这篇文章,主要是为了讲这个公式以及自己的推导过程。

最优停止理论(Optimal Stopping Theory)是随机过程里面的一个重要课题,在金融和统筹规划等领域都有广泛应用。希望我的这点小小的研究能够“填补网上的一个空白”,对大家有所启发和帮助吧。

尚万只老虎
究中西文化,通数理人文,成一家之言。