よくある質問


遺伝的アルゴリズムとは何ですか?

遺伝的アルゴリズム(GA)は、生物の進化にヒントを得た探索・最適化手法です。候補解の 集団(個体群)を維持し、選択(優れた個体を選ぶ)、交叉(2つの解を組み合わせる)、 突然変異(解をランダムに変更する)という3つの演算子を使って世代を重ねながら改善します。 GAは探索空間が広大で複雑、あるいは問題の構造がよくわからない場合に特に効果的です。

遺伝的アルゴリズムはどのような問題を解けますか?

遺伝的アルゴリズムは、多数の可能性の中から最良の解を探す最適化・探索問題に適しています。 具体的な例としては、ルート計画(巡回セールスマン問題)、スケジューリング、工学的設計、 関数最適化、ゲーム戦略などが挙げられます。適合度関数が微分不可能な場合や既知の解析解がない 場合に特に有用です。

このチュートリアルを理解するにはプログラミング経験が必要ですか?

いいえ。このチュートリアルは図やブラウザ上のインタラクティブなデモを使って概念を段階的に 説明します。プログラミングの知識は必要ありません。自分でGAを実装したい場合は基本的な プログラミングスキルが役立ちますが、内容を理解するだけなら不要です。

遺伝的アルゴリズムと勾配ベースの最適化手法の違いは何ですか?

勾配ベースの手法(勾配降下法など)は適合度関数の傾きをたどり、局所最適解に陥ることがあります。 遺伝的アルゴリズムは個体群全体で探索空間を同時に調べるため、局所最適解に陥りにくい一方、 一般的に速度は遅く計算コストが高くなります。GAは適合度関数が微分可能または連続である必要が ないため、より広い範囲の問題に適用できます。

個体数、交叉率、突然変異率はどのように設定すればよいですか?

普遍的なルールはありませんが、経験的な目安として次のような値が提案されています。 個体数:20〜100、交叉率:80〜95%、突然変異率:0.5〜1%。適切な値は 対象の問題とエンコーディング方法によって異なります。「パラメータ」の章で オプションを詳しく説明しており、インタラクティブデモで 直接実験することもできます。

遺伝的アルゴリズムは最適解の発見を保証できますか?

いいえ。遺伝的アルゴリズムはヒューリスティクスです。良い解を探しますが、大域的最適解の 発見を保証することはできません。結果の品質はエンコーディング、適合度関数、パラメータの選択に 大きく依存します。多くの実問題では、厳密解を長時間かけて求めるよりも、準最適解を素早く得る方が 実用的です。

例として使われている巡回セールスマン問題とは何ですか?

巡回セールスマン問題(TSP)は、複数の都市をそれぞれ1度だけ訪問して出発点に戻る最短経路を 求める問題です。古典的なNP困難な組合せ最適化問題として知られています。このチュートリアルでは、 TSPを用いて順列エンコーディングを説明し、GAが組合せ探索問題をどのように扱うかを示します。 詳細はTSP例の章を参照してください。

このチュートリアルのコンテンツを使用・転載することはできますか?

このチュートリアルのテキストと画像は Creative Commons Attribution–ShareAlike 4.0ライセンス(CC BY-SA 4.0)のもとで公開されています。適切な クレジット表示を行い、改変物を同一ライセンスのもとで配布する場合に限り、自由に共有・改変 できます。

インタラクティブなJavaScriptデモはこのウェブサイトの一部としてのみ使用できます。その他の 使用には事前の書面による許可が必要です。連絡先: marek@obitko.com

·