  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).
