理论计算机科学

理论计算机科学家和相关领域的研究人员的问答


1
将电路转换为带有门扇出1的(任何深度)电路的最有效方法
编辑(2011年8月22日): 我正在进一步简化问题,并悬赏该问题。也许这个更简单的问题将得到一个简单的答案。我还将删除所有不再相关的原始问题。(感谢Stasys Jukna和Ryan O'Donnell部分回答了原始问题!) 背景: 给定的AC 0电路随深度k和大小S,存在另一个AC 0电路计算与深度k和大小相同功能,使得新电路具有扇出= 1对于所有的栅极。换句话说,该电路看起来像一棵树(除了输入端,因为输入端可能扇出至多个门)。一种方法是复制所有扇出> 1的门,直到所有门扇出= 1。O(Sk)O(Sk)O(S^k) 但这是将AC 0电路转换为具有扇出1的AC 0电路的最有效方法吗?我在Ryan O'Donnell的课程笔记的第14课中阅读了以下内容: 假设C是计算奇偶校验的大小为S的任何深度k电路。此练习表明C可以转换为水平的k深度电路,其中的电平交替使用AND和OR门,输入线为2n文字,每个门具有扇出1(即,它是一棵树) )—大小最多增加到。(2kS)2≤O(S4)(2kS)2≤O(S4)(2kS)^2 \leq O(S^4) 脚注:实际上,这是一个比较棘手的练习。如果只需要获得大小,容易,如果您将k视为“常数”,则对于我们的目的而言这几乎是相同的。O(Sk)O(Sk)O(S^k) 这是否意味着有办法采用大小为S的任何深度k AC 0电路并将其转换为扇出为1,深度k和大小为的AC 0电路?如果是这样,这是怎么做的,这是最著名的方法吗? (2kS)2(2kS)2(2kS)^2 原始问题: 给定的AC 0电路随深度k和大小S,什么是最好的已知方法(在最小化所得到的电路的电路规模方面)这转换为交流的0电路深度k的和栅极扇出1?有没有下限? 更新,更简单的问题: 这个问题是对原始问题的放松,在原始问题中,我不坚持要求所得电路的深度恒定。如上所述,有一种方法将深度为k,尺寸为S 的AC 0电路转换为尺寸为的电路,以使新电路的所有门扇出= 1。有更好的构造吗?O(Sk)O(Sk)O(S^k) 给定深度为k且尺寸为S 的AC 0电路,最有名的方法(就最小化所得电路的电路尺寸而言)将其转换为门扇出为1的任何深度的电路是什么?

3
在时间和查询复杂度之间进行权衡
直接以时间复杂度或电路下限工作很可怕。因此,我们开发了诸如查询复杂度(或决策树复杂度)之类的工具来处理下限。由于每个查询至少需要一个单元步骤,并且查询之间的计算被视为免费,因此时间复杂度至少与查询复杂度一样高。但是,我们能谈谈分离吗? 我对古典或量子文学中的作品感到好奇,但由于我比较熟悉,因此提供了QC的示例。 一些著名的算法,例如Grover的搜索和Shor的周期发现,时间复杂度在查询复杂度的多对数因子之内。对于其他问题,例如“隐藏子组问题”,我们具有多项式查询复杂度,但多项式时间算法未知。 由于时间和查询复杂度之间可能存在差距,因此尚不清楚最佳时间复杂度算法是否必须具有与最佳查询复杂度算法相同的查询复杂度。 在时间和查询复杂度之间是否存在取舍的例子? 是否存在最知名的时间复杂度算法与最知名的查询复杂度算法具有不同查询复杂度的问题?换句话说,我们可以执行更多查询以简化查询之间的操作吗? 还是有一个论据表明总是存在一种渐近最优查询算法的版本,该算法的实现具有渐近最佳时间复杂性?

