Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

遺伝的アルゴリズム (Genetic Algorithm)を始めよう! 【簡略版】

3,178 views

Published on

2014年11月度 AITC クラウド・テクノロジー活用部会 勉強会資料
遺伝的アルゴリズム (Genetic Algorithm)を始めよう!

詳細版はこちら
http://www.slideshare.net/kzokm/genetic-algorithm-41617242

Published in: Technology
  • Be the first to comment

遺伝的アルゴリズム (Genetic Algorithm)を始めよう! 【簡略版】

  1. 1. Copyright ©2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 2014年11月17日 先端IT活用推進コンソーシアム クラウド・テクノロジー活用部会 勉強会資料 岡村和英(株式会社テクリエ) 遺伝的アルゴリズム () を始めよう 【簡略版】
  2. 2. 2 Today’s Topics What’s GA Genetic Algorithms Examples Known Issues Summary
  3. 3. What’s GA 3
  4. 4. 4 生物進化における遺伝と 適者生存による自然淘汰の仕組みを ソフトウェア的に模すことで 複雑な問題に対する最適解を 探索する手法
  5. 5. 5 N700系新幹線 フロントノーズ(エアロ/ダブル ウィング)の空力設計に際し、 GAを用いて約5000パターンのコン ピュータシミュレーションを行った 結果からデザインを決定した。
  6. 6. 6 ST5計画 NASAのニュー・ミレニアム計画の一 環として行われた技術試験計画Space Technology 5 に用いられた3機の人工 衛星に搭載されたアンテナの形状は、 GAを用いて設計された。
  7. 7. 7 評価関数の可微分性や単峰性な どの知識がない場合であっても 適用可能。
  8. 8. 8 必要とされる条件は評価関数の 全順序性と、探索空間が位相 (topology)を持っていること。
  9. 9. 9 遺伝子の表現の仕方によって、 組合せ最適化問題やNP困難な 問題などのさまざまな問題に対 する適用が可能。
  10. 10. GeneticAlgorithms 10
  11. 11. 11 単純GAモデル (simple GA) ルーレット選択と交叉・突然変異を 用いて、親世代と同数の子個体を生 成し、子個体のみを次世代として残 す。 初期収束による局所解の発生や、進 化的停滞が起こりやすい。
  12. 12. 12 適用する問題の解の特徴を 遺伝子として表現する 符号化(encoding)
  13. 13. 13 選択 (selection) 交叉 (crossover) 突然変異 (mutation) 繁殖 (reproduction)
  14. 14. 14 適応度に基づいて、個体を増やし たり減らしたりするための対象を 選び出す操作。 生物の自然淘汰をモデル化したも の。 選択(selection)
  15. 15. 15 集団をルーレット盤に見立て、ラ ンダムな選択を行う方式。 各個体の適応度が、ルーレット盤 の面積と比例しており、適応度が 高い染色体ほど選ばれる確率が高 くなる。 ルーレット方式 (roulette wheel selection) 選択
  16. 16. 16 ルーレット方式 (roulette wheel selection) 個体 適応度 A 32 B 12 C 24 D 18 E 10 選択
  17. 17. 17 選ばれた2つの個体の遺伝子の一 部を入れ替える操作。 生物の交配をモデル化したもの。 交叉(crossover)
  18. 18. 18 2つの交叉点をランダムに決定し、 その間の遺伝子を入れ替える。 二点交叉 (two-point crossover) 交叉
  19. 19. 19 染色体1 1001011101101 染色体2 1010011010111 子孫1 1001011011101 子孫2 1010011100111 二点交叉 (two-point crossover) 交叉
  20. 20. 20 個体の遺伝子の一部をランダムに 変化させる。 生物における突然変異をモデル化 したもの。 局所解に陥ることを防ぐ効果があ る。 突然変異(mutation)
  21. 21. 21 逆位(inversion) ランダムに選ばれた2点間の遺伝 子を逆順に並べ替える。 染色体 1001011101101 変異後 1000111011101 突然変異
  22. 22. Examples 22
  23. 23. 23 Genetic Algorithms Programing Library for JavaScript https://github.com/kzokm/ga.js Samples of Genetic Algorithm http://ga-samples.herokuapp.com/
  24. 24. 24 ナップザック問題 (Knapsack Problem) 容量Cのナップザックが1つと、各々の 価値がPi、容積がCiであるところのn個 の品物Eiが与えられたとき、Cを超えな い範囲でいくつかの品物をナップザック に詰め、入れた品物の価値の和を最大 化するにはどの品物を選べばよいか?
  25. 25. 25 ナップザック問題を バイナリエンコーディングで表現してみる
  26. 26. 26 バイナリエンコーディング (binary encoding) 各遺伝子を0, 1のビットと して表現する符号化方法 例) 染色体A1001011101101 染色体B 1010011010111
  27. 27. 27 n個の荷物→ 遺伝子長(L) = n i番目の荷物→ 遺伝子座(p) = i 荷物Eiを入れる→ 遺伝子[i]= 1 荷物Eiを入れない→ 遺伝子[i] = 0 適応度→ 持っている荷物の総価値 ナップザック問題
  28. 28. 28 荷物 E1 E2 E3 E4 E5 E6 E7 … En 重さ(Ci) Kg 0.9 1.1 0.7 1.4 0.5 1.3 1.1 1.6 価値(Pi) $ 1.0 1.3 0.9 1.5 0.5 1.1 1.2 1.4 遺伝子表現 [ 1 0 0 1 0 1 0 … 0 ] 重さ≦C Kg 0.9 + 1.4 + 1.3 + … 適応度 1.0 + 1.5 + 1.1 + … ナップザック問題
  29. 29. 29
  30. 30. 30 循環セールスマン問題 (TravellingSalesman Problem) n個の都市Ciと、それぞれの都市間の 距離Di,jが与えられているとき、最初の 都市を出発し、全ての都市を経由して、 同じ都市に戻ってくるルートのうち、最 短のルートを求めよ。
  31. 31. 31 循環セールスマン問題を 順列エンコーディングで表現してみる
  32. 32. 32 順列エンコーディング (permutation encoding) 各遺伝子を順序を示す数字 として表現する符号化方法 例) 染色体A2 7 6 4 1 8 3 5 9 染色体B 4 6 1 9 5 7 3 8 2
  33. 33. 33 n個の都市→ 遺伝子長(L) = n i番目に訪れる→ 遺伝子座(p) = i 都市Cx→ 遺伝子[i]= x 適応度→ 循環ルートの総距離 循環セールスマン問題
  34. 34. 34 ルート 1 2 3 4 5 6 7 … n 訪れる都市 C5 C8 C2 C7 C9 C1 C3 C4 次の都市ま での距離 D5,8 D8,2 D2,7 D7,9 D9,2 D1,3 D3,x C4,5 遺伝子表現 [ 5 8 2 7 9 1 3 … 4 ] 適応度 1D5,8+D8,2+D2,7+D7,9+D9,2+D1,3+D3,x+…+C4,5 循環セールスマン問題
  35. 35. 35
  36. 36. KnownIssues 36
  37. 37. 37 初期収束 最初の方の世代で「偶然」他の個 体より適応度が圧倒的に高い個体 が生じた場合、その個体の遺伝子 が集団中に爆発的に増えて、探索 がかなり早い段階で収束してしま う現象。
  38. 38. 38 各パラメータを繰り返し設定し なおしてトライするしかない。 初期収束への対策
  39. 39. 39 •集団数を増やす •ランキングの選択確率を変更す る •トーナメントサイズを縮小する •突然変異率を増やす •適用する問題にたいして効果的 となるよう、突然変異操作を変 更する 初期収束への対策
  40. 40. 40 ヒッチハイキング 遺伝子操作時に最適解と一致しな い遺伝子が混入してしまうことに よって最適解の生成を妨げる現象。 2点交叉で発生しやすい。
  41. 41. 41 最適解= …11110100000… に対して、 親1= …11110000000… 親2 = …11111110000… が交叉して 最適解を得られる確率p は・・・ ヒッチハイキング
  42. 42. 42 二点交叉の場合、 푝= 2 퐿(퐿−1) (L=遺伝子長) 遺伝子長が増加するにつれて、 加速度的に確率が低下する。 ヒッチハイキング
  43. 43. 43 しかし、 一様交叉であれば、 푝= 223= 14 となり、遺伝子長に依存しない。 ヒッチハイキング
  44. 44. Summary 44
  45. 45. 45 GAとは、 生物の遺伝を模したアルゴリズム。 適者生存による自然淘汰で最適解 を探索することができる。 対象となる問題に関する数学的な 知識がない場合でも適用が可能。 まとめ
  46. 46. 46 問題の性質に適したエンコーディ ングと交叉方法を選ぶことが重要。 組み合わせの増加などにより指数 関数的に複雑さが増加する問題に 対しても、線形的な時間増加で探 索を行うことができる。 まとめ
  47. 47. 47 局所最適解への収束を防ぐために、 状態に応じて突然変異の方法や、 確率、トーナメントサイズなどの パラメータを変えることも必要。 まとめ
  48. 48. 48 GAで いろいろな問題を 解いてみよう! まとめ
  49. 49. 49 Genetic Algorithms Programing Library for JavaScript https://github.com/kzokm/ga.js Samples of Genetic Algorithm http://ga-samples.herokuapp.com/
  50. 50. 50 遺伝的アルゴリズム(Genetic Algorithm)を始めよう【詳細版】 http://www.slideshare.net/kzokm/ genetic-algorithm-41617242
  51. 51. Copyright ©2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. http://aitc.jp https://www.facebook.com/aitc.jp ハルミン AITC非公式イメージキャラクター

×