Valdecy/pyMetaheuristic

pymetaheuristic: A Python Library for Metaheuristic Optimization and Collaborative Search

解决的问题

pymetaheuristic 提供了一个全面的工具包,用于使用元启发式算法解决复杂的优化问题。它简化了在目标函数可能为非线性、有约束,或定义在混合类型变量空间(连续、整数、二进制、分类、排列)上的优化问题中,寻找最优或近似最优解的过程。

工作原理

该库实现了广泛的优化策略和支撑基础设施:

  • 算法库: 包含超过400种算法,涵盖多种类型,如群体智能、进化、轨迹和物理启发式方法。
  • 执行引擎: 提供高阶 optimize 入口点用于单个算法,以及 cooperative_optimizeorchestrated_optimize 用于多岛系统,其中多个优化器通过迁移和自适应编排策略协同工作。
  • 约束处理: 使用特定的处理器(如 "deb")和修复策略(如 clipreflectwang)支持不等式和等式约束,确保解保持可行性。
  • 搜索空间管理: 使用类型化变量空间(FloatVarIntegerVar 等)和转换函数,将连续位置映射到离散或二进制概率。
  • 诊断与可解释性: 提供 EvoMapX 层用于内部探针标签和属性矩阵,以及基于 Plotly 的可视化工具,用于收敛性、多样性及岛动态分析。
  • 基准测试: 提供 BenchmarkRunner 用于快速扫描,以及 BenchmarkStudy 用于科学分析,支持统计检验和性能轮廓。

适用人群

  • 研究人员和数据科学家:进行优化算法的科学基准测试。
  • 工程师:寻找一个稳健的库来解决现实世界中的约束优化问题。
  • 无深度编码经验的用户:可通过 pymetaheuristic Lab Web 应用程序使用图形界面。

主要亮点

  • 庞大的算法集合: 一个包内即可访问 400+ 个优化算法。
  • 协同搜索: 支持可配置拓扑和自适应编排的多岛系统。
  • 深度可观测性: 集成遥测、种群快照和 EvoMapX 可解释性,帮助理解算法收敛过程。
  • 灵活的终止条件: 基于步数、评估次数、墙钟时间、目标适应度或早停的可组合停止条件。
  • 混合类型支持: 原生支持浮点、整数、二进制、分类和排列变量。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目