2013-07-29 6 views

Antwort

7

Ich bin mir nicht sicher, ob es eine beste Möglichkeit gibt, die erste Simplex in der Nelder-Mead-Methode zu wählen, aber das Folgende ist, was in der gängigen Praxis getan wird.

Der Bau des anfänglichen simplex S von Erzeugung n+1 Eckpunkten erhalten x0,..,xn um das, was man „erraten“ Vertex xin in einem N dimensionalen Raum ist ein Benutzer aufrufen. Die häufigste Wahl ist

x0=xin 

und die verbleibenden Vertices n werden dann erzeugt, so dass

xj=x0+hj*ej 

wo ej ist der Einheitsvektor der j -te Achse in R^n zu koordinieren und hj ein Schritt- ist Größe in Richtung ej.

hj = 0.05 if (x0)j is non-zero 
hj = 0.00025 if (x0)j=0 

mit (x0) j die j-te Komponente von x0. Beachten Sie, dass dies die Wahl in Matlabs fminsearch Routine ist, die auf dem Nelder-Mead-Schema basiert.

Sie können einige weiteren Informationen in

finden

F. Gao, L. Han, "Implementing the Nelder-Mead simplex algorithm with adaptive parameters", Comput. Optim. Appl., DOI 10.1007/s10589-010-9329-3

2

Ich denke, es keine allgemeine Regel ist am besten, die anfängliche simplex der Nelder-Mead-Optimierung zu bestimmen, da diese zumindest eine vage Kenntnis von der Antwort erforderlich Oberfläche.

Es kann jedoch eine vernünftige Politik sein, die Punkte so einzustellen, dass der simplex nahezu den gesamten möglichen Bereich abdeckt. Der Algorithmus von Nelder-Mead schrumpft automatisch um den Simplex und nähert sich dem Optimum. Der praktische Vorteil dieser Richtlinie besteht darin, dass Sie eine bessere Gesamtkenntnis der Antwortfunktion erhalten.

Wir haben einige Tests mit HillStormer ("http://www.berkutec.com") durchgeführt. Dieses Programm erlaubt es, diese Richtlinien auf Testfunctons zu testen, und wir haben festgestellt, dass dies sehr gut funktioniert.

Bitte denken Sie daran, dass die erste simplex-opereation añways eine Reflexion ist. Wenn der Start-Simplex den gesamten erlaubten Bereich abdeckt, wird die Reflexion notwendigerweise einen Punkt außerhalb der Grenzen geben. HillStormer erlaubt jedoch die Verwendung linearer Einschränkungen und kann dieses Problem vermeiden.

Sie können einige weitere Informationen im System-Hilfe HillStormer finden.

B. Kühne