概要 遺伝的アルゴリズムって名前は聞くけど、そういえば実装したことなかったなと思い、Pythonで実装してみました。 特に目新しい要素はないですが、自分のメモの為に書いておきます。 遺伝的アルゴリズム 遺伝的アルゴリズムは、ある問題に対する解の候補を遺伝子に見立て、それを交叉したり突然変異させたりして最適解を求めるアルゴリズムです。 既に様々な研究が行われている分野なので、詳しい説明はWikipediaの遺伝的アルゴリズムのページを見た方が参考になります。 扱う問題 今回は遺伝的アルゴリズムでOne Max問題を解くためのプログラムを実装しました。 One Max問題と書くと面倒くさそうに見えますが、実際はとても単純で、0と1で表された [1,0,0,1,0] といった配列があった場合、 [1,1,1,1,1] のように配列の中身を全て1にするのがこの問題の目的です。 アルゴリズムの流れ