您的计算实验是否遇到过瓶颈?您是否厌倦了为所选技术选择合适的参数?如果是的话,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 )
我们知道我们已尽力而为,但不可避免地要承认我们会犯错误。如果您需要报告错误、报告问题、与我们联系,请这样做!我们将在这个存储库中尽最大努力。