遺伝的アルゴリズムについて簡単に紹介するスライドです。 本スライドは、2023/10/11 に開催されたAIミーティング(#AIMTG)にて利用されました。 https://osaka-driven-dev.connpass.com/event/296359/
遺伝的アルゴリズムの簡単な紹介板倉健太(農学博士)
View Slide
はじめに: ナップザック問題2 容量30Lのナップザックが1つと、各々の値段がPi、容積がViであるn個の品物がある。30Lを超えない範囲でいくつかの品物をナップザックに詰め、入れた品物の値段の合計値を最大化するにはどの品物を選べばよいか?画像出典:第2回 数理最適化とは②https://www.chuo-computer.co.jp/archives/10581
遺伝的アルゴリズムについて3 生物は,交叉,突然変異,淘汰を繰り返しながら,環境に適合するように進化画像出典:同志社大学理工学部知的システムデザイン研究室https://se.doshisha.ac.jp/education/laboratory/information/intelligent_system_design.html進化の仕組みをアイデアにして、最適化を行うことはできないか
遺伝的アルゴリズムについて4 遺伝的アルゴリズムのイメージ:個体(サンプル)の交配や自然淘汰、突然変異などを通して、最適な組み合わせやサンプルを得る第一世代 第二世代明るい色: 強交配突然変異
遺伝的アルゴリズムの簡単な例5A, B, C, D…など親をたくさん用意する親 B親 A親 C親 D・・・交配ランダムな場所で遺伝子をかけあわせスコア(ここでは配列の合計)の高い個体を中心にかけ合わせていく自然と強い個体(ここでは配列の合計が高いもの)が残っていくはず…1 0 1 0 1 0 00 1 0 0 1 1 01 0 0 0 1 1 01 0 0 0 1 1 00 1 0 0 1 1 0 [1 0 0 1 0 0 0]などのランダムな0 or 1の配列から[1 1 1 1 1 1 1]を作る
ナップザック問題に沿った簡単な例6画像出典:第2回 数理最適化とは②https://www.chuo-computer.co.jp/archives/10581150円 200円 80円 120円 110円 160円1 1 1 1 1 11L 1.2L 0.3L 0.2L 0.3L 0.4L体積3.4Lで820円買う個数 決められた体積と価格のもと、一定の体積の袋で得をするような詰め方をする [キャベツ かぼちゃ 玉ねぎ トマト ナス リンゴ] の配列の中身を最適化させていく前ページの課題を解くコードを簡単に実装してみた
遺伝的アルゴリズムを簡単に実装してみた結果7画像出典:第2回 数理最適化とは②https://www.chuo-computer.co.jp/archives/10581 結果:次第に増加するものの最大値100には届かない 「突然変異」のオプションを加えない場合50607080901000 200 400 600 800 1000スコア世代数最大値
遺伝的アルゴリズムを簡単に実装してみた結果8画像出典:GMO INTERNET GROUP 遺伝的アルゴリズムで遊んでみるhttps://recruit.gmo.jp/engineer/jisedai/blog/genetic_algorithm/ シンプルな複製や交叉といった操作に加え、突然変異を実装繰り返し、以下のように世代の作成を行い、一定の回数を繰り返す
遺伝的アルゴリズムを簡単に実装してみた結果9 「突然変異」をさせることで、最適な値に収束した50607080901000 200 400 600 800 1000スコア世代数突然変異なし 突然変異あり最大値
まとめ10 遺伝的アルゴリズムについて簡単に紹介しました 遺伝的アルゴリズムはロケットや新幹線の設計などにも使われているそうです画像出典:名古屋大学古橋研究室HPhttps://xn--nuee-9e6f200sf8wb.nagoya-u.ac.jp/labs/furuhasilab/ga.php 機械学習などで重要な変数選択にも利用することができます
参考ページ11 ものづくりの集大成、 N700系が走る! - 三重大学https://www.mie-u.ac.jp/about/pr/item/vol010_9_10.pdf 遺伝的アルゴリズムはロケットや新幹線の設計などにも使われているそうです