Roger Alsing the author of that old gimmic here :-)<p>Some clarifications from my part here, 4 years after the post was released:<p>1) No this does not qualify as a true GA/GP.
by definition GP need to have an computational AST, EvoLisa has an declarative AST.
There is also no cross over in play here.
(see 3* for explatation on this)<p>2) Hill climbing or not?
According to wikipedia, Hill climbing only changes _one_ value of the problem solving vector per generation.
""At each iteration, hill climbing will adjust a single element in X and determine whether the change improves the value of f(X)""<p>So it doesn't quite fit the hill climbing definition either, also the DNA/vector is of dynamic size in EvoLisa while Hill climbing AFAIK uses fixed size vectors (?)<p>3) Why wasn't a larger population used and why no cross over?<p>This is the part that most of you get wrong, increasing the population size and adding cross over will NOT benefit this specific problem.<p>The polygons are semi transparend and overlap, thus, adding/removing polygons will have a high impact on the fitness level, in pretty much every case in the wrong direction.<p>Let's use words as an example here:<p>organism1: "The Mona Lisa"
organism2: "La Gioconda"<p>Both may have similar fitness level, but completely different sets of polygons (letters in this naive example)<p>combining those will very very rarely yeild an improvement.<p>e.g. child(result of org1 and org2) "Lae Mocondisa" that is complete nonsense and the fitness level falls back to pretty much random levels.<p>Thus, you can just as well use pure mutation instead of cross over here.<p>If the problem instead had been based on genes that paint individual parts, e.g. a gene for the face, a gene for the background, a gene for the body etc.<p>THEN it would have made sense to use crossover.
In such case it would be possible to combine a good face gene with a good background gene and the fitness level would improve.<p>However, due to the nature of this specific problem where the polygons span the entire image, this is not effective.<p>And if crossover is not benefitial, then a larger population gets less interesting also since you cannot combine them.<p>Increasing the population will only make more separate individuals compete against eachother with no additative effect in any way.<p>see it like this.<p>If we have one sprinter running 100meters, if he might complete the run in about 10 sec.<p>If we add 1000 sprinters to the population, each of them might complete the run in about 10 sec each.<p>Thus, the problem is not solved any faster by adding more individuals here.
Also, by increasing the population size, there will be much more data to evaluate for each generation, so even if we can bring down the number of generations needed to solve the problem, the actual real world time to complete it would increase due to evaluation logic.<p>Anyway, nice to see that people still find this somewhat interesting.
It was pretty much a single evening hack back 4 years ago..<p>//Roger