I want to solve a problem using a evolutionary/genetic algorithm. It has something to do with art - people watching the algorithm should try out one chromosome (= possible solution) and should evaluate it according to their taste.
Using this setup, the evaluation process is (so to say) quite costly - it takes a lot of time for each chromosome to be tested. To make sure that a progress is taking place in feasible time (which means frequent change of generations), I have to accept a small population size (which has drawbacks as well). The other option would be to have a bigger population size but only few generations.
I thought of a different solution which I'd like to call "dynamic population". It would work like this:
- With population size
x, to setup the algorithm,xchromosomes are created randomly and numbered from 1 toxwhich indicates theirage. - The fitness of the initial population's chromosomes is evaluated.
- One new chromosome is created using crossover and/or mutation mechanisms.
age = 1is assigned to this new chromosome. All other chromosomes grow one step older (age = age + 1). Chromosome withage > xare removed from the population. (In those cases where the crossover mechanism produces two chromosomes as offspring, one child is chosen to getage = 1the other getsage = 2and for the other chromosomesage = age + 2) - Repeat 1 - 3 until a solution is found.
(This process could certainly easily be adopted to use elitism.)
Using such a mechanism, there would be a (possible) progress with every (new) chromosome and (what is more important in my case) whith every evaluation.
I can however also think of some disadvantages...
Are there logical reasons such an implementation using a "dynamic population" is not accomodating with an evolutionary algorithm?