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)を始めよう!

43,732 views

Published on

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

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. Introduction 2
  3. 3. 3 Genetic Algorithms Programing Library for JavaScript https://github.com/kzokm/ga.js Samples of Genetic Algorithm http://ga-samples.herokuapp.com/
  4. 4. Today’s Topics 4
  5. 5. 5 What’s GA Meritsof GA GeneticGlossary Genetic Algorithms Chromosome Encodings Encoding Examples Genetic OperationsSelection, Crossover, Mutation New Generation AlternationModel Known Issues Summary
  6. 6. What’s GA 6
  7. 7. 7 生物進化における遺伝と 適者生存による自然淘汰の仕組みを ソフトウェア的に模すことで 複雑な問題に対する最適解を 探索する手法
  8. 8. 8 ある命題に対する解の候補を 遺伝子(gene)とその集合体である 染色体(chromosome)で表現した 個体(individual)を複数用意し、 適応度(fitness)の高い個体を優先して 交叉(crossover)、突然変異(mutation) などの操作を繰り返しながら 最適解の探索をおこなう
  9. 9. 9 N700系新幹線 フロントノーズ(エアロ/ダブル ウィング)の空力設計に際し、 GAを用いて約5000パターンのコン ピュータシミュレーションを行った 結果からデザインを決定した。
  10. 10. 10 ST5計画 NASAのニュー・ミレニアム計画の一 環として行われた技術試験計画Space Technology 5 に用いられた3機の人工 衛星に搭載されたアンテナの形状は、 GAを用いて設計された。
  11. 11. Meritsof GA 11
  12. 12. 12 評価関数の可微分性や単峰性な どの知識がない場合であっても 適用可能。 GAの特徴
  13. 13. 13 必要とされる条件は評価関数の 全順序性と、探索空間が位相 (topology)を持っていること。 GAの特徴
  14. 14. 14 遺伝子の表現の仕方によって、 組合せ最適化問題やNP困難な 問題などのさまざまな問題に対 する適用が可能。 GAの特徴
  15. 15. GeneticGlossary 15
  16. 16. 16 遺伝子(gene) 個体の形質を表すための 基本となる構成要素
  17. 17. 17 染色体(chromosome) 複数の遺伝子の集まり
  18. 18. 18 個体(individual) 1つまたは複数の染色体に よって表現される自律的な個 命題に対する解の候補
  19. 19. 19 集団(population) 様々な個体の集まり
  20. 20. 20 遺伝子座(locus) 染色体上における各遺伝子の 位置
  21. 21. 21 対立遺伝子(allele) ある遺伝子座において遺伝子 がとりうる別の値
  22. 22. A G A T C G Y W Z X Z 遺伝子型(因子型; genotype) 遺伝子を用いた内部表現 22
  23. 23. 表現型(phenotype) 遺伝子によって発現する 形質の外部表現 23
  24. 24. 符号化(encoding) 表現型から遺伝子型への変換 24
  25. 25. 復号化(decoding) 遺伝子型から表現型への変換 25
  26. 26. GeneticAlgorithms 26
  27. 27. 27 1.解を表現する符号化方法を決定する。
  28. 28. 28 1.解を表現する符号化方法を決定する。 2.N個のランダムな個体を含む集団を作成 する。これを「現世代」と呼ぶ。
  29. 29. 29 1.解を表現する符号化方法を決定する。 2.N個のランダムな個体を含む集団を作成する。これを「現世代」と呼ぶ。 3.N個の個体を格納可能な集団を用意する。 これを「次世代」と呼ぶ。
  30. 30. 30 1.解を表現する符号化方法を決定する。 2.N個のランダムな個体を含む集団を作成する。これを「現世代」と呼ぶ。 3.N個の個体を格納可能な集団を用意する。これを「次世代」と呼ぶ。 4.評価関数を用いて、現世代の各個体の 適応度をそれぞれ計算する。
  31. 31. 31 2.N個のランダムな個体を含む集団を作成する。これを「現世代」と呼ぶ。 3.N個の個体を格納可能な集団を用意する。これを「次世代」と呼ぶ。 4.評価関数を用いて、現世代の各個体の適応度をそれぞれ計算する。 5.ある確率で次の3つの操作を行い、そ の結果を次世代に保存する。 1) 現世代から2つの個体を選択する。 2) 選択されれた個体を用いて交叉を行 い、子孫(offspring)を生成する。 3) 交叉によって生成された子孫に対し て、突然変異を適用する。
  32. 32. 32 2.N個のランダムな個体を含む集団を作成する。これを「現世代」と呼ぶ。 3.N個の個体を格納可能な集団を用意する。これを「次世代」と呼ぶ。 4.評価関数を用いて、現世代の各個体の適応度をそれぞれ計算する。 5.ある確率で次の3つの操作を行い、その結果を次世代に保存する。 1) 現世代から2つの個体を選択する。 2) 選択されれた個体を用いて交叉を行い、子孫(offspring)を生成する。 3) 交叉によって生成された子孫に対して、突然変異を適用する。 6.次世代の個体数がN個になるまで5 の操 作を繰り返す。
  33. 33. 33 4.評価関数を用いて、現世代の各個体の適応度をそれぞれ計算する。 5.ある確率で次の3つの操作を行い、その結果を次世代に保存する。 1) 現世代から2つの個体を選択する。 2) 選択されれた個体を用いて交叉を行い、子孫(offspring)を生成する。 3) 交叉によって生成された子孫に対して、突然変異を適用する。 6.次世代の個体数がN個になるまで5の操作を繰り返す。 7.次世代を現世代に移行し、命題が収束 するまで3~6の手順を繰り返す。この 結果を「最終世代」と呼ぶ。 命題の収束を判定する方法として・・・
  34. 34. 34 7.次世代を現世代に移行し、命題が収束するまで3~6の手順を繰り返す。 この結果を「最終世代」と呼ぶ。 命題の収束を判定する方法として、以下のよ うな場合が用いられる。 •集団中の最大適応度が、ある閾値より大き くなった場合 •集団全体の平均適応度が、ある閾値より大 きくなった場合 •集団の適応度増加率が、ある閾値以下の世 代が一定期間続いた場合 •世代交代の回数が規定の最大世代数に達し た場合
  35. 35. 35 7.次世代を現世代に移行し、命題が収束するまで3~6の手順を繰り返す。 この結果を「最終世代」と呼ぶ。 命題の収束を判定する方法として、以下のような場合が用いられる。 ・集団中の最大適応度が、ある閾値より大きくなった場合 ・集団全体の平均適応度が、ある閾値より大きくなった場合 ・集団の適応度増加率が、ある閾値以下の世代が一定期間続いた場合 ・世代交代の回数が規定の最大世代数に達した場合 8.最終世代の中で最も適応度の高い個体 を「解」として出力する。
  36. 36. ChromosomeEncodings 36
  37. 37. 37 解の特徴を 遺伝子として表現する
  38. 38. 38 バイナリエンコーディング (binary encoding) 順列エンコーディング (permutation encoding) 実数値エンコーディング (real encoding) 木構造エンコーディング (tree encoding)
  39. 39. 39 バイナリエンコーディング (binary encoding) 順列エンコーディング (permutation encoding) 実数値エンコーディング (real encoding) 木構造エンコーディング (tree encoding)
  40. 40. 40 バイナリエンコーディング (binary encoding) 各遺伝子を0, 1のビットと して表現する符号化方法
  41. 41. 41 バイナリエンコーディング (binary encoding) 染色体A1001011101101 染色体B 1010011010111
  42. 42. 42 バイナリエンコーディング (binary encoding) 順列エンコーディング (permutation encoding) 実数値エンコーディング (real encoding) 木構造エンコーディング (tree encoding)
  43. 43. 43 順列エンコーディング (permutation encoding) 各遺伝子を順序を示す数字 として表現する符号化方法
  44. 44. 44 順列エンコーディング (permutation encoding) 染色体A2 7 6 4 1 8 3 5 9 染色体B 4 6 1 9 5 7 3 8 2
  45. 45. 45 順列エンコーディング (permutation encoding) 巡回セールスマン問題や仕事 の順序などの並べ替え問題の 表現に用いられる
  46. 46. 46 バイナリエンコーディング (binary encoding) 順列エンコーディング (permutation encoding) 実数値エンコーディング (real encoding) 木構造エンコーディング (tree encoding)
  47. 47. 47 実数値エンコーディング (real encoding) 各遺伝子を数値(または文字) として表現する符号化方法
  48. 48. 48 実数値エンコーディング (real encoding) 染色体A0.51 2.83 3.12 1.50 染色体B AGTCATGCAGCATTA 染色体C 前進前進右後退左
  49. 49. 49 実数値エンコーディング (real encoding) 実数値データなど、バイナリ エンコーディングでは表現が 難しい場合に用いる
  50. 50. 50 バイナリエンコーディング (binary encoding) 順列エンコーディング (permutation encoding) 実数値エンコーディング (real encoding) 木構造エンコーディング (tree encoding)
  51. 51. 51 木構造エンコーディング (tree encoding) 染色体を1本の紐(配列)で はなく、木構造データとして 表現する符号化方法
  52. 52. 52 木構造エンコーディング (tree encoding) + α × β 2 染色体A α+(β×2) 表現型
  53. 53. 53 木構造エンコーディング (tree encoding) 遺伝的プログラミング(Genetic Programming; GP)や進化的プロ グラミング(Evolutionary Programming; EP)などの表現に 用いられる
  54. 54. EncodingExamples 54
  55. 55. 55 ナップザック問題 (Knapsack Problem) 容量Cのナップザックが1つと、各々の 価値がPi、容積がCiであるところのn個 の品物Eiが与えられたとき、Cを超えな い範囲でいくつかの品物をナップザック に詰め、入れた品物の価値の和を最大 化するにはどの品物を選べばよいか?
  56. 56. 56 ナップザック問題を バイナリエンコーディングで表現してみる
  57. 57. 57 n個の荷物→ 遺伝子長(L) = n i番目の荷物→ 遺伝子座(p) = i 荷物Eiを入れる→ 遺伝子[i]= 1 荷物Eiを入れない→ 遺伝子[i] = 0 適応度→ 持っている荷物の総価値 ナップザック問題
  58. 58. 58 荷物 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 + … ナップザック問題
  59. 59. 59 循環セールスマン問題 (TravellingSalesman Problem) n個の都市Ciと、それぞれの都市間の 距離Di,jが与えられているとき、最初の 都市を出発し、全ての都市を経由して、 同じ都市に戻ってくるルートのうち、最 短のルートを求めよ。
  60. 60. 60 循環セールスマン問題を 順列エンコーディングで表現してみる
  61. 61. 61 n個の都市→ 遺伝子長(L) = n i番目に訪れる→ 遺伝子座(p) = i 都市Cx→ 遺伝子[i]= x 適応度→ 循環ルートの総距離 循環セールスマン問題
  62. 62. 62 ルート 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 循環セールスマン問題
  63. 63. GeneticOperations 63
  64. 64. 64 選択 (selection) 交叉 (crossover) 突然変異 (mutation) 繁殖 (reproduction)
  65. 65. 繁殖 (reproduction) 65 選択 (selection) 交叉 (crossover) 突然変異 (mutation)
  66. 66. 66 適応度に基づいて、個体を増やし たり減らしたりするための対象を 選び出す操作。 生物の自然淘汰をモデル化したも の。 選択(selection)
  67. 67. 67 ルーレット方式 (roulette wheel selection) ランキング方式 (ranking selection) トーナメント方式 (tournament selection) エリート主義 (elitism)
  68. 68. 68 ルーレット方式 (roulette wheel selection) ランキング方式 (ranking selection) トーナメント方式 (tournament selection) エリート主義 (elitism)
  69. 69. 69 集団をルーレット盤に見立て、ラ ンダムな選択を行う方式。 各個体の適応度が、ルーレット盤 の面積と比例しており、適応度が 高い染色体ほど選ばれる確率が高 くなる。 ルーレット方式 (roulette wheel selection)
  70. 70. 70 ルーレット方式 (roulette wheel selection) 個体 適応度 A 32 B 12 C 24 D 18 E 10
  71. 71. 71 푝푖= 푓푖 푛=1 푁푓푛 푝푖:= ある個体が選択される確率 푓푖:= 個体の適応度、푁:= 集団サイズ ルーレット方式 (roulette wheel selection)
  72. 72. 72 適応度が正であることが前提。 個体間の適応度の差が大きい場合、 適応度の高い個体の選ばれる確率 が高くなりすぎ、局所的な最適解 への初期収束の原因となる。 ルーレット方式 (roulette wheel selection)
  73. 73. 73 ルーレット方式 (roulette wheel selection) ランキング方式 (ranking selection) トーナメント方式 (tournament selection) エリート主義 (elitism)
  74. 74. 74 ルーレット方式の変形。 適応度によって各個体のランク付 けを行い、「1位なら確率푝1、2位 なら確率푝2、・・・」と事前に決 められた確率を適用する方式。 ランキング方式 (ranking selection)
  75. 75. 75 ランキング方式 (ranking selection) 個体 適応度 A 32 B 12 C 24 D 18 E 10 順位 選択確率 1 0.30 2 0.20 3 0.20 4 0.15 5 0.15
  76. 76. 76 個体間の適応度の差が選択確率に 影響されないが、適応度に差がな い個体であっても選択確率に大き な差が生じる可能性がある。 ランク付けを行うためには世代毎 にソートを行うことが必要。 ランキング方式 (ranking selection)
  77. 77. 77 ルーレット方式 (roulette wheel selection) ランキング方式 (ranking selection) トーナメント方式 (tournament selection) エリート主義 (elitism)
  78. 78. 78 予め決めた個体数(トーナメント サイズ)をランダムに抽出し、そ の中で最も適応度の高い個体を選 択する方式。 トーナメント方式 (tournament selection)
  79. 79. 79 トーナメントサイズを変更するこ とで、選択圧をコントロールする ことが可能。 トーナメントサイズを大きくする ことで選択圧を高めることができ るが、初期収束の原因となる。 トーナメント方式 (tournament selection)
  80. 80. 80 ルーレット方式 (roulette wheel selection) ランキング方式 (ranking selection) トーナメント方式 (tournament selection) エリート主義 (elitism)
  81. 81. 81 予め決めた個数の、最も適応度の 高い個体をそのまま次世代にコ ピーする。 エリート主義 (elitism)
  82. 82. 82 世代間で適応度の最大値が下がら ないことが保証される。 エリートの遺伝子が集団の中で広 まりすぎて、解の多様性が失われ る。 エリート主義 (elitism)
  83. 83. 繁殖 (reproduction) 83 交叉 (crossover) 選択 (selection) 突然変異 (mutation)
  84. 84. 84 選ばれた2つの個体の遺伝子の一 部を入れ替える操作。 生物の交配をモデル化したもの。 交叉(crossover)
  85. 85. 85 各々の染色体において、交叉が発 生する確率。 通常、80%~95%として設定する。 交叉確率(Pc)
  86. 86. 86 基本的な交叉方式
  87. 87. 87 一点交叉 (single point crossover) 二点交叉 (two-point crossover) 多点交叉 (multi-point crossover) 一様交叉 (uniformcrossover) 基本的な交叉
  88. 88. 88 一点交叉 (single point crossover) 二点交叉 (two-point crossover) 多点交叉 (multi-point crossover) 一様交叉 (uniformcrossover) 基本的な交叉
  89. 89. 89 遺伝子が交叉する場所(交叉点; crossover point)をランダムに決定 し、その場所より後ろの遺伝子を 入れ替える。 一点交叉 (single point crossover) 基本的な交叉
  90. 90. 90 染色体1 1001011101101 染色体2 1010011010111 子孫1 1001011010111 子孫2 1010011101101 一点交叉 (single point crossover) 基本の交叉
  91. 91. 91 効率が低いため、現在はあまり 用いられていない。 一点交叉 (single point crossover) 基本的な交叉
  92. 92. 92 一点交叉 (single point crossover) 二点交叉 (two-point crossover) 多点交叉 (multi-point crossover) 一様交叉 (uniformcrossover) 基本的な交叉
  93. 93. 93 2つの交叉点をランダムに決定し、 その間の遺伝子を入れ替える。 二点交叉 (two-point crossover) 基本的な交叉
  94. 94. 94 染色体1 1001011101101 染色体2 1010011010111 子孫1 1001011011101 子孫2 1010011100111 二点交叉 (two-point crossover) 基本的な交叉
  95. 95. 95 一点交叉 (single point crossover) 二点交叉 (two-point crossover) 多点交叉 (multi-point crossover) 一様交叉 (uniformcrossover) 基本的な交叉
  96. 96. 96 3つ以上の交叉点をもつ方法。 二点交叉や一様交叉より良い値が 得られることが殆どないため、あ まり用いられていない。 多点交叉 (multi-point crossover) 基本的な交叉
  97. 97. 97 一点交叉 (single point crossover) 二点交叉 (two-point crossover) 多点交叉 (multi-point crossover) 一様交叉 (uniformcrossover) 基本的な交叉
  98. 98. 98 各遺伝子のそれぞれを所定の確率 (通常は1/2)で入れ替える。 一様交叉 (uniformcrossover) 基本的な交叉
  99. 99. 99 染色体1 1001011101101 染色体2 1010011010111 子孫1 1011011001101 子孫2 1000011110111 一様交叉 (uniformcrossover) 基本的な交叉
  100. 100. 100 2点交叉が得意とする問題を苦手 とし、逆の性質を示す。 ヒッチハイキング問題への対策と して用いられる。 一様交叉 (uniformcrossover) 基本的な交叉
  101. 101. 101 順列エンコーディングに 対応した交叉方式
  102. 102. 102 同じ遺伝子が 重複しないこと 順列の交叉
  103. 103. 103 循環交叉 (cycle crossover; CX) 順序交叉 (order crossover; OX) 一様順序交叉 (order-based crossover; OX2) 一様位置交叉 (position-based crossover; POX) 順列の交叉
  104. 104. 104 部分写像交叉 (partially mapped crossover; PMX) サブツアー交換交叉 (subtourexchange crossover; SXX) 辺組換え交叉 (edge recombination crossover; ERX) 枝組立て交叉 (edge assembly crossover; EAX) 順列の交叉
  105. 105. 105 循環交叉 (cycle crossover; CX) 順序交叉 (order crossover; OX) 一様順序交叉 (order-based crossover; OX2) 一様位置交叉 (position-based crossover; POX) 順列の交叉
  106. 106. 106 双方の親から重複しない組み合わ を選んで、遺伝子の一部ずつを受 け継ぐ。 循環交叉 (cycle crossover; CX) 順列の交叉
  107. 107. 107 染色体1 1 2 3 4 5 6 7 8 9 染色体2 8 41 25 7 9 3 6 サイクル# 1 2 1 2 3 4 4 1 4 子孫1 143257 986 子孫2 8 21456739 循環交叉 (cycle crossover; CX) 順列の交叉
  108. 108. 108 循環交叉 (cycle crossover; CX) 順序交叉 (order crossover; OX) 一様順序交叉 (order-based crossover; OX2) 一様位置交叉 (position-based crossover; POX) 順列の交叉
  109. 109. 109 片方の親からは一部をそのまま受 け継ぎ、残りの部分についてはも う片方の親から相対的な順序を受 け継ぐ。 順序交叉 (order crossover; OX) 順列の交叉
  110. 110. 110 染色体1 1 2 3 4 5 6 7 8 9 染色体2 8 4 2 75 1 9 3 6 子孫1 1 2 3 48 7 5 9 6 子孫2 84 2 7 1 3 5 6 9 順序交叉 (order crossover; OX) 順列の交叉
  111. 111. 111 循環交叉 (cycle crossover; CX) 順序交叉 (order crossover; OX) 一様順序交叉 (order-based crossover; OX2) 一様位置交叉 (position-based crossover; POX) 順列の交叉
  112. 112. 112 一様順序交叉 (order-based crossover; OX2) 順列の交叉 一様に選んだ遺伝座について、一 方の親の遺伝子の出現順序に従っ て、他方の親の遺伝子を並べ替え たものを受け継ぐ。
  113. 113. 113 染色体1 1 2 3 4 5 6 7 8 9 染色体2 8 42 75 1 9 3 6 子孫1 4 2 37 5 61 89 子孫2 8 2 4 65 1 9 3 7 一様順序交叉 (order-based crossover; OX2) 順列の交叉
  114. 114. 114 循環交叉 (cycle crossover; CX) 順序交叉 (order crossover; OX) 一様順序交叉 (order-based crossover; OX2) 一様位置交叉 (position-based crossover; POX) 順列の交叉
  115. 115. 115 一様位置交叉 (position-based crossover; POX) 順列の交叉 一様に選んだ遺伝子を入れ替え、 残りの遺伝子については親と同じ 相対順序になるように配置する。
  116. 116. 116 染色体1 1 2 3 4 5 6 7 8 9 染色体2 8 4 2 75 1 9 3 6 子孫1 24 37 51 96 8 子孫2 82541 6 79 3 一様位置交叉 (position-based crossover; POX) 順列の交叉
  117. 117. 117 部分写像交叉 (partially mapped crossover; PMX) サブツアー交換交叉 (subtourexchange crossover; SXX) 辺組換え交叉 (edge recombination crossover; ERX) 枝組立て交叉 (edge assembly crossover; EAX) 順列の交叉
  118. 118. 118 部分写像交叉 (partially mapped crossover; PMX) 順列の交叉 片方の親P1からは一部をそのまま受け継 ぎ、残りの部分についてはもう片方の親 P2から重複しない遺伝子をそのまま受け 継ぐ。 重複する遺伝子については、P1上で該当 する遺伝子が占める遺伝子座を求め、P2 上の同じ遺伝子座に存在する遺伝子を受 け継ぐ。
  119. 119. 119 染色体1 1 2 3 4 5 6 7 8 9 染色体2 8 4 9 75 1 2 3 6 子孫1 1 2 3 45 8 7 96 子孫2 84 9 7 5 6 2 1 3 部分写像交叉 (partially mapped crossover; PMX) 順列の交叉
  120. 120. 120 部分写像交叉 (partially mapped crossover; PMX) サブツアー交換交叉 (subtourexchange crossover; SXX) 辺組換え交叉 (edge recombination crossover; ERX) 枝組立て交叉 (edge assembly crossover; EAX) 順列の交叉
  121. 121. 121 サブツアー交換交叉 (subtourexchange crossover; SXX) 順列の交叉 それぞれの親の間である共通する 数字の組み合わせからなる部分順 列が存在する場合に、それを交換 する。さらに入れ替えた部分順列 を逆にしたものを含め、合計4個 の子を生成する。
  122. 122. 122 染色体1 1 2 3 4 5 6 7 8 9 染色体2 8 1 7 534 2 9 6 子孫1 1534 2 6 7 8 9 子孫2 8 1 7 2 3 4 59 6 子孫3 1243 5 6 7 8 9 子孫4 8 1 7 5 4 3 29 6 サブツアー交換交叉 (subtourexchange crossover; SXX) 順列の交叉
  123. 123. 123 部分写像交叉 (partially mapped crossover; PMX) サブツアー交換交叉 (subtourexchange crossover; SXX) 辺組換え交叉 (edge recombination crossover; ERX) 枝組立て交叉 (edge assembly crossover; EAX) 順列の交叉
  124. 124. 124 辺組換え交叉 (edge recombination crossover; ERX) 順列の交叉 順列の繋がり(辺)に着目した交叉 方法。双方の親が共通して保有す る辺をなるべく多く受け継ぐよう に子を生成する。
  125. 125. 125 辺組換え交叉 (edge recombination crossover; ERX) 順列の交叉
  126. 126. 126 部分写像交叉 (partially mapped crossover; PMX) サブツアー交換交叉 (subtourexchange crossover; SXX) 辺組換え交叉 (edge recombination crossover; ERX) 枝組立て交叉 (edge assembly crossover; EAX) 順列の交叉
  127. 127. 127 枝組立て交叉 (edge assembly crossover; EAX) 順列の交叉 両親のいずれかが保有する辺のみ を用いて複数のサブツアーに分割 された不完全解を生成する。 サブツアー間を、なるべく短い辺 を用いて接続しなおすことで完全 解を含む子を生成する。
  128. 128. 128 枝組立て交叉 (edge assembly crossover; EAX) 順列の交叉
  129. 129. 129 枝組立て交叉 (edge assembly crossover; EAX) 順列の交叉 経路問題への適用として、計算コ ストと精度の両面から、現時点に おいて最も優れた方法とされてい る。
  130. 130. 130 その他の交叉方式
  131. 131. 131 算術交叉 (arithmetic crossover) 平均化交叉 ブレンド交叉(BLX-α) 単峰性正規分布交叉(UNDX) シンプレックス交叉(SPX) その他の交叉
  132. 132. 132 突然変異 (mutation) 選択 (selection) 交叉 (crossover) 繁殖 (reproduction)
  133. 133. 133 個体の遺伝子の一部をランダムに 変化させる。 生物における突然変異をモデル化 したもの。 局所解に陥ることを防ぐ効果があ る。 突然変異(mutation)
  134. 134. 134 各々の染色体において、突然変異が 発生する確率。 通常、0.1%~1%、高くても数%とし て設定する。 確率が低すぎると局所解に陥りやす くなり、高すぎるとランダム探索に 近づいて解が収束しにくくなる。 変異確率(Pm)
  135. 135. 135 置換(substitution) 摂動(perturbation) 交換(swap) 逆位(inversion) 撹拌(scramble) 転座(translocation)
  136. 136. 136 重複(duplication) 挿入(insertion) 欠失(deficiency; deletion)
  137. 137. 137 置換(substitution) ランダムに選ばれた遺伝子を対立 遺伝子に置き換える。 染色体 1001011101101 変異後 1000011111101
  138. 138. 138 摂動(perturbation) ランダムに選ばれた遺伝子の値に 微量値を加算(または減算)する。 染色体 0.51 2.83 3.12 1.50 変異後 0.512.763.12 1.50
  139. 139. 139 交換(swap) ランダムに選ばれた2つの遺伝子 を入れ替える。 染色体 12 3 4 5 6 7 8 9 変異後 1 2 64 5 37 8 9
  140. 140. 140 逆位(inversion) ランダムに選ばれた2点間の遺伝 子を逆順に並べ替える。 染色体 1001011101101 変異後 1000111011101
  141. 141. 141 撹拌(scramble) ランダムに選ばれた2点間の遺伝 子をランダムに並べ替える。 染色体 1001011101101 変異後 1000110111101
  142. 142. 142 転座(translocation) ランダムに選ばれた2点間の遺伝 子を別の遺伝子座に移動する。 染色体 1001011101101 変異後 1001110111001
  143. 143. 143 重複(duplication) ランダムに選ばれた2点間の遺伝 子を別の遺伝子座に複製する。 染色体 1001011101101 変異後 1011011101101101 遺伝子長が変化
  144. 144. 144 挿入(insertion) ランダムに選ばれた場所に任意の 遺伝子を挿入する。 染色体 1001011101101 変異後 100100111101101 遺伝子長が変化
  145. 145. 145 欠失(deficiency; deletion) ランダムに選ばれた遺伝子を削除 する。 染色体 1001011101101 変異後 1000111101 遺伝子長が変化
  146. 146. New Generation AlternationModel(世代交代モデル) 146
  147. 147. 147 離散世代モデル (discrete generation model) 連続世代モデル (continuous generation model)
  148. 148. 148 離散世代モデル (discrete generation model) 連続世代モデル (continuous generation model)
  149. 149. 149 離散世代モデル (discrete generation model) 全ての個体が一斉に繁殖を行い、 現世代集合全体が次世代集合に置 き換えられるモデル。 世代間における個体のオーバー ラップが存在しない。
  150. 150. 150 単純GAモデル (simple GA) ルーレット選択と交叉・突然変異を 用いて、親世代と同数の子個体を生 成し、子個体のみを次世代として残 す。 初期収束による局所解の発生や、進 化的停滞が起こりやすい。 離散世代モデル
  151. 151. 151 離散世代モデル (discrete generation model) 連続世代モデル (continuous generation model)
  152. 152. 152 連続世代モデル (continuous generation model) 現在の世代のうち一定の割合の個 体だけを入れ替え、のこりはその まま次世代に残すモデル。
  153. 153. 153 世代ギャップ (generation gap) 離散世代モデルにおいて、各世代の 個体のうち次世代と入れ替えるもの の割合。 離散世代モデル
  154. 154. 154 定常状態モデル (steady state) 1世代につき1組(2個)の親個体 から子個体を生成し、現世代のうち 最も適応度の低い個体と入れ替える。 離散世代モデル
  155. 155. 155 世代間最小ギャップモデル (minimum generation gap; elitist recombination) ランダムに選択された親個体2個と、 そこから作られる子個体2個を1つの 「家族」とする。 家族の中でエリート選択とルーレット 選択により、2個体を次世代に残す。 これを家族の数だけ繰り返す。 離散世代モデル
  156. 156. 156 世代間最小ギャップモデル (minimum generation gap; elitist recombination) 親子個体の選択を適応度を考慮せずに ランダムに行うため、多様性維持に優 れており、初期収束が起こりにくい。 家族内で選択を行うため、計算負荷が 軽く、並列計算への適応もしやすい。 離散世代モデル
  157. 157. KnownIssues 157
  158. 158. 158 初期収束 ヒッチハイキング
  159. 159. 159 初期収束 ヒッチハイキング
  160. 160. 160 初期収束 最初の方の世代で「偶然」他の個 体より適応度が圧倒的に高い個体 が生じた場合、その個体の遺伝子 が集団中に爆発的に増えて、探索 がかなり早い段階で収束してしま う現象。
  161. 161. 161 各パラメータを繰り返し設定し なおしてトライするしかない。 初期収束への対策
  162. 162. 162 •集団数を増やす •ランキングの選択確率を変更す る •トーナメントサイズを縮小する •突然変異率を増やす •適用する問題にたいして効果的 となるよう、突然変異操作を変 更する 初期収束への対策
  163. 163. 163 大変異 あらかじめ定めた条件に応じて、 特定の世代においてのみ突然変 異率を急激に高める方法。 自然界における環境の激変(隕 石の激突など)に相当する。 初期収束への対策
  164. 164. 164 初期収束への対策 大変異 0% 10% 20% 30% 40% 50% 60% 1 100 200 300 400 500 例えば… 通常1%に設定した突然変異率を、 100で割り切れる世代のみ50%とする。
  165. 165. 165 適応変異 親個体間の不一致度合い(ハミ ング距離)に応じて、生成され た子個体の突然変異率を変化さ せる。 初期収束への対策
  166. 166. 166 初期収束への対策 適応変異 染色体1 1001011101101 染色体2 1010011010111 染色体1 1001011101101 染色体2 1000011100111 ハミング距離=6→ 突然変異率=1% ハミング距離=2→ 突然変異率=8% 例えば…
  167. 167. 167 初期収束 ヒッチハイキング
  168. 168. 168 ヒッチハイキング 遺伝子操作時に最適解と一致しな い遺伝子が混入してしまうことに よって最適解の生成を妨げる現象。 2点交叉で発生しやすい。
  169. 169. 169 最適解= …11110100000… に対して、 親1= …11110000000… 親2 = …11111110000… が交叉して 最適解を得られる確率p は・・・ ヒッチハイキング
  170. 170. 170 二点交叉の場合、 푝= 2 퐿(퐿−1) (L=遺伝子長) 遺伝子長が増加するにつれて、 加速度的に確率が低下する。 ヒッチハイキング
  171. 171. 171 しかし、 一様交叉であれば、 푝= 223= 14 となり、遺伝子長に依存しない。 ヒッチハイキング
  172. 172. Summary 172
  173. 173. 173 GAとは、 生物の遺伝を模したアルゴリズム。 適者生存による自然淘汰で最適解 を探索することができる。 対象となる問題に関する数学的な 知識がない場合でも適用が可能。 まとめ
  174. 174. 174 問題の性質に適したエンコーディ ングと交叉方法を選ぶことが重要。 組み合わせの増加などにより指数 関数的に複雑さが増加する問題に 対しても、線形的な時間増加で探 索を行うことができる。 まとめ
  175. 175. 175 局所最適解への収束を防ぐために、 状態に応じて突然変異の方法や、 確率、トーナメントサイズなどの パラメータを変えることも必要。 まとめ
  176. 176. 176 GAで いろいろな問題を 解いてみよう! まとめ
  177. 177. 177 Genetic Algorithms Programing Library for JavaScript https://github.com/kzokm/ga.js Samples of Genetic Algorithm http://ga-samples.herokuapp.com/
  178. 178. Copyright ©2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. http://aitc.jp https://www.facebook.com/aitc.jp ハルミン AITC非公式イメージキャラクター

×