Example of maximize() with a fitness function accepting arrays rather than keyword arguments.
from playdoh import *
import numpy
def fun(x):
if x.ndim == 1:
x = x.reshape((1, -1))
result = numpy.exp(-(x ** 2).sum(axis=0))
return result
if __name__ == '__main__':
# State space dimension (D)
dimension = 4
# ``initrange`` is a Dx2 array with the initial intervals for every
# dimension
initrange = numpy.tile([-10., 10.], (dimension, 1))
# Maximize the fitness function in parallel
results = maximize(fun,
popsize=10000, # size of the population
maxiter=10, # maximum number of iterations
cpu=1, # number of CPUs to use on the local machine
initrange=initrange)
# Display the final result in a table
print_table(results)