I am trying to find acquisition solutions for properties (range 90-700) on a landscape. I have represented these properties with a 1D binary chromosome. In reality, there is a 2D layout to the properties (although not in a uniform grid) so your 'silly example' is not that far off. I am trying to find solutions (i.e., properties to buy) that optimize a 6-objective problem. The value of each objective and therefore the fitness of the solution is dependent on which parcels are purchased (1 bits) and which are not (0 bits) in a given chromosome.
The algorithm had been doing fine with shorter chromosomes (n=96) but has struggled with the longer chromosomes (n=676).
Currently, my variators are a Uniform Crossover and Bit Flip Mutation with an 0.8 mutation rate. I am using NSGA2 so my operators are:
ea = inspyred.ec.emo.NSGA2(prng)
variator = [inspyred.ec.variators.uniform_crossover,
inspyred.ec.variators.bit_flip_mutation]
observer = custom
terminator = inspyred.ec.terminators.generation_termination
evaluator = custom that uses inspyred.ec.emo.Pareto
pop_size = 800
seeds = custom that includes random chromosomes and a few that are all zeros and all ones
maximize = True (objectives are maximized and minimized but are specified with a Boolean list in the evaluator)
nr_inputs = number of bits/parcels in the chromosome
max_generations = 500 (but have tried longer too)
mutation_rate = 0.8
I'm happy to share the full script if that would be helpful.
Thanks!
-Mauri
Your 'silly example' is actually a very applicable example.