设计理念

https://visitor-badge.laobi.icu/badge?page_id=Evolutionary-Intelligence.pypop-DesignPhilosophy

正如一篇 ALJ-2023 论文所示,“虽然隐喻可以成为强大的灵感工具,但数以百计几乎无法区分的算法变体以不同的标签和命名法出现,对该领域的科学进步产生了反作用,因为它既没有提高我们理解和模拟生物系统的能力,也没有为全局优化方法贡献可推广的知识或设计原则。”

鉴于大量黑盒优化器 (BBO) 的版本/变体几乎每周仍在增加,我们需要一些(可能)被广泛接受的标准来从中进行选择,详见下文。对于文献中任何**新的/缺失的** BBO,我们提供了一个开放(统一 API)的接口,以帮助在**必要时**自由地添加它们。

尊重美感(优雅)

注意

“如果说这本书中有一个贯穿始终的主题,那就是实用的数值计算方法可以同时是高效的、巧妙的,而且——重要的是——清晰的。”—Press, W.H., Teukolsky, S.A., Vetterling, W.T. and Flannery, B.P., 2007. 《数值方法:科学计算的艺术》。剑桥大学出版社。

问题解决的角度来看,我们凭经验倾向于为手头的黑盒优化问题选择最佳的优化器。然而,对于新问题,最佳优化器通常是事先未知的(在没有先验知识的情况下)。根据经验法则,我们需要比较一组(通常很小)可用/知名的优化器,并最终根据一些预定义的性能标准选择最佳的一个。然而,从学术研究的角度来看,我们更倾向于所谓的优美的优化器,尽管始终牢记“没有免费午餐”定理。通常,一个优化器的美感来自以下吸引人的特性:模型新颖性(例如,有用的逻辑概念和设计框架)在至少一类问题上具有竞争力的性能理论洞见(例如,在某些问题类别上保证全局收敛性和收敛速度)清晰/易于理解和实现,以及广受认可可重复性/可复现性

如果您发现本库中遗漏的某些 BBO 符合上述标准,欢迎提出 issuespulls。如果可能,我们会考虑尽快将其纳入 PyPop7 库。请注意,这里考虑任何对成熟优化器的肤浅模仿(即新瓶装旧酒)。有时,一些非常复杂的优化器可能会在仅由人工构建的基准函数组成的竞赛中获得最高排名。然而,这些优化器可能在这些人工制品上变得过度特化。我们认为,一个好的优化器应该是优雅且具有泛化能力的。如果没有令人信服的/成功的应用报告,我们将不会在本库中考虑任何非常复杂的优化器,以避免可能的可重复性过拟合问题。

尊重多样性

鉴于黑盒优化在科学和工程领域的普遍性,不同的研究社区设计了不同类型的优化器。随着新的、更具挑战性的应用对更强大优化器的需求,优化器的类型和数量仍在持续增加。一方面,其中一些优化器可能或多或少地具有相似之处。另一方面,它们也可能表现出显著的差异(在动机/目标/实现/社区/实践者方面)。因此,我们希望涵盖来自不同研究社区的这种多样性,例如人工智能/机器学习(特别是进化计算、群体智能和零阶优化)、数学优化/规划(特别是无导数/全局优化)、运筹学/管理科学(元启发式算法)、自动控制(随机搜索)、电子工程、物理学、化学、开源软件等等。

注意

“自然选择的进化论完全从唯物主义的角度解释了世界的适应性和多样性”。[Mayr, 2009, Scientific American]

为了尽可能广泛地涵盖基于种群的 BBO 的最新进展,我们积极维护了一个配套项目,三年多来收集了一些顶级期刊和会议上的相关论文。我们希望这个开放的配套项目能为我们的库提供一个日益可靠的文献参考基础。

注意

DistributedEvolutionaryComputation 提供了一份(仍在增长的)进化计算 (EC) 论文清单,这些论文发表在一些(而非全部)顶级以及专注于 EC 的期刊和会议上。

尊重原创性

对于 PyPop7 中包含的每个黑盒优化器,我们期望给出其原始/代表性参考文献(有时也包括其一些好的实现/改进)。如果您发现这里遗漏了一些重要的参考文献,请不要犹豫与我们联系(我们将很乐意添加它)。此外,如果您发现有关原创性的任何错误,我们首先为我们(可能)的错误道歉,并将在这个开源项目中及时纠正。我们相信,开源的自我纠正能力可以显著提高这个库的质量。

注意

“直接从创造者那里听到他们的想法,既有趣又有教育意义”。—Hennessy, J.L. and Patterson, D.A., 2019. 《计算机体系结构:量化研究方法(第六版)》。Elsevier。

尊重可重复性

对于大多数基于种群的优化器所采用的随机搜索,适当地控制随机性对于重复数值实验至关重要。这里我们遵循 NumPy 官方的随机抽样建议。换句话说,您应该为每个优化器显式地设置随机种子。关于来自人工智能/机器学习、进化计算 (EC)、群体智能 (SI) 和元启发式算法社区的更多关于可重复性/基准测试的讨论,请参阅以下论文(仅举几例):

关于基准测试,请参考例如 ACM GECCO 2025 中的 BBSR - 基准测试、基准、软件和可复现性

最后,我们期待看到更多来自不同角度的关于 BBO 的有趣讨论。对于任何新的/缺失的 BBO,如果它很好地满足了上述设计理念,我们提供一个统一的 API 接口来帮助自由地添加它们。详情请参阅开发指南

日益增多的对隐喻的批判性分析论文

https://visitor-badge.laobi.icu/badge?page_id=Evolutionary-Intelligence.pypop