理论计算机科学

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

6
自Okasaki以来,纯功能数据结构有何新变化?
自克里斯·冈崎(Chris Okasaki)1998年出版《纯功能数据结构》一书以来,我还没有看到太多新的令人兴奋的纯功能数据结构。我仅举几例: IntMap(也是由Okasaki于1998年发明,但未在该书中出现) 手指树(及其对monoid的泛化) 还有一些有趣的方法来实现已知的数据结构,例如使用“嵌套类型”或“广义代数数据类型”以确保树不变。 自1998年以来,在该领域又出现了哪些其他新想法?

30
每个人都应该阅读哪些论文?
这个问题(是受其启发)/(从中可耻地被盗)是MathOverflow上的一个类似问题,但是我希望这里的答案会大不相同。 在我们各自的理论领域,我们都有喜欢的论文。偶尔,人们会发现一篇论文如此惊人(例如,重要,引人注目,看似简单),以至于希望与所有人共享。所以在这里列出这些文件!他们不具备从理论计算机科学-任何你认为可能会吸引到社区是一个很好的答案。 您可以根据需要提供尽可能多的答案。请为每个答案放一张纸!另外,请注意,这是社区Wiki,因此请对所有喜欢的事物进行投票! (请注意,以前存在关于递归理论复杂性的论文的问题,但这很专业。)

30
书中的算法。
保罗·埃尔多斯(Paul Erdos)谈论了“书”,其中上帝保留了每个数学定理的最优雅的证明。这甚至启发了一本书(我相信现在是第四版):书中的证明。 如果上帝有一本类似的算法书,那么您认为哪种算法是候选人? 如果可能的话,还请提供可点击的参考以及使之起作用的关键见解。 请每个答案仅使用一种算法。

29
部署核心算法
为了证明算法的重要性(例如,对于不从事理论研究甚至是完全不同领域的学生和教授),有时手头准备一些已经在商业,政府,或广泛使用的软件/硬件。 我正在寻找满足以下条件的示例: 使用该算法的软件/硬件现在应该被广泛使用。 该示例应具体。请参考特定的系统和特定的算法。 例如,在“算法X对图像处理有用”中,术语“图像处理”不够具体;在“ Google搜索使用图算法”中,“图算法”一词不够明确。 该算法应在典型的本科生或博士学位中教授。算法或数据结构中的类。理想情况下,典型算法教科书中会介绍该算法。例如,“众所周知的系统X使用鲜为人知的算法Y”是不好的。 更新: 再次感谢您的出色回答和链接!有人评论说,很难满足标准,因为核心算法无处不在,很难指出特定的用途。我看到了困难。但是我认为值得举一些具体的例子,因为根据我的经验告诉人们:“看,算法很重要,因为算法无处不在!” 不起作用。

11
学习有限自动机后,我应该得到什么启示?
我一直在有趣地修改计算理论,这个问题让我困扰了一段时间(当我在本科学习自动机理论时,从来没有想到过这个有趣的事情)。那么“为什么”我们到底要研究确定性和非确定性有限自动机(DFA / NFA)?所以这是我自言自语后得出的一些答案,但仍然看不到它们对“ aha”时刻的总体贡献: 研究它们是什么和没有能力,即限制 为什么? 由于它们是理论计算的基本模型,将为其他更强大的计算模型奠定基础。 是什么使它们“基本”?是否只有一点点的存储和状态转换? 好吧,那又如何呢?所有这些如何有助于回答可计算性问题?似乎图灵机确实很好地理解了这一点,并且有诸如P​​DA,DFA / NFA / Regexes等之类的“较少”计算模型。但是,如果人们不知道FA,它们会丢失什么呢? 因此,尽管我在某种程度上“明白了”,但我无法对自己回答这个问题?您如何最好地解释“为什么要学习D / N-FA”?他们想回答什么问题?它有什么帮助?为什么它是自动机理论中教授的第一件事? PS:我知道可以如此实现的各种字典应用程序和模式匹配器。但是,我不希望知道它可以实际使用什么,但是在学习计算理论的高潮中,他们为什么要使用/发明/设计的原因是什么。从历史上讲,是什么促使人们从这一点开始的?它应该导致什么“啊哈”理解?如果要向刚开始学习自动机理论的CS学生解释他们的重要性,您将如何做?


