⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mduhop.bas

📁 用神经元模拟磁旋
💻 BAS
字号:
Attribute VB_Name = "MduHop"
'Hop网算法模块
Public A() As Integer '要学习的模式
Public W() As Integer '神经元的连接权矩阵
Public Q() As Double '神经元的阈值
Public b() As Integer '破损的模式
Public y() As Integer '回忆起的模式
Public XX As Integer '排列方式的行数
Public YY As Integer '排列方式的列数
Public PP As Integer '要学习的模式数
Public NN As Integer '神经元个数
Public N As Integer '学习次数
Public Change() As Integer '记忆更新的次数
Public E_Start As Double '初始状态能量
Public D_End As Double '终止状态能量

Public Sub Initial() '初始化
Dim i, j As Integer
For i = 1 To NN
 For j = 1 To NN
 W(i, j) = 0
 Next j
Next i
Randomize
For i = 1 To NN
Q(i) = Rnd
Next i
For i = 1 To NN
Change(i) = 0
Next i
End Sub

Public Sub StudyMode() '学习模式,确定连接权重
Dim i, j, p As Integer
For p = 1 To PP
 For i = 1 To NN
  For j = 1 To NN
   W(i, j) = W(i, j) + A(p, i) * A(p, j)
  Next j
 Next i
Next p
For i = 1 To NN
 For j = 1 To NN
  If i = j Then
  W(i, j) = 0
  End If
 Next j
Next i
End Sub
                                                                                                                
Public Sub RememberMode() '想起模式,得到输出
Dim i, j, k As Integer
Dim h As Single
For k = 1 To N
 i = Int((NN * Rnd) + 1)
 Change(i) = Change(i) + 1
 h = 0
 For j = 1 To NN
  h = h + W(i, j) * b(j)
 Next j
 y(i) = Sg(h) ' - Q(i))
 For j = 1 To NN
 If j <> i Then
 y(j) = b(j)
 End If
 Next j
For i = 1 To NN
b(i) = y(i)
Next i
Next k
End Sub

Public Function Sg(x As Single) As Integer '符号函数
If x >= o Then
 Sg = 1
Else
 Sg = -1
End If
End Function

Public Function Energy(bb() As Integer) As Double   '计算能量的函数
Dim i, j As Integer
Dim Energy1, Energy2 As Double
Energy1 = 0
Energy2 = 0
For i = 1 To NN
  For j = 1 To NN
  Energy1 = Energy1 + W(i, j) * bb(i) * bb(j)
  Next j
  'Energy2 = Energy2 - Q(i) * b(i)
Next i
Energy = -0.5 * Energy1 - Energy2
End Function
Public Function HanMin(aa() As Integer, bb() As Integer) As Integer
Dim i, j As Integer
HanMin = 0
For i = 1 To NN
HanMin = HanMin + Abs(aa(i) - bb(i))
Next i
End Function

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -