Javaでの遺伝的アルゴリズムの実装について
別のWebサイトでも質問させていただいているのですが、
double[][] a={
{1,1,1,1,1,1,1,1,1,1},
{1,2,1,4,1,1,1,8,1,1},
{2,2,2,2,2,2,2,2,2,2},
{2,2,2,3,2,2,2,3,2,2},
{2,2,2,2,2,4,2,2,3,2},
};
のように予め決められている2次元配列(a[0],a[1],a[2],a[3],a[4]それぞれが遺伝子)と、
double[] fitness={50,100,60,90,120};
のように遺伝子それぞれに対応している適応度があるとして、(適応度は別プログラムで計算済み)
遺伝的アルゴリズムで予め設定された遺伝子と適応度をエリート及びルーレット選択、交叉、突然変異を行う(一世代のみ)プログラムをJavaを用いて作りたいのですが、
Web上にある例となるClassは初期集団をランダムで生成した上で、ランダムに生成された遺伝子に対し適応度計算を行い、それを選択、交叉、突然変異を行うClassに投げるものがほとんんどです。
なので、適応度計算を行わずに既にある遺伝子と適応度をどのようにして結びつけるのか、もともとランダムに生成された遺伝子に適応度計算を行うこと、複数世代行うことを前提に設計されている選択・交叉・突然変異等のClassをどう変更すればよいのかわからず、手詰まりになってしまいました。
周りの知り合いに聞いても、Javaは少しならわかるが専門外、遺伝的アルゴリズムは勉強したことがない人ばかりなので、聞きたくても聞けない状況となっております・・・。
遺伝的アルゴリズム及びJavaに詳しい方、どなたか実装例を教えていただけないでしょうか?
参考にさせていただいたURL:http://www.ics.kagoshima-u.ac.jp/edu/ProgramingJava/samples/SimpleGA/step1/index.html#GA%20%E3%82%AF%E3%83%A9%E3%82%B9
お礼
ご回答ありがとうございます。 論文に目を通してはいたものの、まだ英語の論文に不慣れで記述部分を探すことができなかったようです。 ご丁寧にありがとうございました。