複雑性理論にはどのような数学的背景が必要ですか?


79

私は現在、学部生で、今年卒業する予定です。卒業後、TCSマスター/博士号を取得することを検討しています。私は数学のどの分野がTCS、特に(古典的な)複雑性理論に役立つと考えられているのか疑問に思っています。

複雑性理論を勉強したい人にとって、どの分野が必須だと思いますか?これらの分野をカバーする優れた教科書をご存知ですか。もしそうなら、難易度(入門、卒業など)を含めてください。

複雑性理論であまり使用されていない分野を検討しているが、TCSにとって重要であると考えている場合は、それも参照してください。


14
Arora / BarakやPapadimitriouなどの複雑性理論の標準テキストを読み始めることをお勧めします。数学を理解していないために行き詰まった場合は、先に進む前に関連する数学をある程度詳しく学習してみてください。
ロビンコタリ

8
ロビンが提案したことを行った後、いくつかの小さな未解決の問題に取り組み始めます。あなたはその背後にある数学を学ぶことに刺激を受けるでしょう。大学院生として、私は学習のためだけにいくつかの数学分野を学ぶことは非常に効率的ではありません。
アレッサンドロコセンティーノ

回答:


53

このTCS StackExchangeの質問への回答を見ると、複雑性理論では数学のあらゆる分野が重要である可能性があることがわかります。したがって、関連性がないように見える数学の領域に本当に興味がある場合は、とにかく勉強してください。それが複雑性理論に関連するようになった場合、あなたはそれを理解する数少ない複雑性理論家の一人になるでしょう。


20
この回答は、関連することわかっている分野研究すべきではないという意味ではありません(他の回答を参照)。これらには線形代数、グラフ理論、確率論、基本的な抽象代数、および基本的な論理が含まれると思います。
ピーターショー

6
もちろん、P NP を証明するためにMulmuleyのプログラムに貢献するようなことをしたい場合、これよりもはるかに多くの数学が必要になります。
ピーターショー

34

計算理論に関するDexter Kozenの本をリストに追加する必要があります。複雑性理論の基礎を非常に効果的にカバーしており、短い講義形式は素晴らしいです。

上記のことに加えて、数学的な背景の観点から:

  • 確率論
  • 線形代数と抽象代数
  • グラフ理論
  • 基本的なロジック

始めるためにこれらのトピックをマスターする必要はないと思いますが、ある程度の快適さを確保することは間違いなく役立ちます。


32

AC0

それは(私の知る限り)「組み合わせ論における線形代数法」を深く扱う唯一の出版された本であり、洗練された強力なツールです。BabaiとFranklの原稿の草稿がありますが、これはさらに深く掘り下げていますが、公開もオンラインもされていません。

https://cs.uchicago.edu/page/linear-algebra-methods-combinatorics-applications-geometry-and-computer-science


2
同じ行に沿って、Jaikumar Radhakrishnanによるエントロピー法の美しく書かれたガイド「Entropy and Counting」を指摘したいと思います。エントロピー法は、適切な機会が訪れたときに適用するのに非常に満足できる洗練されたツールのもう1つです。
arnab

27

これまでの回答には、確率論、組み合わせ論、線形代数、抽象代数(有限体、群論など)の基本的なものがすでにリストされていました。

私は追加します:

フーリエ解析、たとえば、Ryan O'Donnelのコースを参照してくださいhttp : //www.cs.cmu.edu/~odonnell/boolean-analysis/

コーディング理論、Madhu Sudanのコースを参照してください:http : //people.csail.mit.edu/madhu/coding/course.html

情報理論、標準書は情報理論の要素です:http : //www.amazon.com/Elements-Information-Theory-Telecommunications-Processing/dp/0471241954

表現理論、ランダムウォークなどもあります。


5
研究/生活があなたをどこに連れて行くかに応じて、あなたが行くと同時に学ぶもののほとんど:コースから、講義から、共同研究者から、論文からなど
ダナモシュコヴィッツ

22

基本的なものとは別に、おそらく:

  • 組合せ論 -あなたはyouselfはかなり定期的に物事を数える見つけるかもしれません
  • 確率論 -平均ケース分析およびランダム化アルゴリズム用

クヌースのコンクリート数学が好きです。多くの重要なツールの概要/基本的な知識を提供します。

あなたのような場合に関数を生成する(参照generationfunctionologyツールとしてWilfによる)を、複雑な分析は、あまりにも、便利です。


私はコンクリート数学が大好きですが、少し難解です。キャメロンの「Combinatorics」のような、より主流の本を最初にお勧めします。
エミール

7
ここに私の印象があります-コンクリート数学は、アルゴリズムの正確(またはほぼ正確な)分析を行う方法を学ぶための素晴らしい本のようです、Knuthの長所。それがあなたがしたいことなら、頑張ってください。しかし、ほとんどの複雑性理論の論文はそれほど正確ではない境界を与えるため、CMの技術はあまり重要ではないことに注意してください。
アンディドラッカー

1
複雑性理論家が怠け者だからだと言う人もいるかもしれません。しかし、(a)正確な境界は価値があるよりも多くの労力を費やす可能性があるため、(b)既知の上限と下限の間に大きなギャップがあるため、どちらの側の小さな改良もほとんど価値がないように思われるためだと思います。
アンディドラッカー

