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.

できる!遺伝的アルゴリズム

52,766 views

Published on

オープンソースカンファレンス 2009 Hokkaido with LDD での遺伝的アルゴリズムの説明です。

Published in: Technology
  • うー,,遺伝子概念が必要なのだが....
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

できる!遺伝的アルゴリズム

  1. 1. できる! 遺伝的 アルゴリズム CLR/H  前鼻 毅
  2. 2. 自己紹介 ・前鼻 毅(まえはな つよし) ・ふつうの 基幹系 SE 兼 PM ・ 文系 大学出身 ・大体 スープカレー で出来ている ・ 数学ガール いいよね! twitter:sandinist , mixi:mae
  3. 3. 自己紹介 ・ C# 使ってます。 ・ CLR/H ・関数型言語勉強会 ・数学勉強会 とかによく行ってます。 質問は twitter:@sandinist
  4. 4. 概要 ・遺伝的アルゴリズムについて、   知識のない方を対象 に説明します。 ・遺伝的アルゴリズムを   実装例を元に解説 します。
  5. 5. 遺伝的アルゴリズムは ・ どんな もの? ・何に使える? ・ どうやって いるの? ・どこまでできるのか?
  6. 6. 目的 ・遺伝的アルゴリズムが   どんなものか 分かる
  7. 7. 目的 Ex Ex. 遺伝的アルゴリズムを   実装できそう だと思う
  8. 8. 遺伝的 アルゴリズム http://www.flickr.com/photos/fmc550uz/3446971252
  9. 9. そのまえに…
  10. 10. アルゴリズムとは <ul><li>・問題を解くための </li></ul><ul><li>  効率的手順 を </li></ul><ul><li> 定式化した形で表現したもの </li></ul><ul><li>例 </li></ul><ul><li> 数列から </li></ul><ul><li> 最大の数を見つけるアルゴリズム </li></ul>
  11. 11. 遺伝的アルゴリズム <ul><li>・遺伝的アルゴリズム </li></ul><ul><li>・ Genetic Algorithm </li></ul><ul><li>・ GA </li></ul><ul><li>1975 年 にミシガン大学の </li></ul><ul><li>ジョン・ H ・ホランド( John Henry Holland ) </li></ul><ul><li>によって提案 </li></ul>
  12. 12. どんなもの? <ul><li>遺伝的アルゴリズムは、 </li></ul><ul><li> 生物の遺伝の仕組みを </li></ul><ul><li> 模倣 した 学習的 な手順である。 </li></ul><ul><li>  </li></ul>
  13. 13. 生物の遺伝の仕組み <ul><li>・メンデルの遺伝の法則 </li></ul><ul><li>・ダーウィンの進化論 </li></ul>
  14. 14. メンデルの遺伝の法則 ①
  15. 15. メンデルの遺伝の法則 ① ②
  16. 16. メンデルの遺伝の法則 ② ③
  17. 17. メンデルの遺伝の法則 ② ③
  18. 18. 表現型と遺伝子型 表現型 Pheno Type 遺伝子型 Geno Type
  19. 19. ダーウィンの進化論
  20. 20. ダーウィンの進化論
  21. 21. ダーウィンの進化論
  22. 22. 適者生存 不適応 適応
  23. 23. 遺伝的アルゴリズムと 生物の進化 <ul><li>・各個体が、 環境への適応度 を持つ。 </li></ul><ul><li>・各個体は 遺伝子 を持つ。 </li></ul>表現型 遺伝子型 不適応 適応
  24. 24. 遺伝的アルゴリズムと 生物の進化 <ul><li>・適応度が高い個体は 生き残る 。 </li></ul><ul><li>・適応度が高い遺伝子は </li></ul><ul><li> 次世代 に受け継がれる。 </li></ul>表現型 遺伝子型 不適応 適応
  25. 25. <ul><li>Panta rhei.- Hērakleitos </li></ul>万物は流転する - ヘラクレイトス
  26. 26. どんなもの? <ul><li>遺伝的アルゴリズムは、 </li></ul><ul><li> 生物の遺伝の仕組みを </li></ul><ul><li> 模倣 した 学習的 な手順である。 </li></ul><ul><li>  </li></ul>
  27. 27. 何に使える? <ul><li>遺伝的アルゴリズムは、 </li></ul><ul><li> 適用範囲の 広い </li></ul><ul><li>  最適化 手法である。 </li></ul><ul><li>  </li></ul>
  28. 28. 例えば? <ul><li>・ ナップサック 問題 </li></ul><ul><li>・ハミルトン閉路問題 </li></ul><ul><li>・ 巡回セールスマン 問題 </li></ul><ul><li>・施設配置問題 </li></ul><ul><li>・最小極大マッチング問題 </li></ul><ul><li>・ ビンパッキング 問題 </li></ul><ul><li>・一般化割当問題 </li></ul>
  29. 29. 巡回セールスマン問題 <ul><li>・巡回セールスマン問題 </li></ul><ul><li>・ Traveling Salesman Problem </li></ul><ul><li>・ TSP </li></ul><ul><li>N 個の都市すべてを回って </li></ul><ul><li>最初の都市に戻る 巡回路 のうち、 </li></ul><ul><li>最小の距離 の順路は? </li></ul>
  30. 30. まずは見てみよう
  31. 31. Genetic Algorithm Demo
  32. 32. 遺伝的アルゴリズム <ul><li>・生物の遺伝の仕組みを </li></ul><ul><li>  模倣 した 学習的 な手順である。 </li></ul><ul><li>・適用範囲の 広い </li></ul><ul><li>  最適化手法 である。 </li></ul>
  33. 33. どうやっているの? 1. 初期集団 3. 選択 4. 交叉 5. 変異 2. 評価 6. 終了
  34. 34. 巡回セールスマンで考えよう 1. 初期集団 3. 選択 4. 交叉 5. 変異 2. 評価 6. 終了
  35. 35. 巡回セールスマンで考えよう <ul><li>5 つの都市を回る場合、 </li></ul><ul><li>5×4×3×2×1 通りの組合せがあります。 </li></ul><ul><li>逆順があるので 1/2 になり 60 通りです。 </li></ul>
  36. 36. 巡回セールスマンで考えよう <ul><li>この問題を遺伝的アルゴリズムの </li></ul><ul><li>手順で評価してみましょう。 </li></ul>
  37. 37. 巡回セールスマンで考えよう <ul><li>都市に番号を振りました。 </li></ul><ul><li>今回は①②⑤④③が最適な経路とします。 </li></ul><ul><li>まずは初期集団をつくります。 </li></ul>② ① ③ ④ ⑤
  38. 38. 巡回セールスマンで考えよう 1. 初期集団 3. 選択 4. 交叉 5. 変異 2. 評価 6. 終了
  39. 39. 初期集団 <ul><li>初期集団をつくります。 </li></ul><ul><li>今回は個体を 3 つ用意します。 </li></ul><ul><li>一人目は①②③④⑤ </li></ul><ul><li>二人目は①⑤②④③ </li></ul><ul><li>三人目は①②⑤③④ </li></ul>
  40. 40. 巡回セールスマンで考えよう <ul><li>一人目 ①②③④⑤ </li></ul><ul><li>二人目 ①⑤②④③ </li></ul><ul><li>三人目 ①②⑤③④ </li></ul>② ① ③ ④ ⑤
  41. 41. 初期集団 <ul><li>それぞれの経路を遺伝子化します。 </li></ul><ul><li>一人目は①②③④⑤ -> 00000 </li></ul><ul><li>二人目は①⑤②④③ -> 03010 </li></ul><ul><li>三人目は①②⑤③④ -> 00200 </li></ul>
  42. 42. 初期集団 <ul><li>2 人目を例に解説します </li></ul><ul><li>①⑤②④③ -> 03010 </li></ul><ul><li>①②③④⑤ という元々の順序に対して </li></ul><ul><li>①⑤②④③ という順番で取り出す、 </li></ul><ul><li>と考えます。 </li></ul>
  43. 43. 初期集団 <ul><li>①⑤②④③ -> 03010 </li></ul><ul><li>①②③④⑤   を </li></ul><ul><li>01234 という順番で見ます。 </li></ul><ul><li>まずは①を取り出すので順番は「 0 」 </li></ul><ul><li>と考えます。 </li></ul>
  44. 44. 初期集団 <ul><li>①⑤②④③ -> 03010 </li></ul><ul><li>先ほど 0 番目を取り出したので、 </li></ul><ul><li>残りは </li></ul><ul><li>②③④⑤   となり、これも </li></ul><ul><li>0123 という順番で見ます。 </li></ul>
  45. 45. 初期集団 <ul><li>①⑤②④③ -> 03010 </li></ul><ul><li>次は </li></ul><ul><li>②③④⑤   </li></ul><ul><li>0123 から⑤を取り出すので </li></ul><ul><li>順番は「 3 」となります。 </li></ul><ul><li>これで「 0 」、「 3 」と </li></ul><ul><li>取出したことになります。 </li></ul>
  46. 46. 初期集団 <ul><li>①⑤②④③ -> 03010 </li></ul><ul><li>⑤ を取り出したので、残りは </li></ul><ul><li>②③④   </li></ul><ul><li>012 です。 </li></ul><ul><li>同様に②の「 0 」を取り出します。 </li></ul><ul><li>これで「 0 」、「 3 」、「 0 」と </li></ul><ul><li>取出したことになります。 </li></ul>
  47. 47. 初期集団 <ul><li>①⑤②④③ -> 03010 </li></ul><ul><li>② を取り出したので、残りは </li></ul><ul><li>③④   </li></ul><ul><li>01 です。 </li></ul><ul><li>更に同様に④の「 1 」を取り出します。 </li></ul><ul><li>これで「 0 」、「 3 」、「 0 」、「 1 」 </li></ul><ul><li>となりました。 </li></ul>
  48. 48. 初期集団 <ul><li>①⑤②④③ -> 03010 </li></ul><ul><li>④ を取り出したので、残りは </li></ul><ul><li>③   </li></ul><ul><li>0 だけです。 </li></ul><ul><li>最後は「 0 」を取り出し、 </li></ul><ul><li>「 0 」、「 3 」、「 0 」、「 1 」、「 0 」 </li></ul><ul><li>が完成しました。 </li></ul>
  49. 49. 初期集団 <ul><li>一人目は①②③④⑤ -> 00000 </li></ul><ul><li>二人目は①⑤②④③ -> 03010 </li></ul><ul><li>三人目は①②⑤③④ -> 00200 </li></ul><ul><li>何故このように変換するかというと、 </li></ul><ul><li>後にある交叉や変異の処理が </li></ul><ul><li>簡単になるからです。 </li></ul><ul><li>これで初期集団の完成です。 </li></ul>
  50. 50. 巡回セールスマンで考えよう 1. 初期集団 3. 選択 4. 交叉 5. 変異 2. 評価 6. 終了
  51. 51. 評価 <ul><li>次にそれぞれの個体の評価を行います。 </li></ul><ul><li>巡回セールスマン問題では、総距離が短いものが高評価->適応度が高い、となります。 </li></ul>② ① ③ ④ ⑤
  52. 52. 評価 <ul><li>一人目①②③④⑤ -> 115km </li></ul><ul><li>二人目①⑤②④③ -> 105km </li></ul><ul><li>三人目①②⑤③④ -> 110km  とします。 </li></ul>② ① ③ ④ ⑤
  53. 53. 評価 <ul><li>一人目 00000 -> 115km </li></ul><ul><li>二人目 03010 -> 105km </li></ul><ul><li>三人目 00200 -> 110km   </li></ul><ul><li>としたので、 </li></ul><ul><li>2 人目が最も 適応度が高い個体 </li></ul><ul><li>であることがわかりました。 </li></ul>
  54. 54. Genetic Algorithm http://www.flickr.com/photos/viamoi/3439951085
  55. 55. 選択・交叉 1. 初期集団 3. 選択 4. 交叉 5. 変異 2. 評価 6. 終了
  56. 56. 選択・交叉 <ul><li>ここから先は 遺伝子型 に対する操作です。 </li></ul><ul><li>一人目 00000 -> 115km </li></ul><ul><li>二人目 03010 -> 105km </li></ul><ul><li>三人目 00200 -> 110km   </li></ul><ul><li>上記評価の結果から、 </li></ul><ul><li>親選び を行うのが 選択 。 </li></ul><ul><li>選んだ親から 次の世代(子ども)を </li></ul><ul><li>作るのが 交叉 です。 </li></ul>
  57. 57. 選択 <ul><li>一人目 00000 -> 115km </li></ul><ul><li>二人目 03010 -> 105km </li></ul><ul><li>三人目 00200 -> 110km   </li></ul><ul><li>親が 3 人なので子も 3 人作ります。 </li></ul><ul><li>二人目が 一番優秀 なので </li></ul><ul><li>優先的 に親に選ばれます。 </li></ul>
  58. 58. 選択 <ul><li>選択 には適応度に応じた確率で、 </li></ul><ul><li>選ばれる ルーレット方式 。 </li></ul><ul><li>適応度を元に一定の割合で確率を割り当てていく ランキング方式 。 </li></ul><ul><li>全体の集合から一部を抜き出して、その中から適応度の高い個体を選ぶ </li></ul><ul><li>トーナメント方式 などがあります。 </li></ul>
  59. 59. 選択 <ul><li>一人目 00000 -> 115km </li></ul><ul><li>二人目 03010 -> 105km </li></ul><ul><li>三人目 00200 -> 110km   </li></ul><ul><li>例としてルーレットを説明します。 </li></ul><ul><li>長さが短い方が優秀なので </li></ul><ul><li>逆数 をとります。 </li></ul>
  60. 60. 選択 <ul><li>一人目 00000 -> 115km -> 1/115*100 -> 0.87 </li></ul><ul><li>二人目 03010 -> 105km -> </li></ul><ul><li>  1/105*100 -> 0.95 </li></ul><ul><li>三人目 00200 -> 110km ->   </li></ul><ul><li>  1/110*100 -> 0.91 </li></ul>
  61. 61. 選択 <ul><li>一人目 00000 -> 115km -> 0.87 </li></ul><ul><li>二人目 03010 -> 105km -> 0.95 </li></ul><ul><li>三人目 00200 -> 110km -> 0.91 </li></ul><ul><li>合計が 0.87+0.95+0.91= 2.73 </li></ul><ul><li>となり、それぞれが選ばれる確率は </li></ul>
  62. 62. 選択 <ul><li>一人目 00000 -> 0.87/ 2.73 = 31.9% </li></ul><ul><li>二人目 03010 -> 0.95/ 2.73 = 34.8% </li></ul><ul><li>三人目 00200 -> 0.91/ 2.73 = 33.3% </li></ul><ul><li>となり、ルーレット方式ではほとんど </li></ul><ul><li>同確率で選ばれることとなります。 </li></ul>
  63. 63. 選択 <ul><li>一人目 00000 -> 115km -> 2 位 </li></ul><ul><li>二人目 03010 -> 105km -> 1 位 </li></ul><ul><li>三人目 00200 -> 110km -> 3 位 </li></ul><ul><li>ランキング形式ですと、 </li></ul><ul><li>1 位-> 50% , 2 位-> 30% , 3 位-> 20% </li></ul><ul><li>などのように固定の確立とするので </li></ul><ul><li>この例ですとルーレットに比べて、 </li></ul><ul><li>差が顕著に出ます。 </li></ul>
  64. 64. 選択 <ul><li>ルーレット </li></ul><ul><li>一人目 00000 -> 31.9% </li></ul><ul><li>二人目 03010 -> 34.8% </li></ul><ul><li>三人目 00200 -> 33.3% </li></ul><ul><li>ランキング例 </li></ul><ul><li>一人目 00000 -> 20% </li></ul><ul><li>二人目 03010 -> 50% </li></ul><ul><li>三人目 00200 -> 30% </li></ul>
  65. 65. 選択 <ul><li>一人目 00000 -> 115km </li></ul><ul><li>二人目 03010 -> 105km </li></ul><ul><li>三人目 00200 -> 110km   </li></ul><ul><li>例として、 </li></ul><ul><li>二人目と三人目から子供を作ります。 </li></ul><ul><li>二人目と三人目が 選択 </li></ul><ul><li>されたことになります。 </li></ul>
  66. 66. 交叉 <ul><li>次が交叉です。 </li></ul><ul><li>二人目 03010 </li></ul><ul><li>三人目 00200 </li></ul><ul><li>から子供を作ります。 </li></ul><ul><li>交叉にも種類がいくつかあり </li></ul><ul><li>一様交叉、一点交叉、二点交叉 などがあります。 </li></ul>
  67. 67. 交叉 <ul><li>一様交叉 の場合、交叉するように </li></ul><ul><li>フィルタのようなものを作ります。 </li></ul><ul><li>フィルタを 01101 と置くと、 </li></ul><ul><li>0 30 1 0 と 0 02 0 0 の赤字部分。 </li></ul><ul><li>0 11 0 1 のうち 1 になっている部分を </li></ul><ul><li>交換します。 </li></ul><ul><li>結果は 0 02 1 0 と 0 30 0 0 になります。 </li></ul>
  68. 68. 交叉 <ul><li>一点交叉 は任意の一点を決め、 </li></ul><ul><li>それ以降を入れ替えます。 </li></ul><ul><li>例えば 4 番目を選ぶと </li></ul><ul><li>030 10 と 002 00 の赤字部分を </li></ul><ul><li>入れ替え 030 00 と 002 10 となります。 </li></ul>
  69. 69. 交叉 <ul><li>二点交叉 は任意の二点を決め、 </li></ul><ul><li>その間を入れ替えます。 </li></ul><ul><li>例えば 2 と 4 番目を選ぶと </li></ul><ul><li>0 301 0 と 0 020 0 の赤字部分を </li></ul><ul><li>入れ替え 0 020 0 と 0 301 0 となります。 </li></ul>
  70. 70. 選択・交叉 <ul><li>一様交叉の 2 つと、一点交叉の一つ目を子供として次世代に残します。 </li></ul><ul><li>0 02 1 0 </li></ul><ul><li>0 30 0 0 </li></ul><ul><li>030 00 </li></ul><ul><li>が 2 世代目として生まれました。 </li></ul>
  71. 71. 巡回セールスマンで考えよう 1. 初期集団 3. 選択 4. 交叉 5. 変異 2. 評価 6. 終了
  72. 72. 変異 <ul><li>変異は生まれた次世代に対して、 </li></ul><ul><li>親から引き継がれる以外の特徴を </li></ul><ul><li>持つことができます。 </li></ul><ul><li>一定の確率で遺伝子を変異させます。 </li></ul>
  73. 73. 変異 <ul><li>変異率を 5% とすると。 </li></ul><ul><li>00210 </li></ul><ul><li>03000 </li></ul><ul><li>03000 </li></ul><ul><li>遺伝子は全部で 15 要素あるので </li></ul><ul><li>変異する確率は 5 * 15/100 = 0.75 で </li></ul><ul><li>一つ変異するかどうか、 </li></ul><ul><li>といった確率となります。 </li></ul>
  74. 74. 変異 <ul><li>ここでは、遺伝子が一つだけ </li></ul><ul><li>突然変異を起こしたとします。 </li></ul><ul><li>00210 </li></ul><ul><li>03000 </li></ul><ul><li>030 1 0 </li></ul><ul><li>これで 2 世代目ができあがりました。 </li></ul>
  75. 75. 巡回セールスマンで考えよう 1. 初期集団 3. 選択 4. 交叉 5. 変異 2. 評価 6. 終了
  76. 76. 評価・終了 <ul><li>2 世代目の評価を行います。 </li></ul><ul><li>遺伝子型 から 表現型 に帰ってきました。 </li></ul><ul><li>00210 -> ①②⑤④③ </li></ul><ul><li>03000 -> ①⑤②③④ </li></ul><ul><li>03010 -> ①⑤②④③ </li></ul><ul><li>がそれぞれの順番となります。 </li></ul>
  77. 77. 評価・終了 <ul><li>一人目 ①②⑤④③ </li></ul><ul><li>二人目 ①⑤②③④ </li></ul><ul><li>三人目 ①⑤②④③ です。 </li></ul>② ① ③ ④ ⑤
  78. 78. 評価・終了 <ul><li>一人目 ①②⑤④③ が </li></ul><ul><li>最適経路を通ることができました。 </li></ul>② ① ③ ④ ⑤
  79. 79. 評価・終了 <ul><li>よって遺伝子型では 00210 </li></ul><ul><li>表現型では ①②⑤④③ が </li></ul><ul><li>最適解となります。 </li></ul>② ① ③ ④ ⑤
  80. 80. 巡回セールスマンで考えよう 1. 初期集団 3. 選択 4. 交叉 5. 変異 2. 評価 6. 終了 ■ ハルモス符号
  81. 81. よくわからない… だと?
  82. 82. よろしい、ならば デモだ!
  83. 83. Genetic Algorithm Demo http:// www.flickr.com/photos/leniners/2284977041 @ C# 3.0
  84. 84. 遺伝的アルゴリズム <ul><li>・生物の遺伝の仕組みを </li></ul><ul><li>  模倣 した 学習的 な手順である。 </li></ul><ul><li>・適用範囲の 広い </li></ul><ul><li>  最適化手法 である。 </li></ul>
  85. 85. どこまでできるのか? <ul><li>・生物の遺伝の仕組みを </li></ul><ul><li>  模倣 した 学習的 な手順である。 </li></ul><ul><li>・適用範囲の 広い </li></ul><ul><li>  最適化手法 である。 </li></ul>
  86. 86. 三度、巡回セールスマン <ul><li>巡回セールスマンは計算量が </li></ul><ul><li>とても多い問題です。 </li></ul><ul><li>訪問先が 32 ヵ所あった場合に、 </li></ul><ul><li>もし全件の探索を行ったとすると、 </li></ul><ul><li>どのくらいの計算量になるのか? </li></ul>計算量については下記ページの内容を引用しています。 http://www.infonet.co.jp/ueyama/ip/software/tsp.html
  87. 87. 訪問先 32 ヵ所 <ul><li>前提として既に1軒目にいるとして </li></ul><ul><li>31!/2 通りの組合せとなります。 31!= (31 × 30 × 29 × …… × 4 × 3 × 2 × 1)/2 </li></ul><ul><li>≒ 4.11 × 10 33 通りとなる。 </li></ul>
  88. 88. 4.11 × 10 33 通り <ul><li>1秒間に1兆回 計算可能な </li></ul><ul><li>スーパーコンピュータ があるとする 。 </li></ul><ul><li>1秒間に 1兆回 ( 10 12 回 ) </li></ul><ul><li>よって、 </li></ul><ul><li>4.11 × 10 33 回の計算をするには </li></ul><ul><li>4.11 × 10 21 秒が必要となる。 </li></ul>
  89. 89. 4.11 × 10 21 秒 <ul><li>1年は、 </li></ul><ul><li>約 60 × 60 × 24 × 365 </li></ul><ul><li>=31 , 536 , 000≒ 3.15 × 10 7 秒 </li></ul><ul><li>よって、 4.11 × 10 21 秒を </li></ul><ul><li>1年≒ 3.15 × 10 7 秒で割ると、 </li></ul><ul><li>1.3 × 10 14 年。 </li></ul><ul><li>すなわち、 130 兆年 かかります。 </li></ul>
  90. 90. 一三〇〇〇〇〇〇〇〇〇〇〇〇〇年 に挑む!
  91. 91. Genetic Algorithm http://www.flickr.com_photos_43052603@N00_3391952890.jpg
  92. 92. 遺伝的アルゴリズム・一幕 <ul><li>このように、全組合せを評価すると、 </li></ul><ul><li>とても時間がかかる問題でも、 </li></ul><ul><li>短時間にある程度高い精度を持って </li></ul><ul><li>解を求めることが可能です。 </li></ul>
  93. 93. 遺伝的アルゴリズム・一幕 <ul><li>ただし、今回のデモにおいても、 </li></ul><ul><li>単純な選択・交叉・変異の処理だけでは </li></ul><ul><li>うまく収束しない場合が多く、 </li></ul><ul><li>変異時に2点交換を行うなど </li></ul><ul><li>多少の調整を行っています。 </li></ul>
  94. 94. 遺伝的アルゴリズム・一幕 <ul><li>実際に用いる場合には、 </li></ul><ul><li>該当の問題領域においての </li></ul><ul><li>調整や応用が必要となります。 </li></ul><ul><li>他にも他の最適化手法と組合せて </li></ul><ul><li>アルゴリズムを強化するなどの </li></ul><ul><li>手段があります。 </li></ul>
  95. 95. 遺伝的アルゴリズム・一幕 <ul><li>応用例は論文などでも </li></ul><ul><li>多く公開されていますので、 </li></ul><ul><li>更に効率の良い例などを見つけて、 </li></ul><ul><li>実装してみるのも面白いかもしれません。 </li></ul>
  96. 96. 最後に…
  97. 97. 僕らが旅に出る理由
  98. 98. 遺伝的アルゴリズム <ul><li>・生物の遺伝の仕組みを </li></ul><ul><li>  模倣 した 学習的 な手順である。 </li></ul><ul><li>・適用範囲の 広い </li></ul><ul><li>  最適化手法 である。 </li></ul>
  99. 99. <ul><li>Science advances funeral by funeral. </li></ul><ul><li>- Max Karl Ernst Ludwig Planck </li></ul>科学は葬儀を重ねて進歩する - マックス・プランク

×