¿Alguna vez llegó a un cuello de botella en sus experimentos computacionales? ¿Está cansado de seleccionar los parámetros adecuados para la técnica elegida? En caso afirmativo, ¡Opytimizer es el verdadero negocio! Este paquete proporciona una implementación fácil de optimizaciones metaheurísticas. Desde los agentes hasta el espacio de búsqueda, desde las funciones internas hasta la comunicación externa, fomentaremos todas las investigaciones relacionadas con la optimización de elementos.
Utilice Opytimizer si necesita una biblioteca o desea:
Lea los documentos en opytimizer.readthedocs.io.
Opytimizer es compatible con: Python 3.6+ .
Si utiliza Opytimizer para satisfacer cualquiera de sus necesidades, cítenos:
@misc { rosa2019opytimizer ,
title = { Opytimizer: A Nature-Inspired Python Optimizer } ,
author = { Gustavo H. de Rosa, Douglas Rodrigues and João P. Papa } ,
year = { 2019 } ,
eprint = { 1912.13002 } ,
archivePrefix = { arXiv } ,
primaryClass = { cs.NE }
}
En primer lugar. Tenemos ejemplos. Sí, están comentados. Simplemente busque examples/
, elija su subpaquete y siga el ejemplo. Tenemos ejemplos de alto nivel para la mayoría de las tareas que se nos ocurren e integraciones sorprendentes (Learnergy, NALP, OPFython, PyTorch, Scikit-Learn, Tensorflow).
Alternativamente, si desea obtener aún más información, tómese un minuto:
Opytimizer se basa en la siguiente estructura y debes prestar atención a su árbol:
- opytimizer
- core
- agent
- block
- cell
- function
- node
- optimizer
- space
- functions
- constrained
- multi_objective
- math
- distribution
- general
- hyper
- random
- optimizers
- boolean
- evolutionary
- misc
- population
- science
- social
- swarm
- spaces
- boolean
- graph
- grid
- hyper_complex
- pareto
- search
- tree
- utils
- callback
- constant
- exception
- history
- logging
- visualization
- convergence
- surface
El núcleo es el núcleo. Esencialmente, es el padre de todo. Debería encontrar clases principales que definan la base de nuestra estructura. Deben proporcionar variables y métodos que ayudarán a construir otros módulos.
En lugar de utilizar funciones sencillas y sin formato, ¿por qué no probar este módulo? Redacte funciones abstractas de alto nivel o incluso nuevas ideas basadas en funciones para resolver sus problemas. Tenga en cuenta que, por ahora, solo admitiremos estrategias de funciones multiobjetivo.
El hecho de que estemos informáticando no significa que no necesitemos las matemáticas. Math es el paquete matemático que contiene implementaciones matemáticas de bajo nivel. Desde números aleatorios hasta generación de distribuciones, puede encontrar sus necesidades en este módulo.
Por eso nos llamamos Opytimizer. Este es el corazón de la heurística, donde puedes encontrar una gran cantidad de metaheurísticas, técnicas de optimización, cualquier cosa que pueda llamarse optimizador. Eche un vistazo a los optimizadores disponibles.
Se puede ver el espacio como el lugar donde los agentes actualizarán sus posiciones y evaluarán una función de aptitud. Sin embargo, los enfoques más nuevos pueden considerar un tipo de espacio diferente. Pensando en eso, nos complace apoyar diversas implementaciones espaciales.
Este es un paquete de utilidades. Aquí se deben implementar las cosas comunes compartidas en la aplicación. Es mejor implementarlo una vez y usarlo como desee que volver a implementar lo mismo repetidamente.
Todo el mundo necesita imágenes y argumentos que ayuden a visualizar lo que está sucediendo, ¿correcto? Este paquete le proporcionará todos los métodos relacionados con lo visual. Verifique la convergencia de una variable específica, la convergencia de su función de aptitud, trace superficies de funciones de referencia y mucho más.
Creemos que todo tiene que ser fácil. Sin ser complicado ni desalentador, Opytimizer será el paquete integral que necesitará, desde la primera instalación hasta las tareas diarias que implementan las necesidades. Si puede ejecutar lo siguiente en su entorno Python preferido (raw, conda, virtualenv, lo que sea):
pip install opytimizer
Alternativamente, si prefiere instalar la versión más moderna, clone este repositorio y use:
pip install -e .
Tenga en cuenta que, a veces, es necesaria una implementación adicional. Si es necesario, desde aquí serás tú quien conozca todos sus detalles.
No se necesitan comandos adicionales específicos.
No se necesitan comandos adicionales específicos.
No se necesitan comandos adicionales específicos.
Eche un vistazo a un ejemplo práctico rápido de Opytimizer. Tenga en cuenta que no estamos pasando muchos argumentos adicionales ni información adicional al procedimiento. Para ejemplos más complejos, consulte nuestra carpeta examples/
.
import numpy as np
from opytimizer import Opytimizer
from opytimizer . core import Function
from opytimizer . optimizers . swarm import PSO
from opytimizer . spaces import SearchSpace
def sphere ( x ):
return np . sum ( x ** 2 )
n_agents = 20
n_variables = 2
lower_bound = [ - 10 , - 10 ]
upper_bound = [ 10 , 10 ]
space = SearchSpace ( n_agents , n_variables , lower_bound , upper_bound )
optimizer = PSO ()
function = Function ( sphere )
opt = Opytimizer ( space , optimizer , function )
opt . start ( n_iterations = 1000 )
Sabemos que hacemos lo mejor que podemos, pero es inevitable reconocer que cometemos errores. Si alguna vez necesita informar un error, informar un problema, hable con nosotros, ¡hágalo! Estaremos disponibles en nuestro mejor momento en este repositorio.