使用Hopfield網路進行最佳化



最佳化是指使設計、情況、資源和系統等儘可能有效地發揮作用。利用成本函式和能量函式之間的相似性,我們可以使用高度互連的神經元來解決最佳化問題。這種神經網路就是Hopfield網路,它由一層包含一個或多個完全互連的遞迴神經元組成。這可以用於最佳化。

使用Hopfield網路進行最佳化時需要注意的幾點:

  • 網路的能量函式必須最小。

  • 它會找到令人滿意的解,而不是從儲存的模式中選擇一個。

  • Hopfield網路找到的解的質量很大程度上取決於網路的初始狀態。

旅行商問題

尋找旅行商旅行的最短路線是可以透過使用Hopfield神經網路進行最佳化的計算問題之一。

TSP的基本概念

旅行商問題 (TSP) 是一個經典的最佳化問題,其中一名銷售人員必須前往**n**個相互連線的城市,同時使成本和旅行距離最小化。例如,銷售人員必須前往一組4個城市A、B、C、D,目標是找到最短的環形路線A-B-C-D,以最小化成本,這還包括從最後一個城市D到第一個城市A的旅行成本。

Travelling Salesman Problem

矩陣表示

實際上,每個n城市TSP的路線都可以表示為一個**n × n**矩陣,其第**i**行描述第**i**個城市的位置。對於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}$$

Hopfield網路的解決方案

在考慮Hopfield網路對TSP的解決方案時,網路中的每個節點對應於矩陣中的一個元素。

能量函式計算

為了獲得最佳解,能量函式必須最小。根據以下約束,我們可以計算能量函式如下:

約束I

我們將根據其計算能量函式的第一個約束是,矩陣**M**的每一行中必須有一個元素等於1,而每一行中的其他元素必須等於**0**,因為每個城市在TSP路線中只能出現一個位置。此約束可以用數學方式寫成如下:

$$\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中,一個城市可以在路線中的任何位置出現,因此在矩陣**M**的每一列中,必須有一個元素等於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成本矩陣。在計算成本函式時,以下是一些引數:

  • **Cx, 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** 是兩個加權常數。

廣告
© . All rights reserved.