1
比特币和防止去中心化数字货币的双重支出
最近一种创建去中心化在线货币(称为比特币)的方法引起了人们的兴趣。目的是要有一种无需中央权力机构,没有双重支出或伪造货币的转移货币的方式。他们的方法是让网络中的所有节点都尝试通过工作量证明计算来验证交易,然后将验证最多的交易视为正式交易。如果攻击者想要伪造官方记录(以扭转他们的第一笔支出并再次使用硬币),那么他们必须拥有网络中的大部分计算能力。最大的缺点是,在此方案中,所有交易的记录必须是公开的,作者认为这是必须的: 确认没有事务的唯一方法是知道所有事务。在基于造币厂的模型中,造币厂知道所有交易,并确定哪个先到。要在没有受信任方的情况下完成此任务,必须公开宣布交易 很明显,所有交易都必须以任何这样的方案来公开吗?更广泛地说:是否有关于分散式数字货币或相关思想的理论/密码学研究? 笔记 经过元讨论之后,我交叉发布到crypto.SE。

4
直接SAT转换为3-SAT
此处的目标是使用最少数量的子句和变量,在多项式时间内将任意SAT问题简化为3-SAT。我的问题是出于好奇。不那么正式,我想知道:“从SAT到3-SAT的'最自然的'减少是什么?” 现在,我在教科书中经常看到的减少是这样的: 首先以您的SAT实例为例,并应用Cook-Levin定理将其简化为电路SAT。 然后,通过将子句替换为gates,通过将SAT电路标准缩减为3-SAT来完成工作。 在这种情况下,由于库克-莱文定理的最初应用,最终产生的3-SAT子句最终看起来几乎与您最初使用的SAT子句不同。 有人可以跳过中间电路步骤,直接进入3-SAT,再看看如何直接进行简化吗?我对直接减少n-SAT的特殊情况感到满意。 (我猜想在计算时间和输出大小之间会有一些折衷。显然,简并的解决方案是只解决SAT问题,然后发出琐碎的3,尽管幸运的是,除非P = NP,否则它是不可接受的。 -SAT实例...) 编辑:基于棘轮的答案,现在很明显,将n-SAT的减少是微不足道的(在发布之前,我真的应该以为再仔细一点)。如果有人知道更一般情况的答案,我将这个问题保留一小段时间,否则我将只接受棘轮的答案。

4
测试可以表明没有错误吗?
(n+1)(n+1)(n + 1)个点才能唯一确定次数的多项式;例如,平面中的两个点恰好确定了一条线。nnn 给定以固定语言计算的程序的长度,唯一确定可计算函数需要多少点?(即的Kolmogorov复杂度的界)。f ff:N→Nf:N→Nf : N \rightarrow Nffffff 这个想法是,至少在理论上,可以通过进行足够的测试来证明程序的正确性。 如果一个具有程序长度的,计算˚F,有一个键合上的可与至多一个源长度被计算的功能的数量大号。大号˚F 大号PPPLLLfffLLL 因此,“仅”需要证明: fff 可以用源长度≤L≤L\leq L PPP不计算任何其他可计算为LLL个字节或更少字节的函数(通过测试) 这个想法可能没有实际的后果(界限肯定是指数的)。

2
为什么计算机很难证明某些东西?
这可能被认为是一个愚蠢的问题。我不是计算机科学专业(或者我也不是数学专业),所以如果您认为以下问题显示了一些主要错误假设,请原谅。 尽管有计划将费马的“最后定理”形式化(请参阅本演示文稿),但我从未读过或听说过计算机甚至可以证明像毕达哥拉斯的“简单”定理。 为什么不?在仅借助一些“内置公理”的情况下,通过计算机建立完全自主的证明的主要困难是什么? 我想问的第二个问题是:为什么我们能够形式化许多证明,而计算机目前无法独自证明一个定理?为什么那“更难”?

