T
Hallo!
Ich habe mir deinen Text kurz durchgelesen. Wenn du Informatik studierst, gibts dort bestimmt die Vorlesung Logik/Prädikatenlogik oder vielleicht vermischt mit der Theoretischen Informatik. Hier wird du die Grundlagen zu Prolog lernen (Resolution, Faktorisierung, Unifikation). Du kannst die Programmiersprache Curry (eine funktionale und logische Programmiersprache) angucken. Auf deren Homepage gibts auch Papers, die diese beiden Konzepte auf einen gemeinsamen Nenner bringen.
Eine andere Möglichkeit, die Ähnliches erreicht ist das sogenannte SAT-Problem. Hier versuchst du, zu einer aussagenlogischen Formel in konjunktiver Normalform ein Modell zu finden. Such mal nach "Planning as Satisfiability". Zum Einstieg empfehle ich dir, das Sudoku-Problem mit SAT zu lösen (Google ist dein Freund). Es gibt mehrere SAT-Solver (Minisat). Das tolle: Es ist sehr einfach und du kannst damit locker Sudokus der Größe 15x15 innerhalb von 20-30 Sekunden lösen (Also keine 3x3 Sudokus). Die SAT-Solver sind schnell
Nochn Link der TU Dresden wegen Sudoku: http://www.computational-logic.org/iccl/master/lectures/summer08/sat/
Noch eine andere Möglichkeit besteht darin, ein PDDL-Solver zu benutzen.
Alle drei Konzepte sind sehr ähnlich. Ich bin gerade dabei einen PDDL-Solver zu schreiben, der das Problem auf das SAT-Problem zurückführt. Die Idee ist nicht neu (SatPlan), soll aber ein paar Vorteile speziell für Programmierer haben. Das Ganze soll als Brücke zwischen der SAT-Welt und z.B. Java/C/C++ dienen.
Viel Glück und Spaß bei deinem Projekt
Schöne Grüße
Tobias Philipp
EDIT: Es heißt übrigens propagieren (jedenfalls habe ich noch nie jemanden gehört, der propagandieren gesagt hat). Und: Du bist Informatiker, es gibt keine Ausreden für Rechtschreibfehler. Und: Du bist angehender Wissenschafter, also lerne deine Ideen zu strukturieren. (Problemstellung, warum ist dies interessant?, gibt es schon Lösungsansätze?, deine Idee, worin unterscheidet sich dein Lösungsansatz von den anderen?, ...). Das heißt: Viel Recherche
Und überfordere dich nicht. Nimm ein Problem und versuche es zu lösen. Vergrößer das Problem und versuche, es trotz der "geringen" Rechenpower zu lösen. Übrigens: Im SAT-Gebiet kommen große Geschwindigkeitzüge durch bessere Algorithmen. Ein schnellerer Prozessor nutzt fast gar nichts, da die Probleme nicht in den Cache passen. Gute parallele Algorithmen existieren nicht.
Trotzdem: Viel, viel Glück und Ausdauer - auch bei trockenen Themen!