Liste der Intro-TCS-Bücher für diejenigen, die nicht viel über TCS wissen [geschlossen]


10

Wenn Sie Bücher für jemanden empfehlen müssen, der auf der Einführungsebene mehr über TCS erfahren möchte, wie z. B. Automatentheorie, Algorithmus, Komplexitätstheorie usw., welche Bücher würden Sie für diejenigen empfehlen, die interessiert sind und mehr darüber erfahren möchten TCS, aber keine Exposition gegenüber?


2
Ich denke, das sollte eine CW-Frage sein.
Gigili

1
In dieser Metadiskussion erfahren Sie, wie Sie diese Frage verwalten.
Raphael

3
cstheory.SE hat eine erweiterte Liste zu
uli


2
@ Gigili Nein. Listen von Büchern waren früher CW, aber das wird nicht mehr gemacht. Bitte lesen Sie den Blog-Beitrag, den ich verlinkt habe.
Gilles 'SO - hör auf böse zu sein'

Antworten:


9

Wenn Sie eine allgemeine Einführung wünschen, ohne auf die technischen Details einzugehen, empfehle ich David Harels Algorithmics: The Spirit of Computing . Danach ist dies meine Favoritenliste:

  • Michael Sipsers Einführung in die Berechnungstheorie : Die beste Einführung in die Automatentheorie, Berechenbarkeit und Komplexität.
  • Algorithmen von S. Dasgupta, CH Papadimitriou und UV Vazirani: die intuitivste Einführung in Algorithmen mit einem stärkeren Fokus auf Intuition als technische Beweise.
  • Jon Bentleys Programmierperlen : Dies ist kein Lehrbuch über Algorithmen, aber es zeigt auf wunderbare Weise, wie man Algorithmus-Entwurfstechniken verwendet, um echte Probleme zu lösen, die echte Programmierer irritierten. :-) Dies könnte ein guter Anfang sein, wenn Sie Vorkenntnisse in der Programmierung haben.

DPV ist noch nicht gedruckt; ist es allgemein bekannt?
Raphael

Aufgrund der Punktzahl dieser Antwort habe ich die Antworten in eine aggregierte Antwort aufgenommen . Bitte entfernen Sie Ihre Antwort aus Gründen der Klarheit.
Raphael

@Raphael DPV ist seit mehreren Jahren im Druck, aber online immer noch gut verfügbar. Ich habe versucht, nicht auf eine kommerzielle Website wie Amazon zu verlinken.
Dai

@Dai: Ich verstehe. Auf der Seite, auf die Sie verlinken, steht "Dies ist ein vorletzter Entwurf unseres bald erscheinenden Lehrbuchs.", Daher meine Verwirrung.
Raphael

7

Ich finde Clarkes Buch etwas zu schwer für jemanden ohne TCS-Hintergrund. Ich kenne (persönlich) Doktoranden, die das Buch schwer zu verstehen finden.
Dai

@Dai, Sie haben wahrscheinlich Recht, ich habe es in Baiers Prinzipien der Modellprüfung geändert
Daniil

Kann man die Modellprüfung ohne Grundlagen in Logik und / oder Automaten verstehen?
Raphael

1
Das Drachenbuch ist sicherlich eine gute Referenz; ist es aber theoretisch genug? (Ich weiß es ehrlich gesagt nicht)
Raphael

@Raphael "Principles" gibt eine Einführung in Logik (zumindest einige notwendige Kenntnisse) und Automaten. Es ist auch ein ziemlich großes Buch, ~ 980 Seiten. Was das Drachenbuch betrifft, dachte ich, dass Compiler ein eher theoretischer Bereich sind, nicht wahr?
Daniil

6

Für die Mathematik, die für die Algorithmusanalyse benötigt wird, empfehle ich das einzige GKP:

Konkrete Mathematik von Graham, Knuth, Patashnik
Eine umfassende und qualitativ hochwertige Behandlung praktisch aller Mathematik, die Sie für (grundlegende) Algorithmen benötigen. Es ist eine unterhaltsame Lektüre und enthält eine Fülle von Übungen (und Lösungen).


Ich habe versucht, dieses Buch zu lesen, aber es hat mir nicht gefallen, weil sich alles sehr ... ungeschickt und gruppiert anfühlte. Ich habe die Schönheit der Mathematik dort einfach nicht gespürt. Vergleichen Sie das mit Sipsers 'Überblick über die Automatentheorie oder Smullyans Büchern über Logik oder sogar Dummit & Footes abstrakter Algebra. Vielleicht bin das nur ich.
Daniil

Ich bin zweiter Daniil. Es ist eine Sammlung hervorragender Werkzeuge für Theoretiker. Aber es ist zu trocken und technisch, um für Anfänger angenehm zu sein. Ich mag die Bücher, die ich oben erwähnt habe, sehr, da sie ihre eigenen Seelen zu haben scheinen. Sie lesen, als ob Ihnen jemand Geschichten erzählt, interessante.
Dai