30
每个人都应该读什么书?
[ 时间轴 ] 这个问题有同样精神的论文应该每个人都读什么和应该大家观看的视频。它要求在理论计算机科学的不同领域提供出色的书籍。 这些书可能是面向数学的,但您可能会发现它对计算机科学家很有用。例子: 可能性 不平等 逻辑 图论 组合学 算法设计与分析 计算理论/计算复杂性理论 请把每个答案都放在同一主题的书上(例如关于组合学的书)。 注意:标题可能会引起误解。澄清一下:让X和Y是计算机科学中的两个领域。每个人都有书 在字段X中应阅读。 在字段Y中应阅读。 在两个字段中均应阅读。 此问题寻求所有3个案例。换句话说,它并不特定于后一种情况。 编辑:根据戴乐的建议,请同时强调您喜欢这本书的原因。 相关话题: TCS证明技术参考 关于自动机理论的自学书籍 概率书 最喜欢的流行数学书 去随机化初学者指南 参考电路下限 关于递归函数理论的调查文章 程序语言语义学书籍 最新的TCS书籍有哪些草稿可在线获得 概率书


2
超级马里奥银河问题
假设马里奥(Mario)在行星表面行走。如果他从已知的位置开始沿固定的方向行走了预定的距离,我们将如何快速确定他将在哪里停下来? 更正式地说,假设我们在3空间中得到了凸多面体,P的表面上的起点s,方向矢量v(在包含p的某些小平面中),并且距离ℓ。我们多快可以确定P Mario的哪一面停在内部?(作为技术要点,假设如果Mario进入P的顶点,他会立即爆炸;所幸,这种情况几乎不会发生。)PPPsssPPPvvvpppℓℓ\ellPPPPPP 或者,如果您愿意:假设我们预先获得了多面体,源点s和方向向量v。预处理之后,我们能够多快地回答了一定距离的问题ℓ?PPPsssvvvℓℓ\ell 简单地跟踪Mario的足迹很容易,尤其是当仅具有三角形小平面时。每当Mario通过其边缘之一进入构面时,我们可以在O (1 )时间中确定他必须穿过其他两个边缘中的哪一个。尽管该算法的运行时间仅在边缘交叉数量上是线性的,但它不受输入大小的限制,因为距离ℓ可以任意大于P的直径。我们可以做得更好吗?PPPO (1 )O(1)O(1)ℓℓ\ellPPP (在实践中,路径长度实际上不是无限的;还有一个全球性的上界表示输入所需要的比特数的条件,但坚持整数投入提出了一些相当恶劣的数值问题-我们如何计算。正是在那里停止吗?—因此,我们坚持使用实际输入和精确的实际算术。) 关于这个问题的复杂性,有什么重要的知识吗? 更新:根据julkiewicz的评论,很明显,纯RAM的运行时间仅以(多位点的复杂性)为界是不可能的。考虑双面单元方的特殊情况下[ 0 ,1 ] 2,与马里奥开始(0 ,1 / 2 )和在行走方向(1 ,0 )。马里奥将停止在前面或取决于整数的奇偶平方的背面⌊ ℓ ⌋。除非我们很高兴,否则我们无法在真实RAM上恒定时间计算下限函数ñnn[ 0 ,1 ]2[0,1]2[0,1]^2(0 ,1 / 2 )(0,1/2)(0,1/2)(1 ,0 )(1,0)(1,0)⌊ ℓ ⌋⌊ℓ⌋\lfloor \ell \rfloor等同PSPACE和P。但是,我们可以计算在Ø (日志ℓ )通过指数检索,这是在天真的算法的指数调整时间。 在时间多项式ñ和日志ℓ总能实现?⌊ ℓ ⌋⌊ℓ⌋\lfloor \ell \rfloorO (对数ℓ )O(log⁡ℓ)O(\log \ell)ñnn日志ℓlog⁡ℓ\log \ell

