📅  最后修改于: 2020-11-26 08:39:37             🧑  作者: Mango
优化是使诸如设计,情况,资源和系统之类的东西尽可能有效的一种动作。利用成本函数和能量函数之间的相似性,我们可以使用高度互连的神经元来解决优化问题。这种神经网络是Hopfield网络,它由包含一个或多个完全连接的循环神经元的单层组成。这可以用于优化。
使用Hopfield网络进行优化时要记住的要点-
能量函数必须是网络的最小值。
它将找到令人满意的解决方案,而不是从存储的模式中选择一种。
Hopfield网络找到的解决方案的质量在很大程度上取决于网络的初始状态。
查找销售员所走的最短路线是计算问题之一,可以使用Hopfield神经网络对其进行优化。
旅行推销员问题(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网络对该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 $$
众所周知,在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-成本矩阵的元素表示从城市x到y的旅行成本。
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是两个称重常数。