Leider werden strukturelle Induktion, Koinduktion, Domänentheorie und alles, was für TCS im Theory B-Stil benötigt wird, nicht behandelt.
Dave Clarke

@ DaveClarke: Richtig. Ich bin mir nicht sicher, ob ich erwarten würde, dass ein Mathematik-Mathematik-Buch irgendetwas davon enthält. Aber dann soll GKP ein CS-Mathe-Buch sein. Es enthält auch keine Logik, daher sollte ich etwas umformulieren.
Raphael

2
@ DaveClarke Kannst du uns bitte einige Bücher über Theorie B Mathematik empfehlen?
Daniil

5

Algorithmen 4. Ausgabe R. Sedgewick

Eine Einführung in die Analyse von Algorithmen P. Flajolet, R. Sedgewick

Einführung in Automatentheorie, Sprachen und Berechnung JE Hopcroft, JD Ullman, (R. Motwani)
Die erste Ausgabe von 1979 enthält theoretischere Ergebnisse, die in der zweiten Ausgabe von 2001 fehlen. Ich habe mir den dritten Ed noch nicht angesehen.

Einführung in die formale Sprachtheorie MA Harrison
Es ist von 1978, aber ich würde es immer noch gerne auf der Liste sehen.

Logicomix: Eine epische Suche nach der Wahrheit A. Doxiadis, CH Papadimitriou
Weil es total großartig ist!

Wieder 1979
Garey und Johnsons Computer und Intraktabilität: Ein Leitfaden zur Theorie der NP-Vollständigkeit

Ich würde TAoCP gerne auf der Liste haben, aber ich befürchte, dass Don Knuths akribischer Ansatz nichts ist, was als „einleitend“ angesehen werden könnte. Traurig...


Logicomix ist sicherlich ein Juwel, ohne zu sagen, dass die anderen es nicht sind.
Dave Clarke

Ich mag es nicht wirklich, wie Logicomix Logiker als "verrückte" Leute darstellt. Ideen in der Logik, wenn sie richtig erklärt werden, sind sehr bodenständig und einfach und nicht wirklich so "verrückt".
Dai

1
@Dai Schauen Sie sich das Leben außergewöhnlicher Menschen wie z. B. Gödel, Wittgenstein, Nash usw. an. Sie waren ... außergewöhnlich.
uli

Welche davon sind wirklich anfängersicher?
Raphael

@ Raphael IMHO alle, sonst hätte ich sie nicht hier gepostet. Einige mögen eine steile Lernkurve haben, aber ich denke, das ist okay.
uli

4

Wenn Sie auf dem Gebiet der TCS völlig neu sind, ist Sipsers Einführung in die Theorie der Berechnung definitiv das beste Buch, um Ihnen den Einstieg zu erleichtern . Ich habe andere einführende Bücher gelesen, und keines davon kommt meiner Meinung nach Sipsers Art, die Angelegenheit zu erörtern, nahe.

Andere, spezifischere, gute theoretische Bücher sind:


Bereits oben erwähnt.
Dave Clarke

@ DaveClarke Ich hatte vor, der Liste weitere Ressourcen hinzuzufügen, wie ich es jetzt mit meiner Bearbeitung getan habe, aber ich wollte auch betonen, wie großartig Sipsers Buch ist, indem ich es noch einmal erwähne! :-)
codd

1
Pierces Buch ist ein Juwel. Ich wünschte, es wäre da gewesen, als ich meine Doktorarbeit gemacht habe (in Typen).
Dave Clarke

@ DaveClarke Ich verwende es derzeit auf Empfehlung meines Beraters für meine Bachelorarbeit und bin auch sehr beeindruckt davon!
Codd

1
Vielen Dank für den Hinweis, ich werde ihn mir später heute ansehen. Ich sehe, dass Sie Professor an der KUL sind. Ich komme nächstes Jahr dorthin, um Secure Software (Veilige Software) zu studieren. Was für eine kleine Welt.
Codd

3

