エントリーからマスターへのMatlab(2)-遺伝的アルゴリズムの学習

最適化問題は、多くの科学研究の問題における主要な問題の1つであり、デジタルアナログモデルが確立された場合、このモデルの最適な解またはより良い解を見つける方法。一般的に使用される方法には、
  • 徹底的な方法(理論は最適な解決策を見つけることができますが、遅すぎるため、一般的に誰もこれを使用しません)
  • 最適解の分析的導出(ほとんどの場合、導出できないか、分析式が非常に複雑で適用できない)
  • 凸最適化アルゴリズム(多くの場合それは推測できますが、問題が凸でない場合も多くあります)
  • 非凸問題が凸問題に変換された後、凸最適化アルゴリズムを使用します
  • インテリジェントな最適化アルゴリズム(凸問題や非凸問題を含むさまざまな最適化問題に適用でき、優れた設計でより良い結果を得ることができます)
この章では、最初に遺伝的アルゴリズムをインテリジェント最適化アルゴリズムで紹介します。
 

遺伝的アルゴリズム
はじめに:遺伝的アルゴリズム(遺伝的アルゴリズム)は、自然進化プロセスをシミュレートして最適解を検索する方法です。このアルゴリズムは、インテリジェント最適化アルゴリズムのグローバル最適化アルゴリズムであり、最適解が個々の遺伝子の変化に影響されない状況に適しています。
 
最適化と最適化に遺伝的アルゴリズムを使用する前に、遺伝的アルゴリズムは最適化ツールですが、遺伝的アルゴリズムを最適化問題に適用する 場合は、状況 をさりげなくではなくアルゴリズムで設計する必要があることに注意してください それを適用するための遺伝的アルゴリズムのコードを見つけてください。遺伝的アルゴリズムはレンチではなく、自然の進化プロセスのシミュレーションに基づく最適化のアイデアとアルゴリズムフレームワークのセットです。
 
一般的に使用される、または一般的な遺伝的アルゴリズムの最適化プロセスは次のとおりです。
  1. 初期母集団を生成します(完全にランダムまたは固定パターンにすることができます)
  2. 個体群は突然変異と交叉によって新しい個体を生み出します(突然変異と交叉の方法は固定されていません)
  3. 新しい人口の個人の環境適合性を計算します(適合性関数は非常に重要です)
  4. 個体群は、個人を排除し、個体数を維持するために、環境適合性に基づいて自然淘汰を行います(排除方法はオプションです)。
  5. 停止条件に達するまで、手順2〜5を繰り返します。
上記の手順(名詞の説明を注意深く検索する)には、遺伝的アルゴリズムの最適化を実行するときに注意または設計が必要な要素がいくつかあります
  • コーディング方法、つまり問題の解決策と個々の遺伝子の対応関係
  • 初期母集団の生成方法
  • バリエーションとクロスオーバー
  • 制約を満たさないソリューションへの対処方法
  • フィットネス機能
上記の5つのポイントは、遺伝的アルゴリズムに問題を適用することによって解決される主要な問題です。上記の5つのポイントが遺伝的アルゴリズムを設計して初めて、適切な最適解を見つけることができます。以下に一つずつ紹介します
 
1つは、コーディング設計
コーディング設計は、問題の解と個々の遺伝子の間の対応する関係を解決するための鍵です。問題の解は、もともとは抽象表現です。遺伝的アルゴリズムを適用するには、変換関数fを作成して、コードxを必要なものに変換する必要があります。実際のソリューションy。
これにより、元の最適化問題ybest = argmax(g(y))がxbest = argmax(g(f(x)))、ybest = f(xbest)に変換されます
 
一般的に使用されるエンコード方法には、バイナリエンコード、整数エンコード、浮動小数点エンコードの3つがあります。エンコード方法を設計および選択する際には、次の点に注意する必要があります。
  • このエンコード方式は多くの無効なソリューションを引き起こしますか 無効な解の存在は遺伝的アルゴリズムにとって致命的です。これは、多数の深い穴で目的関数を最適化する必要があるという事実と同等です。無効な解を後続の処理でうまく調整できない場合は、無効な解を回避できるソリューションの設計を検討する必要があります。エンコーディング方法。
  • このエンコーディングによって得られた実際の目的関数g(f(x))が遺伝的アルゴリズムの最適化に適しているかどうか。遺伝的アルゴリズムは大域的最適化アルゴリズムです。このタイプのアルゴリズムには明らかな特徴があり、多数の局所的な変異特性がある最適化状況の最適化には適していません。下の図に示すように、右の図は遺伝的アルゴリズムにより適しており、左の図は魚群アルゴリズムなどの局所最適化アルゴリズムにより適しています。
 
 
2.初期人口の生成
初期母集団自体は通常ランダムに生成されます。そのランダム性により、母集団全体の遺伝子タイプの豊富さが保証されます。したがって、初期母集団は通常、解空間でランダムに生成されます。
一般的に使用される生成方法は2つあります
  • コードの各値は、独立して完全にランダムに生成されます。
  • 解の規則に従ってランダムに生成します。
