2016-07-30 1 views
-1

私は、以下の遺伝的プログラミングの問題(宿題)を持っている: 私は5桁の数字(0〜9)と、任意の演算子を使用する必要があります - 生成する(+、*、/)を30という答えを私に与えるための式誰もが遺伝的プログラミングを使ってこれを解決する方法を説明できますか?遺伝的アルゴリズム(数字と演算子を使用して式を見つける)

+0

(1 + 2 + 3)(0) – MrEhawk82

+0

楽しい宿題のような音です。それをやりなさい。おそらくあなたのテキストは、そのようなことがどのように機能するかを説明します。 –

答えて

0

まず、遺伝的プログラム作成(GP)問題です。詳細はgoogleを参照してください。

GPでは、各個人がツリー構造を使って表される1つのコンピュータプログラムを表します。あなたの問題では、それは数学的表現を表します。フォローピクチャのツリーは、表現「3.4-x」の個々を表すことができます。

enter image description here

リーフノードあなたのデジタルセットから選んだ、とオペレータセットから非リーフノードれます。

次に、クロスオーバー演算子と突然変異演算子を選択して、式を進化させることができます。交叉オペレータについて

は、次の図に示すように、2個のO FFのばね作成するために、対応するサブツリーを交換し、その後、両親のそれぞれの一方のランダムなノードを選択することができます。

enter image description here

また、ランダムデジタル又はオペレータを変更するノードを選択operators.For例えば、多くの対応する変異があります。

関連する問題