2017-06-07 11 views
1

Ich möchte eine Funktion mit mehreren Parametern optimieren, indem ich Partikelschwarmoptimierung verwende. Wie kann ich es tun? Überall habe ich diese Formel 1 gefunden, aber wie kann ich diese Formel verstehen, kann ich eine Funktion mit nur einer Variablen optimieren. Zum Beispiel habe ich eine Funktion mit 2 Parametern und ich möchte sie maximieren. Wie kann ich es mit PSO machen?Partikelschwarmoptimierung und -funktion mit mehreren Parametern

vi, d ← ω vi, d + & phi; P rp (Pi, D-xi, d) + & PHgr; g rg (gd-xi, d)

function (x, y) 
{ 
    return x + y 
} 

Antwort

1

Da Sie haben nur 2 Variable zur Optimierung, Ihr Suchraum wäre zweidimensional. Angenommen, Sie möchten die Parameter x1 und x2 optimieren. Außerdem liegt x1 im Bereich von [a1, b1] und x2 liegt im Bereich von [a2, b2]. Zuerst müssen Sie eine zufällige Population von Partikeln (z. B. 30 Partikel) in die Suchraumgrenze initialisieren und den Geschwindigkeitsvektoren (V) zufällige Werte zuweisen. Danach müssen Sie die Fitness aller Partikel bewerten und das beste Partikel bestimmen (Global best). Dann sollten Sie den Hauptupdate-Mechanismus von PSO durchführen. Dieser Link wäre hilfreich: http://yarpiz.com/50/ypea102-particle-swarm-optimization