考虑一组从范围中以均匀概率分布选择的隐藏k
随机数,其中 N 对我来说是未知的。在每个时间间隔中,数字都会显示给我,如果我还没有选择,我可以选择作为我的最终数字,或者继续下一个时间间隔。当向我透露时,我无法再选择任何一个。如果在显示时我还没有选择一个数字,那么默认情况下,它变成.{r1,r2...rk}
[0..N]
ri
ri
c
c
ri
r1,r2..r(i-1)
rk
c
我想优化 c,在某种意义上最大化它的期望值。
如果N
知道,那么答案是显而易见的。同样,如果k
很大,那么我可以使用 的早期值ri
来估计N
。
目前进展:
如果k = 1
那么没有选择。默认情况下c=r1
。的期望值c
为N/2
。
如果k = 2
那么所有选择算法都与期望值相同N/2
。
如果k = 3
那么最好的算法是
if r2/r1 >= 0.75 then
c=r2
else
c=r3
的期望值c
约为0.58N
。
如果k = 4
那么我想出的最好的就是
if r2/r1 > 0.920 then
c=r2
elseif r3/r1 > 0.665 then
c=r3
else
c=r4
的期望值c
约为0.64N
。r1
我相信我应该能够通过“使用”的值和r2
选择是否接受作为我选择的值来做得更好,r3
但是分析解决方案使我无法理解。
k=4
任何人都可以为和/或提供更好的算法k=5
吗?
关于秘书问题的注释: 在我能找到的所有版本的 SP 中,只有你有关于候选人与已经出现的候选人的相对等级的信息。但是在这个问题中,每个候选者都有一个值(当然来自未知范围 [0..N]),并且通过利用值的比率,您可以做得更好。例如,k=3 问题的 SP 解决方案(如果 p2 > p1 选择 p2 否则选择 p3)的预期回报为 o.5833N,而我的解决方案(如果 p2/p1 > 0.75 选择 p2 否则选择 p3)有预期回报为 0.5937。
到目前为止,我对任何 k 问题的最佳回报是:
i = 0
repeat
inc(i)
until (r[i]/Max(r[1]..r[i-1]) > V[i]) or (i=k)
c=r[i]
其中对于任何选择的 k,v[i](或者如果您愿意,也可以称之为 v[k,i])是一个预先选择的实数值数组。秘书问题的标准解决方案仅使用 VV=[inf,...inf,1,...,1] 中的 inf 和 1 的值,而我可以通过在V. 但我相信我的解决方案仍然是次优的,因为我只使用 Max(r1..ri) 的值,而在每个决策点的 r1..ri 值的分布中必须存在“隐藏”信息。
迄今为止的最佳解决方案:
k = 3 : v = [inf,0.75] : cexp = 0.58N
k = 4 : v = [inf,0.92,0.66] : cexp = 0.665N
k = 5 : v = [inf,inf,0.82,0.63] : cexp = 0.6683N