Das Buch gibt einen kompakten, aber umfassenden Überblick über das Problemlösen und Programmieren mit "Constraints" (Randbedingungen). Diese aktuelle Programmiermethodik ermöglicht es, Aufgaben direkt zu formulieren und effizient zu lösen. Sie gewinnt zusehends Bedeutung in Anwendungsbereichen wie Kombinatorische Suchprobleme (z.B. Zeitplanen, Layout-Optimierung), Berechnungen (Finanzanalyse), Simulation (Hardware-Verifikation) oder allgemein Schließen und Rechnen mit ungenauer oder unvollständiger Information (z.B. Kostenschätzung). Die theoretisch fundierte Darstellung mit Aufgaben und Anwendungsbeispielen aus der Praxis ist in der Lehre erprobt, aber auch für Forscher und Praktiker von Nutzen.
I recommend starting with Appendix A, which gives an overview of terminology and notation. This book is meant for graduate students or above. I don't even have a bachelor degree, but I have been learning Prolog and logic programming for several years. I found it difficult to get through this book, but then I have ADHD and poor time management skills. In the end, I value this book for its authoritative coverage of the theory of constraint programming, Constraint Handling Rules (CHR), and Constraint Logic Programming (CLP). I will likely keep it on my shelf indefinitely and revisit it for its coverage of various use cases.
- Verbindung von Constraint-Lösen (Lösungsraum-Beschränken) und Suchverfahren (Backtracking) auf mathematischer Basis (Logikprogrammierung)
3.7 Sterne Verdient vielleicht mehr, weil es auf recht wenig Seiten doch viel Information unterbringt. Bewegt sich im theoretischen Urschleim und ist aufs erste Lesen etwas anstrengend, aber ganz gut gegliedert, verlangt paar Logikkenntnisse. Für mehr Klarheit muss ich das Gelesene erst nacharbeiten und ausprobieren; kann mir gut vorstellen, dass die theor. Ausführlichkeit noch nützlicher wird.
Das Buch ist 20 Jahre alt. Keine Ahnung, ob Prolog heute noch das Maß der Constraint-Dinge ist (das freie SWI Prolog wird noch am aktivsten betreut, ECLiPSe evtl. wg. besserem Constraint-Handling). Mittlerweile gibt es für alle Standardprogrammiersprachen Libs/Erweiterungen für Constraint-Programmierung, allerdings sind deklarativ-logische Programmiersprachen wohl weniger "artfremd" (kürzere, elegantere Programme).