Ich habe versucht, " Pearls of Functional Algorithm Design " und anschließend " The Algebra of Programming " zu lesen , und es gibt eine offensichtliche Korrespondenz zwischen rekursiv (und polynomiell) definierten Datentypen und kombinatorischen Objekten mit derselben rekursiven Definition und anschließendem Führen auf die gleiche formale Potenzreihe (oder auf die Erzeugung von Funktionen), wie in den Einführungen zu kombinatorischen Arten gezeigt (ich lese „ Arten und Funktoren und Typen, oh mein! “).
Gibt es also für die erste Frage eine Möglichkeit, die erzeugende (rekursive) Gleichung aus der Potenzreihe wiederherzustellen? Das ist allerdings ein nachträglicher Gedanke.
Ich interessierte mich mehr für den Begriff der anfänglichen Algebren und der endgültigen Co-Algebren als eine Art „Definieren von Prozeduren über die Datenstruktur“. In der funktionalen Programmierung gibt es einige praktische Regeln, die sich auf die Zusammensetzung, die Produkte der Abbildung zwischen Algebren und Ähnliches beziehen und beispielsweise in diesem Lernprogramm beschrieben werden. Es scheint mir, dass dies eine sehr wirkungsvolle Methode sein könnte, um sich der Komplexität anzunähern, und es scheint zum Beispiel ziemlich einfach zu sein, den Satz des Meisters in einem solchen Kontext wiederzugewinnen (ich meine, Sie müssen dasselbe Argument machen, also in diesem Fall nicht viel Gewinn). und der einzigartige Katamorphismus aus der Anfangsalgebra und die Tatsache (irre ich mich?), dass die Algebren zwischen A und FA für den F-Polynom-Funktor isomorph sind, lassen mich glauben, dass ein solcher Ansatz viele Vorteile bei der Analyse der Komplexität von haben könnte Operationen über Datenstrukturen.
Aus praktischer Sicht sind Fusionsregeln (im Grunde genommen Wege, um Algebra-Morphismen miteinander zu komponieren, Coalgebra-Morphismen und allgemeine Morphismen) eine sehr leistungsfähige Optimierungstechnik für die Programmtransformation und das Refactoring. Bin ich zu Recht der Meinung, dass die vollständige Ausnutzung dieser Regeln ein optimales Programm ergeben kann (keine unnötigen Zwischendatenstrukturen oder andere zusätzliche Operationen).
Bin ich auf etwas (und was) hier? Ist es vom Lernstandpunkt aus sinnvoll, die Komplexität der Berechnungen auf diese Weise zu untersuchen? Sind die Strukturen, für die wir "schöne" Anfangsalgebren haben können, für manche Probleme zu begrenzt?
Ich versuche hauptsächlich, einen Weg zu finden, um über die Komplexität in Bezug auf die Struktur des Suchraums und die Art und Weise, wie der "Suchraum" und der "Suchalgorithmus" durch ein "nettes" Objekt wie die ursprüngliche Algebra des Funktors und des Suchraums interagieren, nachzudenken zu verstehen, ob es sinnvoll ist, die Dinge bei komplexeren Strukturen so zu betrachten.