理论计算机科学

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

4
为什么我们将对数空间视为有效计算的模型(而不是多对数空间)?
无论如何,这可能是一个主观的问题,而不是一个具体的答案。 在复杂性理论中,我们研究有效计算的概念。像代表多项式时间,而代表对数空间。他们都被认为是一种“效率”,并且很好地抓住了一些问题的困难。大号PP\mathsf{P}大号大号\mathsf{L} 但是和之间是有区别的:多项式时间被定义为问题的并集,对于任何常数,问题的时间为。, 那是,L P O (n k)kPP\mathsf{P}大号大号\mathsf{L}PP\mathsf{P}Ø (ñķ)Ø(ñķ)O(n^k)ķķk P = ⋃ķ ≥ 0Ť 我中号ë [ Ñķ]P=⋃ķ≥0Ť一世中号Ë[ñķ]\mathsf{P} = \bigcup_{k \geq 0} \mathsf{TIME[n^k]}, 日志空间定义为。如果我们模仿的定义,它将变成S P A C E [ log n ] P大号大号\mathsf{L}S P A C E [ 日志ñ ]小号P一种CË[日志⁡ñ]\mathsf{SPACE[\log n]}PP\mathsf{P} P ø 升Ŷ 大号 = ⋃ķ ≥ 0S P A …


3
对于不确定的问题,是否有一个合理的近似算法概念?
已知某些问题是无法决定的,但是仍然有可能在解决这些问题上取得一些进展。例如,暂停问题无法确定,但是在创建用于检测代码中潜在无限循环的工具方面可以取得实际进展。拼接问题通常是无法确定的(例如,此多米诺砖是否铺有矩形?),但又有可能在该领域提高技术水平。 我想知道的是,是否存在任何可以衡量解决未定问题的进度的理论方法,该方法类似于为测量NP难题的进度而开发的理论装置。还是似乎我们坚持不懈地进行特定的,我知道的进展评估,当我看到它的评估时,有多少特定的突破可以增进我们对不确定性问题的理解? 编辑:当我想到这个问题时,我想到也许参数化的复杂性在这里可能是相关的。如果引入参数并固定参数的值,则无法确定的问题可能会变为可确定的。不过,我不确定这种观察是否有用。

2
可实现性理论:Lambda微积分和图灵机之间的功率差异
我有三个相关的子问题,下面由要点突出显示(不,如果您想知道的话,不能将它们拆分)。安德烈·鲍尔(Andrej Bauer)在这里写道,某些功能可以通过图灵机实现,而不是通过lambda微积分实现。他推理的关键步骤是: 但是,如果使用lambda演算,则[c]程序应该从表示函数f的lambda项中计算出一个表示Turing机的数字。这是不可能做到的(如果您将其作为一个单独的问题来问,我可以解释为什么)。 我想查看解释/非正式证明。 我在这里看不到如何应用莱斯定理。因为将谓词应用于等效项会产生相同的结果,因此它适用于“此吐鲁吐机T和该λ项L是否相等?”的问题。但是,所需的函数可能针对不同但等效的λ项计算不同但等效的TM。 而且,如果问题在于反省lambda项,我认为传递lambda项的Gödel编码也是可以接受的,不是吗? 一方面,鉴于他的示例涉及到在lambda演算中计算图灵机完成给定任务所需的步骤数,所以我并不感到惊讶。 但是,由于lambda演算无法解决与Turing机相关的问题,因此我想知道是否可以为lambda演算定义一个类似的问题,并证明它不适用于Turing机,或者实际上在支持上存在差异图灵机(这会让我感到惊讶)。


