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