Применение к нескольким входам и проверка процента правильных ответов.
Правда, правильная / неправильная мера пригодности не может развиваться в сторону большей правильности, но алгоритм, тем не менее, может применять изменяемую функцию к любому вводу, необходимому для получения решения, которое будет правильным или неправильным. Таким образом, вы продолжаете мутировать алгоритм, и для каждой измененной версии алгоритма вы применяете его, скажем, к 100 различным входам, и вы проверяете, сколько из них оно получило. Затем вы выбираете те алгоритмы, которые дали больше правильных ответов, чем другие. Кто знает, в конце концов вы можете увидеть тот, кто все уладит.
Литературных ссылок нет, я только что придумал.