11
从概率成对交换产生随机排列的最有效方法是什么?
我感兴趣的问题与生成随机排列有关。以概率成对交换交换门为基本构建块,产生nnn元素的均匀随机排列的最有效方法是什么?在这里,我将“概率成对交换门”作为操作以某种概率p在选定元素iii和之间实现交换门jjjppp并且可以为每个门自由选择,否则可以选择同一性。 我意识到这通常不是生成随机排列的方式,通常人们可能会使用Fisher-Yates混编之类的方法,但是,由于允许的操作不同,因此这对于我想到的应用程序将不起作用。 显然可以做到这一点,问题是效率如何。为了达到这个目标,最少需要多少个概率交换? 更新: Anthony Leverrier提供了以下方法,该方法的确使用O(n2)O(n2)O(n^2)门产生了正确的分布,而Ito Tsuyoshi Ito提供了另一种在注释中具有相同缩放比例的方法。不过,我迄今见过的最好的下界⌈log2(n!)⌉⌈log2⁡(n!)⌉\lceil \log_2(n!) \rceil,它可以扩展为O(nlogn)O(nlog⁡n)O(n\log n)。因此,问题仍然悬而未决:是否是O(n2)O(n2)O(n^2)可以完成的最佳选择(即下界是否更好)?或者,是否有更有效的电路系列? 更新: 一些答案和评论提出了完全由概率互换组成的电路,其中概率固定为1212\frac{1}{2}。由于以下原因(从注释中删除),这种电路无法解决此问题: 想象一个使用mmm这种门的电路。然后有2m2m2^m概率的计算路径,因此对于某个整数k ,任何排列都必须以概率k2−mk2−mk 2^{−m}进行。但是,对于均匀分布,我们要求k2−m=1n!k2−m=1n!k 2^{−m}=\frac{1}{n!}kn!=2mkn!=2mk n! = 2^mkkkn≥3n≥3n\geq33|n!3|n!3|n!n≥3n≥3n\geq 33∤2m3∤2m3\nmid 2^m 更新(来自提供赏金的mjqxxxx): 提供的赏金用于(1)需要门的证明,或(2)对于使用少于门的任何个工作电路。n n (n − 1 )/ 2ω(nlogn)ω(nlog⁡n)\omega(n \log n)nnnn(n−1)/2n(n−1)/2n(n-1)/2

8
有非构造算法存在证明吗?
我记得我可能遇到过一些问题,这些问题已被证明可以解决,并且具有特定的复杂性,但是没有已知的算法可以真正达到这种复杂性。 我全神贯注于这种情况。算法存在性的非建设性证明将是什么样子。 确实存在这样的问题吗?它们有很多实用价值吗?

6
数学家了解复杂性理论最新研究的方法
复杂性理论是我的次要兴趣,但不是我的主要研究兴趣,因此,我没有希望参加​​所有会议,阅读所有博客并确保“ cc”人群中的每一个人热点新闻。我尝试做一些这样的事情,但是我想知道哪种方法能给我最大的收益(或更确切地说,是时间,因为在这种情况下,时间比金钱更是一个限制因素)。我尝试过的一些方法包括: 查看STOC / FOCS程序。这通常意味着直到它们成为(有点)过时的新闻我才听说突破,但是从我的角度来看这是可以的,只要我有可能最终抓住新闻。我还有其他程序要跟踪吗? 订阅Los Alamos ArXiv。有多少复杂性理论家使用它?我还应该查看其他预印服务器吗? 阅读博客。我尝试了一段时间,但还是有所放弃,因为那里的博客太多了,这似乎是一种非常低效的保持最新状态的方法。 我有什么想念的吗?再一次,我的重点是寻找省时的方法,而不是尽一切可能的事情与时俱进。 编辑:感谢所有的答复;如果软件允许,我会接受多个答案。我的选择有些随意,是基于以下事实:我现在记得以前曾听说过ECCC和CCC,但我完全不了解Blog Aggregator。

3
浅嵌入与深嵌入
在将逻辑编码到诸如Coq或Isabelle的证明助手中时,需要在使用浅埋和深埋之间进行选择。在浅层嵌入中,逻辑公式直接写在定理证明者的逻辑中,而在深层嵌入中,逻辑公式表示为数据类型。 各种方法的优点和局限性是什么? 是否有任何指南可用于确定使用哪个? 是否可以任何系统的方式在两种表示形式之间切换? 作为动机,我想将各种与安全性相关的逻辑编码到Coq中,并想知道不同方法的优缺点。

20
树上的NP难题
当输入图是一棵树时,可以在多项式时间内(甚至在线性时间内甚至是多项式)轻松解决一般图上对NP困难的几个优化问题。示例包括最小顶点覆盖,最大独立集,子图同构。列举一些自然优化问题,这些问题在树上仍然很难解决。

