遺伝的アルゴリズムと従来のアルゴリズムの主な違いは、遺伝的アルゴリズムが遺伝学と自然淘汰の原理に基づいて最適化問題を解くアルゴリズムの一種であるのに対し、従来のアルゴリズムは与えられた問題を解くために従うステップバイステップの手順である点です。
手順とは、それぞれが有限の時間で実行できる有限の命令列のことです。
アルゴリズムは、問題を解決するためのステップ・バイ・ステップの手順です。
あらゆる課題を解決するためのアルゴリズムが存在する。
アルゴリズムは、複雑な問題を解くときに特に役に立ちます。
一般的なアルゴリズムは、伝統的なアルゴリズムとも呼ばれる。
遺伝的アルゴリズムは特殊なアルゴリズムで、主に人工知能などの分野で使用される。
遺伝的アルゴリズムとは?
遺伝的アルゴリズムとは、遺伝学と自然淘汰をベースにしたアルゴリズムの一種です。
これは、環境に起こる変化に適応し、生き残ることができる種のプロセスに似ています。
つまり、生物学的進化をベースにしている。
さらに、このアルゴリズムは、個々の解の母集団を継続的に修正する。
各ステップごとに、現在の個体群からランダムに親となる個体を選び、次の世代のための子を作る。
世代を重ねることで、最適解を見つけることができる。
Generic Algorithmでは、各ステップにおいて主に3種類のルールを用いて、現在の母集団を利用して次の世代を作ります。
選択ルール – 次世代の母集団に貢献する個体(親)を選択する。
交叉のルール – 2つの親を結合して、次の世代の子を生成します。
突然変異のルール – 個々の親に変更を加え、子を生成します。
遺伝的アルゴリズムでは、問題の最適解または最適解に近い解を求めることができます。
特定の問題を解決するために必要な通常の時間を回避することができる。
さらに、主に研究や機械学習などの分野で、最適化問題を解くために使用されています。
伝統的アルゴリズムとは
伝統的なアルゴリズムとは、問題を解決するために使う一般的なアルゴリズムのことを指します。
与えられた問題を解決するための方法論的な手順です。
一つの問題を解決するために、いくつかのアルゴリズムが存在することがあります。
したがって、それぞれを分析し、必要な時間、空間などを求め、問題を解決するために最適なアルゴリズムを選択することが重要である。
従来のアルゴリズムは明確でなければならない。
0個以上の明確に定義された入力と1個以上の明確に定義された出力を持つものでなければならない。
また、利用可能な資源で解を求めることができるものでなければならない。
さらに、有限回のステップを経てタスクを完了するものでなければならない。
以下は一般的な伝統的アルゴリズムです。
探索 – データ構造中の特定の項目を探索するのに役立つアルゴリズム。
ソート – 一連の要素を特定の順序で並べ替えるためのアルゴリズム。
分割統治(Divide and Conquer) – 大問題を小さな小問題に分割し、小問題を解いて元の問題の解を求めることです。
遺伝的アルゴリズムと従来のアルゴリズムとの違い
定義
遺伝的アルゴリズムとは、遺伝学と自然淘汰を応用した制約条件付きおよび制約条件なしの最適化問題を解くためのアルゴリズムであり、伝統的アルゴリズムとは、問題を解く方法を定義した曖昧でない仕様のことである。
この点が遺伝的アルゴリズムと従来のアルゴリズムの大きな違いです。
使用方法
遺伝的アルゴリズムと伝統的アルゴリズムの重要な違いは、各アルゴリズムの具体的な使用方法です。
すなわち、遺伝的アルゴリズムが困難な問題に対して最適な解を見出すのに役立つのに対し、伝統的アルゴリズムは問題を解決するための手順を段階的に提供するものです。
複雑さ
遺伝的アルゴリズムと従来のアルゴリズムのもう一つの違いは、遺伝的アルゴリズムが従来のアルゴリズムより高度であることである。
アプリケーション
Genetic Algorithm は、研究、機械学習、人工知能などの分野で使用されている。
伝統的なアルゴリズムは、プログラミング、数学などの分野で使用されます。
この点も遺伝的アルゴリズムと従来のアルゴリズムの重要な違いです。
結論
従来のアルゴリズムに加えて、遺伝的アルゴリズムと呼ばれる特殊なアルゴリズムがあります。
遺伝的アルゴリズムと従来のアルゴリズムの主な違いは、従来のアルゴリズムが与えられた問題を解決するために、段階的に手順を踏んでいくのに対し、遺伝的アルゴリズムは遺伝学と自然淘汰の原理に基づいて最適化問題を解決するアルゴリズムの一種であることである。
検索やソートなどのアルゴリズムが従来のアルゴリズムであるのに対し、遺伝的アルゴリズムはより複雑で、人工知能や研究などの分野で使用されています。