使用 Hopfield 网络进行优化


优化是一种使设计、情境、资源和系统等尽可能有效的行动。利用成本函数和能量函数之间的相似性,我们可以使用高度互连的神经元来解决优化问题。这种神经网络就是 Hopfield 网络,它由包含一个或多个完全连接的循环神经元的单层组成。这可以用于优化。

使用 Hopfield 网络进行优化时要记住的要点 -

  • 能量函数必须是网络的最小值。

  • 它会找到满意的解决方案,而不是从存储的模式中选择一种。

  • Hopfield 网络找到的解的质量很大程度上取决于网络的初始状态。

旅行商问题

寻找推销员走过的最短路线是计算问题之一,可以使用 Hopfield 神经网络对其进行优化。

TSP的基本概念

旅行商问题(TSP)是一个经典的优化问题,其中推销员必须旅行n个相互连接的城市,保持成本和旅行距离最小。例如,推销员要旅行一组A、B、C、D 4 个城市,目标是找到最短的循环行程ABC–D,从而使成本最小化,其中还包括从最后一个城市 D 到第一个城市 A。

旅行商问题

矩阵表示

实际上,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{b矩阵}$$

Hopfield Network 的解决方案

在考虑 Hopfield 网络对该 TSP 的解时,网络中的每个节点对应于矩阵中的一个元素。

能量函数计算

要成为优化解,能量函数必须最小。根据以下约束,我们可以计算能量函数如下 -

约束-I

第一个约束是我们计算能量函数的基础,即矩阵M的每一行中的一个元素必须等于 1,每行中的其他元素必须等于0,因为每个城市只能出现在矩阵 M 中的一个位置。 TSP 之旅。这个约束可以在数学上写成如下 -

$$\displaystyle\sum\limits_{j=1}^n M_{x,j}\:=\:1\:对于 \: 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{数组}\right)^2$$

约束-II

众所周知,在 TSP 中,一个城市可以出现在游览中的任何位置,因此在矩阵M的每一列中,一个元素必须等于 1,其他元素必须等于 0。这个约束可以在数学上写成如下 -

$$\displaystyle\sum\limits_{x=1}^n M_{x,j}\:=\:1\:对于 \: 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{数组}\right)^2$$

成本函数计算

假设用C表示的 ( n × n )方阵表示n 个城市的 TSP 成本矩阵,其中n > 0。以下是计算成本函数时的一些参数 -

  • C x, y - 成本矩阵的元素表示从城市xy的旅行成本。

  • A 和 B 的元素的相邻性可以通过以下关系表示 -

$$M_{x,i}\:=\:1\:\: 和\:\: M_{y,i\pm 1}\:=\:1$$

众所周知,在 Matrix 中,每个节点的输出值可以是 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是两个权重常数。