Project Icon

opytimizer

基于自然启发的Python优化库 简化元启发式算法开发

Opytimizer是一个基于自然启发的Python优化库,实现了多种元启发式算法。它允许用户创建自定义优化器、设计优化任务并组合不同策略。该库专注于最小化问题,提供丰富示例和主流机器学习框架集成。Opytimizer可简化计算实验和参数调优,适合优化算法研究和应用开发。

Opytimizer:一个基于自然启发的Python优化器

最新版本 DOI 构建状态 未解决问题 许可证

欢迎使用Opytimizer

你是否在计算实验中遇到过瓶颈?你是否厌倦了为选定的技术选择合适的参数?如果是,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}
}

入门:60秒了解Opytimizer

首先,我们有示例。是的,它们都有注释。只需浏览到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)

支持

我们知道我们尽了最大努力,但不可避免地要承认我们会犯错。如果你需要报告错误、提出问题或与我们交谈,请随时联系!我们将尽最大努力在这个存储库中为你提供支持。


项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

稿定AI

稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号