2
解决跳数迷宫
我8岁的孩子已经厌倦了创建常规迷宫的工作,并开始创建如下所示的变体: 这个想法是从x开始并通过常规规则到达o。另外,您可以从任何整数跳到任何其他整数b,但是您必须支付| a − b | 美元的特权。目标是以最低的成本解决迷宫问题。在上面的示例中,我们可以以成本5通过x-14-18-27-28-o从x转到o,但仅花费x-13-11-9-8-29-28-o便宜4。一种aabbb| a−b ||a−b||a-b| 所以这是我的问题:解决该问题的最佳解决方案(就渐近运行时间而言)是什么?您可以对输入格式做出任何合理的假设。 注意:我在这里使用“ puzzles”标签是因为我想到的是答案,但是我不确定它是否是最佳选择,并且想看看是否有人可以改善我的解决方案。(这里n是迷宫中的整数数。)Ø (ñ2)O(n2)O(n^2)ñnn

1
1979年,Freivalds表明,可以在随机时间内完成任何领域的矩阵乘积的验证。更正式地说,给定三个矩阵A,B和C,其中包含来自字段F的条目,检查AB = C是否具有随机O (n 2)时间算法的问题。O(n2)O(n2)O(n^2)O(n2)O(n2)O(n^2) 这很有趣,因为已知的最快的矩阵乘法算法比这慢,因此检查AB = C是否比计算C快。 我想知道什么是最通用的代数结构,在该结构上矩阵乘积验证仍然具有时间(随机)算法。由于原始算法适用于所有领域,因此我想它也适用于所有整数域。O(n2)O(n2)O(n^2) 对于这个问题,我能找到的最佳答案是在路径,矩阵和三角形问题之间的亚三次等效性,他们说:“环上的矩阵乘积验证可以在随机时间[BK95]中完成。” ([BK95]:M。Blum和S. Kannan。设计检查其工作的程序。J。ACM ,42(1):269-291,1995年。)O(n2)O(n2)O(n^2) 首先,环是这个问题具有随机算法的最一般的结构吗?其次,我看不到[BK95]的结果如何显示所有环上的O (n 2)时间算法。有人可以解释它是如何工作的吗?O(n2)O(n2)O(n^2)O(n2)O(n2)O(n^2)

6
可以通过语法表达哪些计算模型?
这是语法程序的重新表述吗?以前由Vag提出,并有评论者的很多建议。 可以通过哪种方式将语法视为指定计算模型?例如,如果我们采用简单的无上下文语法,例如 G ::= '1' -> '0' '+' '1' '1' -> '1' '+' '0' '2' -> '2' '+' '0' '2' -> '1' '+' '1' '2' -> '0' '+' '2' '3' -> '3' '+' '0' '3' -> '2' '+' '1' '3' -> '1' '+' '2' '3' -> '1' '+' '2' 假设解析器不区分终端符号和非终端符号,如我在此处所演示的,则可以对不超过3的数字执行简单的算法。 …

1
2011年TCS的模糊逻辑状况如何?
我正在查看SIGACT新闻的自然启发和创新计算手册。这是一个非常有趣的阅读。但是,每一章都带有这样的味道:“这是我的研究领域,真是太棒了!” 因此,我要做的一部分工作是将宣传内容分开,并对本书的内容进行清醒的评估。 一章是关于模糊逻辑和模糊系统,以及它们有多么出色。坦率地说,也许他们是,我不知道。我从周围的计算机科学家那里得到的直觉是,控制系统等的模糊逻辑和模糊建模是“死的”。我不知道这是不是真的,而且即使是真的,我也不知道是出于“充分的理由”。 有人想在这里称重吗?对模糊系统的研究现状如何?模糊化会看到现实世界中的应用程序吗?它曾经曾经因为问题而离开人们吗?还是“一直处于困境中”的人们一直在使用它,仅仅是理论家已经远离它了?或者是其他东西?(我不知道什么是真的。) 我可能会在书评中引用该问题的答案,除非有答卷者明确要求我不要这样做。 谢谢。

