Ich bin derzeit ein Student im Grundstudium, der in diesem Jahr seinen Abschluss machen muss. Nach dem Abschluss überlege ich, auf einen TCS-Master / PhD hinzuarbeiten. Ich habe mich gefragt, welche Bereiche der Mathematik für das TCS hilfreich sind, insbesondere die (klassische) Komplexitätstheorie.
Welche Bereiche halten Sie für unerlässlich, wenn Sie Komplexitätstheorie studieren möchten? Kennen Sie gute Lehrbücher, die diese Bereiche abdecken? Falls ja, geben Sie bitte deren Schwierigkeitsgrad an (Einsteiger, Absolventen usw.).
Wenn Sie ein Feld in Betracht ziehen, das in der Komplexitätstheorie nicht häufig verwendet wird, es aber für TCS als kritisch erachtet, verweisen Sie bitte auch darauf.
Antworten:
Wenn Sie sich die Antworten auf diese TCS StackExchange-Frage ansehen , werden Sie feststellen , dass in der Komplexitätstheorie so gut wie jeder Bereich der Mathematik von Bedeutung sein kann. Wenn Sie sich also wirklich für ein Gebiet der Mathematik interessieren, das nicht verwandt zu sein scheint, sollten Sie es trotzdem studieren. Wenn es jemals für die Komplexitätstheorie relevant wird, gehören Sie zu den wenigen Komplexitätstheoretikern, die es verstehen.
quelle
Sie sollten das Buch von Dexter Kozen über die Theorie der Berechnung zu Ihrer Liste hinzufügen . Deckt die Grundlagen der Komplexitätstheorie sehr effektiv ab, und das kurze Vortragsformat ist großartig.
In Bezug auf den mathematischen Hintergrund zusätzlich zu dem, was oben erwähnt wurde:
Ich glaube nicht, dass Sie ein Meister dieser Themen sein müssen, aber es ist auf jeden Fall hilfreich, ein bestimmtes Komfortniveau zu haben.
quelle
A C 0∙ Das Buch Extremal Combinatorics von Stasys Jukna ist IMO in der Komplexitätsgemeinschaft zu wenig bekannt. Es ist eine großartige Sammlung kombinatorischer Techniken, die hauptsächlich mit Blick auf ihre Anwendungen in TCS (meistens Komplexität) geschrieben wurden. Eine Reihe wichtiger Komplexitätstechniken werden in ihrem kombinatorischen Kontext erörtert, darunter berühmte Ergebnisse wie Monotone- und Schaltkreisuntergrenzen, aber auch einige sehr schöne Ergebnisse, die Sie sonst vielleicht nicht finden. Und es gibt viele Übungen.AC0
Meines Wissens nach ist es das einzige veröffentlichte Buch, das sich eingehend mit der linearen Algebra in der Kombinatorik befasst. Es gibt einen Entwurf eines Manuskripts von Babai und Frankl, der viel ausführlicher ist, der jedoch weder veröffentlicht noch online ist:
https://cs.uchicago.edu/page/linear-algebra-methods-combinatorics-applications-geometry-and-computer-science
quelle
In den vorherigen Antworten wurden bereits die grundlegenden Antworten aufgeführt: Wahrscheinlichkeitstheorie, Kombinatorik, lineare Algebra, abstrakte Algebra (endliche Felder, Gruppentheorie usw.).
Ich würde hinzufügen:
Fourier-Analyse , siehe z. B. Ryan O'Donnels Kurs: http://www.cs.cmu.edu/~odonnell/boolean-analysis/
Codierungstheorie , siehe Madhu Sudans Kurs: http://people.csail.mit.edu/madhu/coding/course.html
Informationstheorie , das Standardbuch ist Elemente der Informationstheorie: http://www.amazon.com/Elements-Information-Theory-Telecommunications-Processing/dp/0471241954
Es gibt auch Darstellungstheorie, zufällige Spaziergänge und vieles mehr, was ich wahrscheinlich vergessen habe ...
quelle
Abgesehen von grundlegenden Dingen, wahrscheinlich:
Ich mag die Konkrete Mathematik von Knuth. Es gibt einen guten Überblick / Grundkenntnisse über viele wichtige Werkzeuge.
Wenn Sie gerne Funktionen (siehe Generierungsfunktionalität von Wilf) als Werkzeug generieren , ist auch eine komplexe Analyse hilfreich.
quelle
Sanjeev Arora hat ein schönes Dokument für einen Abschlusskurs (für Studenten im ersten Studienjahr) namens "Theoretiker-Toolkit", das viele grundlegende Informationen enthält, die ein Theoriestudent kennen sollte. Viele dieser Dinge können Sie warten, bis Sie die Schule abgeschlossen haben, aber Sie erhalten eine gute Vorstellung davon, was Sie wissen müssen, und einige der Voraussetzungen.
quelle
Ein weit verbreitetes, wenn auch keineswegs universelles Paradigma für viele erfolgreiche Forscher in der TCS-Community ist das folgende: Kennen Sie einige Grundlagen auf Bachelor-Niveau, wie Logik, lineare Algebra, Wahrscheinlichkeit, Optimierung, Graphentheorie, Kombinatorik und grundlegende abstrakte Algebra. Überdies zwingen Sie sich nicht, etwas anderes zu lernen, bis Sie wirklich glauben, dass Sie es brauchen, um das Problem zu lösen, mit dem Sie seit Monaten zu kämpfen haben, oder wenn Sie glauben, dass Sie wirklich gerne etwas dazu lernen würden.
"Woher weiß ich, dass ich es brauche, wenn ich es noch nie gesehen habe?", Fragst du? Gute Frage. Manchmal hat man Glück und spürt es: "Weißt du was, dieses Unterproblem, das ich anzupacken versuche, klingt sehr nach der Fourier-Transformation, über die Fred nicht die Klappe hält. Ich muss das überprüfen oder Fred fangen in einem Raum und lassen Sie ihn mich kurz durch die Grundlagen führen. " Ein anderes Mal fängst du ein paar kenntnisreichere Leute als dich in einem Raum ein, indem du ein Seminarvortrag hältst oder so, und jammerst darüber, wie du dieses Problem nicht lösen kannst, bis Fred mit "Hey, ich wette, dass du das bist kann dies mit der Fourier-Analyse lösen. Lassen Sie mich Ihnen zeigen, wie. " Am Ende bekommst du eine gemeinsame Arbeit mit Fred, du hast etwas Neues gelernt und du und Fred sind jetzt die besten Freunde und gehen jeden zweiten Samstagabend trinken.
quelle
Ich denke, eine Liste von Bereichen der Mathematik, die nicht nützlich sind, wäre viel kürzer als eine Liste von Bereichen, die es gibt! Mir fällt nichts ein.
Lerne, was auch immer für dich interessant ist und / oder wie es im Moment aussieht. Auch wenn Sie es nicht direkt verwenden, wird es Ihnen helfen, andere Dinge zu lernen, die Sie tun.
quelle
Grundkenntnisse der mathematischen Logik sind meiner Meinung nach von Vorteil. Sie können sich die beiden Bücher von Cori und Lascar ansehen.
Mathematische Logik: Ein Kurs mit Übungen Teil I
Mathematische Logik: Ein Kurs mit Übungen Teil II
quelle
Ich empfehle, sich diese Bücher anzuschauen:
Außerdem können Sie anhand von Themen der MFCS- Konferenz (Mathematical Foundations of Computer Science) erfahren, welche Art von Hintergrund Sie benötigen. (Vorsichtsmaßnahme: Die Konferenz enthält hochentwickelte Themen. Sie müssen diese nicht beherrschen. Versuchen Sie einfach, den Überblick zu behalten.)
quelle
Die Zahlentheorie wurde nicht erwähnt, ist jedoch ein sehr wichtiges Werkzeug für viele kryptografische und komplexitätstheoretische Konstruktionen.
quelle
Die Darstellungstheorie endlicher Gruppen (auch über endliche Felder) kann für verschiedene Aufgaben überraschend nützlich sein, darunter:
Matrixmultiplikationsalgorithmen ( Cohn - Kleinberg-Szegedy-Umans )
lokal dekodierbare Codes konstruieren (siehe zB dieses Paper von Klim Efremenko)
Anwendungen im Quantencomputing (Hidden Subgroup Problem für Nicht-Label-Gruppen, multiplikative Gegner-Methode)
quelle
Ich empfehle das Buch von Garey und Johnson zu lesen
Computer und Intraktabilität: Ein Leitfaden zur Theorie der NP-Vollständigkeit .
Dies kann mit sehr wenig mathematischem Hintergrund gelesen werden. Ich denke, dieses Buch ist eine Freude zu lesen, und ich würde es als erstes Buch über Papadimitriou und Arora / Barak empfehlen. Sobald Sie dies gelesen haben, können Sie in die anderen Bücher eintauchen und verschiedene Teile der Mathematik identifizieren, die Sie benötigen, um die fortgeschrittenen Themen zu verstehen, an denen Sie interessiert sind.
quelle
Es war einmal der Grundkurs CS464 (2002) bei UWaterloo CS, in dem Christos H. Papadimitrious Computational Complexity , Addison-Wesley, 1994, verwendet wurde.
Die aufgeführten Hintergrundthemen umfassen Turing-Maschinen, Unentscheidbarkeit, Zeitkomplexität und NP-Vollständigkeit.
Durchsuchen Sie für Hintergrundinformationen Ihre Bibliothek in der Nähe von QA267.G57 (Goddards Introducing the Theory of Computation , basierend auf ein oder zwei schnellen Lesevorgängen und deren Verfügbarkeit für mich) Theorie von der reinen mathematischen Seite wäre auch nützlich.)
quelle