Skip to main content

遺伝的プログラミングとは何ですか?

Geneticプログラミングとは、1つのコンピュータープログラムを使用して、進化的アルゴリズムベースの方法論を使用して別のコンピュータープログラムを作成するプロセスです。このプロセスは、多くの場合、リニアプログラミングと比較され、プログラマーはコンピューターが実行するための特定の指示を作成します。LISPとスキームは、高レベルの機能と柔軟性のために、このタイプの作業で最も一般的なプログラミング言語です。生物学的進化との概念的な類似性の結果として、遺伝子プログラミングはバイオインスピレーションのコンピューティングの例としてしばしば引用されます。たとえば、GPを使用して、写真のスケッチを描くプログラムを作成する場合があります。GPが最初に行うことは、ランダムな組み合わせでさまざまなコンピューター描画機能を使用する一連のプログラムを作成することです。その後、GPはこれらの各プログラムを順番に実行し、それぞれの結果を画像ファイルに出力します。このプロセスは一般に、遺伝子プログラミングの最も難しい部分です。図面プログラムの場合、GPは画像比較ソフトウェアを使用して、ソフトウェアが描画しようとしていた画像に最も似ているランダム図面を決定します。ランダムに生成されたプログラムのうち、GPは上部をいくつか選択し、残りを破棄します。選択プロセスはフィットネス評価として知られており、一般に遺伝子プログラミングの最も難しい部分であると考えられています。それぞれの新しいバッチは世代と呼ばれます。新世代を作成する2つの方法は、突然変異とクロスオーバーです。突然変異は、既存のプログラムの1つを取得し、それをランダムに変更することで機能します。繁殖とも呼ばれるクロスオーバーは、2つのトッププログラムを採用し、それらの要素を組み合わせて新しいプログラムを作成することで機能します。、除去、および生成プロセス。GPSは、満足のいく結果を持つ単一のプログラムを見つける前に、数百世代を頻繁に実行します。この制限にもかかわらず、遺伝子プログラミングは、ロボット工学や人工知能の問題など、いくつかのタイプの困難なコンピューティングの問題を解決する一般的な方法です。