4 ms·
This is a very beautiful illustration of a woefully outdated algorithm. Its proportional selection operator was superseded in 1994 (at the latest) when Bäck pu
by sevensor 11y ago
This is a very beautiful illustration of a woefully outdated algorithm. Its proportional selection operator was superseded in 1994 (at the latest) when Bäck published his comparison of selection operators. Its approach to crossover looks like an ad-hoc extension of binary crossover, which Deb improved on in the same year. It's using uniform mutation, although better options have been demonstrated by Evolution Strategies since the '70s, if not earlier.
But it's really fun to watch. I'll give it that.
- Gravityloss 11y agoCould we have a metagame sourced from all the games played by various people, where the selection algorithms etc evolved?
- randomsearch 11y agoYou're looking for "hyperheuristics."
- LoSboccacc 11y agosomething I didn't get from the code/description: are the car generated only from mutations of the winners? because it seems those are generated by their own previous seed.
- mdda 11y agoI researched GAs / GPs back in the mid-90s (but then went in a different direction). Is there a paper/presentation that embodies the current best practices/thinking that you could recommend? I'm not trying to be lazy, it's just that there is clearly a lot of retro thinking among the top search results on the net, and it's difficult to separate the wheat from the chaff...
- sevensor 11y agoWith the disclaimer that there are different schools of thought, I can give a basic outline, and provide some references. This pertains mainly to optimizing engineering models, which tend to be continuous or mixed integer. GAs are just OK at combinatorial optimization (although GP is pretty nifty, from what I hear about it). * Steady-state: pioneered to the best of my knowledge by Deb's epsilon-MOEA, steady-state algorithms use function evaluations as soon as they are received, rather than waiting for a whole generation to complete. [1] * Multi-objective: Pareto ranking as dominance relation lets us have multiple objectives [2]. This is good because it gives us a whole bunch of solutions at once and lets us decide which one we want, instead of tweaking objectives and constraints to get an idea of the tradeoffs involved. * Epsilon resolution: comes from an idea by Laumanns et al. [3]. We can have more objectives if we don't care about differences below a certain threshold. Otherwise the Pareto front explodes in size. * Restarting: Proposed by Coello-Coello [4] and demonstrated by his micro-GA, restarting helps you get out of local optima. * Better search operators: Binary crossover doesn't work so well, especially for real-valued decision variables. It took some fancy theoretical footwork involving schema theory and domino convergence to support it. There were a lot of new search operators proposed in the late '90s, the best of which seem to be simulated binary crossover (SBX), and polynomial mutation (PM). [5] * Alternatively, the Differential Evolution search operator [6] works really well too. * Better selection operator: tournament selection beats the pants off of the alternatives [7]. Resources: * Dave Hadka's MOEAFramework [8], which includes open-source multi-objective evolutionary algorithm implementations. * Dave Hadka's dissertation [9], which describes a (regrettably patented) MOEA that's kind of a greatest-hits of good MOEA ideas. * Deb's website [10], which includes questionably-licensed algorithm implementations, as well as a number of technical reports. Links. I'm posting raw bibtex because I'm lazy. [1] @article{deb_2005_emoea, author = { Deb, K. and Mohan, M. and Mishra, S}, year = {2005}, title = {Evaluating the $\varepsilon$-domination based multiobjective evolutionary algorithm for a quick computation of Pareto-optimal solutions.}, journal = {Evolutionary Computation Journal}, volume= {13}, number = {4}, pages ={501--525} } [2] @book{goldberg_1989_book, title={Genetic algorithms in search, optimization, and machine learning}, author={Goldberg, D.E.}, year={1989}, publisher={Addison-Wesley Professional} } [3] @article{laumanns_2002_combining, title={Combining convergence and diversity in evolutionary multiobjective optimization}, author={Laumanns, M. and Thiele, L. and Deb, K. and Zitzler, E.}, journal={Evolutionary computation}, volume={10}, number={3}, pages={263--282}, year={2002}, publisher={MIT Press} } [4] @inproceedings{coello_2001_uga, author = {Carlos A Coello Coello and Gregorio Toscano Pulido}, title = {Multi-Objective Optimization Using a Micro-Genetic Algorithm}, booktitle = {Proceedings of the Genetic and Evolutionary Computation Conference (GECCO 2001)}, pages = {274--282}, publisher = {Morgan Kaufmann}, address = {San Francisco, CA}, year = {2001} } [5] @techreport{deb_1994_sbx, author = {Deb, K. and Agrawal, R. B.}, year = 1994, title = {Simulated binary crossover for continuous search space}, number = { Technical Report IITK/ME/SMD-94027}, institution = {Indian Institute of Technology, Kanpur}, address = {Kanpur, UP, India} } [6] @article{storn_1997_de, author = {Storn, R. and Price, K.}, year = 1997, title = {Differential evolution --- a simple and efficient heuristic for global optimization over continuous spaces}, journal = { Journal of Global Optimization}, volume = 11, number = 4, pages = {341--359} } [7] @inproceedings{back_1994_selection, title={Selective pressure in evolutionary algorithms: A characterization of selection mechanisms}, author={B{\"a}ck, Thomas}, booktitle={Proceedings of the First IEEE Conference on Evolutionary Computation}, pages={57--62}, year={1994}, organization={IEEE} } [8] http://moeaframework.org/ http://moeaframework.org/ [9] https://etda.libraries.psu.edu/ https://etda.libraries.psu.edu/ You'll have to search for it, I'm afraid. The site's not responding for me right now. But his dissertation is publicly available on Penn State's ETD site. [10] http://www.iitk.ac.in/kangal/deb.shtml http://www.iitk.ac.in/kangal/deb.shtml edit: formatting
- sevensor 11y agoHere's a better link for [9]: https://etda.libraries.psu.edu/search/1/50/31/author/term=hadka https://etda.libraries.psu.edu/search/1/50/31/author/term=ha...
- sevensor 11y agoOne other thing: for single-objective real-valued problems, CMAES is very strong. https://en.wikipedia.org/wiki/CMA-ES https://en.wikipedia.org/wiki/CMA-ES is a pretty good source.
- dcre 11y agoThis is great!
- deleted 11y ago[deleted]
- blackdanube 11y agoThat all sounds really interesting and I'd love to read more on that. Do you have a book or an article that would be a good start on reading up on this?
- sevensor 11y agoPlease see my reply to the sibling comment. I've posted a bunch of references.
- blackdanube 11y agoBrilliant, thank you very much!
- dsjoerg 11y agoHow _much_ better do you expect it would perform with the current-best algos?
- sevensor 11y agoMeasuring evolutionary algorithm performance is a complicated question. It depends on what you want out of your algorithm. This one does a magnificent job at what it's for, which is illustrating what artificial evolution looks like. For an engineering optimization problem, I always look for sources of conflict, so there would be multiple objectives, we'd have to choose a metric or three, do a bunch of different random seed trials, and so forth.