¡Estrategias evolutivas simplificadas!
Use Evopy para optimizar fácilmente un vector de flotadores en Python.
¡Todo lo que necesitas usar Evopy es Python 3! Ejecute este comando para obtener Evopy de Pypi:
pip install evopy
Entonces puedes importar EvoPy como esta:
from evopy import EvoPy ¡Digamos que queríamos encontrar el óptimo de una parábola, sin usar métodos exactos del cálculo! Con Evopy, esto es tan fácil como escribir las siguientes dos líneas:
evopy = EvoPy ( lambda x : pow ( x , 2 ), 1 )
best_coordinates = evopy . run () El ingrediente principal aquí es la función de aptitud física (la lambda). Esta también puede ser una referencia de función normal, solo asegúrese de que acepte un flotador o una variedad de flotadores y emita un solo flotador. El otro ingrediente es el 1 al final de la primera línea: esta es la dimensionalidad de las entradas que espera en su función de aptitud física. best_coordinates contendrá una matriz con un solo elemento, que es el mejor valor x que el algoritmo podría encontrar en el número predeterminado de generaciones.
Si el ejemplo anterior le pareció demasiado simple para usted, también podemos ver el óptimo de una función bidimensional más compleja, como la función Rastrigin. No tenemos que modificar mucho en nuestro fragmento de código anterior para que esto funcione:
evopy = EvoPy (
lambda X : 5 + sum ([( x ** 2 - 5 * np . cos ( 2 * np . pi * x )) for x in X ]),
2 ,
generations = 1000 ,
population_size = 100
)
best_coordinates = evopy . run () En comparación con el primer ejemplo, hemos intercambiado la función de aptitud para una más compleja, establecemos la dimensionalidad en 2 y, dado el algoritmo más tiempo para encontrar un óptimo al establecer una generación y un recuento individual más alto que el valor predeterminado.
Para obtener información más detallada sobre la funcionalidad de Evopy, ¡eche un vistazo a los documentos!
Clon este repositorio y obtenga todas las dependencias dentro del directorio clonado:
pip install -r requirements.dev.txt
Ejecute todas las pruebas con:
nosetests
Para verificar su estilo de código, ejecute:
pylint evopy
Para medir su cobertura de código, ejecute:
nosetests --with-coverage --cover-package=evopy --cover-html --cover-branches --cover-erase