surF - Fourier surrogate modeling
surF - Surrogate Fourier modeling
surF is a novel surrogate modeling technique that leverages the discrete Fourier transform to generate a smoother, and possibly easier to explore, fitness landscape.
First of all, import surF as follows (please mind the upper case F):
from surfer import surF
Assume now that you have a fitness function
f() defined over a search space
In order to build a surrogate model with surF, considering
gamma Fourier coefficients, built with
sigma samples of the fitness landscape and interpolated with a grid with
rho steps, use the following code:
S = surF() S.specify_fitness(fitness) S.specify_search_space(hypercube) S.build_model(coefficients=gamma, numpoints=sigma, resolution=rho)
Now, it is possible to exploit surF's
approximate(x) method to calculate the fitness value of a candidate solution
x using the Fourier surrogate model.
If you find surF useful for your research, please cite our work as follows:
Manzoni L., Papetti D.M., Cazzaniga P., Spolaor S., Mauri G., Besozzi D., and Nobile M.S.: Surfing on Fitness Landscapes: FST-PSO Powered by Fourier Surrogate Modeling (under revision)
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.