私は次の遺伝的プログラミングの問題を抱えています(宿題):5桁(0から9)と任意の演算子(+、-、*、/)を使用して式を生成し、30と答える必要があります。誰か説明してもらえますか遺伝的プログラミングを使用してこれを解決するにはどうすればよいですか?
まず、それは遺伝的プログラミング(GP)の問題です。詳細についてはグーグルで検索できます。
GPでは、各個人はツリー構造を使用して表される1つのコンピュータープログラムを表します。問題では、それは数式を表します。次の図のツリーは、式「3.4-x」の個人を表すことができます。
リーフノードはデジタルセットから選択され、非リーフノードはオペレーターセットから選択されます。
次に、いくつかのクロスオーバー演算子とミューテーション演算子を選択して、式を進化させることができます。
クロスオーバー演算子の場合、次の図に示すように、2つの親のそれぞれで1つのランダムノードを選択し、対応するサブツリーを交換して2つの子孫を作成できます。
また、対応するミューテーション演算子が多数あります。たとえば、ノードをランダムに選択して、デジタル演算子または演算子を変更します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加