理论计算机科学

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

5
减少是否应该使我们或多或少对问题的可处理性感到乐观?
在我看来,大多数复杂性理论家普遍相信以下哲学规则: 如果我们找不到解决问题的有效算法,并且可以将问题A简化为问题B,那么也可能没有解决问题B的高效算法。一种AA一种AA乙BB乙BB 例如,这就是为什么当一个新问题被证明为NP-Complete时,我们只是简单地认为它“太难了”,而不是对最终可能显示P = N P的新方法(问题)感到兴奋。乙BBP= NPP=NPP = NP 我正在与另一个科学领域的研究生一起讨论这个问题。她发现这个想法非常违反直觉。她的比喻: 您是一位探险家,正在寻找北美和亚洲大陆之间的桥梁。许多个月以来,您一直尝试并没有找到从美国大陆地区到亚洲的陆桥。然后,您发现美国大陆通过陆地连接到阿拉斯加地区。您意识到,从阿拉斯加到亚洲的陆桥将意味着从美国大陆到亚洲的陆桥,您可以肯定不存在。因此,您不会浪费时间在阿拉斯加附近探索。你就回家 在这种情况下,我们以前的哲学规则听起来很愚蠢。我想不出一个很好的反驳!因此,我将其交给你们:为什么我们要把减法视为使问题B变得更难而不是使问题A变得更容易?A → BA→BA \to B乙BB一种AA

1
电路评估
是否知道电路评估问题是否在?如何(统一 )? ñ Ç 1甲大号ö 克Ť 我中号ë Ñ Ç 1氮碳1个NC1\mathsf{NC^1}氮碳1个NC1\mathsf{NC^1}ALogTimeALogTime\mathsf{ALogTime}NC1NC1\mathsf{NC^1} 我们知道,深度为电路可以用深度为电路求值, 其中是一个通用常数。这意味着深度为的电路可以由深度为的电路评估。但是不包含最终控制所有函数的函数。k + c c k lg n + o (lg n )O (lg n )O (lg n )O (lg n )kkkk+ck+ck+ccccklgn+o(lgn)klg⁡n+o(lg⁡n)k\lg n + o(\lg n)O(lgn)O(lg⁡n)O(\lg n)O(lgn)O(lg⁡n)O(\lg n)O(lgn)O(lg⁡n)O(\lg n) 我们知道公式评估问题在。每个电路都等效于一个布尔公式。我们不能根据给定的电路的等效布尔公式来计算等效布尔公式的扩展连接表示吗?N C 1 N C 1 A L o g T …

7
博弈论在计算机科学中的应用?
作为一名计算机科学专业的学生,​​我被介绍了博弈论,但并未对此主题有太多了解。我在Google上搜索过,看了一些有关博弈论的书,他们证实了它在计算机科学中的用途。我已经从经济学家的角度开始了对博弈论的正式研究。现在,我想知道博弈论在计算机科学中的应用。利用博弈论要素的人工智能和复杂性理论等领域的计算机科学家最近有哪些主要成就?有没有一种方法可以比计算机经济学更深植于计算机科学中?

2
查找稀疏图的周长的最佳算法?
我想知道如何找到一个稀疏无向图的周长。稀疏是指。最佳的意思是最低的时间复杂度。|E|=O(|V|)|E|=O(|V|)|E|=O(|V|) 我考虑过对Tarjan的无向图算法进行一些修改,但没有找到好的结果。实际上,我以为,如果我可以在找到2个相连的组件,那么可以通过某种归纳法找到周长,这可以从第一部分中实现。不过,我可能走错了路。渐近优于Θ (| V | 2)(即o (| V | 2))的任何算法都可以使用。O(|V|)O(|V|)O(|V|)Θ(|V|2)Θ(|V|2)\Theta(|V|^2)o(|V|2)o(|V|2)o(|V|^2)

