遺伝的アルゴリズムとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > 遺伝的アルゴリズムの意味・解説 

遺伝的アルゴリズム

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/03/11 05:00 UTC 版)

遺伝的アルゴリズム(いでんてきアルゴリズム、英語:genetic algorithm、略称:GA)とは、1975年ミシガン大学ジョン・H・ホランド(John Henry Holland)によって提案された近似解を探索するメタヒューリスティックアルゴリズムである。人工生命同様、偶然の要素でコンピューターの制御を左右する。4つの主要な進化的アルゴリズムの一つであり、その中でも最も一般的に使用されている。

概要

遺伝的アルゴリズムはデータ(解の候補)を遺伝子で表現した「個体」を複数用意し、適応度の高い個体を優先的に選択して交叉突然変異などの操作を繰り返しながら解を探索する。適応度は適応度関数によって与えられる。

この手法の利点は、評価関数可微分性や単峰性などの知識がない場合であっても適用可能なことである。 必要とされる条件は評価関数全順序性と、探索空間位相(トポロジー)を持っていることである。

また、遺伝子の表現の仕方によっては組合せ最適化問題やNP困難な問題などのさまざまな問題に適用可能である。

アルゴリズムの流れ

遺伝的アルゴリズムは一般に以下の流れで実装される。なお、下記では個体数を N, 最大世代数を G と置く。

  1. あらかじめ N 個の個体が入る集合を二つ用意する。以下、この二つの集合を「現世代」、「次世代」と呼ぶことにする。
  2. 現世代に N 個の個体をランダムに生成する。
  3. 評価関数により、現世代の各個体の適応度をそれぞれ計算する。
  4. ある確率で次の3つの動作のどれかを行い、その結果を次世代に保存する。
    1. 個体を二つ選択(選択方法は後述)して交叉(後述)を行う。
    2. 個体を一つ選択して突然変異(後述)を行う。
    3. 個体を一つ選択してそのままコピーする。
  5. 次世代の個体数が N 個になるまで上記の動作を繰り返す。
  6. 次世代の個体数が N 個になったら次世代の内容を全て現世代に移す。
  7. 3. 以降の動作を最大世代数 G 回まで繰り返し、最終的に「現世代」の中で最も適応度の高い個体を「解」として出力する。

遺伝的操作

遺伝的アルゴリズムでは一般的に次の遺伝的操作が用いられる。

  • 選択(淘汰、再生)
  • 交叉(組み換え)
  • 突然変異

交叉する確率を交叉率、突然変異する確率を突然変異率という。一般には(交叉率)>>(突然変異率)とすることが望ましいとされる。また上記のアルゴリズムの流れからわかるとおり(交叉率)+(突然変異率)+ (再生確率) = 1である必要がある。

選択

選択は生物の自然淘汰をモデル化したもので、適応度にもとづいて個体を増やしたり削除したりする操作である。 選択のアルゴリズムには次のようなものがある。

ルーレット選択

ルーレット選択は個体 i を選ぶ確率pi と置いたとき、

一点交叉

遺伝子が交叉する場所(交叉点)をランダムで一つ選び、その場所より後ろを入れ換える方式である。ホランドが最初に提案したときの交叉方法であるが、効率は低く現在ではあまり使われていない。

個体A: 01001|11010 ⇒ 01001 01011

個体B: 10101|01011 ⇒ 10101 11010

二点交叉

二点交叉

交叉点をランダムで二つ選び、二つの交叉点に挟まれている部分を入れ換える方式。

個体A: 010 | 01110 | 10 ⇒ 010 01010 10

個体B: 101 | 01010 | 11 ⇒ 101 01110 11

多点交叉

一般に、3点以上の交叉点をもつ方法を多点交叉あるいは n 点交叉という。しかしながら一部の問題を除き、多点交叉は二点交叉と下記で述べる一様交叉のどちらかよりも良い値が出ることはほとんどなく、あまり使われていない。

一様交叉

一様交叉

各要素ごと独立に1/2の確率で入れ換える交叉である。後述するヒッチハイキングの問題をおさえることが可能である。一般に二点交叉が得意とする問題を苦手とし、二点交叉と逆の性質を示すことが知られている。

個体A: 0 1 0 0 1 1 1 0 1 0 ⇒ 0 0 1 0 1 1 1 0 1 1

個体B: 1 0 1 0 1 0 1 0 1 1 ⇒ 1 1 0 0 1 0 1 0 1 0

突然変異

突然変異は生物に見られる遺伝子の突然変異をモデル化したもので、個体の遺伝子の一部を変化させる操作である。局所(的)最適解に陥ることを防ぐ効果がある。

例えば、遺伝子型がビット列の場合は、ある遺伝子座の0と1を入れ換える。数字の場合は乱数と置き換える。他にも遺伝子座の位置を変更するなどの方法がとられる。

突然変異の確率は0.1%~1%、高くても数%である。確率が低すぎると局所(的)最適解に陥りやすくなり、高すぎるとランダム探索に近づいてしまう(解が収束しにくくなる)。

GAの問題点

GA はさまざまな問題に適用できる手法であるが、問題と使う方式によっては上手く探索しない場合がある。ここではよく起きる GA の問題点をまとめる。

初期収束

初期収束とは、最初の方の世代で「偶然」他の個体より適応度が圧倒的に高い個体が生まれたとき、その個体の遺伝子が集団中に爆発的に増えて探索がかなり早い段階で収束してしまう現象である[1]。ルーレット選択の設定が甘い場合や、突然変異の効果が上手く表れないときに起こりやすい。

対策としては、ルーレット選択を使う場合の適切な設定や適用する問題に合わせて効果的になるように突然変異の操作を変更したり、突然変異率を増やしたり、または集団の数を増やすなどの設定を行うことで防ぐことができる。しかしながら明確な解決法というものはなく、各パラメータを何度も繰り返し設定しなおすしかない。

ヒッチハイキング

例えば最適解が

~101~

という問題があるとする。このとき

~111~

~000~

という二つの個体が交叉して最適解を得る確率を求める。 交叉の方式が二点交叉の場合は交差点が

~1|1|1~ ⇒ ~101~

~0|0|0~ ⇒ ~010~

で最適解が得られる。このとき遺伝子型の長さを l とおくと、最適解が得られる確率 p

Optimization computes maxima and minima.
非線形(制約付き)
凸最適化
組合せ最適化
メタヒューリスティクス


このページでは「ウィキペディア」から遺伝的アルゴリズムを検索した結果を表示しています。
Weblioに収録されているすべての辞書から遺伝的アルゴリズムを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書から遺伝的アルゴリズム を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「遺伝的アルゴリズム」の関連用語

遺伝的アルゴリズムのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



遺伝的アルゴリズムのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの遺伝的アルゴリズム (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS