ニューラルネットワークは、進化するプログラムには特に適していません。それらの強さは分類にある傾向があります。誰かが試したとしても、聞いたことがありません(ニューラルネットワークにほとんど触れていないことを考えると、驚くことではありませんが、現在、一般的なAI分野で活躍しています)。
ニューラルネットワークがプログラムの生成に役立たない主な理由は、ニューラルネットワークが基本的に数式(関数ではなく数値)を表すためです。数値入力が与えられると、数値出力が得られます。単純な算術よりも複雑なプログラムのコンテキストでこれらを解釈することは困難です。
遺伝的プログラミングは伝統的に純粋な関数型言語であるLispを使用し、プログラムはしばしば樹形図として表示されます(これは時々いくつかのニューラルネットワーク図に似ています-これはあなたの混乱の原因ですか?)。プログラムは、プログラム間でツリーのブランチ全体(関数とそのすべてのパラメーター)を交換するか、ブランチ全体をランダムに再生成することによって進化します。
確かに、これらのトピックの両方について、多くの良い(そして多くの悪い)参照があります-あなたが実際に何に興味を持っているのかが明確でないため、それらをリストすることは控えます。ウィキペディアはこれらのテクニックのそれぞれをカバーしています。良い出発点。