1
斯大林编译器进行了残酷的优化,但是如何呢?
JM Siskind的研究声明指出: 斯大林(Stalin)是Scheme的优化编译器,它执行全程序静态分析,并使用该分析结果生成非常高效的代码。斯大林利用了大量静态分析技术。它执行一种新形式的多变量流分析,该分析使用迭代的单变量流分析来执行流定向拆分:克隆过程的专用副本以及按目标在每个调用点分配此类克隆。它使用流分析的结果执行生命周期分析,逃逸分析,指向分析和必须别名分析。这些分析支持一种新颖形式的轻量级闭包转换,它使用可变的全球化和本地化等技术消除了大多数闭包插槽,压缩了静态反向链,并且通常从程序中消除了大多数闭包。它还使用以上分析来支持基于流定向的基于区域的存储管理,其中基于每个抽象值和每个程序点将运行时垃圾回收替换为静态分配和释放。它还使用Screamer率先推出的技术扩展功能,执行流定向的轻量级CPS转换,以支持极其高效的一流续航。最后,它支持流定向的内联和低级表示选择,以基于抽象值和每个程序点选择标记的实现(或不实现),标记检查和标记分发。这消除了大多数运行时标记,标记检查,标记,标记剥离,标记分派,装箱和从程序中取消装箱。在运行时垃圾回收中,根据抽象值和每个程序点将其替换为静态分配和释放。它还使用Screamer率先推出的技术扩展功能,执行流定向的轻量级CPS转换,以支持极其高效的一流续航。最后,它支持流定向的内联和低级表示选择,以基于抽象值和每个程序点选择标记的实现(或不实现),标记检查和标记分发。这消除了大多数运行时标记,标记检查,标记,标记剥离,标记分派,装箱和从程序中取消装箱。在运行时垃圾回收中,根据抽象值和每个程序点将其替换为静态分配和释放。它还使用Screamer率先推出的技术扩展功能,执行流定向的轻量级CPS转换,以支持极其高效的一流续航。最后,它支持流定向的内联和低级表示选择,以基于抽象值和每个程序点选择标记的实现(或不实现),标记检查和标记分发。这消除了大多数运行时标记,标记检查,标记,标记剥离,标记分派,装箱和从程序中取消装箱。使用Screamer首创的技术扩展,以支持极其有效的一流续航。最后,它支持流定向的内联和低级表示选择,以基于抽象值和每个程序点选择标记的实现(或不实现),标记检查和标记分发。这消除了大多数运行时标记,标记检查,标记,标记剥离,标记分派,装箱和从程序中取消装箱。使用Screamer首创的技术扩展,以支持极其有效的一流续航。最后,它支持流定向的内联和低级表示选择,以基于抽象值和每个程序点选择标记的实现(或不实现),标记检查和标记分发。这消除了大多数运行时标记,标记检查,标记,标记剥离,标记分派,装箱和从程序中取消装箱。这些分析和优化使Stalin可以生成非常有效的代码,其效率要比其他所有Scheme编译器高出2到100之间,尤其是对于数字密集型代码。斯大林经常生成的性能优于手写的c和Fortran代码。 我能够找到以下有关闭包/函数调用实现的非常有趣的论文:流定向轻量级闭包转换。我还通过电子邮件发送给作者,询问有关其他主题的论文,这些主题在闭包转换论文中被提及: Siskind,JM 2000a。流导向的轻量级CPS转换。在准备。 Siskind,JM 2000b。流定向多方差。在准备。 Siskind,JM 2000c。流导向表示选择。在准备。 Siskind,JM,2000年。流导向的存储管理。在准备 不幸的是,他从来没有写过那些论文。我对您的问题是:是否有涉及这些主题的替代或相关论文?我非常有兴趣了解斯大林(或其他编译器)如何编译诸如Scheme这样的高级语言,该方案可以进行垃圾回收,动态类型化,支持一流的功能,甚至一流的延续,也可以静态地编译为这种高效的代码。尽管有关流量分析的论文非常丰富,但没有关于使用这种分析的结果进行上述优化的论文。
14 compilers 


5
无损压缩数据的限制是多少?(如果有这样的限制)
最近,我一直在处理与压缩有关的算法,我想知道哪种压缩率可以通过无损数据压缩实现。 到目前为止,我在该主题上唯一能找到的资源是维基百科: 对数字化数据(如视频,数字化电影和音频)的无损压缩可保留所有信息,但由于数据的固有熵,其压缩效果几乎不会比1:2更好。 不幸的是,维基百科的文章没有引用或引用来支持这种说法。我不是数据压缩专家,因此,对于您可以提供的有关此主题的任何信息,或者如果您可以向我提供比Wikipedia更可靠的信息来源,我将不胜感激。

