是否存在具有以下直接和属性的函数?


15

可以在布尔电路的电路复杂性框架中,或者在代数复杂性理论的框架中,或者可能在许多其他设置中提出这个问题。通过对参数进行计数,很容易表明在N个输入上存在布尔函数,这些布尔函数需要成倍增加的门数(当然,我们没有任何明确的示例)。假设我希望在M个不同的输入集上对某个整数M评估M次相同的函数,因此输入的总数为MN。也就是说,我们只是想试用对于相同的功能˚F各时刻。f(x1,1,...,x1,N),f(x2,1,...,x2,N),...,f(xM,1,...,xM,N)f

问题是:是否已知函数的序列(每个N有一个函数),使得对于任何N,对于任何M,所需门的总数至少等于M乘以M的指数函数。不行吗 因为我们希望这个结果对所有M都成立,所以简单的计数论证似乎不起作用。可以在代数复杂度理论和其他领域提出这个问题的简单类似物。f

Answers:


13

好吧,这是错误的:可以仅使用O(N(M + 2 ^ N))门来评估ANY f的M个副本,这可能比M * exp(N)小得多(实际上,您可以进行线性摊销指数M的复杂度)。我不记得参考文献了,但是我认为它可以像下面这样:

首先添加2 ^ N个虚拟输入,它们只是常数0 ... 2 ^ N-1,现在用xi表示第i个N位输入(因此对于i <= 2 ^ N,我们有xi = i,对于2 ^ N <i <= 2 ^ N + M我们有原始输入)。现在我们为M + 2 ^ N个输入中的每一个创建一个三元组:(i,xi,fi)其中,对于前2 ^ N个输入(硬连接到电路中的常数),fi是f(i),fi = “*“ 除此以外。现在我们根据密钥xi对三元组(i,xi,fi)进行排序,然后让第j个三元组为(i_j,x_j,f_j),通过让g_j为如果f_j不是“ *”,则f_j,否则让g_j为g_(j-1)。现在,根据关键字i_j将新的三胞胎分类回去,您会在正确的位置得到正确的答案。


聪明!一件小事:我们必须稳定地对三元组进行排序(或以其他方法保证fi≠“ ”的三元组比fi =“的三元组来得早)。
伊藤刚(Tsuyoshi Ito)2010年

非常聪明,谢谢。但是,在代数复杂度设置中是否有任何类似的工作?
马特·黑斯廷斯

1
我猜想在M达到无穷大的情况下,这是另一种说法,就是您可以花费2 ^ N * 2 ^ N的时间为f的所有值构建一个哈希表,然后可以计算O(N ) 时间。我认为还有另一个原因,即使对于更温和的N值,我们至少也不应该知道类似的情况是否成立,这是因为它会比已知的下界更好。您将可以通过首先通过强行强制在n'= log n(或者n'= loglog n)输入上找到功能复杂的函数来构造具有超线性下界的函数,然后对其进行n / n'个拷贝。
波阿斯·巴拉克

1
在上面关于为什么这样的结果导致下限的争论中,我不知道重复的次数是否真的更温和,但它确实也适用于无限领域。
波阿斯·巴拉克

嗨,Boaz,事实上,您的评论正是我对这些功能的存在感兴趣的原因。但是,有一个微妙的地方,即“强行强迫”。可能存在(这是我的问题要解决的问题)这种功能,但是我们没有算法可以证明给定功能具有此属性。毕竟,似乎没有办法强行限制所有M的下限值,因为您必须检查无数个不同的电路。因此,对于无限域可能存在这样的功能,但我们无法显示。
马特·黑斯廷斯

10

还有另一个结果进一步限制了您正在寻找的直接和现象的可能性。Shannon(由Lupanov收紧)的一个著名的早期结果表明,所有布尔函数都可以由大小为的电路计算,并且通过Shannon的计数参数,这对于随机函数是严格的。可能有人认为,至少对于m的中等值,计算m个随机f实例的电路复杂性将扩展为m 2 n / n。然而,Dietmar Uhlig在O(2n/n)mmfm2n/n

“网络为多个输入值计算布尔函数”

m=2o(n/logn)mfO(2n/n)m=1

我找不到在线的非门禁副本,也找不到作者的主页,但是在此程序中我遇到了这篇论文:

布尔函数复杂度(伦敦数学学会讲义系列)


谢谢!是否有关于TCS中悖论的问题?这也可以作为答案:)
arnab 2010年

也感谢您的回答。由于无法阅读会议记录,我想与以前的回答类似,它可能依赖于有限数量的可能输入,因此再次提出与上述相同的后续问题:在代数复杂度情况下呢?
马特·哈斯汀

实际上,似乎香农首先证明了O(2 ^ n / n)的上限;卢帕诺夫得到了正确的领先常数。我纠正了这个。弗兰德森(Frandsen)和米尔特森(Miltersen)在“回顾最困难的功能的电路尺寸界限”中对此进行了详细说明。
安迪·德鲁克

5

关于代数复杂度,我不知道指数复杂度下降到亚指数摊销复杂度的例子,但至少有一个简单的例子,M个不相交的副本的复杂度可以大大小于单个副本的M倍。 :

对于“随机” n * n矩阵A,由A定义的双线性形式的复杂度(函数f_A(x,y)= xAy,其中x和y是2个长度为n的矢量)为Omega(n ^ 2 )-可以通过“类似计数”的维参数来显示,因为您需要在电路中放置n ^ 2个“位置”来放置常量。但是,给定n对不同的向量对(x ^ 1,y ^ 1)...(x ^ n,y ^ n),您可以将x放入n * n矩阵X的行中,同样将y的放入矩阵Y的列中,然后从XAY的对角线读取所有答案x ^ iAy ^ i,其中这是使用快速矩阵乘法在n ^ 2.3(左右)运算中计算的,远小于n * n ^ 2。


谢谢,我知道那个例子。类似的情况是,在一个变量中存在度为n的多项式,在给定的点上需要花费时间n进行评估(尽管我不认为有任何明确的例子,对吗?)但是,可以在以下位置评估这种多项式: n个时间点n log ^ 2(n)。
马特·哈斯汀

1
我发现80年代有关代数直接和问题的两篇论文:Ja'ja和Takche的“关于直接和猜想的有效性”和Bshouty的“关于扩展直接和猜想”。我无法总结它们的内容,但是也许它们会有所帮助。
安迪·德鲁克

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.