4
什么后果?
我们知道和,其中。我们也知道因为后者在对数空间下具有完备的问题,多对一归约,而前者则没有(归因于空间层次定理)。为了了解和之间的关系,首先了解和之间的关系可能会有所帮助。L⊆NL⊆PL⊆NL⊆P\mathsf{L} \subseteq \mathsf{NL} \subseteq \mathsf{P}L⊆NL⊆L2⊆L⊆NL⊆L2⊆\mathsf{L} \subseteq \mathsf{NL} \subseteq \mathsf{L}^2 \subseteq polyLpolyL\mathsf{polyL}L2=DSPACE(log2n)L2=DSPACE(log2⁡n)\mathsf{L}^2 = \mathsf{DSPACE}(\log^2 n)polyL≠PpolyL≠P\mathsf{polyL} \neq \mathsf{P}polyLpolyL\mathsf{polyL}PP\mathsf{P}L2L2\mathsf{L}^2PP\mathsf{P} 什么后果?L2⊆PL2⊆P\mathsf{L}^2 \subseteq \mathsf{P} 关于强什么对于,或较弱的为?Lk⊆PLk⊆P\mathsf{L}^{k} \subseteq \mathsf{P}k>2k>2k>2L1+ϵ⊆PL1+ϵ⊆P\mathsf{L}^{1 + \epsilon} \subseteq \mathsf{P}ϵ>0ϵ>0\epsilon > 0

6
如何在TCS中写得很好的好例子
我正在编辑学生手稿。那位学生说,很高兴在出版的作品中看到高质量写作的例子,我意识到我真的想不出什么好例子。 您所见过的优质数学写作的最好例子是什么? 规则: 我更希望TCS论文。我们的风格与标准数学试卷完全不同,我认为最好专注于TCS(这也是为什么我在这里问而不是MO的原因) 如果您确实提到了您认为该论文表现出色的内容,那将会有所帮助。并非所有的论述都擅长于一切-有些论文具有很好的证明纲要,有些论文确实有效地使用了注释,而另一些则熟练地传达了直觉。 如果可能,请链接到本文。 我希望像我们其他许多广泛的问题一样,它可以成为一种资源。因此,我将其标记为CW。

5
我能学到的最直观的依存类型理论是什么?
我有兴趣真正掌握依赖类型。我读过最TaPL和读取(如果不是完全吸收)“相关类型” ATTaPL。我也阅读并浏览了很多有关依赖类型的文章。 许多类型理论的讨论似乎都集中在向以前的类型系统添加增量功能,而不是“从类型系统X进行的下一个大型概括是什么?”。依赖类型似乎是System F的下一个大型概括,但是我还没有找到直观,规范的依赖类型语言。对(归纳)构造的微积分的许多引用使我认为CoC是该语言,但是我所看到的对该语言的解释对我而言似乎并不十分清楚或直观。 我期望/猜测这种语言将具有以下功能:(并且请让我知道是否有任何特别的东西因为困惑或不现实而跳出来) 广义抽象(可以具有从类型层次结构中的任何域到其他种类,种类->术语,术语->类型'''等的功能) 具有无限的键入层次结构(术语:类型:类型':类型”:...) 最少数量的基本元素。我在想该语言对于每个级别都只声明一个元素。例如,它可能断言(():Unit:Type:Type':...)。其他元素是从这些元素构建的。 总和和产品类型是可导出的。 我也在寻找该语言的解释,理想情况下将讨论: 该语言中抽象与量化之间的关系。如果它们不统一,请解释为什么它们不统一。 无限类型层次结构明确 我之所以问这个问题,是因为我想学习依存类型理论,也因为我想编写一份指南,假设具有一点CS知识,就可以教授证明助手和依存类型语言的用法以及如何理解。 (交叉发布到Reddit)

5
复杂性理论中有守恒定律吗?
让我从一些例子开始。为什么在C中显示CVP如此琐碎,而在P中显示LP却如此困难?而两者都是P完全问题。 或接受素养。与NP中的质数(需要Pratt)以及最终在P中的质数相比,NP中的复合物更容易显示。为什么它必须完全显示这种不对称性? 我知道希尔伯特(Hilbert),对创造力的需求,NP中的证明等。但这并没有阻止我产生一种令人不安的感觉,即这不仅仅满足于视觉。 在复杂性理论中是否存在可量化的“工作”概念和“守恒律”?例如,这表明即使CVP和LP都是P完全的,它们也将它们的复杂性隐藏在“不同的地方”-一个在归约中(CVP是否简单,因为所有工作都在归约中完成?),语言的可表达性。 还有其他人感到疲倦并且有一些见解吗?还是我们耸耸肩说/接受这就是计算的本质? 这是我向论坛提出的第一个问题:双手合十。 编辑: CVP是电路值问题,LP是线性编程。 感谢Sadeq,指出混乱之处。


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.