30
每个人都应该观看哪些视频?
斯坦福大学现在有一个YouTube频道,可以免费观看完整课程的高清视频,内容涉及从动力学系统到量子纠缠的所有内容。更多会议和讲习班正在录制他们的演讲。您认为每个人都应该知道哪些在线视频? 我将为这些问题提供一些答案,这些答案主要是说明性的,但我希望可能会发生,因为这个社区Wiki可以变成共享新研究的出色介绍以及学习场所的资源( (或加强)在陌生区域的背景。

28
P和NPC之间的问题
分解和图同构是NP中的问题,这些问题在P中也不是完整的。共有此属性的其他一些(足够不同的)自然问题是什么?直接来自拉德纳定理证明的人为例子不算在内。 仅假设某些“合理”假设,这些示例中的任何一个是否可证明是NP中间的?

13
有关良好研究实践的建议
阅读了Daniel Apon的问题后,我开始认为提出一个更广泛,更笼统的问题(特别是对像我这样的初级研究人员和研究生)可能是有用的,以便我们可以从更多高级研究人员的经验中学习。 所以这是一个问题: 您发现哪些实践对您的研究最有用? 我不想将其限制为任何特定类型的建议,因此欢迎提供有关研究实践的任何建议。

11
转换字符串有多困难?
通过将字符散布到新的字符串中,从而使每个字符串的字符保持顺序,从而形成两个字符串的混洗。例如,MISSISSIPPI是一个洗牌MISIPP和SSISI。如果我将两个相同的字符串混洗,请说一个字符串平方。例如,ABCABDCDis square是因为它是ABCDand 的混洗ABCD,但是字符串ABCDDCBA不是正方形。 是否有一种快速的算法来确定字符串是方形的还是NP硬的?显而易见的动态编程方法似乎不起作用。 甚至以下特殊情况也似乎很困难:(1)每个字符最多出现四次 六次的字符串,以及(2)只有两个不同字符的字符串。 正如Per Austrin指出的那样,每个字符最多出现四次的特殊情况可以简化为2SAT。 更新: 此问题有另一种说法可以使硬度证明更容易。 考虑图G的顶点为1到n的整数。用端点之间的真实间隔来标识每个边缘。我们说,如果一个间隔适当地包含另一个,则嵌套两个G边。例如,边(1,5)和(2,3)是嵌套的,但(1,3)和(5,6)不是,而(1,5)和(2,8)不是。如果没有嵌套任何一对边,则G中的匹配是非嵌套的。 是否有一种快速的算法来确定G是否具有非嵌套的完美匹配,或者该问题是否难解决? 对字符串进行改组等效于在不相交的团体(边缘之间的字符相等)中找到一个非嵌套的完美匹配。特别地,对二进制字符串进行混排等效于在两个集团的不相交联合中找到非嵌套的完美匹配。但是我什至不知道这个问题对于一般的图形来说是困难的,还是对于任何有趣的图形类来说都不容易。 有一个简单的多项式时间算法可以找到完美的非交叉匹配。 更新(2013年6月24日):问题已解决! 现在有两个独立的证明,证明方串是NP完全的。 2012年11月,Sam Buss和Michael Soltys宣布减少3分区,这表明即使是9个字母以上的字符串,问题也很难解决。请参阅《 2014年计算机系统科学学报》中的“将正方形解混是NP-Hard ” 。 2013年6月,Romeo Rizzi和StéphaneVialette发布了最长的子序列问题的简化版本。请参见“ 关于识别随机混排乘积的平方的单词 ”,Proc。第八届俄罗斯国际计算机科学研讨会,Springer LNCS 7913,第235-245页。 还有一个更简单的证据表明,由于Shuai Cheng Li和Ming Li在2009 年,发现非嵌套完美匹配是NP困难的。请参见“ 论2区间模式的两个开放问题 ”,理论计算机科学 410(24–25) ):2410–2423,2009年。

15
每个人都应该阅读哪些演讲笔记?
与该方案相同的方案存在多个问题: 每个人都应该读什么论文 每个人都应该读什么书 最新的TCS书籍有哪些草稿可在线获得 每个人都应该看什么视频 我不愿意再发表一篇文章,但是杰夫·埃里克森(Jeff Erickson)关于算法的讲义改变了我的想法。我以为:天哪!这些年来,我还没有看过这些出色的笔记! 因此,我认为可能还会有其他很棒的笔记,这些笔记确实值得一读。因此,对于每一个计算机科学子(数据结构,算法,计算,计算的复杂性,密码学理论等),建议您选择的高超的讲义,说为什么你认为它的过人之处。 保持整洁的一个简单规则:每个子字段一个答案。(这将是社区Wiki,因此您可以编辑现有答案并添加建议。)

17
价格示例的例子?
理论计算机科学提供了“抽象价格”的一些示例。最突出的两个是高斯消除和排序。即: 众所周知,如果将操作限制为整个行和列的整体,则高斯消除法对于计算行列式是最佳的[1]。显然,Strassen算法没有遵守该限制,并且在渐近性上优于高斯消去。 在排序中,如果将列表的元素视为只能进行比较和移动的黑匣子,则我们具有标准的n 日志ñnlog⁡nn \log n信息理论下限。据我所知,融合树克服了这一限制,因为巧妙地使用了乘法。 还有其他抽象价格的例子吗? 为了更加正式一点,我正在寻找一些示例,在某些弱计算模型中无条件地知道下界,而在更强大的模型中会违反下界。此外,弱模型的弱点应该以抽象的形式出现,这无疑是一个主观的概念。例如,我不认为对单调电路的限制是一种抽象。希望上面的两个例子可以清楚说明我在寻找什么。 [1] KLYUYEV,VV和NI KOKOVKIN-SHcHERBAK:关于线性代数方程组解的最小算术运算数。GI TEE翻译:斯坦福大学计算机科学系,技术报告CS 24,6月t4,t965。

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.