トピックス プログラム、シミュレーション 数学

遺伝子が数式の最適解を見つける?

投稿日:

AIあるいは量子コンピュータ関数の最適解を算出させる場合に、極小値が複数あるとその内の一つにハマってしまい抜け出せなくことがあります。これを防ぐために「遺伝子アルゴリズム」があります。遺伝子交叉突然変異を利用するのです。

資料ご覧ください。→ 遺伝子アルゴリズム

Excelファイルです → 遺伝子アルゴリズム

p.1 左上の関数は右図のように2つの極小値があります。最適解Bを求めたいのに、A点でトラップされてしまうことがあります。その際、「遺伝子アルゴリズム」でこのような状況を防止可能です。乱数を利用した突然変異を利用して抜け出します。 このサイクルを繰り返すと最適解が得られます。今回は6回目と7回目に出現しました。そこで終了です。

p.2 16進数の4桁の数値を遺伝子として4組適当に選び、10進数にして関数のに代入して4つ算出します。4つyの中で小さい方から2組選びその遺伝子を「」とします。この親の4桁の数字の前2つと後ろ2つを「交叉」させて新たな遺伝子を2組作ります。 次に乱数を発生させて4組の遺伝子から1組を選び、4桁の内の1桁を書換えます。「0」なら「1」、「1」なら「0」にします。これを突然変異の遺伝子とします。これを含めた4組の遺伝子のyを算出して小さい方から2組の遺伝子を選択して「」とします。このサイクルを複数回繰り返します。複数回、最小値が得られた時点で終了です。

-トピックス, プログラム、シミュレーション, 数学

Copyright© 進化するガラクタ , 2019 All Rights Reserved Powered by STINGER.