遺伝的アルゴリズムの実際の使用
1. 序章
このチュートリアルでは、最初に遺伝的アルゴリズムのいくつかの基本的なプロパティを定義します。 次に、それらがどのように構築されているかを確認します。 次に、それらがどのように機能するかについて説明します。 最後に、遺伝的アルゴリズムの実際のアプリケーションをいくつか確認します。
遺伝的アルゴリズムは主に最適化問題に適用できます。 これは、最適な解が見つかるまで検索空間で解を検索するように設計されているためです。
次に、遺伝的アルゴリズムの正式な定義を見てみましょう。
2. 定義
3. それらはどのように機能しますか?
遺伝的アルゴリズムは進化の自然過程に従い、次のように説明されます。
次に、基本的な遺伝的アルゴリズムの手順を見てみましょう。
3.1. アルゴリズム
最終的な目標は、この関数の最大値または最小値を見つけることです。 たとえば、母集団の解にスコアを割り当てる適応度関数を考えてみましょう。 次に、ここでの目標は、関数のグローバル最大値に到達することです。
母集団からの解決策が満足のいくものである場合、私たちは通常、アルゴリズムを停止し、これらを最高の個人として冠します。 ここで、ソリューションが満足のいくものでない場合は、選択プロセスを実行し、最適な個人を選択して、新しいソリューションを再現および生成します。 これは繰り返し行われます。
次に、選択、の後、最も適した個体がクロスオーバーによって繁殖し、子孫を生成します。 ここでの子孫という言葉は、新世代のソリューションを指します。 クロスオーバー中に、値が交換されて新しい個人が生成されます。
それで 、
クロスオーバーと突然変異は、遺伝的アルゴリズムで子孫を生成するために使用される2つの主要な方法であることに注意することが重要です。 最後に、解決策または子孫が満足のいくものであり、生成するより良い子孫がない場合、アルゴリズムは終了し、最適な解決策として最良の個体を提示します。
4. アプリケーション
遺伝的アルゴリズムは、コンピュータサイエンスの最も基本的なアルゴリズムの1つです。 その結果、彼らはさまざまな業界やさまざまなタスクのために、現実の世界で多くのアプリケーションを見つけました。 ただし、この記事ではいくつかについてのみ説明します。
4.1. ロボット工学
ロボット工学には、自律型ロボットの設計、構築、操作が含まれます。 ロボット工学では、遺伝的アルゴリズムを使用して、ロボットが下さなければならない決定への洞察を提供します。 たとえば、環境が与えられた場合、ロボットが最小限のリソースを使用して特定の位置に到達する必要があるとします。 遺伝的アルゴリズムは、ロボットが目的の位置に到達するために使用できる最適なルートを生成するために使用されます。
4.2. 経済
経済学は、商品やサービスの生産、流通、および全体的な消費における資源の使用の科学です。 経済学では、遺伝的アルゴリズムを使用して、一定期間にわたる需要と供給のモデルを作成します。 さらに、遺伝子モデルは、ゲーム理論と資産価格設定モデルを導出するためにも使用されます。
4.3. 自動設計
自動設計は、自動車などの自動車の設計と製造を構成します。 特に、自動車製造会社は、自動車の動作方法に関する仕様を持っている場合があります。 一例として、最小燃料消費量は、車両の設計において望ましい仕様です。 その結果、遺伝的アルゴリズムを使用して、自動車の設計を導き出し、低燃費などの制約を満たします。
4.4. タスクのスケジューリング
大学の時刻表をスケジュールするタスクがあるとします。 スケジューリングタスクの目標は、特定の制約を満たす最適なソリューションを見つけることです。 この側面では、遺伝的アルゴリズムを使用して、大学のコース、学生数、講義室を考慮した最適なスケジュールを導き出します。
4.5. 配車ルート
ほとんどのロジスティクス企業では、1つの主要なタスクは車両のルーティングです。 ここでは、車両のフリートを使用して、さまざまなクライアントに商品をルーティングおよび輸送する方法を理解する必要があります。 その結果、遺伝的アルゴリズムを使用して、これらの商品を適切なクライアントに適切なタイミングで輸送するための費用効果の高いルートを導き出します。
4.6. マーケティング
マーケティングでは、多くの顧客や顧客を獲得できるように商品やサービスを宣伝することが主な目的です。 ここでは遺伝的アルゴリズムを使用して、最も多くの顧客を引き付ける製品仕様と属性の最良の組み合わせを導き出します。
4.7. 薬
医学およびバイオインフォマティクスでは、遺伝的アルゴリズムを使用して、超音波およびマンモグラムで良性および悪性腫瘍を識別しています。
5. 結論
この記事では、最初に進化を定義し、次に遺伝的アルゴリズムを定義しました。 基本的なコンポーネントとそれらがどのように機能するかについて説明しました。 最後に、これらのアルゴリズムの実際のアプリケーションをいくつか確認しました。