3
有类型/无类型Lambda结石的分类
谁能简要解释(如果可能的话!)或将我引介给参考文献,以总结未类型化的lambda演算与更常见的类型化的lambda演算之间的区别? 我特别在寻找它们的表达能力,与逻辑/算术系统或计算方法的等效性以及与编程语言(如果适用)类似的陈述。 虽然我当然打算阅读,但是像参考表概述了结石及其等价/差异/在层次结构中的位置之类的东西将是巨大的参考,可帮助我对它们进行分类。 并不是说以下内容是正确的,只是试图勾勒出一些印象,我必须看看它们是否至少可以作为起点(或要纠正的东西!) 无类型Lambda演算-等式 一阶逻辑-不能做X 简单地输入lambda演算-等于...逻辑,与Lisp有关? '多态'lambda calc-等等 构造演算-直觉逻辑? 组合逻辑-相当于??? 类型的lambda演算,与APL / J类型的语言有关 如果这与lambda多维数据集及其三个轴相关联,那就更好了。 虽然我熟悉lambda微积分和使用函数式语言进行编程的基础知识,但我从未对所涉及的类型系统和不同类型的lambda(可能是pi?)计算进行过深入的探讨,也从未建立任何重要的联系。 当我尝试对此进行研究时,我忍不住发现自己陷入了困境,打开了许多浏览器选项卡,并在多个方向分支,我从没有深入了解其中的任何一个! 我不确定我要的内容是否合理,但是希望至少我已经画了足够多的图片以提出一些可以解释我所寻找内容的阅读材料?

5
为什么P = NP并不意味着P = AP(即P = PSPACE)?
众所周知,如果则多项式层次结构会崩溃,并且。P=NPP=NP\mathbf{P}=\mathbf{NP}P=PHP=PH\mathbf{P}=\mathbf{PH} 使用Oracle机器可以很容易地归纳理解这一点。问题是-为什么我们不能在恒定的交替水平之外继续归纳过程,并证明P=AltTime(nO(1))P=AltTime(nO(1))\mathbf{P}=\mathbf{AltTime}(n^{O(1)})(又名)?AP=PSPACEAP=PSPACE\mathbf{AP}=\mathbf{PSPACE} 我正在寻找一个直观的答案。

2
查找长方体联合中包含的最大立方体
我在3D空间中有很多长方体,每个长方体的起点都是(x,y,z),大小为(Lx,Ly,Lz)。我想知道如何在这个3D空间中找到长方体联合中包含的最大立方体。是否有一种有效的算法? 例如,如果我有以下长方体: 以(0,0,0)开始且大小为(10,10,10)的长方体, 长为(10,0,0)且大小为(12,13,15)的长方体, 大小为(10,10,10)的(0,10,0)的长方体, 大小为(10,10,10)的(0,0,10)的长方体,以及 大小为(9,9,9)的(10,10,10)长方体。 然后,这些长方体并集中包含的最大立方体将是一个以(0,0,0)开始且大小为(19,19,19)的立方体。 这个问题的更一般的版本: 给定R d中盒子的集合,找到盒子并 集内包含的最大超立方体。ñnnRdRd\mathbb{R}^d

1
证明Coq中的证明无关紧要?
有没有办法证明Coq中的以下定理? Theorem bool_pirrel : forall (b : bool) (p1 p2 : b = true), p1 = p2. 编辑:尝试简要说明“什么证明无关紧要”(如果我错了或不正确,请纠正我) 基本思想是,在命题世界(或PropCoq中的排序)中,您(并且应该)真正关心的是命题的可证明性,而不是它的证明,可能有很多(或没有)。如果您有多个证明,从可证明性的角度来看,它们在证明相同命题的意义上是相等的。因此,它们的区别是无关紧要的。这不同于来看,你真正关心的两个词的区别,计算点例如,基本上,你不想让两个居民bool类型(或Set在勒柯克的话),即true和false相等。但是,如果将它们放入Prop,它们将被平等对待。

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.