• 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-2alpha)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 logfrac{1}{alpha}+loglogfrac{1}{alpha} ceil),最小比较次数为$$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(2alpha)) $$ $$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 logfrac{(i+j+1)!}{i!j!}$$然而这个界非常的弱,因为右边的式子至多只有i+j,这个界可以直接由偏序的连通性得出(利用A.C.Yao关于偏序产生问题复杂性论文的Lem2).实际上,上面给出的算法经过实验,n的系数严格大于1,即(C(P)>n)

    (未完)

  • 相关阅读:
    设计模式走一遍---观察者模式
    从0打卡leetcode之day 6--最长回文串
    回车与换行的故事
    线程安全(中)--彻底搞懂synchronized(从偏向锁到重量级锁)
    线程安全(上)--彻底搞懂volatile关键字
    从0打卡leetcode之day 5 ---两个排序数组的中位数
    聊一聊让我蒙蔽一晚上的各种常量池
    从零打卡leetcode之day 4--无重复最长字符串
    C4.5算法总结
    数据库游标使用
  • 原文地址:https://www.cnblogs.com/mathematic-offering/p/10770936.html
Copyright © 2020-2023  润新知