Exploiting knowledge about the structure of a problem can greatly benefit the efficiency and scalability of an Evolutionary Algorithm (EA). Model-Based EAs (MBEAs) are capable of doing this by explicitly modeling the problem structure. The Gene-pool Optimal Mixing Evolutionary Algorithm (GOMEA) is among the state-of-the-art of MBEAs due to its use of a linkage model and the optimal mixing variation operator. Especially in a Gray-Box Optimization (GBO) setting that allows for partial evaluations, i.e., the relatively efficient evaluation of a partial modification of a solution, GOMEA is known to excel. Such GBO settings are known to exist in various real-world applications to which GOMEA has successfully been applied. In this work, we introduce the GOMEA library, making existing GOMEA code in C++ accessible through Python, which serves as a centralized way of maintaining and distributing code of GOMEA for various optimization domains. Moreover, it allows for the straightforward definition of BBO as well as GBO fitness functions within Python, which are called from the C++ optimization code for each required (partial) evaluation. We describe the structure of the GOMEA library and how it can be used, and we show its performance in both GBO and Black-Box Optimization (BBO).
翻译:利用问题结构的知识能够显著提升进化算法的效率与可扩展性。基于模型的进化算法通过显式建模问题结构实现这一目标。基因池最优混合进化算法因其采用链接模型与最优混合变异算子,成为最先进的基于模型的进化算法之一。在允许部分评估(即对解的部分修改进行相对高效评估)的灰箱优化场景中,GOMEA表现尤为突出。此类灰箱优化场景存在于多种实际应用中,且GOMEA已成功应用于其中。本文介绍了GOMEA库,通过Python接口调用C++中现有的GOMEA代码,实现对不同优化领域GOMEA代码的统一维护与分发。此外,该库允许在Python中直接定义黑箱优化与灰箱优化适应度函数,并通过C++优化代码对每次(部分)评估进行调用。我们描述了GOMEA库的结构与使用方法,并展示了其在灰箱优化与黑箱优化中的性能表现。