Gutes mathematisches Buch über Algorithmen [geschlossen]


11

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.


2
Das ist subjektiv; definiere "gut". Auch wenn wir keine strengen Richtlinien für Listenfragen haben, gibt es eine allgemeine Abneigung . Bitte beachten Sie auch diese und diese Diskussion; Vielleicht möchten Sie Ihre Frage verbessern, um die dort erläuterten Probleme zu vermeiden. Wenn Sie nicht sicher sind, wie Sie Ihre Frage verbessern können, können wir Ihnen vielleicht im Computer Science Chat helfen ?
Raphael


@ Raphael Danke. Ich habe nur das Wort "gut" im Titel verwendet, in meiner Frage habe ich angegeben, was ich will. Obwohl ich absichtlich nicht zu spezifisch geworden bin, sollte es zumindest klar sein, dass mein Fokus (wie angedeutet) auf mathematischer Eleganz und Genauigkeit liegt . Ich glaube nicht, dass diese Antwort nach einer Liste von Büchern schreit, weil es nicht zu viele Bücher geben sollte, die in diese Kategorie fallen - und selbst wenn ja, glaube ich nicht daran, dass „die Reinheit einer strengen Frage bewahrt wird“ - Antwortstruktur “, die hier an mehreren Stackexchange-Standorten vor sich geht - aber nicht mein Anruf, denke ich. Ich bin mir nicht sicher, ob ich die Frage verbessern kann.
k.stm

Ich denke auch nicht, dass die „Referenzanfrage“ für die Frage geeignet ist. Zumindest nicht nach seiner Beschreibung: Weder suche ich Papiere noch interessiere ich mich für ein bestimmtes und enges Thema. Tatsächlich bin ich ziemlich offen darüber, welche Inhalte behandelt werden, siehe meinen zweiten Satz. Ist es in Ordnung, wenn ich das Tag wieder entferne? Vielleicht könnte und sollte ich eingrenzen, mit welchen Algorithmen ich zufrieden sein würde?
k.stm

2
Vielleicht sollten Sie sich mit der Denotationssemantik und der Programmüberprüfung befassen.
Yuval Filmus

Antworten:


7

Hendrik Lenstra schrieb 1992 :

Obwohl es aus strenger mathematischer Sicht wünschenswert ist, zu definieren, was ich unter einem Algorithmus und seiner Laufzeit verstehe, werde ich dies nicht tun. Meine Hauptausrede ist, dass ich diese Definitionen selbst nicht kenne. Schlimmer noch, ich habe nie eine Behandlung der entsprechenden Theorie gesehen, die präzise, ​​elegant und bequem zu bearbeiten ist. Es wäre ein lobenswertes Unterfangen, diese offensichtliche Lücke in der Literatur zu schließen.

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.


?!? "Derzeit gibt es keine präzise, ​​elegante und bequeme mathematische Ableitung des Konzepts eines Algorithmus ..." Wie wäre es mit einer Turing-Maschine?
vzn

1
Lenstra spricht Turing-Maschinen in dem verlinkten Artikel an, aber ich denke, die Idee ist, dass sie keine vollständige algebraische Analyse liefern. Das Zitat ist ziemlich wörtlich, einschließlich des Teils "Lücke", wenn Sie es selbst lesen möchten. Ich werde den Beitrag bearbeiten, um den vorgeschlagenen "Konsens" zu entfernen, falls er als umstritten angesehen werden sollte.

ofc am / war sich bewusst, dass Sie Lenstra zitierten, aber Sie konnten Zitate oder ein längeres Blockzitat seiner bemerkenswerten / umstrittenen / fragwürdigen Behauptung
hinzufügen

denke, dass Turing-Maschinen nicht abgeleitet werden können, im Gegenteil, sie bilden das Axiom eines Rechensystems (ua die Church-Turing-These ). Es ist die gesamte Lenstras-Analyse und CS im Allgemeinen, die sich aus dem Axiom der TM-Existenz ableitet .
vzn

1
@ Raphael, wenn Mama sagt, es wäre ein "lobenswertes Unterfangen", mein Zimmer richtig zu reinigen, lautet der Kern ihrer Rede "Mach dir nicht die Mühe, dein Zimmer zu reinigen". Verstehe ich dich falsch oder missverstehe ich mich?

7

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.


Ich befürchtete, diese Antwort könnte kommen. Ich schaute einmal hinein und es passte nicht zu mir. "Sie sollten nicht zu enttäuscht von der Mathematik sein." - vielleicht, aber Knuth scheint auch nichts zu definieren , sondern stellt es eher informell vor und erklärt es. Es ist großartig, die Idee zu vermitteln, aber nicht das, was ich von Mathematik erwarte.
k.stm

Vielleicht könnten Sie einen Beitrag zum Feld leisten, indem Sie die mathematisch verschleierte Version seiner Arbeit veröffentlichen. Wenn Sie jedoch den "nahtlosen Übergang von der Mathematik zu den Algorithmen" interessieren, könnte die Typentheorie ein besseres Thema für Sie sein. Die Beziehung zwischen Mathematik und Algorithmen ist immer noch ein Forschungsthema.
Babou

1
PS Wenn Sie "befürchtet haben, dass diese Antwort auftaucht", hätten Sie dies in Ihrer Frage sagen sollen, da es sich um eines der wichtigsten Nachschlagewerke handelt. Vollständige und dokumentierte Fragen erhalten bessere Antworten.
Babou

Es kam mir erst, nachdem ich die Frage gestellt hatte, als ich nicht an meinem Computer war. Meine Bemerkung zu Knuths Buch sollte nicht abwertend verstanden werden (so wie Sie es meiner Meinung nach für den Kommentar „Veröffentlichung der mathematisch verschleierten Version“ genommen haben) - das wäre wahrscheinlich neben Blasphemie. Sein Weg ist einfach nicht das, wonach ich suche. Vielleicht gibt es einfach nichts
Vergleichbares,

2
@ k.stm Nun, vergiss die Verschleierungssache, die ein ganzes Thema für sich ist. Der Punkt ist, ich glaube, dass Algorithmus (noch?) Keine Mathematik ist. Es kann sein, dass Sie Formalisierungen erhalten können, aber es handelt sich wahrscheinlich um einfache Codierungen, die die Substanz verlieren, mit geringem Nutzen. Das hängt vom Thema ab. Dies gilt wahrscheinlich weniger für die Automatentheorie, die signifikante Algorithmen aufweist. Der Punkt ist, dass es nicht offensichtlich ist, die abstrakte mathematische Natur von Strukturen angemessen zu identifizieren. Es geht um Verständnis, nicht um Formalisierung, und es dauert Jahre.
Betrachten
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.