Evolución diferencial escasa

Evolución diferencial escasa
Este artículo trata sobre la evolución diferencial (DE) Scipy. Scipy es la biblioteca del lenguaje de Python, y la evolución diferencial es el método o función de la biblioteca Scipy. La mayoría de las personas han estado aprendiendo Python, ya sean desarrolladores o no, ya que las numerosas bibliotecas y funciones de Python lo hacen muy seguro y confiable. SciPy se usa con frecuencia para resolver ecuaciones diferenciales y algebraicas, interpolación, optimización, etc. Aquí, estamos discutiendo el uso de Scipy de para ayudarlo a comprender cómo implementar la función de evolución diferencial Scipy en las aplicaciones de Python.

¿Qué es la evolución diferencial Scipy en el lenguaje de Python??

Scipy es una biblioteca superficial, libre y comprensible utilizada para resolver problemas científicos y matemáticos. Scipy es una caja del tesoro para los desarrolladores porque su biblioteca está llena de módulos preciosos. Scipy expande la funcionalidad numpy con un valioso grupo de algoritmos. La biblioteca SciPy tiene subackages que se pueden usar para cálculos, como Scipy.IO, Scipy.optimizar, etc. SciPy produce una función de "evolución diferencial" y muchas funciones poderosas en el Scipy.Optimizar el paquete. El scipy.La optimización se utiliza para la optimización en las aplicaciones de Python.

La función de evolución diferencial es una función global adquirida por el paquete Scipy Optimize que se utiliza para encontrar el mínimo global de las funciones multivariadas. Puede administrar funciones objetivas multidimensionales que no son lineales y no diferenciables. Es un algoritmo de búsqueda utilizado para buscar áreas de funciones de espacio continuo. Esta función funciona en valores reales.

Sintaxis de la función de evolución diferencial

La función de evolución diferencial está presente en Python utilizando la función diferencial_evolution (). La sintaxis de la función de evolución diferencial se muestra a continuación:

Revisemos los parámetros de la función:

La función debe ser llamable con f (x,*args); Los límites se refieren a la secuencia de variables que se pueden especificar de dos maneras: la estrategia es opcional o una cadena con el valor predeterminado "best1bin"; Maxiter es opcional o un valor int; Popsize es int u opcional; TOL es int u opcional; El valor de mutación está en flotación u opcional; El valor de recombinación está en flotación u opcional; la semilla es ninguno, int, numpy y al azar.

En la siguiente sección, discutiremos una función de evolución diferencial con la ayuda de ejemplos fáciles.

Ejemplo 1

Comencemos con un ejemplo directo que desarrollará su interés en comprender el concepto de función de evolución diferencial. Utilizamos la función diferencial_evolution () para encontrar el valor mínimo. Pero, para encontrar el valor mínimo, la función requería límites de búsqueda y una función de objetivo convincente definida. Como resultado, definimos una función antes de usar la función diferencial_evolutiva en el programa. El código de referencia del programa se menciona a continuación:

importar numpy como np
de scipy import optimizar
De Scipy.Optimizar la importación diferencial_evolution
Importar matplotlib.pyplot como py
de matplotlib import cm
Def func (p):
z, x = P
H = NP.sqrt (z ** 4 + x ** 4)
devolver np.sqrt (h)
De_bounds = [[-6,6], [-6,6]]
res = diferencial_evolution (func, de_bounds)
Imprimir (Res)

Importamos bibliotecas como Scipy y Numpy para cálculos numéricos de matriz. Importamos la función diferencial_evolutiva desde el scipy.optimizar el módulo. Luego, con la palabra clave "def", definimos la función objetivo de llamada y pasamos el parámetro "P". Definimos con éxito la función que encuentra la raíz cuadrada de la adición de variables numpy, que es z, x. El valor de la raíz cuadrada se almacena en la variable "H". Devuelve el valor de la raíz cuadrada en la función definida. Se devuelve como argumento.

