Как уже говорилось ранее, это называется Генетическое программирование (GP).
Интересно то, что GP - это систематический, независимый от домена метод получения компьютеров для автоматического решения проблем, начиная свысокоуровневое изложение того, что необходимо сделать.
Используя идеи естественной эволюции, ГП начинает с популяции случайных компьютерных программ и постепенно совершенствует их посредством процессов мутации и кроссовера (рекомбинации), пока не появятся решения.
Все это без необходимости заранее знать или указывать форму или структуру решений.
ГП произвела множество конкурентоспособных для человека результатов и приложений , включая новые научные открытия и патентоспособные изобретения (см. Также Каковы хорошие примеры генетических алгоритмов / решений для генетического программирования?).
Мне было интересно, какие мутации могут быть внутри программы
Существует много генетических операторов (не только мутаций) и много реализаций.Фундаментальное свойство, которое они должны иметь, это замыкание (они должны поддерживать структурную целостность генетической программы).
В общем случае мутация заменяет символ программы совместимым терминалом / функциейвыбирается из группы доступных символов.Оператор кроссовера смешивает информацию двух или более программ.
Вероятно, лучшее бесплатное введение в предмет - Полевое руководство по генетическому программированию
Вот несколько полезных ссылок: