近似解决方案
假设这副牌中有$n$张牌,我们从这副牌上得到$k$张牌。每次翻牌时,我们必须决定是继续玩还是停止。假设我们已经翻阅了$m$张卡片,而迄今为止翻阅的最大一张卡片的价值为$a$。一些快速观察:
- 如果我们翻的最后一张牌的价值小于$a$,那么我们显然必须继续翻牌,因为如果我们现在停止玩,我们肯定会输。
- 假设我们翻转的最后一张卡的值最大($a$),我们必须评估剩余的$k-m$卡每个都小于$a$的概率(换句话说,$a$获胜的概率)。我们应该将这个概率与如果我们继续比赛我们将获胜的概率进行比较。以最高者为准,将决定最佳行动方案。
一种可能的启发式决策是,如果当前牌获胜的概率大于1/2美元,则停止,否则继续玩。这是一个次优策略,因为我们获胜的机会可能是甚至更少如果我们继续玩!换言之,如果我们现在停止比赛,我们可能有49%的获胜机会,但如果我们继续比赛,只有45%的获胜机会;在这种情况下,我们现在应该停下来减少损失。这就是说,这个次优策略与最优策略非常接近(而且很容易计算!)所以让我们来计算一下。
到目前为止,我们翻转过的每张$m$卡都是不同的,并且小于或等于$a$。如果当前卡$a$是优胜者,则剩余的$k-m$卡必须全部从小于或等于$a$的$a-m$卡中选择。这可以通过$a-m\选择k-m$方式完成。总的来说,有$n-m\choose-k-m$种选择剩余卡片的方法。因此,如果
\[
\压裂{a-m\选择k-m}{n-m\选择k-m}\ge\压裂{1}{2}
\]显然,这将满足$a$足够大的要求,所以我们的最佳决策规则是阈值规则。$a$的阈值没有封闭式表达式,但数值计算很简单。下面是$n=100$,$k=10$情况下的近似决策规则图。
下角的三角形白色区域对应于情况$a<m$,这是不可能发生的,因为$a$必须是迄今为止看到的最大数字,并且所有数字都必须是不同的。
精确解决方案
为了得到精确的解决方案,我们将使用动态规划.让牌编号为$\{1,2,\dots,n\}$,并让$k$为游戏开始时面朝下的牌的数量。一般来说,人们可能会认为最佳策略取决于迄今为止所有卡片的个人价值。事实并非如此。事实证明,最佳策略仅取决于:
- 到目前为止,我们已经看到了多少张卡片(我们称之为$m$)
- 到目前为止,我们看到的价值最高的卡片(我们称之为$a$)
- 上一张交出的卡片是否是迄今为止最大的。
我们将定义两个函数,$V^\text{lo}_m(a) $和$V^\text{hi}米(a) 美元,以记录在我们提交的最新牌分别为低或高的情况下赢得游戏的概率。
基本情况:假设$m=k$,那么我们刚刚翻过最后一张卡片。比赛自动结束,我们没有决定权。如果我们翻过来的牌是编号最高的牌,我们就赢了。换句话说:
\[
\开始{对齐}
V^\text(V ^\text){lo}k(_k)(a) &=0\\
V^\text(V ^\text){你好}(_k)(a) &=1
\结束{aligned}\qquad\text{for}a=1,\点,n
\]
递归:现在假设我们进入游戏$m$步。让我们从一张低翻牌的情况开始。在这里,如果我们停止比赛,我们肯定会输。所以我们必须继续比赛。我们假设下一张翻过的卡片是S$中的$y\。这里,$S\subseteq\{1,\dots,n\}$是我们还没有看到的一组卡片。请注意$|S|=n-m$,因为到目前为止我们已经翻阅了$m$张卡片。这些剩余的$n-m$卡中的任何一张都可以以相同的概率翻转到下一张。让我们分别处理$y<a$和$y>a$这两种情况:
\开始{align}
V^\text(V ^\text){lo}_m(a) &=\frac{1}{n-m}\biggl(在S,\,y<a}V^\text中为sum_{y\{lo}_{m+1}(a)+sum_{y\在S,\,y>a}V^\text中{你好}_{m+1}(y)\biggr)\\
&=\压裂{1}{n-m}\biggl((a-m)V^\text{lo}_{m+1}(a)+\sum_{y=a+1}^nV^\text{你好}_{m+1}(y)\biggr)
\结束{align}输入最后一步,我们使用了一个事实,即$V^\text{lo}$sum中正好有$a-m$项,这与$y$无关。在$V^\text{hi}$sum中,我们对所有大于$a$的值进行求和,但尚未使用此类值。
对于高翻页卡,我们可以选择停止游戏或继续游戏。如果我们停止游戏,如果剩下的$k-m$卡刚好都小于我们目前的最高卡$a$,我们就会赢。有$a-m$张卡满足此属性,总共剩下$n-m$张,因此获胜的概率是${a-m\choose-k-m}/{n-m\chooke-k-m{$。如果我们决定继续比赛,我们得到的答案与低水平情况相同。因此,我们的递归是:
\[
V^\text(V ^\text){hi}米(a) =\max\biggl\{\下大括号{\frac{{a-m\选择k-m}}{n-m\选择k-m}}}_{text{STOP}},\,
\下大括号{V^\text{lo}_m(a) }_{\text{PLAY}}\biggr\}\qquad\text{表示}a=1,\点,n
\]在这一点上,不借助于数值计算就不可能继续进行下去。好消息是,这些递归比较容易用数字表示;我们可以将所有相关概率存储在两个矩阵$V^\text{lo},V^\text{hi}\in\mathbb{R}^{k\timesn}$中,并且可以计算$\mathcal{O}(n^2k)$中的所有值。
下面是$n=100$,$k=10$情况下的最优决策规则图。
正如我们所看到的,这个图与近似规则非常相似。以下是用于比较的阈值表:
卡片翻转 |
近似阈值 |
最佳阈值 |
1 |
93 |
93 |
2 |
93 |
92 |
三 |
92 |
91 |
4 |
90 |
89 |
5 |
88 |
87 |
6 |
86 |
84 |
7 |
82 |
80 |
8 |
74 |
72 |
9 |
55 |
55 |
10 |
10 |
10 |
这意味着,如果我们的第九张牌是$55$或更高,我们应该停止玩。请注意,如果我们进入第10回合,而我们最后一张翻转的牌仍然是竞争者(即我们迄今为止见过的最大的一张),那么这张牌的价值不能低于10美元,我们就会自动获胜。
获胜概率
那么我们如何计算实际的获胜概率呢?我们已经有了!如果我们一直递归到$m=1$,那么$V^\text{hi}_1(b) $告诉我们,如果我们翻出的第一张牌是$b$(当然,这是我们的最高牌),那么我们获胜的概率是多少。由于所有卡片都很可能是第一张卡片,因此我们有:
$\显示样式
\mathbb{P}(\text{winting})=\frac{1}{n}\sum_{b=1}^nV_1^\text{hi}(b)=V_0^\text}hi}
$
对于$n=100$和$k=10$的情况,获胜概率为62.19%。
限制案例
我们可以很容易地计算出如果我们添加更多卡片会发生什么。让我们修正$k=10$,然后尝试$n=1000$。
正如我们所看到的,当我们使$n$变大时,事情看起来并没有太大的不同。我们可以通过将$a$作为$n$的某个固定分数并使用我们的近似策略而不是最佳策略来近似这个极限形状:
\开始{align}
\压裂{a-m\选择k-m}{n-m\选择k-m}
=\prod_{j=1}^{k-m}\frac{a-m+1-j}{n-m+1-j}
\近似\prod_{j=1}^{k-m}\frac{a}{n}
=\左(\压裂{a}{n}\右)^{k-m}
\结束{align}因此阈值(当该概率达到$1/2$时)发生在:
\[
近似n,2^{-\frac{1}{k-m}}
\]我们可以将极限情况公式与实际公式叠加,以查看它们的匹配程度。以下是一个$n=10000$和$k=40$的示例:
这是一个很好的匹配,最佳策略的阈值略低于最佳策略。增加$k$也很简单,只需将上述图片向右移动即可!
注:如果天真地计算二项系数的比率可能会很困难,因为它涉及两个非常大的数字的比率。我在绘制绘图时使用的方法是将表达式转换为乘积:
\[
\压裂{a-m\选择k-m}{n-m\选择k-m}
=\prod_{j=1}^{k-m}\frac{a-m+1-j}{n-m+1-j}
\]然后计算乘积的每个项并将它们相乘。