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 可解釋性,幫助理解演算法收斂過程。
  • 靈活的終止條件: 基於步數、評估次數、牆鐘時間、目標適應度或早停的可組合停止條件。
  • 混合類型支援: 原生支援浮點、整數、二進制、分類和排列變數。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案