Buch für Algorithmen jenseits von Cormen

21

Ich habe den größten Teil des Materials in Cormens Intro to Algorithms-Buch fertiggestellt und suche nach einem Algorithmus-Buch, das Material über Cormans Buch hinaus abdeckt. Gibt es irgendwelche Empfehlungen?

HINWEIS: Ich habe dies beim Stackoverflow gefragt, war aber mit der Antwort nicht allzu zufrieden.

ANMERKUNG: Wenn ich die meisten Kommentare betrachte, würde ich meiner Meinung nach gerne ein Buch finden, das das Material des 787-Kurses in dieser Kursbeschreibung behandelt .

Eugene
quelle
1
siehe dies
Kaveh
1
@Kaveh Ich habe Tardos schon gelesen.
Eugene
1
"Introduction to Algorithms" (Einführung in Algorithmen) deckt nahezu alle Bereiche des Algorithmusdesigns und der Algorithmusanalyse ab und ist das weltweit beliebteste Lehrbuch für Bachelor- und Masterstudiengänge. Jedes Kapitel bietet eine knappe Einführung in die verwandten Materialien, und am Ende finden Sie eine sehr lange Liste von Referenzen für weitere Studien. Wenn Sie das Gefühl haben, ein bestimmtes Thema, z. B. Graph-Algorithmen, Komplexitätstheorie usw., besser verstehen zu müssen, sollten Sie sich die Bibliographie des Buches ansehen. Wenn dies nicht hilft, können Sie sich auch von Fachleuten beraten lassen bestimmtes Gebiet.
Ali
12
"Einführung in Algorithmen" deckt fast alles im Bereich der Algorithmenentwicklung und -analyse ab - Ah, wenn das nur wahr wäre.
JeffE
5
Ein Buch, das ich sehr mag, ist Introduction to Algorithms: A Creative Approach von Udi Manber. Im Gegensatz zu den meisten anderen Lehrbüchern lehrt er, wie man selbst Algorithmen entwickelt. Für jeden im Lehrbuch behandelten Algorithmus liefert er eine zunehmende Abfolge von Abschnitten, wobei der erste den offensichtlichsten Ansatz beschreibt und jeder nachfolgende Versuch die Fehler des vorherigen behebt. Es ist meiner Meinung nach ein ausgezeichneter Text.
Vinayak Pathak

Antworten:

9
I am looking for an algorithms book that covers material beyond Corman's book.

Dies kann auf verschiedene Arten beantwortet werden, je nachdem, was Sie "darüber hinaus" wollen. Ich würde empfehlen, nach genaueren Anweisungen zu fragen, da Sie mit größerer Wahrscheinlichkeit konkrete Antworten erhalten, die hilfreich sind. Zu einigen allgemeinen Hinweisen:

  • Möglicherweise finden Sie eine Handvoll allgemeiner Bücher, die allgemeine algorithmische Themen ausführlicher behandeln als Corman. Zum größten Teil müssen Sie sich jedoch spezialisieren, wenn das Buch wesentlich ausführlicher sein soll. Andernfalls ist es wahrscheinlich aufgebläht und nicht brauchbar.
  • Suchen Sie stattdessen nach bestimmten Themen. Wenn Sie sich auf bestimmte Themen konzentrieren, gibt es reichlich fortgeschrittenes Material. Interessieren Sie sich für:
    • Sortieralgorithmen?
    • String-Algorithmen?
    • Zahlentheoretische Algorithmen?
    • Matrixalgorithmen?
    • Graph-Algorithmen?
    • geometrische Algorithmen?
    • Quantenalgorithmen?
    • stochastische / randomisierte Algorithmen?
    • Lineares Programmieren?
    • Rechenmodelle?
    • fundamentale Komplexitätstheorie und Algorithmusik?
  • Wenn Sie verstehen möchten, wie Sie Ihre eigenen Algorithmen ableiten können, konzentrieren Sie sich darauf, die bekannten Datenstrukturen zu verstehen, die in dem zu untersuchenden Problembereich verwendet werden Berechnung. Diese geben ein gutes, intuitives Gefühl dafür, was für ein Problem möglich ist und welche Ansätze wahrscheinlich einen besseren Erfolg haben, selbst wenn es Ihnen schwer fällt, die unteren Grenzen formal zu beweisen.