2
Median-SAT的复杂性是什么?
令为具有n个变量和m个子句的CNF公式。让吨∈ { 0 ,1 } Ñ 表示变量赋值和˚F φ(吨)∈ { 0 ,... ,米}计数通过可变分配到满足子句的数目φ。然后定义平均-SAT为计算的中值的问题˚F φ(吨)在所有吨∈ { 0 ,1φφ\varphinnnmmmt∈{0,1}nt∈{0,1}nt \in \{ 0,1 \}^nfφ(t)∈{0,…,m}fφ(t)∈{0,…,m}f_{\varphi}(t) \in \{ 0, \ldots , m \}φφ\varphifφ(t)fφ(t)f_{\varphi}(t)。例如,如果 φ是重言式,那么Median-SAT的解将是 m,因为不管分配如何,每个子句都将得到满足。然而,在的情况下 ¯ 小号甲Ť溶液至中值-SAT可能会之间的任何位置 0和米- 1。t∈{0,1}nt∈{0,1}nt \in \{ 0,1 \}^nφφ\varphimmmSAT¯¯¯¯¯¯¯¯¯¯SAT¯\overline{SAT}000m−1m−1m-1 当我在思考SAT的两个自然扩展,MAX-SAT和#SAT时,就产生了这个问题,如果将它们放在一起,将会产生什么困难?对于MAX-SAT,我们必须找到特定的变量分配以最大化满足的变量数量。对于#SAT,我们必须计算有多少个赋值满足φ的所有m个子句。此变体主要是作为#SAT(实际上是#WSAT)的扩展而出现的,但保留了MAX-SAT的某些风格,因为我们计算了满意子句的数量,而不是仅仅确定它们是否全部都满足或不满意。不。φφ\varphimmmφφ\varphi 这个问题似乎比#SAT或#WSAT困难。对于每个变量,#SAT决定该赋值是否满足的布尔问题,而Median-SAT根据赋值所满足的子句数确定“ 满足” φ的程度。φφ\varphiφφ\varphi 我意识到这个问题有些武断。计算每个变量分配所满足的子句的平均数或众数似乎似乎具有相同的质量。可能还有许多其他问题。 是否以不同的名义研究了这个问题?与#SAT相比有多难?对于我来说,尚不清楚FPSPACE中甚至包含Median-SAT,尽管它似乎确实包含在FEXPTIME中。


2
“最小鉴别位”问题NP是否完整?
这是我为弥补此问题而取的名字。我之前从未见过它的描述。我还没有找到NP完全性的证明,也没有找到针对这个问题的多项式时间算法。这不是家庭作业问题,而是与我在工作中遇到的问题有关。 最明显的比特 实例:包含位向量的集合T,其中每个位向量正好是N位长。T的每个元素都是唯一的,就像从一组数学中所期望的那样。整数K <N。 问题:是否存在至多K个位位置的集合B(即[0,N-1]范围内的整数),使得当我们从T中的每个向量中删除除B中的所有比特之外的所有其他比特时,其余的较短向量都是还是独特的? 示例1:对于实例N = 5,T = {00010,11010,01101,00011},K = 2,答案是肯定的,因为我们可以选择位位置B = {0,3}。使用以下约定:位位置0在最右边,并且位位置编号从右到左增加,从T叶中的向量T'= {00,10,11,01}中除去除B中的所有位以外的所有位,这些都是独一无二的。 示例2:N = 5,T = {00000,00001,00010,00100},K = 2。答案是否定的,因为无论我们选择哪两个位位置,2位向量中的任何一个都不等于11,因此至少两个2位向量将彼此相等。 当然,我们可以通过枚举大小为K个N位位置的所有(N个选择K个)子集并确定满足条件的子集来解决此问题。但是,这是输入大小的指数。

2
功能编程中的差异列表
问题自Okasaki以来,纯功能数据结构有何新变化?和jbapple的史诗答案,提到了在函数编程中使用差异列表(与逻辑编程相对),这是我最近感兴趣的事情。这使我找到了Haskell 的差异列表实现。我有两个问题(如果我应该在StackExchange上给他们两个不同的问题,请原谅/纠正我)。 一个简单的问题是,除了Haskell库中的代码之外,还有人意识到函数式编程和/或实现中的差异列表的学术考虑吗?jbapple的答案没有引用差异列表(逻辑编程中的差异列表存在于绝大部分内容中,并且存在于我在“周围某处”(TM)中提供的两个资源中)。在找到Haskell实现之前,我不知道这个想法已经从逻辑跃升为函数式编程。当然,Haskell差异列表是高阶函数的自然使用,其工作原理与逻辑编程中的完全不同,但是接口肯定是相似的。 我想问的更有趣(而且更模糊)的问题是上述Haskell差异列表库所要求的渐近上限看起来是否正确/合理。我的困惑可能是因为我失去了一些东西约显而易见约懒惰复杂的推理,但所主张的界限才有意义,我如果替换在大数据结构(或关闭阵型,或者变量查找,或东西)总是恒定的时间。还是“捕获”仅仅是因为“头”和“尾”的运行时间没有限制,正是因为这些操作可能必须经过任意一堆延迟的计算/替换才能完成?

2
12阶投影平面
目的:解决不存在12阶射影平面的猜想。 1989年,Lam在Cray上使用计算机搜索,证明不存在10阶投影平面。现在,经过短短几周的大规模蛮力搜索(加上灵巧的对称数学),就已经确定了魔方的上帝编号,在我看来,这个长期存在的开放问题可能可以实现。(此外,也许我们可以使用这种技术来解决数学上的基本问题。)我希望这个问题可以作为一个健全性检查。 通过将总问题大小减小到“仅” 2,217,093,120个不同的测试可以解决多维数据集,这些测试可以并行运行。 问题: 已经显示了几种不存在的特殊情况。是否有人知道,如果我们删除了这些内容并进行了详尽的搜索,问题的大小是否在多维数据集搜索的范围内?(也许有人希望知道这一点。) 这方面的任何部分信息? 编辑添加:我在这里在MathOverflow上问了这个问题。到目前为止,似乎没有从已知的部分结果中实现搜索空间的缩减。我仍然不知道总搜索空间的大小。

3
AES的硬度保证
许多公共密钥密码系统具有某种可证明的安全性。例如,证明拉宾密码系统与分解一样困难。 我想知道对于诸如AES之类的秘密密钥密码系统是否存在这种可证明的安全性。如果不是,有什么证据证明很难破解这种密码系统?(除了抵抗试错攻击) 备注:我熟悉AES操作(AddRoundKey,SubBytes,ShiftRows和MixColumns)。AES的硬度似乎来自MixColumns操作,而后者又必须继承Galois场(以及代数)上的一些难题。实际上,我可以将问题重申为:“哪个硬代数问题可以保证AES的安全性?”

1
切尔诺夫求和
考虑,其中lambda_i&gt; 0且Y_i作为标准正态分布。作为(固定)系数lambda_i的函数,一个人可以在X上证明什么样的浓度范围?X=∑iλiY2iX=∑iλiYi2X = \sum_i \lambda_i Y_i^2 如果所有的lambda_i相等,则这是切尔诺夫界。我知道的唯一另一个结果是Arora和Kannan的论文中的引理(“学习任意高斯的混合”,STOC'01,引理13),证明了,即界限取决于系数平方和。Prob(X&lt;E[X]−t)&lt;exp(−t2/(4∑iλ2i)Prob(X&lt;E[X]−t)&lt;exp(−t2/(4∑iλi2)Prob(X < E[X] - t) < exp(-t^2/(4 \sum_i \lambda_i^2) 他们的引理的证明类似于切尔诺夫界的通常证明。是否还有其他“规范的”界限,或者关于lambda_i的哪个函数如此大以确保良好的指数集中(这里的函数只是平方和)的一般理论?也许一些熵的一般度量? 如果存在的话,对于Arora-Kannan引理的更标准的参考也将是很棒的。


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.