Scipy Differential Evolution

Scipy Differential Evolution
In diesem Artikel handelt. Scipy ist die Bibliothek der Python -Sprache, und die unterschiedliche Entwicklung ist die Methode oder Funktion der Scipy -Bibliothek. Die meisten Menschen haben Python gelernt, ob sie Entwickler sind oder nicht, da Pythons zahlreiche Bibliotheken und Funktionen es sehr sicher und zuverlässig machen. Scipy wird häufig zur Lösung von Differential- und algebraischen Gleichungen, Interpolation, Optimierung usw. verwendet. Hier diskutieren wir Scipy de Nutzung, um zu verstehen.

Was ist skipy differentielle Entwicklung in der Python -Sprache?

Scipy ist eine oberflächliche, freie und verständliche Bibliothek, die zur Lösung wissenschaftlicher und mathematischer Probleme verwendet wird. Scipy ist eine Schatzkiste für Entwickler, da seine Bibliothek voller kostbarer Module ist. Scipy erweitert die Numpy -Funktionalität mit einem wertvollen Cluster von Algorithmen. Die Scipy-Bibliothek verfügt über Unterpakete, die für Berechnungen wie Scipy verwendet werden können.io, scipy.optimieren usw. Scipy erzeugt eine „differentielle Evolution“ -Funktion und viele kraftvolle Funktionen in der Scipy.Paket optimieren. Die Skipie.Optimierung wird zur Optimierung in Python -Anwendungen verwendet.

Die Differentialentwicklungsfunktion ist eine globale Funktion, die vom Scipy -Optimierpaket erfasst wird, mit dem das globale Minimum der multivariaten Funktionen ermittelt wird. Es kann mehrdimensionale objektive Funktionen verwalten, die nichtlinear und nicht differenzierbar sind. Es ist ein Suchalgorithmus, der verwendet wird, um Bereiche von kontinuierlichen Raumfunktionen zu suchen. Diese Funktion funktioniert auf realen Werten.

Syntax der Differentialentwicklungsfunktion

Die Differentialentwicklungsfunktion ist in Python vorhanden, wobei die Funktion differential_evolution () verwendet wird. Die Syntax der Differentialentwicklungsfunktion ist unten dargestellt:

Lassen Sie uns die Funktionsparameter durchgehen:

Die Funktion muss mit f (x,*args) aufgerufen werden; Bounds bezieht sich auf die Abfolge von Variablen, die auf zwei Arten angegeben werden können: Strategie ist optional oder eine Zeichenfolge mit dem Standardwert „Best1bin“; Maxiter ist optional oder ein int -Wert; Popsize ist int oder optional; TOL ist int oder optional; Der Mutationswert ist im Float oder optional; Der Rekombinationswert ist im Float oder optional; Der Samen ist keiner, int, numpy und zufällig.

Im nächsten Abschnitt werden wir mit Hilfe einfacher Beispiele eine differentielle Evolutionsfunktion diskutieren.

Beispiel 1

Beginnen wir mit einem einfachen Beispiel, das Ihr Interesse daran entwickelt, das Konzept der Differentialentwicklungsfunktion zu verstehen. Wir haben die Funktion Differenial_evolution () verwendet, um den Mindestwert zu finden. Um jedoch den Mindestwert zu finden, erforderte die Funktion Suchgrenzen und eine definierte Funktionsfunktion. Infolgedessen definieren wir eine Funktion, bevor wir die Funktion differential_evolution im Programm verwenden. Der Referenzcode des Programms wird unten erwähnt:

Numph als NP importieren
von scipy import optimize
von Scipy.Optimieren Sie die Import differential_evolution
Matplotlib importieren.Pyplot als py
von Matplotlib importieren CM
Def func (p):
z, x = p
H = NP.sqrt (z ** 4 + x ** 4)
Return NP.SQRT (H)
De_bounds = [[-6,6], [-6,6]]
res = differential_evolution (func, de_bounds)
Druck (res)

Wir haben Bibliotheken wie Scipy und Numpy für Array -numerische Berechnungen importiert. Wir haben die Funktion Differenial_evolution aus der Skipie importiert.Modul optimieren. Dann definieren wir mit dem Schlüsselwort "Def" die aufrufbare Zielfunktion und übergeben den Parameter "P". Wir definieren erfolgreich die Funktion, die die Quadratwurzel der numpy Variablen ergänzt, nämlich Z, x. Der Quadratwurzelwert wird in der Variablen „H“ gespeichert. Wir geben den Quadratwurzelwert in der definierten Funktion zurück. Es wird als Argument zurückgegeben.

