📜  Hopfield网络进行优化

📅  最后修改于: 2020-11-26 08:39:37             🧑  作者: Mango


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

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

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

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

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

旅行商问题

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

TSP的基本概念

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

旅行商问题

矩阵表示

实际上,n市TSP的每次游览都可以表示为n × n矩阵,其i行描述了i城市的位置。四个城市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 Network解决方案

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

能量函数计算

要成为优化的解决方案,能量函数必须最小。基于以下约束,我们可以计算出如下的能量函数:

约束一

我们基于其计算能量函数的第一个约束是,矩阵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> 0的n个城市的TSP成本矩阵。以下是计算成本函数的一些参数-

  • 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是两个称重常数。