Después de eso, liquidamos los límites de la variable que se puede detectar explicando los valores MIN y MAX de la función. Ejecutamos la función diferencial_evolution con 'de_bounds ”' como argumento. Llamamos al valor de la función con una variable llamada RES. Al final, usamos la instrucción de impresión para mostrar la salida. El resultado se mostró después de ejecutar el programa. La captura de pantalla de salida esperada se muestra a continuación:

Diferencial_evolution () muestra que el valor mínimo de la función se muestra en el punto (0, 0).

Ejemplo 2

Este es otro ejemplo de la función de evolución diferencial. En esto, tomamos matrices y aplicamos diferentes operaciones entre ellos. El código de referencia del programa se menciona a continuación:

importar numpy como np
de scipy import optimizar
De Scipy.Optimizar la importación diferencial_evolution
Def Objective_Func (d):
regreso (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 = diferencial_evolution (Objective_Func, _Bounds, PopSize = 80, polaco = falso)
Imprimir (disp)

Como se muestra en la captura de pantalla anterior, importamos con éxito el Scipy.optimizar.Biblioteca diferencial_evolutiva y la biblioteca Numpy en el programa. Ahora, definimos una función objetivo en nombre de la cual encontramos un valor mínimo. Pasamos la expresión matemática en la función objetivo y devolvimos un valor como argumento a la función definida. El límite entre los valores de la función es imprescindible. Entonces, después de definir la función, fijamos los valores (máximo y mínimo).

Después de definir todas las variables esenciales, llamamos a la función diferencial_evolutiva para encontrar el valor mínimo de una función. Guardamos el valor de retorno mínimo de la función en una variable llamada disps. Al final del programa, pasamos la variable DISC en la instrucción de impresión para mostrar el resultado. Después de ejecutar el programa, el valor mínimo de la función definida se muestra en la pantalla con límites. El siguiente es la salida:

Ejemplo 3

Como podemos ver, la evolución diferencial devuelve diferentes valores mínimos de una función objetivo basada en su definición. Aquí, tomamos otro ejemplo relacionado con diferencial_evolution (). El código de referencia para este programa se muestra a continuación:

importar numpy como np
de scipy import optimizar
De Scipy.Optimizar la importación diferencial_evolution
Def obj_func (operación):
regresar 3 ** 9/0.2 + 6/3 *2 ** 20
límite = [(-0.5,0.5), (-0.5,0.5)]
out = diferencial_evolution (obj_func, límite, polaco = true)
imprimir ('la salida es:', fuera)

Las bibliotecas se importan con éxito a este programa porque no podemos realizar las operaciones que deseamos sin ellas. Como resultado, incluimos la biblioteca Scipy en el programa. Después de eso, defina la función objetivo con la operación requerida. Encontramos el valor mínimo de esa función definida. Después de ajustar el límite de la función, llamamos a la función definida en la evolución diferencial para encontrar el valor mínimo de la función. Esto luego se mantiene en la variable. Mostramos esto llamando a esta variable en la declaración de impresión. La salida de este programa se muestra a continuación:

Como en la captura de pantalla anterior, el valor mínimo de la función es [0.29236931, 0.16808904]. También puede ejecutar estos ejemplos en su entorno para comprender mejor el concepto de función diferencial_evolución.

Conclusión

Tomemos un resumen rápido de este artículo. Captaron la funcionalidad básica del método de evolución diferencial que pertenece a la biblioteca escasa en Python. Python es el idioma más reciente, con numerosas bibliotecas flexibles. La mayoría de los desarrolladores fueron ayudados a resolver estructuras de código complejas mediante funciones y bibliotecas predefinidas. La evolución diferencial es una función o método de optimización de paquetes de scipy utilizada para la minimización. Cuando usa estos ejemplos anteriores en código, comprende más claramente el concepto de evolución diferencial.