遺伝アルゴリズムによる
ナビゲーション
奈良先端科学技術大学院大学
モバイルコンピューティング研究室
サマーセミナー研修テーマ
1
遺伝アルゴリズム (GA)とは
• 生物が環境に適応して進化していく過程を模倣した最適
化アルゴリズム
• ランダムサーチやSAと異なり,GAでは複数の解候補を
保持(個体群と呼ぶ)
• 各ループ(世代)において,2つの解候補(個体)に対し交差
演算子を適用し,新しい個体を生成
• 新しく生成した解候補の中から良い個体を選択する(淘
汰)
• 後の世代になるほど良い評価値の個体群に進化
2
遺伝アルゴリズムとは (続き)
• アルゴリズムのステップは以下の通り
1. 初期個体群の生成
• 解候補をランダムに作成
2. 交差演算子を適用して新たな個体群を生成
3. 突然変異演算子を使用して各個体に確率的に新しい
形質を導入
4. 各個体の評価値に応じて良い個体が選択される.選
択された個体が次の世代の個体群となる
ステップ2から4をあらかじめ決めた回数だけ繰り返す
3
GAで使う用語集
• 個体とは,解候補のこと.染色体と同一の場合もある.
• 染色体とは,符号化した解候補のこと.
• 個体群とは,GAにより一度に保持される複数の個体または染色体.
• 遺伝子とは,染色体の要素.染色体は複数の遺伝子から構成される
ことが多い.
• 適応度とは,各個体がどれほど優れているか表す数値.通常,染色
体に対し評価関数を適用することにより得られる.
• 選択(淘汰)は,適応度に応じて,次世代の個体群に属する個体を
選択するための操作
• 淘汰圧は,高ければ適応度の高い個体が選択される確率が高まる.
• 突然変異は,染色体を改変し,新しい形質を導入すること
• 変異率は,染色体が改変される確率のこと
• 交差は,2つ(またはそれ以上)の染色体の形質を混ぜて,新たな個
体を生成する操作
4
手始めにGAでカックロを解いてみよう
• 突然変異演算子は,個体の遺伝子をランダム
に改変する
• 変異率に応じて,改変する遺伝子の数を変える
• 交差演算子として,一様交差を使用
• トーナメント選択を使用
• 個体群のサイズとして1000,トーナメントサ
イズに2を指定
• これは,特に理由なく決めた値
• 適当に決めただけでも結構いい解が見つ
かる!
5
GAによるナビゲーション
• 東京の400余りの目的地からいくつかをユーザが選択し,これらを
全て巡回する最も距離の短い順番を求める
• 解候補の符号化は,
• 一次元の配列に,指定された目的地を訪問する順番を格納
• 配列内の各要素が各目的地に対応する
• 解候補の生成の仕方
• 各セルにランダムに訪問する順番を入れる
• 順番が重複しないようにする
• 評価関数 (値が低いほど良い解) :
• 経路の走行距離
6
課題 Google Mapsと比較してみよう
• 5箇所程度の目的地を選択し,これら全てを回る経路を
Google Mapsを用いて探してみよう
• この経路と,GAで探索した経路を比較してみよう
7

サマーセミナー2016: 遺伝アルゴリズムによるナビゲーション