Einige gute Bücher über den Theorie-B-Teil von TCS:

  • Logik in CS : Logik in der Informatik: Modellierung und Argumentation über Systeme Von Michael Huth und Mark Ryan.
    Breite Abdeckung verschiedener Verwendungen von Logik in der Informatik. Etwa im 3. Studienjahr.

  • Der Lambda-Kalkül : Lambda-Kalkül und Kombinatoren. Eine Einführung von J. Roger Hindley und Jonathan P. Seldin.
    Führt den Lambda-Kalkül ein, der ein wesentlicher Bestandteil der Grundlagen von Programmiersprachen ist. Etwa im 3. Studienjahr.

  • Führen , um Domain - Theorie : Einführung in den Gittern und Order (2. Aufl.) Von Davey, BA und Priestley, HA Cambridge University Press. (2002).
    Behandelt ein sehr nützliches Thema, insbesondere wenn Sie mit Semantik arbeiten möchten. Es ist ein bisschen mathematischer als die anderen Themen, aber die ersten Kapitel befinden sich sicherlich auf einem fortgeschrittenen Bachelor-Niveau.

  • Semantik : Semantik mit Anwendungen: Ein Appetizer von Hanne Riis Nielson und Flemming Nielson.
    Eine wirklich schöne Einführung in die Semantik der Programmiersprache. Anstatt sich eingehend mit einem bestimmten Formalismus zu befassen, bietet er eine breite Darstellung und enthält Anwendungen, die in anderen Büchern zur Semantik im Allgemeinen nicht berücksichtigt werden. Könnte möglicherweise für Studenten im 2. Jahr nützlich sein.


Ich kenne keine davon, auch nicht vom Ruf her, daher kann ich nicht sagen, ob sie gut sind (obwohl ich geneigt bin, Ihr Wort dafür zu nehmen). : /
Raphael

1
Ich habe zu jedem Buch eine Beschreibung hinzugefügt. Alle sind gut.
Dave Clarke

3

Dies ist eine aggregierte Antwort, die Bücher aus Antworten mit einer Punktzahl von mindestens fünf enthält. Bitte besprechen Sie den Inhalt im Chat .

Algorithmen & Datenstrukturen

  • Einführung in Algorithmen von Cormen, Leiserson, Rivest, Stein (3. Ausgabe 2009)
    Eine umfassende Behandlung grundlegender Algorithmen und Datenstrukturen und ihrer Analyse, ohne zu tief zu graben.
  • Algorithmen von Dasgupta, Papadimitriou, Vazirani (2006)
    Die intuitivste Einführung in Algorithmen mit einem stärkeren Fokus auf Intuition als technische Beweise.

Berechenbarkeit und Komplexität

Formale Sprachen & Automaten

Angewandte Theorie

  • Prinzipien der Modellprüfung von Baier, Katoen (2008)
    Massives Buch, das als umfassende Einführung in die Modellprüfung verwendet werden kann.
  • Programming Pearls von Jon Bentley (2. Aufl. 1999)
    Kein Lehrbuch über Algorithmen, zeigt aber auf wunderbare Weise, wie man Algorithmus-Design-Techniken verwendet, um echte Probleme zu lösen. Könnte ein guter Anfang sein, wenn Sie Vorkenntnisse in der Programmierung haben.

Dies beantwortet die Frage nicht, oder wenn es so sein soll, ist es keine gute Antwort. Meinst du, jemand, der TCS startet, muss all diese Bücher lesen? Wenn nicht, wie würden sie wählen? Denken Sie daran, dass diese Antwort nach Ihrer Regel wahrscheinlich Hunderte von Büchern enthalten wird
Gilles 'SO - hör auf, böse zu sein'

@Raphael Bist du höflich, jemanden zu bitten, seine / ihre eigene Antwort zu entfernen? Normalerweise kann der Fragesteller selbst seine Lieblingsantworten aggregieren, indem er seinen eigenen Fragentext ändert. Ich habe jedoch noch nie jemanden gesehen, der eine andere Person gezwungen hat, seinen eigenen Beitrag zu löschen, um seine eigene Antwort zu erstellen. Dieser cs-Stapelaustausch wird mit diesen narzisstischen Verhaltensweisen merkwürdig.
Dai

@Raphael: Wenn Sie es zu einem CW machen, ist es nicht richtig, jemanden zu bitten, seine / ihre eigene Antwort zu löschen. Es ist so, als würde ich sagen, dass ich ein Buch / eine Umfrage schreiben werde (die ich kostenlos online veröffentlichen werde), also gehe ich herum und frage alle Autoren, deren Papiere ich zitiere, ihre eigenen Papiere zu entfernen, um Verwirrung zu vermeiden.
Dai

@Raphael Ich sehe in den CC-Lizenzen keine Stelle, die besagt, dass meine Arbeit irgendwann von jemand anderem abgenommen wird. Ich weiß nicht, welche Art von Fantasie Sie mit SE haben, aber es ist definitiv nicht Wikipedia. Ich weiß, dass Sie hart daran arbeiten, diese Website zu "moderieren", aber bitte respektieren Sie auch die Rede- und Datenschutzfreiheit eines anderen und lassen Sie einfach die Auf- / Ab-Stimmen den Rest erledigen. Ich denke, das Ziel von cs SE ist es, Anfängern ein freundlicheres Forum als cstheory SE zu bieten, aber die von Ihnen hier vorgeschlagene Mikroebene des Managements hat es so viel schlimmer gemacht.
Dai

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.