我目前是一名本科生,今年定会毕业。毕业后,我正在考虑成为一名TCS硕士/博士。我开始想知道哪些数学领域被认为对TCS有帮助,特别是(经典)复杂性理论。
对于想研究复杂性理论的人,您认为哪些领域至关重要?您是否知道涵盖这些领域的任何优秀教科书,如果有,请说明其难度等级(入门级,研究生等)。
如果您考虑的领域在复杂性理论中使用不多,但认为对TCS至关重要,则也请参考它。
我目前是一名本科生,今年定会毕业。毕业后,我正在考虑成为一名TCS硕士/博士。我开始想知道哪些数学领域被认为对TCS有帮助,特别是(经典)复杂性理论。
对于想研究复杂性理论的人,您认为哪些领域至关重要?您是否知道涵盖这些领域的任何优秀教科书,如果有,请说明其难度等级(入门级,研究生等)。
如果您考虑的领域在复杂性理论中使用不多,但认为对TCS至关重要,则也请参考它。
Answers:
如果您看一下TCS StackExchange问题的答案,您会发现,在复杂性理论中,几乎所有数学领域都可能很重要。因此,如果您对某些似乎无关的数学真的很感兴趣,请继续学习。如果它确实与复杂性理论相关,那么您将是少数了解它的复杂性理论家之一。
您应该将Dexter Kozen关于计算理论的书添加到列表中。非常有效地涵盖了复杂性理论的基础,而且简短的演讲形式很棒。
在数学背景方面,除上述内容外:
我认为您不需要成为这些主题的精通者,但是一定程度上的舒适度无疑会有所帮助。
A C 0 Stasys Jukna撰写的《Extremal Combinatorics》一书在复杂性社区中对IMO知之甚少。它是大量组合技术的集合,主要着眼于其在TCS中的应用(主要是复杂性)。在其组合上下文中讨论了许多重要的复杂性技术,包括著名的结果(如单调和电路下限),以及一些您可能不会遇到的非常好的结果。而且有很多练习。
(据我所知)这是唯一一本深入探讨“组合数学中的线性代数方法”的书,这是一种精巧而强大的工具。有一份有关Babai和Frankl的手稿草稿,内容更深入,但尚未发布或在线发布:
您可能已经知道,组合论中的概率方法在复杂性理论中非常重要,甚至很重要。Jukna的书对此进行了介绍,但Alon和Spencer着名的《概率方法》对 Jukna的书进行了更深入的介绍(包括许多其他漂亮的例子)。
前面的答案已经列出了基本的答案:概率论,组合论,线性代数,抽象代数(有限域,群论等)。
我会补充:
傅立叶分析,请参阅Ryan O'Donnel的课程:http: //www.cs.cmu.edu/~odonnell/boolean-analysis/
编码理论,请参见苏丹Madhu的课程:http: //people.csail.mit.edu/madhu/coding/course.html
信息论,标准书是信息论的元素:http : //www.amazon.com/Elements-Information-Theory-Telecommunications-Processing/dp/0471241954
还有表示论,随机游走,还有更多我可能会忘记的...
除基本内容外,可能:
我喜欢Knuth的《具体数学》。它提供了许多重要工具的良好概述/基础知识。
如果您喜欢将生成函数(请参阅Wilf的generationfunctionology)作为工具,那么复杂的分析也将非常有用。
对于TCS社区中许多成功的研究人员来说,一个通用的范例(当然不是通用的)如下:在本科层次上了解一些基础知识,例如逻辑,线性代数,概率,优化,图论,组合论,基本抽象代数。除此之外,不要强迫自己学习其他任何东西,除非您真的认为自己需要它来解决您几个月来一直在苦苦挣扎的问题,或者如果您认为自己真的乐于学习一些东西。
您问:“如果我从未见过它,我怎么知道我需要它?” 好问题。有时,您会感到幸运并感觉到:“您知道吗,我正在尝试解决的这个子问题听起来像是傅立叶变换法则,Fred不会闭嘴。我必须检查一下或陷入Fred在一个房间里,请他给我快速讲解基础知识。” 在其他时候,您会在房间里困住一群比您自己知识渊博的人,例如在研讨会上发表演讲或类似的话,然后抱怨您如何解决这个问题,直到弗雷德发出“嘿,我打赌您,可以通过傅立叶分析解决这个问题。让我告诉你如何做。” 最后,您与弗雷德(Fred)获得了一份联合论文,学到了一些新知识,而您和弗雷德(Fred)现在是最好的伙伴,每隔一个星期六晚上出去喝酒。
我认为没有用的数学领域列表会比没有数学领域的列表短得多!我想不到。
研究任何看起来有趣的数学,和/或目前所需的任何数学。即使您不直接使用它,它也将帮助您学习所做的其他事情。
我建议看看这些书:
此外,MFCS(计算机科学的数学基础)会议中的主题可能会带您进入所需的背景。(注意:会议包括非常高级的主题。您不需要掌握这些主题。只需尝试了解大局即可。)
有限组的表示理论(也适用于有限域)对于各种任务可能出奇地有用,包括:
矩阵乘法算法(Cohn--Kleinberg-Szegedy-Umans)
构建本地可解码代码(例如,参见Klim Efremenko的本文)
在量子计算中的应用(非阿贝尔群的隐藏子群问题,乘性对抗法)
曾几何时,UWaterloo CS 的本科课程CS464(2002)使用了Christos H. Papadimitriou的Computational Complexity,Addison-Wesley,1994。
列出的背景主题包括图灵机,不确定性,时间复杂度和NP完整性。
对于背景,请浏览QA267.G57附近的图书馆(Goddard的介绍计算理论,是基于一两个快速的速读内容以及对我的实用性,似乎涵盖了背景知识的CS方面;我感到有些困惑和困惑。纯数学方面的理论也将很有用。)