当我尝试为GA生成人口时,我遇到了错误.我用二维数组来帮助生成一个人口.首先,用户将种群大小和染色体长度输入用户形式.
我的变数:
Dim Generation As Integer
Dim Chromolength As Integer
Dim varchromolength As Integer
Dim Poparr() As Integer
Run Code Online (Sandbox Code Playgroud)
然后我从userform获取值:
PopSize = PopulationSize.value
aVariables = AOV.value 'assign userform value entered to this variable
varchromolength = Chromolengthentered.value 'assign userform value entered to this variable
Chromolength = varchromolength * aVariables 'Chromosome length equals the length of each varaible chromosome combined
Run Code Online (Sandbox Code Playgroud)
然后是错误发生的编码:
For i = 1 To PopSize
For j = 1 To Chromolength
If Rnd < 0.5 Then
Poparr(i, j) = 0 'assign …Run Code Online (Sandbox Code Playgroud) 遇到此错误的问题.我正在创建一个GA,循环是将我的适应值分配给一个数组.
一些变数
Dim Chromolength as integer
Chromolength = varchromolength * aVariables
Dim i as integer, j as integer, counter as integer
Dim Poparr() As Integer
Dim FitValarr() As Integer
Run Code Online (Sandbox Code Playgroud)
代码:
ReDim Poparr(1 To PopSize, 1 To Chromolength)
For i = 1 To PopSize
For j = 1 To Chromolength
If Rnd < 0.5 Then
Poparr(i, j) = 0
Else
Poparr(i, j) = 1
End If
Next j
Next i
For i = 1 To PopSize
j = 1
counter = …Run Code Online (Sandbox Code Playgroud) 遇到此代码的问题.我的编码如下:
fitvalchild1 = 0
fitvalchild2 = 0
For i = 1 To 30
counter = 30
Do While counter > 0
fitvalchild1 = fitvalchild1 + child1(counter) * 2 ^ (i - 1)
fitvalchild2 = fitvalchild2 + child2(counter) * 2 ^ (i - 1)
counter = counter - 1
Loop
Next i
Run Code Online (Sandbox Code Playgroud)
所有变量都声明为long ...
我仍然得到错误:溢出并突出显示的行是:
fitvalchild1 = fitvalchild1 + child1(counter) * 2 ^ (i - 1)
Run Code Online (Sandbox Code Playgroud)