Schema gesucht: Sehr teure Gleichungen parallel lösen, ohne viel Rechenzeit zu verschwenden
-
Sowas hatte ich mir schon gedacht. Ja, da lässt sich leider nicht viel dran drehen.
Vielleicht hilft dir das:
http://www.machinelearning.org/archive/icml2009/papers/229.pdfes wird zwar eine andere Problemkategorie betrachtet, aber der Algorithmus ist speziell für verrauschte Evaluationsergebnisse(wie du sie hast). Eventuell kannst du damit sogar die Simulationszeiten der Funktion E runter drehen, da sich der Algorithmus dann selbst stabilisiert.
-
knivil schrieb:
Nimm als Approximation die Taylorentwicklung.
Eine Taylorreihe als Approximation ist an sich eine gute Sache da man schön den Restfehler abschätzen kann.
Aber wir befinden uns hier im Bereich der Simulation wo die Berechnung eines Wertes f(x) einen Tag benötigt. Und ich fürchte egal welche Funktion das auch sein mag (siehe SeppJ letzten Beitrag), wird das Berechnen der Ableitungen nicht trivialer Natur (im akademischen Sinne) sein.
-
Hmm, ohne jetzt das Problem wirklich bis ins Detail verstanden zu haben... Waere es moeglich sich zu einem Satz von gut verteilten Parametern einen Satz Ergebnisse zu berechnen und dann zu versuchen eine Loesung in der Mannigfaltigkeit, in der die Ergebnisse liegen, zu approximieren? Quasi so eine Art Reduced-Basis-Ansatz, wie man den z.B. aus dem Finite-Elemente-Kontext kennt.
-
Nochmal Rückmeldung: Vielen Dank für die Anregungen, mir ist da tatsächlich eine Idee gekommen, die mir sehr gefällt. Das kann man tatsächlich als ein Optimierungsproblem mit wechselnder Dimension und ein paar einfachen Nebenbedingungen ansehen, wodurch schon einmal die Parallelität der Rechnung gegeben wäre. Aber CMA-ES ist da vermutlich eine zu dicke Kanone, die ganzen Approximierer in diesem Thread haben mich ein bisschen genauer über die Funktion nachdenken lassen und ich denke sie ist gutartig genug für eine Interpolation. Mein Algorithmus sähe dann so aus, mit einer Stützpunktverteilung zu starten, mit Nebenbedingung, dass der linkester Stützpunkt mein Ausgangspunkt ist und alle Punkte geordnet sind. Dann wird so gut wie möglich interpoliert und die Stützpunkte nach dieser Interpolation auseinander oder zusammen geschoben, wobei bei Bedarf rechts Punkte in oder aus dem Definitionsintervall wandern, so dass gerade ein Wert jenseits meiner angestrebten rechten Grenze liegt. Wenn die Funktionswerte aller Stützpunktpaare eine gewisse Mindestgüte erreicht hat, bin ich fertig. Verworfene Stützpunkte verbessern immer noch die Interpolation und waren somit nicht völlig vergebens. Ich schätze, das Schema wird nach wenigen (5?) Durchgängen eine ausreichende Genauigkeit erreicht haben, wodurch auch die Gesamtzeit hinreichend klein wäre.
Wird natürlich etwas dauern, bis ich bestätigen kann, ob das funktioniert oder nicht.