Was ist Surrogatoptimierung?
Ein Surrogat ist eine Funktion, die eine andere Funktion approximiert. Der Ersatz ist nützlich, da seine Auswertung nur wenig Zeit in Anspruch nimmt. Um beispielsweise nach einem Punkt zu suchen, der eine Zielfunktion minimiert, bewerten Sie einfach dessen Ersatzwert anhand von Tausenden von Punkten und nehmen Sie den besten Wert als Annäherung an den Minimierer der Zielfunktion.
Die Surrogatoptimierung eignet sich am besten für zeitaufwändige Zielfunktionen. Die Zielfunktion muss nicht glatt sein, aber der Algorithmus funktioniert am besten, wenn die Zielfunktion kontinuierlich ist.
Bei der Surrogatoptimierung wird versucht, mithilfe weniger Zielfunktionsauswertungen ein globales Minimum einer Zielfunktion zu finden. Dazu versucht der Algorithmus, den Optimierungsprozess zwischen zwei Zielen auszubalancieren: Erkundung und Geschwindigkeit.
Exploration zur Suche nach einem globalen Minimum.
Schnelles Erhalten einer guten Lösung in wenigen Zielfunktionsauswertungen.
Es wurde nachgewiesen, dass der Algorithmus zu einer globalen Lösung für kontinuierliche Zielfunktionen auf beschränkten Domänen konvergiert. Siehe Gutmann [1]. Allerdings erfolgt diese Konvergenz nicht schnell.
Im Allgemeinen gibt es kein nützliches Abbruchkriterium, das den Solver stoppt, wenn er sich einer globalen Lösung nähert. Normalerweise legen Sie als Abbruchkriterium eine bestimmte Anzahl von Funktionsauswertungen oder eine bestimmte Zeit fest und wählen die beste Lösung innerhalb dieses Rechenbudgets.
Einzelheiten zum surrogateopt-Algorithmus finden Sie unter Surrogate Optimization Algorithm.
Referenzen
[1] Gutmann, H.-M. A radial basis function method for global optimization. Journal of Global Optimization 19, Issue 3, 2001, pp. 201–227. https://doi.org/10.1023/A:1011255519438