If symbolic expressions become too convoluted/long during evolution, the log-file grows extremely in size until it fills up the memory, leading to poor performance and freezes. The following code can produce this behavior:
import dcgpy
import pygmo as pg
X, Y = dcgpy.generate_salutowicz()
kernels = dcgpy.kernel_set_double(["sum", "diff", "mul", "cos"])
udp_dcgpy = dcgpy.symbolic_regression(
points = X,
labels = Y,
kernels=kernels(),
rows = 1,
cols = 100,
n_eph = 0,
levels_back = 5, # this setting creates convoluted and complex expressions
multi_objective=False)
prob = pg.problem(udp_dcgpy)
uda = dcgpy.es4cgp(gen = 100, max_mut = 4)
algo = pg.algorithm(uda)
#outcomment the following line to eat up your memory
#algo.set_verbosity(10)
pop = pg.population(prob, 4)
pop = algo.evolve(pop)
If symbolic expressions become too convoluted/long during evolution, the log-file grows extremely in size until it fills up the memory, leading to poor performance and freezes. The following code can produce this behavior: