Das Dreikörperproblem


Das Dreikörperproblem war ursprünglich ein Problem für die Physik. Man hat im Weltraum drei verschiedene Planeten die sich gegenseitig mittels Gravitation anziehen. Das Rätsel ist jetzt wo sich die Planeten zu einem beliebigen Zeitpunkt befinden. Die Lösung für das Dreikörperproblem ist dann eine Formel die ungefähr so aussehen sollten: f(x)=y. Als x-Wert setzt man den Zeitpunkt ein, z.B. 1. Feb 2017 und als y-Wert erhält man dann die Position von Körper 1.

Gehen wir zunächst einen Schritt zurück und untersuchen ein Problem was relativ simpel ist. Man hat eine Sonne, und eine Erde die sich um die Sonne bewegt. Durch die Gravitation gibt es eine schöne Kreisbahn und man kann immer genausagen wo die Erde gerade ist. Auch hier wieder hat man eine Formel f(x)=y Und wenn man die Formel als Kurve einzeichnet erhält man eine Sinus-Funktion. Man setzt einfach einen beliebigen Zeitpunkt ein und kann dann im Plot das Ergebnis ablesen. Beim Dreikörperproblem ist die Sache schwieriger. Weil die Bewegung der Körper sehr viel komplexer ist. Noch relativ leicht lässt sich ermitteln wo die Körper sind, wenn man nur wenige Schritte in die Zukunft plant. Hier reicht es aus, eine Physik-Engine wie ODE zu verwenden, die drei Körper einzuzeichnen und eine physikalisch korrekte Simulation durchzuführen. Man kann dann für 10 Schritte in die Zukunft sehr leicht sagen wo die Körper sein werden, man lässt die Simulation einfach laufen.

Aber was ist, wenn man eine sehr weitreichende Prognose braucht, also wissen will wo sich die Körper in 1 Mio Zeitschritten befinden? Leider kann die ODE-Engine darauf keine Antwort geben. Man kann immer nur genau einen Schritt in die Zukunft rechnen. Um sehr viele Schritte durchzuführen, muss man das System rechnen lassen. Das Dreikörperproblem besteht darin, dass man einerseits nicht im Einzelschritt arbeiten will, aber dennoch wissen will in welchem Zustand sich das System in Zukunft befinden wird. Wie geht das?

Nach meiner Recherche lässt sich das Problem allein über die Mathematik oder über die Physik nicht lösen. Bis ungefähr dem Jahr 1900 wurde keine mathematische Theorie entwickelt, mit der man eine Physik-Simulation invers berechnen kann. Sondern man benötigt zwingend einen Computer plus Künstliche Intelligenz. Mit einem Computer allein ist das Problem ebenfalls nicht lösbar. Weil der Computer dank einer Physik-Engine wie ODE ja nur die sogenannten Forward-Simulation durchführen kann, also exakt sagen kann wo sich die Himmelskörper befinden aber immer nur für den nächsten Timestep. Um beliebige Timesteps zu rechnen benötigt man ein weiteres Stück Software, genauer gesagt ein Computerprogramm wo man als Inputparameter den Timestep vorgibt und das Programm dann die Koordinanten ausgibt. Die Frage aus Sicht der Informatik lautet jetzt: wie muss das Programm aussehen?

Hier gibt es verschiedene Ansätze. Eine besteht darin, neuronale Netze zu nutzen. Dabei betrachtet man das Program als Blackbox und versucht diese zu optimieren. Man nimmt Beispieldaten, ändert die Gewichte und erhält so einen Prognosewert. Das neuronale Netz gibt die Zielkoordinaten aus, allerdings mit einer Unsicherheit.

Leider sind neuronale Netze nicht die beste Methode. Auch damit gelingt es nicht das Problem zu lösen. Der Grund ist, dass bei der Simulation des Dreikörperproblems sehr viele Interaktionen möglich sind. Es ist also nicht so, dass man eine simple Zahlenfolge hat, die sich irgendwann wiederholt und wo man schnell ein Muster erkennt, sondern die Koordianten der Körper sind chaotisch, ein Muster ist nicht zu erkennen bzw. es ist sehr komplex.

Die meiner Meinung nach beste Methode das Dreikörperproblem zu lösen ist eine linguistische Finite State Machine. Damit ist gemeint, dass man das Problem zunächst nicht als mathematisch-physikalisch begreift sondern es als sprachliches Konstrukt versteht. Man beschreibt den Verlauf der Körper mit einer domänenspezifischen Sprache. Das heißt, denkt sich Begriffe aus und setzt diese in Beziehung. Dieses linguistische Netz wird dannn in eine Finite-State-Machine überführt.

Ein Beispiel: Man stellt sich vor wie ein Clown mit drei Bällen jongliert. Auf den ersten Blick ist das ein klassisches Physik-Problem. Jeder der Bälle hat eine Beschleunigung und eine Koordinate, vielleicht noch einen Drall. Aber, es ist auch und vor allem ein Clown der sein Publikum unterhält. Die Darbietung läuft so ab, dass zunächst alle Drei Bälle in der einen Hand sind und dann in die Luft geworfen werden. Ab da an an hält der Clown die Bälle auf einer Kreisbahn und versucht einen Ryhtmus auszubilden. Man merkt, dass er sich dabei anstrengt. Und irgendwann greift er falsch und ein Ball fällt herunter. Jemand im Publikum lacht.

Man kann ein und dieselbe Sache also auch mit Prosa beschreiben. Man muss nicht zwangsläufig Formeln verwenden. Mehr noch, wollte man versuchen die Prosa wegzulassen also die Tatsache ignorieren, dass da ein Clown mit einer roten Nase ist, würde man das eigentliche Problem nicht exakt beschreiben. Jetzt bleibt noch die Frage offen wie man aus einer umgangssprachlichen Schilderung eine Finite-State-Machine erzeugt.

PREDICTION MACHINE
Inwzischen ist klar geworden, was das Dreikörperproblem ist. Es geht darum, eine State-Machine zu konstruieren damit sie ein physikalisches System vorhersagt. Die passende GUI ist simpel: der Anwender gibt an, welchen Zeitpunkt er gerne berechnet haben möchte, kann anklicken ob das physikalische System störungsfrei durchläuft und kann auswählen ob er an den Koordinaten von Körper 1, 2 oder 3 interessiert ist.

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s