著者: 禅とコンピュータープログラミングの芸術
1 はじめに
シミュレーテッド アニーリング アルゴリズム (Simulated Annealing) は、小さなバッチ変更を通じて全体最適に近づく方法であり、物理温度アニーリング モデルに従って、アルゴリズムは現在の解のエネルギー値を一定の温度に達するまで継続的にランダム化して減少させます。 、解は局所最適または大域最適に達します。厳密解の勾配情報や高次微分情報を必要とせず、目的関数の評価値のみが必要な点が特徴であり、収束が難しい問題である。実用化の観点から、シミュレーテッド アニーリング アルゴリズムは通常、最適なアルファベットの組み合わせ、最適なレイアウト スキーム、最大流量問題などの最適化問題を解決するために使用されます。
従来の遺伝的アルゴリズムとシミュレーテッドアニーリングアルゴリズムは、最適化問題を解決するための 2 つの主要なアルゴリズムと言えます。それらの最初の原理と方法は大きく異なりますが、共通しているのは、目的関数の極値を見つけるプロセスで自然なシミュレートされたシステム探索戦略が採用されていることです。したがって、これら 2 種類のアルゴリズムを理解し、比較し、適用することが非常に重要です。
2. 基本的な概念と用語
2.1 組み合わせ最適化問題
組み合わせ最適化問題は、複数のナップザック問題としても知られ、固定されたアイテムのセットと容量制限が与えられた場合に、アイテムのセットを選択してこれらのアイテムの全体的な価値を最大化する方法を指し、各アイテムは 1 回しか選択できません。つまり、得られる「ベネフィット」(満足感、利益)を最大化するためには、いくつかの項目を選択する必要があり、それらの項目は限られた範囲を超えることはできません。たとえば、部品の購入、電子機器の購入、商品の小売などの分野では、すべて組み合わせ最適化問題のカテゴリに属します。
2.2 個体と遺伝子
2.2.1 個人
個体は、1 つ以上の染色体によってコード化された解ベクトルです。染色体は要素で構成されており、各要素はクロマチンの種類を表します。