Artificial-neural-network-optimization-using-hopfield

提供:Dev Guides
移動先:案内検索

ホップフィールドネットワークを使用した最適化

最適化は、設計、状況、リソース、システムなどを可能な限り効果的にするアクションです。 コスト関数とエネルギー関数の類似性を使用して、高度に相互接続されたニューロンを使用して最適化問題を解決できます。 このような種類のニューラルネットワークはホップフィールドネットワークであり、1つ以上の完全に接続された回帰ニューロンを含む単一層で構成されています。 これは最適化に使用できます。

最適化のためにホップフィールドネットワークを使用する際の注意点-

  • エネルギー関数はネットワークの最小値でなければなりません。
  • 保存されたパターンから1つを選択するのではなく、満足のいく解決策を見つけます。
  • ホップフィールドネットワークによって検出されるソリューションの品質は、ネットワークの初期状態に大きく依存します。

巡回セールスマン問題

セールスマンが移動した最短ルートを見つけることは、Hopfieldニューラルネットワークを使用して最適化できる計算上の問題の1つです。

TSPの基本概念

巡回セールスマン問題(TSP)は古典的な最適化問題で、セールスマンは互いに接続された n 都市を移動しなければならず、コストと移動距離を最小に保ちます。 たとえば、セールスマンは4つの都市A、B、C、Dのセットを旅行する必要があり、目的は最短の巡回ツアーABC–Dを見つけることです。これにより、最後の都市Dから最初の都市Aへ

旅行セールスマンの問題

行列表現

実際、n-city TSPの各ツアーは、* i〜th〜行が i〜th〜都市の場所を記述する *n&times n マトリックスとして表現できます。 4つの都市A、B、C、Dのこの行列、 M は、次のように表すことができます-

M = \ begin \ {bmatrix} A:&1&0&0&0 \\ B:&0&1&0&0 \\ C:&0&0&1&0 \\ D:&0 &0&0&1 \ end \ {bmatrix}

ホップフィールドネットワークによるソリューション

ホップフィールドネットワークによるこのTSPのソリューションを検討する際、ネットワーク内のすべてのノードは、マトリックス内の1つの要素に対応します。

エネルギー関数の計算

最適化されたソリューションであるためには、エネルギー関数が最小でなければなりません。 次の制約に基づいて、次のようにエネルギー関数を計算できます-

制約-I

エネルギー関数の計算の基礎となる最初の制約は、行列 M の各行で1つの要素が1に等しくなければならず、各行で他の要素が 0 に等しくなければならないことです。 TSPツアーの1つのポジション。 この制約は数学的に次のように書くことができます-

\ displaystyle \ sum \ limits _ \ {j = 1} ^ n M _ \ {x、j} \:= \:1 \:for \:x \:\ in \:\ lbrace1、...、n \ rbrace

今、上記の制約に基づいて、最小化されるエネルギー関数は、に比例する項が含まれます-

\ displaystyle \ sum \ limits _ \ {x = 1} ^ n \ left(\ begin \ {array} \ {c} 1 \:-\:\ displaystyle \ sum \ limits _ \ {j = 1} ^ n M_ \ {x、j} \ end \ {array} \ right)^ 2

制約II

私たちが知っているように、TSPでは1つの都市がツアーの任意の位置で発生する可能性があるため、マトリックス M の各列では、1つの要素が1に等しく、他の要素が0に等しくなければなりません この制約は数学的に次のように書くことができます-

\ displaystyle \ sum \ limits _ \ {x = 1} ^ n M _ \ {x、j} \:= \:1 \:for \:j \:\ in \:\ lbrace1、...、n \ rbrace

今、上記の制約に基づいて、最小化されるエネルギー関数は、に比例する項が含まれます-

\ displaystyle \ sum \ limits _ \ {j = 1} ^ n \ left(\ begin \ {array} \ {c} 1 \:-\:\ displaystyle \ sum \ limits _ \ {x = 1} ^ n M_ \ {x、j} \ end \ {array} \ right)^ 2

コスト関数の計算

*C* で表される( *n×n* )の正方行列が、 *n* 都市( *n> 0* )のTSPのコスト行列を表すとします。 以下は、コスト関数を計算する際のいくつかのパラメータです-
  • * C〜x、y〜-コストマトリックスの要素は、都市 *x から y への移動コストを示します。
  • AとBの要素の隣接関係は、次の関係によって示すことができます-

M _ \ {x、i} \:= \:1 \:\:and \:\:M _ \ {y、i \ pm 1} \:= \:1

私たちが知っているように、マトリックスでは、各ノードの出力値は0または1のいずれかです。したがって、都市A、Bのすべてのペアについて、エネルギー関数に次の項を追加できます-

\ displaystyle \ sum \ limits _ \ {i = 1} ^ n C _ \ {x、y} M _ \ {x、i}(M _ \ {y、i + 1} \:+ \:M _ \ {y、 i-1})

上記のコスト関数と制約値に基づいて、最終エネルギー関数 E は次のように与えることができます-

E \:= \:\ frac \ {1} \ {2} \ displaystyle \ sum \ limits _ \ {i = 1} ^ n \ displaystyle \ sum \ limits _ \ {x} \ displaystyle \ sum \ limits _ \ { y \ neq x} C _ \ {x、y} M _ \ {x、i}(M _ \ {y、i + 1} \:+ \:M _ \ {y、i-1})\:+

\:\ begin \ {bmatrix} \ gamma _ \ {1} \ displaystyle \ sum \ limits _ \ {x} \ left(\ begin \ {array} \ {c} 1 \:-\:\ displaystyle \ sum \ limits _ \ {i} M _ \ {x、i} \ end \ {array} \ right)^ 2 \:+ \:\ gamma _ \ {2} \ displaystyle \ sum \ limits _ \ {i} \ left(\ begin \ {array} \ {c} 1 \:-\:\ displaystyle \ sum \ limits _ \ {x} M _ \ {x、i} \ end \ {array} \ right)^ 2 \ end \ {bmatrix}

ここで、*γ〜1〜*および*γ〜2〜*は2つの計量定数です。