Show HN: Genetic Hello World
github.com
github.com
https://www.google.com/?q=genetic+algorithm+placement+format...
I heard about it first while reviewing literature for some of my operations research classes. They were supposedly good heuristics for hard problems like scheduling and facility layouts, but of course I didn't really get in to that for those introductory classes. I wonder if it's really less scary (harder) than I originally thought? I can't seem to find good resources on them online though, as all the moocs and resources are still raving on about machine learning and data science.
A minor nitpick about the README - genetic algorithm is not the same thing as genetic programming. The former is what you're doing here, the latter refers to building a program using genetic algorithms.
Hglmo,wosmd! (8)
Gflln* wosle! (9)
Hello, wosld! (9999)
Hello, world (9999)
The bottom two seem to be much closer to the desired result, but the top two score lower cost? Seems weird to me. :-/https://en.wikipedia.org/wiki/Levenshtein_distance
OP, if you want to experiment, here's a gist with a JS implementation that I found after some googling:
https://gist.github.com/andrei-m/982927
How the cost function compares to how you mutate probably also matters here.
https://tomnomnom.com/posts/methinks-it-is-like-an-incestuou...
It worked very well!
> The phrase METHINKS IT IS LIKE A WEASEL is 28 characters long, and has 27 possibities for each character, making for 27^28 (about 10^40) possible combinations. To put that into perspective: it's reckoned that there's about 10^80 atoms in the visible universe. Even if the monkey could try millions of combinations per second, he would almost certainly never get there - and that's assuming he never repeated a combination.
> So it would take a very long time for the monkey to hit the right keys at random, but what about if it weren't completely random? Dawkins suggests a computer program to simulate the monkey, only using something akin to evolution to form the phrase instead of complete randomness. That is: randomness would still be involved, but in a slightly more predictable capacity than the virtual equivilent of a monkey bashing its head against a keyboard.
Funny you should mention that, because one of the unsolved questions for the theory of Evolution is that even with our current understanding of evolution, life evolves faster than one would expect based purely on DNA mutations alone. A few issues back Nautilus had a excellent article on the problem, and the current work being done to solve this problem:
http://nautil.us/issue/20/creativity/the-strange-inevitabili...
https://card.robinwell.net/f47f6d670450fad68df8ce45d0fa846d....
It uses tournament selection for each next generation.
I ported it to C to try it out for myself. Turning off console output makes it finish almost instantly!