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

📄 ga-vb.txt

📁  基于VB的遗传算法软件实现 在程序中,FitnessValue (i) 为适应度值数组、avFit2nessValue (100) 为归一化适应度值数组、Population2 Chrom(i ,
💻 TXT
字号:
Public Function SelectOperation()
Dim i , j , sortnumber As Integer
Dim p , sum , avFitnessValue(100) As Double
sum = 0
Randomize (137)
For i = 0 To Popsize 2 1
 sum = sum + FitnessValue(i) ’求种群个体总适应度值
Next i
For i = 0 To Popsize 2 1
 If (sum < > 0) Then
  avFitnessValue(i) = FitnessValue (i) Psum
’归一化适应度值
 End If
Next i
For i = 1 To Popsize 2 1 ’轮盘法选择下代种群个体
avFitnessValue(i) = avFitnessValue(i21) + avFitnessValue(i)
Next i
For i = 0 To Popsize 2 1
 p = (1000 3 Rnd + 1) P1000 #
 sortnumber = 0
 Do Until p > avFitnessValue(sortnumber)
  sortnumber = sortnumber + 1
 Loop
 For j = 0 To CHROMLENGTH2 1

newPopulationChrom(i ,j) = PopulationChrom(sortnumber ,j)
 Next j
Next i
For i = 0 To Popsize 2 1 ’产生新一代的种群
 For j = 0 To CHROMLENGTH2 1
  PopulationChrom(i , j) = newPopulationChrom(i , j)
 Next j
Next i
End Function
(2) 交叉操作实现:
Public Function CrossoverOperation()
Dim i , j As Integer
Dim index(150) As Integer
Dim point , median As Integer
Dim p As Single
Dim ch As Integer
Randomize (137)
For i = 0 To Popsize 2 1
 index(i) = i
Next i
For i = 0 To Popsize21’随机重新排列种群中的个体序列
 point = Round( (Popsize 2 1 2 i) 3 Rnd)
 median = index(i)
 index(i) = index(point + i)
 index(point + i) = median
Next i
For i = 0 To Popsize 2 1 Step 2
’按一定的随机概率单点交叉相邻两个体
 p = (1000 # 3 Rnd + 1) P1000 #
 If (p < Pc) Then
  point = CHROMLENGTH 3 Rnd
  For j = point To CHROMLENGTH2 1
   ch = PopulationChrom(index(i) , j)
   PopulationChrom(i ,j) = PopulationChrom(index(i + 1) ,j)
   PopulationChrom(index(i + 1) ,j) = ch
  Next j
  End If
Next i
End Function
(3) 变异操作实现:
Public Function MutionOperation()
Dim i , j As Integer
Dim p As Single
For i = 0 To Popsize 2 1
’按一定随机概率取反变异点的位码值
 For j = 0 To CHROMLENGTH - 1
  p = 1000 # 3 Rnd P1000 #
  If (p < Pm) Then
   If PopulationChrom(i , j) = 0 Then
    PopulationChrom(i , j) = 1
   Else : PopulationChrom(i , j) = 0
   End If
  End If
 Next j
Next i
End Functio

⌨️ 快捷键说明

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