On Friday, December 5, 2014 6:32:37 PM UTC+3,
pauld...@aol.com wrote:
> My take on evolving. Until someone is willing to invest gazillions of cycles to evolve some new warrior plan out of random bits, you either seed with existing code fragments, or stick to the more restricted hills.
When I wrote RedShift, I did not have enough computing power to use it for anything larger than nano. But this time things are totally different with only a basic quad-core CPU. I have obtained excellent results for the tiny hill in a matter of few days. And tiny is not radically different from 94nop, the strategies are comparable. So I expect interesting purely evolved warriors without gazillions of cycles. I'll start evolving for 94nop after I'm done with tiny and maybe LP.
> Maybe you could breed for the small hills and cross the winners over to the larger hills.
Yes, this might save a lot of time. But again, diversity will likely suffer.
> I think one of the challenges is that to-date no one plan has been demonstrated to be effective against all other plans.
I hope it remains that way :)
> There are anti-plans for pretty much everything published so far. Which leads evolvers to lock in on warriors that are highly optimal against a subset of opponents but fail miserably against others. They are pretty good at generating p-components.
This often happens in early evolution stages when djn streams may start to dominate the population because they have very high scores against certain scanners. However, once things progress beyond such trivial warriors, I do not experience overspecialization. The problem might be solved by using a contraharmonic-like score mean instead of the arithmetic one. For now, I just manually remove benchmark warriors that contribute high scores to trivial warriors if I see that the evolution is getting stuck.
On Monday, December 8, 2014 10:20:18 AM UTC+3, Zul Nadzri wrote:
> Regarding infinite loop, I think I need to check the 'dynamic' option for uGP vs static warrior benchmark.
It has nothing to do with benchmarking, only with handling control flow instructions. Vanilla muGP is incapable of evolving something as simple as nop 0 / jmp -1. Read the papers.
On Monday, December 8, 2014 11:48:30 AM UTC+3, Roy van Rijn wrote:
> The big problem with evolvers I think is that lines and loops depend on each other making the warrior quite fragile. Evolvers should learn to use those labels, inserting or removing a line updates the references to other lines, but that is hard, this is something microGP does pretty well I think.
Not hard at all, RedShift detects labels and updates references with certain probability.