Finding A Mediocre Player笔记

Introduction

一个数集A中的一个元素a称为\((i,j)\)元素,如果a即不在最大的i个元素中,也不在最小的j个元素中。Mediocre Player问题就是在输入数集中找到一个\((i,j)\)元素。F.Yao给出了一个非常简单的方法,在A中任意选择出i+j+1个元素,然后在这些元素中应用一个第\(i+1\)大元素的选择算法。这个算法的复杂度只与i和j有关,那么这个算法是不是最好的算法呢,Yao证明了在i=1时,这个算法确实是最好的。对于所有的i,j,这个算法是不是最好,并且它是不是与n无关的目前仍然是开放问题。这篇文章针对两种特殊的情况给出了优于Yao的算法的算法(一个是确定性算法,一个是随机算法)。

Al-1

考虑\((i,j)=(\alpha n,(1-2\alpha)n-1)\),其中\(\alpha <1/3\)
算法就是简单的将A中的元素两两配对比较,将它们中的较大元素选出,然后用选择算法选出这些元素的第\(\alpha n+1\)大元素。算法的正确性很容易验证。选择算法则利用Dor and Zwick的\(\alpha\)分位选择算法,对于一个固定的数\(l\),选择算法需要的比较次数$$g(\alpha,l)=(1+(l+2)(\alpha+\frac{1-\alpha}{2^l}))$$对l进行优化,并且考虑到l是整数,则\(l=\lceil log\frac{1}{\alpha}+loglog\frac{1}{\alpha} \rceil\),最小比较次数为$$f(\alpha) = min(g(\alpha,l),g(\alpha,l+1))$$记Yao算法的比较次数为\(c_{Yao}\),Al-1的比较次数为\(c_{A-1}\)则$$c_{A-1}=\frac{1}{2}(1+f(2\alpha)) $$ $$c_{Yao}=(1-\alpha)f(\frac{\alpha}{1-\alpha})$$一些数值上的计算可以知道,Al-1确实比较次数要更少。

利用Schnohage给出的下界估计\(C(P)\geq \lceil log(n!/\mu(P))\),对于此处mediocre player问题特殊的偏序计算出\(\mu(P)=i! j! (n-i-j-1)!binom{n}{i+j+1}\),则$$C(P)\geq \lceil log\frac{(i+j+1)!}{i!j!}$$然而这个界非常的弱,因为右边的式子至多只有i+j,这个界可以直接由偏序的连通性得出(利用A.C.Yao关于偏序产生问题复杂性论文的Lem2).实际上,上面给出的算法经过实验,n的系数严格大于1,即\(C(P)>n\)

(未完)

posted @ 2019-04-25 21:29  strA98  阅读(152)  评论(0编辑  收藏  举报