Danach werden wir die Grenzen der Variablen festlegen, die durch Erläuterung der min- und maximalen Werte der Funktion aufgeführt werden können. Wir führen die Funktion Differenial_evolution mit 'De_Bounds' 'als Argument aus. Wir haben den Funktionswert mit einer Variablen namens Res aufgerufen. Am Ende verwenden wir die Druckanweisung, um die Ausgabe anzuzeigen. Das Ergebnis wurde nach dem Ausführen des Programms angezeigt. Der erwartete Ausgangs -Screenshot ist unten dargestellt:

Differential_evolution () zeigt, dass der Mindestwert der Funktion am Punkt angezeigt wird (0, 0).

Beispiel 2

Dies ist ein weiteres Beispiel für die Differentialentwicklungsfunktion. Darin nehmen wir Arrays und wenden unterschiedliche Operationen zwischen ihnen an. Der Referenzcode des Programms wird unten erwähnt:

Numph als NP importieren
von scipy import optimize
von Scipy.Optimieren Sie die Import differential_evolution
Def Objective_func (d):
return (d [1] - 1.2) / 2 + 0.5 * d [0] * 1.3 * (D [1] +0.5) ** 3
_bounds = [(-0.3,0.3), (-0.3,0.3)]
disp = Differenial_evolution (Objective_func, _Bounds, popsezize = 80, polna = false)
drucken (disp)

Wie im vorherigen Screenshot gezeigt, haben wir die Scipy erfolgreich importiert.optimieren.Differential_evolution Library und die Numpy -Bibliothek in das Programm. Jetzt definieren wir eine objektive Funktion, in der wir einen Mindestwert finden. Wir haben den mathematischen Ausdruck in der Zielfunktion übergeben und einen Wert als Argument für die definierte Funktion zurückgegeben. Die Grenze zwischen Funktionswerten ist ein Muss. Nachdem wir die Funktion definiert haben, haben wir beide Werte (maximal und minimal) behoben, die wir uns befestigten.

Nachdem wir alle wesentlichen Variablen definiert hatten, haben wir die Funktion differential_evolution aufgerufen, um den Mindestwert einer Funktion zu finden. Wir haben den minimalen Rückgabewert der Funktion in einer Variablen genannt. Am Ende des Programms übergeben wir die Disp -Variable in der Druckanweisung, um das Ergebnis anzuzeigen. Nach dem Ausführen des Programms wird der Mindestwert der definierten Funktion auf dem Bildschirm mit Grenzen angezeigt. Das Folgende ist die Ausgabe:

Beispiel 3

Wie wir sehen können, gibt die unterschiedliche Entwicklung unterschiedliche Mindestwerte einer objektiven Funktion zurück, basierend auf ihrer Definition. Hier nehmen wir ein anderes Beispiel in Bezug auf Differenial_evolution (). Der Referenzcode für dieses Programm ist unten angezeigt:

Numph als NP importieren
von scipy import optimize
von Scipy.Optimieren Sie die Import differential_evolution
Def Obj_func (Oper):
Rückkehr 3 ** 9/0.2 + 6/3 *2 ** 20
Grenze = [(-0).5,0.5), (-0.5,0.5)]]
out = differential_evolution (obj_func, bode, polnary = true)
print ('Ausgabe ist:', out)

Die Bibliotheken werden erfolgreich in dieses Programm importiert. Infolgedessen nehmen wir die Scipy -Bibliothek in das Programm ein. Definieren Sie danach die objektive Funktion mit dem erforderlichen Vorgang. Wir finden den Mindestwert dieser definierten Funktion. Nachdem wir die Grenze der Funktion angepasst hatten, haben wir die definierte Funktion in der unterschiedlichen Entwicklung aufgerufen, um den Mindestwert der Funktion zu finden. Dies wird dann in der Variablen aufbewahrt. Wir zeigen dies an, indem wir diese Variable in der Print -Anweisung aufrufen. Die Ausgabe dieses Programms ist unten gezeigt:

Wie im vorherigen Screenshot beträgt der Mindestwert der Funktion [0.29236931, 0.16808904]. Sie können diese Beispiele in Ihrer Umgebung auch ausführen, um das Differential_evolution -Funktionskonzept besser zu verstehen.

Abschluss

Nehmen wir eine kurze Zusammenfassung dieses Artikels ab. Wir haben die grundlegende Funktionalität der Differential -Evolution -Methode erfasst, die zur Scipy -Bibliothek in Python gehört. Python ist die neueste Sprache mit zahlreichen flexiblen Bibliotheken. Die meisten Entwickler wurden bei der Lösung komplexer Codestrukturen durch vordefinierte Funktionen und Bibliotheken unterstützt. Die differentielle Entwicklung ist eine Funktion oder Methode zur Optimierung der Scipy -Paket für die Minimierung. Wenn Sie diese früheren Beispiele in Code verwenden, verstehen Sie das Konzept der Differentialentwicklung deutlicher.