遺伝的アルゴリズム最適化の例
遺伝的アルゴリズムの手動シミュレーション計算例
遺伝的アルゴリズムの操作プロセスをよりよく理解するために、次の手動計算を使用して、遺伝的アルゴリズムの主な実行ステップを単純にシミュレートします。
例:次の2項関数の最大値を見つけます。
(1)個体符号化
遺伝的アルゴリズムの対象は個体を表す記号列であるため、変数x1、x2は
記号列として符号化する必要があります。この質問では、符号なしの2進整数で表されます。
x1によって、x2はそれぞれ0から7までの整数で、3つの符号なし2進整数で表され、
6ビットの符号なし2進数が結合されて、遺伝子型を形成し、遺伝子型を形成します。ことが
可能なソリューション。
たとえば、遺伝子型X = 101110に対応する表現型はx = [5、6]です。
個々の表現型xと遺伝子型Xは、エンコードとデコードの手順を通じて相互に変換できます。
(2)初期母集団の生成
遺伝的アルゴリズムは、母集団に対する進化的操作であり、開始探索点を表す初期
母集団データを準備する必要があります。
この例では、母集団のサイズは4です。つまり、母集団は4人の個人で構成され、各個人はランダムな
方法で生成できます。
例:011101、101011、0111100、111001
(3)フィットネスジュースの計算
遺伝的アルゴリズムでは、個人のフィットネスを使用して各個人の長所と短所を評価し、それによって彼らの遺伝的
機会のサイズを決定します。
この例では、目的関数は常に非負の値を取り、関数の最大値は最適化の目的であるため、
目的関数の値を個人の適合度として直接使用できます。
(4)選択操作
選択操作(またはコピー操作)は、特定の規則またはモデルに従って、現在の母集団でより高い適合度を持つ個体を次世代の母集団に継承します。一般的に、フィットネスの高い人ほど、次世代に受け継がれる機会が増えることが求められ
ます。
この例では、適応度に比例する確率を使用して、次世代の母集団にコピーされる個人の数を決定し
ます。具体的な操作プロセスは次のとおりです。
•最初に、グループfi(i = 1.2、…、M)のすべての個人の合計適合度を計算します。
•次に、各個人の相対適合度fi /fiを計算します。これ
は、各個体が次世代の母集団に継承される
確率です。•各確率値は領域を形成し、すべての確率値の合計は1です。
•最後に、乱数に従って、0と1の間の乱数が生成されますこれは、
選択された回数を決定するために、各個人内の上記の確率領域に表示されます。
(5)交叉演算
交叉演算は、遺伝的アルゴリズムで新しい個体を生成する主要なプロセスであり、ある確率で
2つの個体間でいくつかの染色体を交換します。
この例では、シングルポイントクロスオーバー法を使用しています。具体的な操作プロセスは、次のとおりです。
•最初に集団をランダム にペアリングする•
クロスオーバーポイントの位置をランダムに設定する
•ペアになっている染色体間でいくつかの遺伝子を交換する
(6)突然変異演算
突然変異演算は
、線の変化が少ない確率に従って、個々の値の1つまたはいくつかの遺伝子座であり、新しい世代の個体を操作する方法でもあります。
この例では、基本的なビット突然変異法を使用して突然変異計算を実行します。具体的な操作プロセスは
次のとおりです。•最初に各個体の遺伝子突然変異位置を決定します。次の表はランダムに生成された突然変異点位置を
示し、数字は突然変異を示します。点は遺伝子座に設定されます;
•突然変異点の元の遺伝子値は、一定の確率に従って逆転されます。
ポピュレーションP(t)に対して一連の選択、クロスオーバー、突然変異演算を実行した後、ポピュレーションp(t + 1)の新世代を取得できます。
表からわかるように、生成後の人口の変化により、最大値、平均値の適合度は
大幅に改善されました。実際、最高の個人 "111111"がここで見つかりました。
[注]
表の一部の列のデータはランダムに生成されることに注意して ください。問題をより適切に説明する
ために、より良い結果を得るために、いくつかのより良い値を意図的に選択しました。実際の計算プロセスでは、
この最適な結果を達成するために特定の数のサイクルが必要になる場合があります。
遺伝的アルゴリズムの手動シミュレーション計算例
遺伝的アルゴリズムの操作プロセスをよりよく理解するために、次の手動計算を使用して、遺伝的アルゴリズムの主な実行ステップを単純にシミュレートします。
例:次の2項関数の最大値を見つけます。
(1)個体符号化
遺伝的アルゴリズムの対象は個体を表す記号列であるため、変数x1、x2は
記号列として符号化する必要があります。この質問では、符号なしの2進整数で表されます。
x1によって、x2はそれぞれ0から7までの整数で、3つの符号なし2進整数で表され、
6ビットの符号なし2進数が結合されて、遺伝子型を形成し、遺伝子型を形成します。ことが
可能なソリューション。
たとえば、遺伝子型X = 101110に対応する表現型はx = [5、6]です。
個々の表現型xと遺伝子型Xは、エンコードとデコードの手順を通じて相互に変換できます。
(2)初期母集団の生成
遺伝的アルゴリズムは、母集団に対する進化的操作であり、開始探索点を表す初期
母集団データを準備する必要があります。
この例では、母集団のサイズは4です。つまり、母集団は4人の個人で構成され、各個人はランダムな
方法で生成できます。
例:011101、101011、0111100、111001
(3)フィットネスジュースの計算
遺伝的アルゴリズムでは、個人のフィットネスを使用して各個人の長所と短所を評価し、それによって彼らの遺伝的
機会のサイズを決定します。
この例では、目的関数は常に非負の値を取り、関数の最大値は最適化の目的であるため、
目的関数の値を個人の適合度として直接使用できます。
(4)選択操作
選択操作(またはコピー操作)は、特定の規則またはモデルに従って、現在の母集団でより高い適合度を持つ個体を次世代の母集団に継承します。一般的に、フィットネスの高い人ほど、次世代に受け継がれる機会が増えることが求められ
ます。
この例では、適応度に比例する確率を使用して、次世代の母集団にコピーされる個人の数を決定し
ます。具体的な操作プロセスは次のとおりです。
•最初に、グループfi(i = 1.2、…、M)のすべての個人の合計適合度を計算します。
•次に、各個人の相対適合度fi /fiを計算します。これ
は、各個体が次世代の母集団に継承される
確率です。•各確率値は領域を形成し、すべての確率値の合計は1です。
•最後に、乱数に従って、0と1の間の乱数が生成されますこれは、
選択された回数を決定するために、各個人内の上記の確率領域に表示されます。
(5)交叉演算
交叉演算は、遺伝的アルゴリズムで新しい個体を生成する主要なプロセスであり、ある確率で
2つの個体間でいくつかの染色体を交換します。
この例では、シングルポイントクロスオーバー法を使用しています。具体的な操作プロセスは、次のとおりです。
•最初に集団をランダム にペアリングする•
クロスオーバーポイントの位置をランダムに設定する
•ペアになっている染色体間でいくつかの遺伝子を交換する
(6)突然変異演算
突然変異演算は
、線の変化が少ない確率に従って、個々の値の1つまたはいくつかの遺伝子座であり、新しい世代の個体を操作する方法でもあります。
この例では、基本的なビット突然変異法を使用して突然変異計算を実行します。具体的な操作プロセスは
次のとおりです。•最初に各個体の遺伝子突然変異位置を決定します。次の表はランダムに生成された突然変異点位置を
示し、数字は突然変異を示します。点は遺伝子座に設定されます;
•突然変異点の元の遺伝子値は、一定の確率に従って逆転されます。
ポピュレーションP(t)に対して一連の選択、クロスオーバー、突然変異演算を実行した後、ポピュレーションp(t + 1)の新世代を取得できます。
表からわかるように、生成後の人口の変化により、最大値、平均値の適合度は
大幅に改善されました。実際、最高の個人 "111111"がここで見つかりました。
[注]
表の一部の列のデータはランダムに生成されることに注意して ください。問題をより適切に説明する
ために、より良い結果を得るために、いくつかのより良い値を意図的に選択しました。実際の計算プロセスでは、
この最適な結果を達成するために特定の数のサイクルが必要になる場合があります。