Сталкивались ли вы когда-нибудь с узким местом в своих вычислительных экспериментах? Вы устали подбирать подходящие параметры для выбранной техники? Если да, то Opytimizer – это то, что вам нужно! Этот пакет обеспечивает простую реализацию метаэвристических оптимизаций. От агентов до пространства поиска, от внутренних функций до внешней коммуникации — мы будем способствовать всем исследованиям, связанным с оптимизацией.
Используйте Opytimizer, если вам нужна библиотека или вы хотите:
Прочтите документацию по адресу opytimizer.readthedocs.io.
Opytimizer совместим с: Python 3.6+ .
Если вы используете Opytimizer для удовлетворения каких-либо ваших потребностей, укажите нас:
@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 }
}
Прежде всего. У нас есть примеры. Да, они комментируются. Просто перейдите к examples/
, выберите свой подпакет и следуйте примеру. У нас есть высокоуровневые примеры для большинства задач, которые мы могли бы придумать, и потрясающие интеграции (Learnergy, NALP, OPFython, PyTorch, Scikit-Learn, Tensorflow).
Альтернативно, если вы хотите узнать еще больше, пожалуйста, уделите минуту:
В основе Opytimizer лежит следующая структура, и вам следует обратить внимание на ее дерево:
- 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
Ядро есть ядро. По сути, это родитель всего. Вы должны найти родительские классы, определяющие основу нашей структуры. Они должны предоставлять переменные и методы, которые помогут создавать другие модули.
Вместо использования простых и простых функций почему бы не попробовать этот модуль? Создавайте абстрактные функции высокого уровня или даже новые идеи, основанные на функциях, для решения ваших проблем. Обратите внимание, что на данный момент мы будем поддерживать только стратегии многоцелевых функций.
Тот факт, что мы занимаемся вычислениями, не означает, что нам не нужна математика. Math — это математический пакет, содержащий математические реализации низкого уровня. От случайных чисел до генерации распределения — в этом модуле вы можете найти все, что вам нужно.
Вот почему нас называют Opytimizer. Это сердце эвристики, где можно найти большое количество метаэвристик, методов оптимизации и всего, что можно назвать оптимизатором. Пожалуйста, взгляните на доступные оптимизаторы.
Пространство можно рассматривать как место, где агенты будут обновлять свои позиции и оценивать функцию приспособленности. Однако новейшие подходы могут рассматривать другой тип пространства. Учитывая это, мы рады поддержать разнообразные космические реализации.
Это пакет утилит. Здесь должны быть реализованы общие вещи, общие для всего приложения. Лучше реализовать один раз и использовать по своему усмотрению, чем повторно реализовывать одно и то же.
Каждому нужны изображения и сюжеты, помогающие визуализировать происходящее, верно? Этот пакет предоставит вам все методы, связанные с визуальными эффектами. Проверьте сходимость конкретной переменной, сходимость вашей фитнес-функции, постройте поверхности эталонных функций и многое другое!
Мы считаем, что все должно быть легко. Не сложный и не устрашающий, Opytimizer станет универсальным пакетом, который вам понадобится, от первой установки до ежедневных задач по реализации потребностей. Если вы можете просто запустить следующее в вашей наиболее предпочтительной среде Python (raw, conda, virtualenv и т. д.):
pip install opytimizer
Альтернативно, если вы предпочитаете установить новейшую версию, клонируйте этот репозиторий и используйте:
pip install -e .
Обратите внимание, что иногда возникает необходимость в дополнительной реализации. При необходимости отсюда вы сможете узнать все подробности.
Никаких особых дополнительных команд не требуется.
Никаких особых дополнительных команд не требуется.
Никаких особых дополнительных команд не требуется.
Взгляните на быстрый рабочий пример Opytimizer. Обратите внимание, что мы не передаем процедуре много дополнительных аргументов или дополнительной информации. Для более сложных примеров, пожалуйста, проверьте нашу папку 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 )
Мы знаем, что делаем все возможное, но неизбежно признаем, что совершаем ошибки. Если вам когда-нибудь понадобится сообщить об ошибке, сообщить о проблеме, поговорить с нами, сделайте это! В этом репозитории мы будем доступны в своих лучших проявлениях.