I’ve been working away at my algorithm that finds algorithms using artificial intelligence. It has been pretty successful at finding algorithms that describe mechanically how something works. But just now, perhaps about 2 minutes ago, my latest version not only expressed how something works algorithmically, but why it works that way. It is very cool.
Specifically, I created an sample algorithm that does a process and then after a fixed period of time it switches processes. So my old algorithm could identify both processes but it could not tell you why the algorithm switched; however, it can now say “Oh, and it switches after time X” (it doesn’t actually use natural language of course). Although this example uses a single parameter, time, the algorithm works when there are more parameters and the parameter(s) do not need to be time.
It does have a few limitations. The biggest is that it requires perfect data. Lastly, it is not guaranteed to find a solution if a solution exists (although it has not failed yet). Also it is limited to about five parameters, and no more than twelve processes in the target algorithm. However, I’m only using a single core of a CPU. If I switch this over to using some massive parallelism, I should be able to raise those limits quite a bit.
(The subject line should be “of another algorithm”, not a big deal, but if a mod wants to change it, I wouldn’t object)