跳转到主要内容

基于自然的Python优化器

项目描述

Opytimizer: 基于自然的Python优化器

Latest release DOI Build status Open issues License

欢迎使用Opytimizer。

你在计算实验中是否遇到过瓶颈?你是否厌倦了为选择的技术选择合适的参数?如果是这样,Opytimizer就是你的真实选择!这个包提供了一个易于使用的元启发式优化实现。从智能体到搜索空间,从内部函数到外部通信,我们将促进与优化相关的一切研究。

如果需要库或希望

  • 创建你的优化算法;
  • 设计或使用预加载的优化任务;
  • 混合匹配不同的策略来解决你的问题;
  • 因为优化事情很有趣。

请阅读opytimizer.readthedocs.io上的文档。

Opytimizer与:Python 3.6+兼容。


包指南

  1. 你需要的第一信息就在下一个部分。
  2. 如果你希望阅读代码并深入了解,安装也很简单。
  3. 请注意,可能需要一些额外的步骤才能使用我们的解决方案。
  4. 如果出现问题,请勿犹豫,联系我们。
  5. 最后,我们专注于最小化。在设计问题时请记住这一点。

引用

如果您使用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}
}

入门:用Opytimizer开始只需60秒

首先,我们有示例。是的,它们已经添加了注释。只需浏览到examples/,选择您的子包,并按照示例操作。对于我们能想到的大多数任务,我们都有高级示例和惊人的集成(LearnergyNALPOPFythonPyTorchScikit-LearnTensorflow)。

或者,如果您想了解更多,请花一分钟时间

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

核心

核心是核心。本质上,它是所有内容的父级。您应该找到定义我们结构基础的父类。它们应提供变量和方法,以帮助构建其他模块。

函数

为什么不尝试这个模块呢?使用原始且直接的函数?通过组合高级抽象函数甚至新的基于函数的想法来解决您的问题。请注意,目前我们仅支持多目标函数策略。

数学

仅仅因为我们正在计算并不意味着我们不需要数学。数学是一个包含低级数学实现的数学包。从随机数到分布生成,您可以在本模块中找到您所需的一切。

优化器

这就是我们被称为Opytimizer的原因。这是启发式算法的核心,您可以在这里找到大量的元启发式、优化技术,任何可以称为优化器的东西。请查看可用的优化器

空间

人们可以将空间视为代理更新其位置并评估适应度函数的地方。然而,最新的方法可能考虑不同类型的空间。考虑到这一点,我们很高兴支持多样化的空间实现。

实用工具

这是一个实用工具包。应该在本包中实现跨应用共享的常见事物。最好一次实现并随意使用,而不是反复重新实现相同的事情。

可视化

每个人都需要图像和图表来帮助可视化正在发生的事情,对吗?此包将为您提供所有与视觉相关的功能。检查特定变量的收敛情况,您的适应度函数的收敛情况,绘制基准函数表面,等等!


安装

我们认为一切都应该简单。不是棘手的或令人畏惧的,Opytimizer将是您需要的唯一包,从第一次安装到日常任务的实现需求。如果您可以简单地在自己的首选Python环境中运行以下命令(原始、conda、virtualenv,等等)

pip install opytimizer

或者,如果您希望安装最新的版本,请克隆此存储库并使用

pip install -e .

环境配置

请注意,有时需要额外的实现。如果需要,从这里开始,您将了解所有细节。

Ubuntu

不需要特定的额外命令。

Windows

不需要特定的额外命令。

MacOS

不需要特定的额外命令。


如何使用:最小示例

查看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)

支持

我们知道我们尽了最大努力,但承认我们犯错误是不可避免的。如果您需要报告错误、报告问题或与我们交谈,请这样做!我们将在这个存储库中尽最大努力为您服务。


项目详情


下载文件

下载适合您平台文件的文件。如果您不确定选择哪一个,请了解有关安装包的更多信息。

源分布

opytimizer-3.1.4.tar.gz (111.9 kB 查看哈希值)

上传时间

构建分布

opytimizer-3.1.4-py3-none-any.whl (206.8 kB 查看哈希值)

上传时间 Python 3

由以下组织支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面