生成プロセス中に何に注意する必要がありますか?それは依然として無効なソリューションの問題です。ソリューションのルールが非常に複雑で、完全にランダムにしか生成できない場合があります。解決する必要のある無効なソリューションが多数あります。
 
 
3、バリエーション、クロスオーバーモード
遺伝的アルゴリズムが突然変異および交叉の間に新しいソリューションを生成する方法は、その後の遺伝的アルゴリズムの最適化の重要な要素の1つです。
クロスオーバー:クロスオーバーとして使用できる親個体の一部が生成されます。染色体クロスオーバー操作とは、これらの親個体の2つを選択して相互交配させ、それらの染色体を特定の方法でいくつかの遺伝子と交換して、2つの新しいものを形成します。個別のプロセス。(グローバル調整)
突然変異:交叉手術後に形成された新しい個体は、遺伝的突然変異(局所的調整)の特定の確率を持っています。
一般的な交差方法:
  • パーシャルマップクロスオーバー(PMX)、遺伝子セグメントの開始位置と終了位置をランダムに選択し、2セットの遺伝子の位置を交換し、競合検出を行い、交換された2セットの遺伝子に基づいてマッピング関係を確立します。
  • Order Crossover(OX)、ランダムに遺伝子セグメントの開始位置と終了位置を選択し、選択した遺伝子を保持し、別の遺伝子セットから他の遺伝子を順番に取得します。
  • 位置ベースのクロスオーバー(PBX)、保持するいくつかの遺伝子をランダムに選択し、他の遺伝子を別の遺伝子セットから順番に取得します。  
  • オーバーレイクロスオーバー、遺伝子セグメントの開始位置と終了位置をランダムに選択し、2つの遺伝子セットを異なる比率で重ね合わせて、新しいソリューションを生成します(主に整数または浮動小数点エンコーディングに適しています)。
 
一般的な突然変異演算子: 
  • 基本的なビット変動:変動確率で、個々のコード文字列でランダムに指定された特定のビットまたは数ビットの値に対して変動演算を実行します。
  • 均一変動:個々のコーディング文字列の各遺伝子座の元の遺伝子値を、特定の小さな確率で特定の範囲に均一に分布する乱数にそれぞれ置き換えます。
  • 境界変異:軌跡上の2つの対応する境界遺伝子値の1つをランダムに選択して、元の遺伝子値を置き換えます。これは、最良の点が実行可能なソリューションの境界またはその近くにある場合の問題のクラスに特に適しています。
  • 不均一な突然変異:元の遺伝子値にランダムな障害を作成し、障害後の結果を突然変異後の新しい遺伝子値として使用します。各確率で同じ確率で突然変異演算が実行された後は、解空間での解ベクトル全体のわずかな変化に相当します。
  • ガウス近似突然変異:突然変異操作を実行する場合、元の遺伝子値を、Pのシンボル平均値とP ** 2の分散を持つ正規分布の乱数に置き換えます。
 
第四に、制約を満たさないソリューションに対処する方法
上記の新しいソリューションを生成するプロセスでは、制約が十分に考慮されていません。実際の状況では、不適切なソリューションを母集団に格納できる場合、最適なソリューションを見つけるだけでなく、全体の処理効率が非常に低くなります。
一般的なソリューション:
  • 自然選択でこれらの満たされていないソリューションを破棄する
  • 制約を満たさない解を、規則に従って制約を満たす解に調整する
  • ペナルティ関数は、自然選択のプロセスにおける制約を満たさないソリューションを選択する確率を減らすように設計されています
制約問題の効果的な回避は、依然としてコーディングに依存していますが、この問題は回避できると言えます。
 
5、フィットネス機能設計
フィットネスの意味は、文字通り、個人が環境に適応できるかどうか、つまり最適化のターゲットインデックスを満たすかどうかです。後続の自然選択はフィットネス関数に基づいているため、フィットネス関数と目的関数は完全に同じである必要はありません。
一般的に使用されるフィットネス関数の設計は何ですか?私は通常、次の方法を使用します
  • 目的関数またはその逆数を直接使用します。これは簡単ですが、欠点は、人口の多様性が大きすぎたり小さすぎたりする可能性があることです。
  • 目的関数は他の関数f(x)を設定して、適合度の分布を変更します。
  • 母集団は、全体的な目的関数値に従って正規化およびその他の操作を実行して、毎回の適合度分布を保証します。
 
予防:
遺伝的アルゴリズムの最適化プロセスでは、母集団遺伝子の多様性は、局所最適解に陥らないようにするための重要な要素です。目的関数の最適化結果が時期尚早に収束する場合、それはおそらく母集団の不十分な多様性が原因です。
人口の多様性を確保するために、コーディングとフィットネス関数の設計は特に重要です。
 
 

次号「Matlabのエントリーから熟練(2)-遺伝的アルゴリズムケース-TSP問題」のプレビュー
 

おすすめ

転載: blog.csdn.net/Xiaoxll12/article/details/105033391