先日遺伝的アルゴリズムについて勉強し、
淘汰方法はランキングの上位5位を選抜し、その中からランダムに5個選んでそれを交配させる
交配方法は2点交叉
1世代あたりの個体数は20
遺伝子の長さは20
突然変異を1/10
と言う条件でワンマックス問題を解いてみたいのですが思ったよりもずっと収束が早く100世代で最高値の20を割り出しました。
これならワンマックス問題じゃなくてツーマックス問題もいけるんじゃないかと思い実装してみたところ、良くても35くらいで収束してしまい(最高値40)、10000世代までやっても変化はありませんでした。
変なところで収束を起こしてしまっているのではないかと考え、同じように100回世代交代を繰り返したグループを5個用意してそこから更に淘汰する
と言う方法も試してみたのですがやはり同じような結果になりうまくいきませんでした。
自分は遺伝的アルゴリズムをニューラルネットワークに繋げたいと考えているのですが、これでは重みの交換を変なところでしてしまうのではないかと不安になってしまいます。
私の考え方ややり方について間違っているところがありましたら教えて欲しいです。
よろしくお願いします。
あなたの回答
tips
プレビュー