可以在恒定时间内解决的非平凡问题?


14

恒定时间是时间复杂度的绝对下限。也许有人会想:在恒定时间内可以计算出任何平凡的东西吗?如果我们坚持使用图灵机模型,那么将无能为力,因为答案只能取决于输入的恒定长度的初始部分,因为输入的其他部分甚至无法在恒定时间内到达。

另一方面,如果我们采用功能更强大(更现实)的单位成本RAM模型,其中对位数字的基本运算被计为单个步骤,那么我们也许能够解决非平凡的问题任务,即使是在恒定的时间。这是一个例子:O(logn)

实例:整数,每个整数以O log n 位的二进制格式给出。n,k,l,dO(logn)

问题:是否存在一个顶点图,其顶点连通性为k,其边缘连通性为l,其最小度为dnkld

请注意,从定义来看,问题甚至不在于NP。原因是自然见证人(图形)可能需要位长的描述,而输入仅由O log n 位给出。另一方面,以下定理(请参阅B. Bollobas的《极值图论》)得到了拯救。Ω(n2)O(logn)

定理:为整数。当且仅当满足以下条件之一时,存在一个具有顶点连通性k,边缘连通性l和最小度 dn顶点图:n,k,l,dnkld

  • 0kld<n/2
  • 12d+2nkl=d<n1
  • k=l=d=n1.

由于可以在恒定时间内检查这些条件(在单价RAM模型中),因此在该模型中,定理导致了恒定时间算法。

问:恒定时间算法还有哪些其他重要的例子?


6
验证概率可检查的证明计数吗?
戴维·埃普斯坦

6
不要以为您的示例是时间。输入的长度为m = O log n ,在这种情况下,典型的字RAM将只允许一步执行O log m 位操作。(另一种方法是让字长正比于输入的长度,但在这种情况下,一个可以说出许多“固定时间”的算法......),你可以尝试对长度的字符串添加ň这些数字后,后来我没有看到如何检查该格式在O 1 )中的运行情况O(1)m=O(logn)O(logm)nO(1)时间:似乎您必须检查(例如通过二进制搜索)总字符串长度确实为,这需要log n时间。Ω(logn)logn
瑞安·威廉姆斯

4
我认为David Eppstein的建议指向了一个更有趣的方向:考虑随机 O(1)时间算法。至少在那种情况下,您可以希望在至少一次算法运行中访问每个输入位。
瑞安·威廉姆斯

4
随机O(1)-时间算法的一个简单示例是近似中值(在将输入大致分割为50-50的意义上为近似值)。只需从输入中随机均匀地选择1000000个元素,计算其中值,然后输出即可。
Jukka Suomela 2015年

5
我喜欢您的问题,但是您的示例的缺点是它依赖于数学定理。将其推到极限,您可以说:实例正整数问题是否存在n > 2的整数,使得x n + y n = z n(答案为是或否)。好吧,确实存在一个恒定时间算法,因为答案始终是False,但这显然不是您想要的示例。x,y,zn>2xn+yn=zn
J.-E.

Answers:



5

有许多在组合博弈论中研究过的博弈示例,其中博弈的状态可以用恒定数量的整数值来描述。对于其中一些,可以在恒定时间内计算出游戏的获胜策略。但是他们也对您的计算模型究竟是什么提出了疑问。

最简单和最基本的组合游戏之一是尼姆:一个拥有恒定数量的豆类,并且您可以一举将一堆豆中的任何数量的豆类删除,无论是赢还是输(取决于您选择的规则)如果您拿了最后一个豆子。如果允许按位布尔异或运算(例如,C / C ++ / Java /等编程语言中的^运算符),则可以在恒定时间内计算出最佳策略,这是模型中的恒定时间算法吗?

这是已知存在恒定时间精确确定性算法的算法(在一个可能不切实际的扩展计算模型中,该模型允许您在恒定时间内测试数字的素数),但不知道该算法是什么:给定起点在Sylver造币游戏中移动,确定它是成功还是失败。在Berlecamp,Conway和Guy,Winning Ways中给出了解决此问题的流程图,但这取决于对获胜举动的一般描述的有限反例集,并且不知道该集是什么(甚至是否是空)。

组合博弈论的另一个有趣示例是Wythoff的博弈。每个游戏位置都可以用一对整数(即您的计算模型中的恒定空间)描述,游戏中的移动涉及将这两个整数之一减小为较小的值,而获胜策略则涉​​及移动到一个位置这两个整数之间的比率尽可能接近黄金比率。但是在许多游戏位置中,您都可以选择:您可以将两个整数中的较大者减小到(接近)较小整数乘以黄金比例的程度,或者将较小的整数除以黄金比例。这两个选择中只有一个是制胜法宝。因此,可以根据恒定数量的算术运算来定义最佳策略,但是这些运算涉及非理性数,即黄金分割率。这是模型中的固定时间算法吗?也许吧ñ日志ñ


谢谢,这些都是有趣的例子。他们还很好地阐明了“恒定时间”的概念比我最初想象的要清晰的事实……
Andras Farago

1

|G|Gpmm|G|GpmG|G|mmm

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.