📄 modcalculatefitnessvalue.bas
字号:
Attribute VB_Name = "ModCalculateFitnessValue"
'计算适应度
Sub CalculateFitnessValue()
Dim i As Integer
Dim x1 As Double, x2 As Double
For i = 0 To PopSize - 1
x1 = DecodeChromosome(Population(i).chrom, 0, 10, -2.048, 2.048)
x2 = DecodeChromosome(Population(i).chrom, 10, 10, -2.048, 2.048)
Population(i).fitness = 100 * (x1 ^ 2 - x2) ^ 2 + (1 - x1) ^ 2
Next i
End Sub
'解码
'参数:软色体串,串的起始位置,串长,所对应变量的下限,上限
Function DecodeChromosome(ch() As Integer, point As Integer, length As Integer, lowerlimit As Double, upperlimit As Double) As Double
Dim i As Integer
Dim temp As Double
temp = 0#
For i = point To point + length - 1
temp = temp + ch(i) * 2 ^ (i - point)
Next i
DecodeChromosome = lowerlimit + temp * (upperlimit - lowerlimit) / (2 ^ length - 1)
End Function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -