Hopfield解TSP(旅行商问题)

        代码主要使用python语言编写,使用了比较流行的数据处理库numpy和数学绘图库matplotlib。定义了初始化函数__init__,初始化U函数,计算dU函数,更新U函数,计算V函数,计算E能量函数函数,路径计算,城市距离计算等函数,并使用matplotlib库对试验结果的动态过程用动画表示出来,直观的显示了优化过程。

import numpy as np
from matplotlib import pyplot as plt
class Hopfield():
    def __init__(self, step, A, D, U0, T, N):
        self.step = step  #设置学习率
        self.A = A
        self.D = D
        self.N = N
        self.U0 = U0  #神经元初始状态
        self.T = T  #循环次数

    def init_U(self, distance):   #初始化神经元状态
        primeU0 = 0.5 * self.U0 * np.log(distance.shape[0] - 1)
        return primeU0 + 2 * (np.random.random(distance.shape)) - 1

    def cal_dU(self, V, distance):
        t1 = np.tile(np.sum(V, axis=0, keepdims=True) - 1.0, (V.shape[0], 1))  #tile为平铺  sum按行相加  keepdims为保持矩阵二维特性
        #上式将V神经元输出矩阵每列相加,并将所得矩阵沿着y轴平铺V.s

你可能感兴趣的:(几何学)