Dear authors,
I’m currently using libcmaes for parameter optimization in an image enhancement experiment,
and I’ve encountered an issue related to the genotype/phenotype mapping and parameter bounds.
When I use the following code:
gp = lcmaes.make_genopheno_pwqb_ls(low_bounds, up_bounds, len(up_bounds))
p = lcmaes.make_parameters_pwqb_ls(initial_params, sigma, gp, olambda, seed)
and
gp = lcmaes.make_genopheno_pwqb(low_bounds,up_bounds,len(up_bounds))
p = lcmaes.make_parameters_pwqb(initial_params,sigma,gp)
Parameter Settings:
olambda = 50
seed = 32
sigma = 0.1
low_bounds.append(low)
up_bounds.append(up)
the optimization runs, but I noticed two unexpected behaviors:
The optimized parameters sometimes go outside the specified bounds.
The objective value (evaluated using best_params through my objective function)
shows occasional abnormal drops, as shown in the figure below.

Questions:
- How can I ensure the parameters remain strictly within the given bounds?
- What might cause sudden drops in the objective value during optimization?
Thank you very much for your time and for maintaining this excellent library!