Ich bin ein Trottel für mathematische Eleganz und Genauigkeit und suche jetzt nach solcher Literatur über Algorithmen und Algorithmusanalyse. Nun macht es nicht viel aus mir , was Algorithmen abgedeckt sind, aber sehr viel , wie sie präsentiert werden und treated.¹ ich am meisten Wert eine sehr klare und präzise Sprache , die definiert alle verwendeten Begriffe in einem strengen und abstrakt.
Ich fand, dass die klassische Einführung in Algorithmen von Cormen, Leiserson, Rivest und Stein ziemlich ordentlich ist, aber die Mathematik nicht gut handhabt und mit ihren Beweisen und Definitionen recht informell ist. Sipsers Einführung in die Theorie der Berechnung scheint in dieser Hinsicht besser zu sein, bietet aber dennoch keinen nahtlosen Übergang von der Mathematik zu Algorithmen.
Kann mir jemand etwas empfehlen?
¹: Die Algorithmen sollten zumindest die Verwaltung ihrer benötigten Daten unter Verwendung klassischer nicht trivialer abstrakter Datenstrukturen wie Diagramme, Arrays, Mengen, Listen, Bäume usw. umfassen - vorzugsweise auch bei solchen Datenstrukturen. Es würde mich nicht allzu sehr interessieren, wenn das Thema Nutzung und Verwaltung von Datenstrukturen völlig ignoriert würde. Die damit gelösten Probleme interessieren mich jedoch nicht sonderlich.
Antworten:
Hendrik Lenstra schrieb 1992 :
Ich weiß nicht, ob seitdem Fortschritte erzielt wurden oder ob dies vom Konsens überhaupt als "Lücke" angesehen wird. Es bleibt jedoch der Punkt, dass zumindest einige bedeutende Mathematiker mit der mathematischen Strenge der Ableitung von Algorithmen unzufrieden waren. Es kann also sein, dass es kein Buch mit dem vom OP gewünschten Formalismus gibt.
Das Füllhorn an praktischen Perspektiven, das wir aufgrund von Knuth, Gries , Stepanov und anderen haben, soll Programmierern mehr als nur der Mathematik helfen und daher unweigerlich an Genauigkeit und Subjektivität mangeln.
Trotzdem wird Stepanovs Arbeit im Silicon Valley als einer der besten Versuche einer wissenschaftlichen Synthese anerkannt.
In Elements of Programming , Alexander Stepanov und Paul McJones versuchen , die abstrakten algebraischen Grundlagen von Algorithmen zu legen. Das Buch beginnt mit zugegebenermaßen etwas informellen axiomatischen Definitionen von Entitäten, Werten und ihren Attributen, geht aber auf 288 Seiten deduktiv über eine Reihe von Deckspelzen zu den Grundlagen der Standardvorlagenbibliothek über.
Das Inhaltsverzeichnis, das Vorwort und ein Beispielkapitel über Transformationen und ihre Umlaufbahnen finden Sie hier und eine Einführungsvorlesung hier .
Stepanovs neueres und entspannteres Buch Von der Mathematik zur generischen Programmierung ist mehr nach einer Roadmap der Geschichte der Mathematik strukturiert, die von der ägyptischen Multiplikation über Monoide, Halbgruppen bis hin zum Lagrange-Theorem reicht und schließlich moderne Datenstrukturen mit ihren Iteratoren und Algorithmen entwickelt die STL.
quelle
Ich denke, das Buch, das Sie beschreiben, hat einen Namen. Es ist in sieben Bänden, von denen nur dreieinhalb veröffentlicht wurden. Es heißt The Art of Computer Programming (TAOCP) und wurde von Donald Knuth geschrieben.
Es kann jedoch sein, dass er manchmal Anwendungen beschreibt. Aber Sie können das immer überspringen, und ich bezweifle, dass es einen großen Teil des Inhalts ausmacht. Sie sollten nicht zu enttäuscht von der Mathematik sein.
quelle