我是数学专业的研究生,而理论计算机科学是我从未理解过的领域,因为我找不到关于该主题的很好的读物。我想知道这个域实际上是关于什么的,它所涉及的主题是什么,需要具备哪些先决条件,等等。现在,我只想知道:
什么是理论计算机科学的入门书籍?
鉴于有这样的事情。如果不是,那么对计算机科学有基本知识(即,他们了解一种或两种编程语言的基础)的数学家应该从哪里开始呢?你有什么建议吗?
谢谢!
我是数学专业的研究生,而理论计算机科学是我从未理解过的领域,因为我找不到关于该主题的很好的读物。我想知道这个域实际上是关于什么的,它所涉及的主题是什么,需要具备哪些先决条件,等等。现在,我只想知道:
什么是理论计算机科学的入门书籍?
鉴于有这样的事情。如果不是,那么对计算机科学有基本知识(即,他们了解一种或两种编程语言的基础)的数学家应该从哪里开始呢?你有什么建议吗?
谢谢!
Answers:
首先,“理论计算机科学”对不同的人意味着不同的事物。我认为,对于该网站上的大多数用户而言,历史漫画(反映了一些现代社会学倾向)是存在“理论A”和“理论B”(它们之间没有隐含的顺序关系):理论A包含以下理论:算法,复杂性理论,密码学等。理论B由诸如编程语言理论,自动机理论等组成。根据您对数学的喜好,您可能更喜欢一种(或同等地喜欢)。我对“理论A”更为熟悉,因此让我在其中给出一些参考:
从西普瑟的书开始。这将为您很好地介绍自动机,图灵机,可计算性,Kolmogorov复杂度,P vs NP以及其他一些复杂度类别。它写得很好(我认为,这是有史以来写得最好的技术书籍之一)
对于算法,我稍微偏爱Kleinberg-Tardos,但那里有很多不错的入门书籍。您可能对计算几何特别感兴趣,它有自己的一本好书。
假设您是数学专业的研究生,这些书中缺少的TCS的主要分支是代数复杂性理论,它经常与代数(可交换和不可交换),表示论,群论和代数几何紧密相关。这里有一个规范的文本,是Burgisser-Clausen-Shokrollahi。它有些百科全书,所以可能不是最好的介绍,但是我不确定这方面是否有真正的入门书籍。您也可以查看Chen-Kayal-Wigderson和Shiplka-Yehudayoff的调查。
之后,根据您的数学爱好,建议您浏览有关特定主题的更高级的书籍:
Arora-Barak是更现代的复杂性理论(可以说是Sipser的书的结尾),为您提供了所涉及技术的一种风味(主要是组合和代数的混合)
Jukna的关于布尔函数复杂度的书也有类似的著作,但特别是关于布尔电路复杂度的书(风味很强)
几何复杂度理论。请参阅此处或Landsberg的几何学简介。
奥唐纳(O'Donnell)的《布尔函数分析》一书具有更富于傅立叶分析的倾向。
密码学。这里更高级的数学方面通常是数论和代数几何。尽管这些纯数学方面仅代表加密技术的一小部分,但它们是您可能会发现有趣的重要方面。不是我的领域,我不确定这里有什么好的入门书。
编码理论。在这里,数学理论的范围从球体堆积(请参见Conway和Sloane的书)到代数几何(例如,Stichtenoth的书)。同样,不是我所在的地区,所以我不确定这些是否是最好的起点,但是翻阅它们,您很快就会了解并决定是否要深入研究。
然后,还有许多其他数学主题只出现在研究文献中,例如与泡沫的联系,图论,C *代数(让我仅将您引向Kadison-Singer猜想),不变论,表示论,正交,等等。另请参阅这些相关问题