?? mduhop.bas
Attribute VB_Name = "MduHop"
'Hop網(wǎng)算法模塊
Public A() As Integer '要學(xué)習(xí)的模式
Public W() As Integer '神經(jīng)元的連接權(quán)矩陣
Public Q() As Double '神經(jīng)元的閾值
Public b() As Integer '破損的模式
Public y() As Integer '回憶起的模式
Public XX As Integer '排列方式的行數(shù)
Public YY As Integer '排列方式的列數(shù)
Public PP As Integer '要學(xué)習(xí)的模式數(shù)
Public NN As Integer '神經(jīng)元個(gè)數(shù)
Public N As Integer '學(xué)習(xí)次數(shù)
Public Change() As Integer '記憶更新的次數(shù)
Public E_Start As Double '初始狀態(tài)能量
Public D_End As Double '終止?fàn)顟B(tài)能量
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() '學(xué)習(xí)模式,確定連接權(quán)重
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 '符號(hào)函數(shù)
If x >= o Then
Sg = 1
Else
Sg = -1
End If
End Function
Public Function Energy(bb() As Integer) As Double '計(jì)算能量的函數(shù)
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
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -