遗传算法VB程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Dim Script As Object
Public Enum CrossOver
On ePoi
ntCrossOver TwoPoi
ntCrossOver
Un
iformCrossOver
End Enum
Public Enum Selecti
on RouletteWheelSelection
StochasticTourame
nt
Ran domLeagueMatches
StochasticU ni versalSample
ing
碉用其Eval 函数 '单点交叉 '两点交叉 '平均交叉
'轮盘赌选择 '随机竞争选择 '随机联赛选择 '随机遍历取样
End Enum
Public Enum En Cod ing
Bi nary
'标准二进制编码 Gray
'格雷码 End Enum
Private Type GAi nfo
Cordi nate() As
Double
End Type
咲********************************** ***********************************
'函数名:BinaryToGray
'参 数:Value -要转换的二进制数的实值
'说 明:如3对应的二进制表示为 0011,而用格雷码表示为 0010,这个函数的
0011代表的实数
' 而返回的是0010所代表的实数(2)
'返 回 值:返回格雷码对应的二进制数的实值
'开发语言:B 语言
'作者:yyf
Public Fun cti on Bin aryToGray(Value As Long) As Long
Dim V As Long, Max As Long
Dim start As Long, mEnd As Long, Temp As Long, Coun ter As Long
Dim Flag As Boolea n
V = Value: Max = 1
While V > 0
Wend 二进制码转格雷码 value 为
咲********************************** 二进制码转格雷码
***********************************
If Max = 0 Then Exit Function
Flag = True
mE nd = Max - 1
While start < mEnd
Temp = (mE nd + start - 1) / 2
If Value <= Temp The n
If Not Flag The n
Cou nter = Cou nter + (mEnd - start + 1) / 2 End If
mEnd = Temp
Flag = True
Else
If Flag Then
Cou nter = Cou nter + (mEnd - start + 1) / 2 End If
Temp = Temp + 1
start = Temp
Flag = False
End If
Bin aryToGray = Coun ter
End Function
'函数名:BinaryToGray
'参 数:Value -要转换的二进制数的实值
'说 明:如3对应的二进制表示为 0011,而用格雷码表示为 0010,这个函数的 0010代表的实数
' 而返回的是0010所代表的实数(2)
'返 回 值:返回格雷码对应的二进制数的实值
Public Fun cti on GrayToB in ary(Value As Long) As Long
Dim V As Long, Max As Long
Dim start As Long, mEnd As Long, Temp As Long, Coun ter As Long
Dim Flag As Boolea n
V = Value: Max = 1
While V > 0
V = V / 2咲********************************** 格雷码转二进制码 *********************************** value 为
咲********************************** 格雷码转二进制码
***********************************
mE nd = Max - 1
While start < mEnd
Temp = Coun ter + (mE nd - start + 1) / 2
If Flag Xor (Value < Temp) The n
If Flag Then Counter = Temp
start = (start + mEnd + 1) / 2
Flag = False
Else
If Not Flag Then Counter = Temp
mEnd = (start + mEnd - 1) / 2
Flag = True
End If
Wend
GrayToB inary = start
End Function
咲********************************** 十进制转转二进制码*********************************** '函数名:DecToB in ary
'参数:Value -要转换的十进制数'返回值:返回对应的二进制数