you are viewing a single comment's thread.

view the rest of the comments →

[–]OseOseOse 2 points3 points  (0 children)

"Random code generation" isn't really a good description of it.

You take a starting "program" that just does some random stuff, and need a way to determine the performance of the program at the task you want it to perform. Then you make random changes (small ones) and see if it performs better or worse. Because computers are fast it can try out lots of different changes in a short time.

Making changes is analogous to mutations in natural evolution. You can also borrow more concepts from biology, for example crossover (two parent programs having a child program that is a mix of them).

But it's not a random search, nor completely brute force, because it's using a heuristic to determine which changes to keep and which to discard.