Set ranges for GenePool genes


I’ve had a good trawl through and found quite a few posts and examples of how to control the number of genes in a gene pool, and also their current value and their domain. However for all examples I found, the domain is set for all genes concurrently. What I really need to do is set the range for each gene individually.

Why you may ask? I have a variable number of sliders/genes that I need to input into Galapagos. Currently I’ve been using sliders and Metahopper’s set slider component which works well. However, going forward I’ll need to have a variable number of sliders, so I’d need a way of generating/deleting sliders dynamically. Obviously I’d then need to connect these individually into the Galapagos input which isn’t ideal. Hence now why I want to pursue the controllable genepool route.

Any guidance would be much appreciated! Ideally I’d like to build something in GHPython but any advice would be great.

FYI I’ve tried things like Heteroptera’s GenePool controller, but as mentioned this doesn’t allow you to set gene ranges individually. Also not keen to remap the domain afterwards as (if I’m correct here) Galapagos may continue to manipulate the input slider while the output value doesnt change. For example if the slider can go from 0-10 but the remapped domain is only from 0-2, then Galapagos could spent time in the 0-5 range and not see any change in fitness which weakens the algorithm


I’m fairly certain that is not possible.

Also, welcome :slight_smile:

Thanks, I was here for a while already but my account seems to have disappeared so I’ve set up this new one.

Any ideas how I can work around this? The other option I noted about remapping the domain afterwards - is this really as bad as I imagine in terms of efficacy of the Galapagos optimiser? I’m quite sure it is, but happy to be proven wrong!

@DavidRutten do you have any ideas on this? Essentially I’m trying to create a Galapagos GenePool with the ranges of the individual genes being set dynamically. Is there a method within the GenePool definition to allow this? I understand I can use one range and then remap the output to a different domain, but this will cause inefficiencies in the solution I believe?