I’m starting to mull ways to use generic algorithms on a decentralised network. Thoughts?
A couple of intriguing threads:
executable genotype of immutable function() (in JSON, RDF?) = automata
parallelism via client with subpopulation (eg web app). Social/viral app?
This post is just to see if anyone else is interested in the area and have ideas or know of relevant work we can gather together.
One guy (also a world YoYo champion) has created a couple of web based demos which are great to watch, and you can tweak them a bit too. The first attempts to evolve a ‘walker’ (two dimensional humanoid), but I find the second even more interesting to watch, racing cars against each other to evolve a better car! These are only two of the projects I found, posting here because they are fun :
I just found a freeware program I wrote back in the 80’s on the internet archive and you can run it in the DOS emulator! It’s called the Genetic Algorithm Workbench and has a graphical (WIMP) UI (see/run/download it here!). I used it to help market services to apply GAs to engineering problems and wrote it, including the whole WIMP/multitasking bit to learn C++ (anyone remember Zortech C++?). We got some work with oil companies using and customising various tools for their applications. I haven’t played with GAs since then but they never left my interest. My original interest was looking for ways to evolve code rather than write it, so I’m still curious about that - hence the bit in the above bullets about functions/automata.
Please reply if you are interested and fancy investigating GAs and thinking about ways to implement them on the network and post anything you think might be helpful. For now I’m thinking only of client side apps that could be implemented with the existing APIs.
- musing about a Decentralised Open Ended Evolutionary Search App (here)
- I’ve been digging and learning from the Uber Labs presentation Recent Advances in Population-Based Search for Deep Neural Networks: Quality Diversity, Indirect Encodings, and Open-Ended Algorithms posted below by David which is fantastic. For anyone whose interest is piqued I recommend it, and have located the slides (pdf) and their code at Uber Research on github. Their research seems to have culminated in the Go-Explore algorithm which has solved previously unsolved problems and performs ahead of humans and other algorithms on a platform game. At the end of the presentation they highlight the ‘three pillars’ underlying the kind of “Open Ended Evolution” algorithm that this represents, which they explore with the techniques of Novelty Search • Quality Diversity • Open-Ended Search • Indirect Encoding. These are each fascinating in their own right, and the presentation does a fantastic job of explaining how and why they work, and how they come together to advance the effort to create powerful general computational AI.
- Unison language is interesting for distributed computation / GAs on SAFE. See: unisonweb.org and github