Skip to content

Logging can lead to crash #71

@CoolRunning

Description

@CoolRunning

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)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions