質問: (Child[i][kazu2] + 1) % 2; } } }
回答: 値が一度小さくなるのは親世代での最適値がうまくコピーされてないからだと思います。自分がよく使うGAは 1.配列にランダムデータ作成 2.評価 3.評価の良い順で一定確率Aで配列内に適宜コピー 4.一定確率Bで交差 5.一定確率Cで突然変異 6.2.に戻る こんな感じです。A,B,Cのパラメータ変えると収束率が変わります。整数型の最適化問題では解の空間が滑らかではないので局所最大化問題とは別に、局所の山に崖があって、崖から転げ落ちる状態が発生します。現状では前世代での最適な遺伝子が(交差や突然変異で)死亡するので解の値が悪くなっています。つまり死亡率が高いので要素の数を増やし優秀な遺伝子が生き残る確率を上げたほうがいいでしょう。 すごく単純な解決としては前回最適な値を無傷で次世代に残したら解が後退することはないですね。