Bücher wie Papadimitrious mehrere oder Arora / Barak über Komplexitätstheorie wären mein Vorschlag, Corman zu folgen, um besser zu verstehen, welche Algorithmen möglich sind, und eine gewisse Intuition aufzubauen Bücher auf Forschungsebene zu spezifischeren Themen, wenn Sie sich mit dem modernen Verständnis vertraut machen möchten.

ex0du5
quelle
1
Sie stellen eine sehr gute Frage. Ich interessiere mich für zahlentheoretische Algorithmen, daher habe ich mich bereits mit der algorithmischen Zahlentheorie von Bach und Shallit befasst. Ich bin auf der Suche nach Büchern, die meine algorithmischen Entwicklungstechniken über Cormen hinaus entwickeln.
Eugene
1
Ich suche keine Tiefe, sondern Breite. Keine fundamentale Komplexitätstheorie, sondern eine Einführung in Algorithmen / Datenstrukturen, die ich kenne, aber nicht in CLRS (oder nur als Probleme vorhanden), um das Programmier-Arsenal der Dinge zu erweitern, von denen ich gehört habe; Dinge wie: A * -Suche, Best First Search, Bloom-Filter, Datei- / Bildkomprimierung, Burstsort, Hidden Markov-Modell, Naive Bayes-Klassifikatoren, Quantenalgorithmen, Überspringlisten, TimSort, Treaps, Tries, Voronoi-Diagrammalgorithmen usw. Auch wenn es so ist Nur eine Sammlung interessanter Artikel zu verschiedenen Themen wie Bentleys Programmierperlen.
Dr. Jimbob
16

Wie andere angemerkt haben, werden Bücher über (fortgeschrittene) Algorithmen am besten thematisch ausgewählt. Eine gute, aber gewichtige allgemeine Referenz mit strengen Analysen ist wahrscheinlich The Art of Computer Programming von Knuth.

In Bezug auf Analysetechniken interessieren Sie sich möglicherweise für eine Einführung in die Analyse von Algorithmen nach Sedgewick und Flajolet sowie für die algorithmische Kombinatorik nach Flajolet und Sedgewick, um mehr Theorie in die gleiche Richtung zu erhalten.

Ansätze zur Lösung schwerer Probleme finden Sie unter Algorithmics for Hard Problems von Hromkovič.

Raphael
quelle
5

Haben Sie sich das Handbuch der Theoretischen Informatik angesehen?

Wenn Sie über zwingende Algorithmen hinausgehen und in die funktionale Programmierung einsteigen möchten, werfen Sie einen Blick auf rein funktionale Datenstrukturen . Ich weiß, der Titel sagt Datenstrukturen aus, aber die Algorithmen in dem Buch können Ihnen die Augen für eine andere Art der Programmierung öffnen.

BEARBEITEN

Ich habe mir die Kursbeschreibung für CS 787 und die aktuellen Kurse angesehen

Es stellt fest

Wir werden hauptsächlich Arbeiten aus der Literatur verwenden. Diese werden entweder als Handouts oder über das Internet zur Verfügung gestellt. Mehrere Bücher über Algorithmen werden in der Wendt-Bibliothek reserviert.

Wenn ich es wäre, würde ich mich an das Ausbilderverzeichnis wenden . :)

Guy Coder
quelle
Nein, ich habe das Handbuch nicht gesehen. Danke für den Vorschlag!
Eugene
Wow. Ich konnte die Kursinformationen nicht finden. Danke für den Link.
Eugene
-2

Die Computeralgorithmen sind sehr komplex und schwer zu verstehen, daher gibt es kein bestes Buch, dh nur ein Buch, das Ihnen alles erklärt. Sie müssen ein paar von ihnen lesen, um dieses Thema in den Griff zu bekommen.

Hier sind meine 2 Cent, die auf meinen 10-jährigen Programmier- und Teilnahme an zahlreichen Interviews basieren:

  1. Algorithm Design Manual von Steven S. Skiena
  2. Algorithmen ( http://algs4.cs.princeton.edu/home/ ) von Sedgwick
  3. Einführung in Algorithmen von Thomas Cormen
  4. Algorithmen für Interviews von Adnan Aziz
  5. Python-Algorithmen: Beherrschen grundlegender Algorithmen in der Python-Sprache
  6. Von Thomas Cormen freigeschaltete Algorithmen

Referenz:

Kris
quelle
4
Und warum empfehlen Sie diese?
Raphael
3
Warum empfehlen Sie Cormen et al. Als Antwort auf eine Frage nach Büchern, die über dieses Buch hinausgehen?
David Richerby