在哪些非平凡问题上,我们知道当前拥有的算法是渐近最优的?(用于图灵机)
以及如何证明呢?
在哪些非平凡问题上,我们知道当前拥有的算法是渐近最优的?(用于图灵机)
以及如何证明呢?
Answers:
如果您正在考虑的复杂性度量是查询复杂性,即机器必须查看输入以解决特定问题的次数,那么对于许多问题,我们都有最佳算法。其原因是,由于包括对手方法在内的一些流行技术,查询复杂度的下限比时间或空间复杂度的下限更容易实现。
但是,不利的一面是,这种复杂性度量几乎可以用于量子信息处理中,因为它提供了一种证明量子与经典计算能力之间差距的简便方法。这个框架中最臭名昭著的量子算法是格罗弗算法。给定一个二进制字符串对于该字符串存在一个i使得x i = n,则需要找到i。传统上(没有量子计算机),最简单的算法是最佳的:您需要平均查询此字符串n / 2次才能找到。Grover提供了一种在 O (√查询字符串。这也被证明是最佳的。
使用比较(合并排序,举一个例子)进行比较排序是最佳的,证明涉及到简单地用n计算树的高度!树叶。
假设唯一游戏猜想,Khot,Kindler,Mossel和O'donnell表明,Max-Cut比Goemans和Williamson的算法更好地近似于NP。因此,从这个意义上讲,G&W是最佳的(还假定)。
在某些情况下(例如,对抗性处理器的比例),某些分布式算法可能是最佳的,但是由于您提到了图灵机,所以我想这不是您要查找的示例类型。
如果允许动态数据结构问题,我们知道一些超线性时间最佳算法。这是在单元探针模型中,其强度与单词RAM一样强,即,它不是诸如代数决策树之类的受限模型。
一个示例是在动态更新下保留前缀和。我们从数字的数组开始,目标是保留一个允许以下操作的数据结构:
您可以使用基于扩展二叉树且叶子处带有A [ i ]的数据结构,轻松地在时间内支持这两种操作。Patrascu和Demaine证明这是最佳选择:对于任何数据结构,都有n个加法和前缀和查询的序列,这些查询的总时间为Ω (n log n )。
另一个示例是并集查找:从的分区开始为单例,并保留允许两个操作的数据结构:
Tarjan表明,具有等级和路径压缩启发式并集的经典不相交集森林数据结构每次操作花费时间,其中α是逆阿克曼函数。弗里德曼和Saks表明这是最佳的:对于任何数据结构存在的序列Ñ工会,并找到它必须采取行动Ω (Ñ α (Ñ ))的时间。
许多亚线性时间算法的上限与下限匹配。