私は本にあらゆる種類のクールなものがあります-私の発言は、主に総和と再発関係の正確な解決策に関する資料に関係しています。
アンディドラッカー

22

Sanjeev Aroraには理論の学生が知っておくべき基本的な資料がたくさんある「理論家のツールキット」と呼ばれる大学院課程(1年生向け)の素晴らしいドキュメントがあります。このようなものの多くは、大学院まで学ぶのを待つことができますが、あなたが知っておくべきことといくつかの前提条件の良いアイデアを与えてくれます。


20

確かに普遍的ではありませんが、TCSコミュニティの多くの成功した研究者の一般的なパラダイムは次のとおりです:学部レベルでの論理、線形代数、確率、最適化、グラフ理論、組み合わせ論、基本的な抽象代数などのいくつかの基本を知っています。それを超えて、何ヶ月も苦労してきた問題を解くために本当に必要だと思うまで、またはそれのために何かを学ぶことを本当に楽しみたいと思うまで、他のことを学ぶことを強制しないでください。

「今まで見たことがないのに、どうして必要なのかわかりますか?」良い質問。幸運にもそれを感じることもあります。「あなたが知っている、私が取り組んでいるこの副問題は、フーリエが変なことをしているようなものです。部屋にいて、彼に基本を簡単に見てもらいます。」また、セミナーの講演などをすることで、自分よりも知識のある人を部屋に閉じ込めて、フレッドが「ねえ、私はあなたに賭けます」と言うまで、この問題を解決できないことを嘆きますフーリエ解析でこれを解決できます。その方法をお見せしましょう。」最終的に、フレッドと共同論文を受け取り、新しいことを学びました。あなたとフレッドは今では最高の仲間であり、土曜日の夜ごとに飲みに出かけます。


18

役に立たない数学の分野のリストは、役に立つ分野のリストよりもずっと短いと思います!何も考えられません。

おもしろそうな数学や、現時点で必要と思われるものは何でも研究してください。直接使用しなくても、他のことを学ぶのに役立ちます。


4
私はこの答えを二番目にします。どんな数学がおもしろいと思うかは、どの問題が最もおもしろいか、またあなたが解決するのに適している問題に導きます。
デリックストリー


12

これらの本をご覧になることをお勧めします。

また、MFCS(コンピューターサイエンスの数学的基礎)カンファレンスのトピックは、あなたが必要とするかもしれないどんな種類の背景に導くかもしれません。(注意:会議には高度なトピックが含まれています。それらを習得する必要はありません。全体像を把握するようにしてください。)


9

数論は言及されていませんが、多くの暗号化および複雑性理論の構築にとって非常に重要なツールです。


6

有限群の表現理論(有限体上)は、次のようなさまざまなタスクに驚くほど役立ちます。

  • 行列乗算アルゴリズム(Cohn--Kleinberg-Szegedy-Umans

  • ローカルにデコード可能なコードの構築(例:Klim Efremenkoによるこの論文を参照)

  • 量子コンピューティングへの応用(非アーベル群の隠されたサブグループ問題、乗法的敵対法)

Sn


エキスパンダーグラフの決定論的な構造を忘れないでください
サショニコロフ

プロパティ(T)a la Lubotzkyを使用した代数構造を意味しますか?その場合、これは上記の例とは多少異なるフレーバーです(有限グループのirrepを使用しないでください)。
マーチンコトフスキ

4

ガレーとジョンソンの本を読むことをお勧めします

コンピュータと難治性:NP完全性理論のガイド

これは、数学的な背景がほとんどない状態で読むことができます。この本は読むのが楽しいと思うので、PapadimitriouとArora / Barakの最初の本としてお勧めします。これを読んだら、他の本を読んで、興味のある高度なトピックを理解するために必要なさまざまな数学を特定できます。


1
私はこの本から複雑さを学びましたが、多くの面倒であるが最終的に重要ではない詳細で、バランスが取れていませんが、本が書かれたときでさえ重要だった問題をカバーしていません。一方、それは時折重要な参照作業です。対照的に、別の回答で言及されたコーゼンのテキストは、明確で包括的かつ現代的です。
アンドラスサラモン

1

むかしむかし、UWaterloo CS の学部レベルのコースCS464(2002)は、1994年、Addison-Wesley のChristos H. Papadimitriouの計算複雑性を使用していました。

リストされている背景トピックには、チューリングマシン、決定不能、時間の複雑さ、NP完全性が含まれます。

背景については、QA267.G57の近くのライブラリを参照してください(Goddard's Introducing the computing theory、based on quick skim read and two available on the available、which to cover CS side of the background;私はいくつかのセットとグループを感じています純粋な数学の側面からの理論も有用でしょう。)


2
投票するのに十分な評判があればいいのに。ある大学とその図書館を参照しているのはなぜですか?
アレッサンドロコセンティーノ

2
FWIW、QA267.G57は米国議会図書館の電話番号で、広く使用されている図書館標準です。これは、ウォータールー大学に固有のものではありません(最終桁を除く)。
エミルイェジャベク
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.