Genetic Algorithms

This has come out pretty often in research (explicitly mentioned here: 202005201800), and I remember that Lucas was specifically working on an LSTM relating to the genetic algorithm. Not sure how far it developed.

genetic_algorithmgenetic_algorithm

A Genetic Algorithm is basically a random program. You generate it, with a few dozen mutated copies, and then apply it to the problem. The individual programs that get closest to the answer are kept, cross-bred” and then used to generate a new line of mutants. Repeat for thousands of generations, and you can get a program that no human being wrote, that solves problems in a way that may be totally unexpected, or even incomprehensible.

The best example of this that I know of was a FPGA (Field Programmable Gate Array) that was driven by a genetic algorithm to find the smallest circuit that could distinguish between two frequencies fed into an input pin. The best a human had done used about 1000 gates.

After many generations, they had a version that was 100% correct, and used a mere 37 logic gates. No one could understand how it worked. So, they connected it to a debugger circuit…

… and it stopped working.

They reconnected it to the original circuit, and it produced a 100% correct solution. Even connecting it to a copy of the original circuit didn’t work.

Apparently, it relied on some effect in the circuitry of the original board that didn’t exist in any other copy. It had learned so well, that it was using a signal that shouldn’t have existed to get the right answer.


uid: 202007151246 tags: #algorithms


Date
February 22, 2023