何时适可而止?

系列:头脑风暴
查看该系列所有文章

最近看到一个有趣的问题:

我们可以连续抛一枚均匀的硬币,并且随时可停下,在停下后可获得的回报为(正面出现次数/抛硬币的次数)。如果希望获得的回报越大越好,我们应该采取什么样的停止策略?

在第一次抛硬币时,如果出现正面时立即停止,此时获得一个最大的回报1,如果出现反面,则应该选择继续抛。假设前n 次抛硬币出现了k 次正面时最后能获取的期望回报值为f(n, k) ,利用动态规划的思想容易列出方程

f(n, k) = \max ( \frac{k}{n}, \frac{f(n+1, k)+f(n+1, k+1)}{2})

但要解上面的方程可不是那么容易。事实上,它们的精确值还没有人知道。注意到由于一维随机游走的常返性,对任意的n k 都有f(n,k)\geq 0.5 。利用这个边界条件可以求出一些近似解,我用下面的Matlab跑了一下:

N = 100000;
f = max(0, 0:1/N:1);
for n = N-1:-1:0
    f(1:n+1) = max((0:n)/n, (f(1:(n+1))+f(2:(n+2)))/2);
end

f = f(1);

将边界设为第100000枚硬币,算出来从最开始抛时的期望回报大约为0.79289。由于我的破计算机速度以及Matlab的效率问题,我这里很难再提高它的精确性,但这里有人将边界提高到了67108864,计算出来的结果为0.79295350640770。

如果只想知道该在什么时候停止呢?精确的规则也没人知道,Larry A. Shepp在论文Explicit solutions to some problems of optimal stopping中证明了抛的硬币次数n 足够多时,应该等到正面数为(0.83992\sqrt{n}+n)/2 时停止。

这个问题,和以前的最佳约会策略一样,都是说如何基于当前的已知信息做决策,是在现实生活中不断遇到的,比如在赌场赌博,到底赌到什么时候该收手,上面答案可做一点参考。

写于2010年十一月 21日

10条留言 -> 跳到留言表格
  • At 2010.11.21 12:44, GM said:

    请教一下,为什么那个式子里面不是 (f(n + 1, k) + f(n + 1, k + 1) )/2
    k-1是因为什么?

  • At 2010.11.21 13:20, 阅微BLOG said:

    这个纯粹学习一下…………

    • At 2010.11.23 11:08, vichare said:

      一个月前我在校内和blog上提出过这个问题,是根据遇到的一个问题简化抽象出来的,看来不是首创哈
      我那个时候用C写了一个跟本文完全相同的算法,只算了6000个点,结果大概是0.7924,不过我把决策都记下来了。其中会有些比较有趣的结论,比如扔3次其中2次正面的话还是不应该停下来,感觉挺反直觉的。

      • At 2010.11.26 17:17, maye said:

        p = max(0, -1:1/N:1);
        这句什么意思,为什么初始值是这么设定的呢

        • At 2010.11.27 16:23, zhiqiang said:

          这是Matlab的写法,意思是 p(i) = \max(0, (-N+i-1)/N), i = 1, 2, \cdots, 2N+1 ,这个为文章中提到的边界条件。

        • At 2010.11.27 18:55, maye said:

          我是问为什么是这样的边界条件
          多谢

          • At 2010.11.28 11:26, zhiqiang said:

            Sorry我原来那里写得比较乱,还有一个笔误,f(n,k) 的边界是0.5 ,原来被写成了0 。这个0.5 的边界是因为一维随机游走的常返性。

            Matlab程序也比较混乱,我将它修改了一下,你看先现在是不是清楚些

          • At 2010.12.06 10:54, Henry said:

            杜野This problem is very similar to the discrete version of pricing the American Put Option and the optimal stopping time concept there. The main difference is that the American option(not a perpetual one) has a natural boundary condition; however, this problem does not.

            • At 2011.07.11 15:29, 掷硬币问题 « Si-World said:

              [...] 阅微堂 中也提到过这个问题。 Ps2: [...]

              (Required)
              (Required, not published)

                B | I | U | D | 添加链接 | 插入引用 | 插入代码 | 插入表情 | | + | ?

              guest | 注册 | 管理

              阅微堂

              理工科背景的证券从业人员
              Loading...
              Loading...
              Loading...