亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? form1.frm

?? 基于VB語言編寫的遺傳算法
?? FRM
字號:
VERSION 5.00
Begin VB.Form Form1 
   Caption         =   "Form1"
   ClientHeight    =   3090
   ClientLeft      =   60
   ClientTop       =   450
   ClientWidth     =   4680
   LinkTopic       =   "Form1"
   ScaleHeight     =   3090
   ScaleWidth      =   4680
   StartUpPosition =   2  '屏幕中心
   Begin VB.CommandButton Command1 
      Caption         =   "計算"
      Height          =   375
      Left            =   2640
      TabIndex        =   0
      Top             =   2400
      Width           =   1935
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Base 1

'遺傳算法參數
Dim Sample(GeneLength) As Double  '產生樣品基因代碼
Dim Generation As Integer             '運行代數
Dim OriPool(Popsize) As Individual    '初始種群
Dim MatePool(Popsize) As Individual   '子代個體
Dim Best_Index As Integer
Dim Worst_Index As Integer
Dim BestIndividual As Individual
Dim WorstIndividual As Individual
Dim CurrentBest As Individual
Dim a(Popsize, VaryNum) As Double    '代求的常數a
Dim X0(DataNum, XNum) As Double     '應變量X
Dim Y0()                            '變量值Y
Dim X1(), X2(), X3()                '初始數據
Dim aa(VaryNum)                     '求得最優a1至a10參數輸出

Private Sub Form_Load()  '數據錄入
X1 = Array(0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.22, 0.33)
X2 = Array(4, 5.5, 4, 5.5, 3.5, 5, 3.5, 5, 3, 4.5, 3, 4.5, 3, 4.5, 0.46, 5.1)
X3 = Array(2, 1, 3, 1.5, 0.5, 2.5, 1, 3, 2, 0.5, 2.5, 1.5, 0.31, 1.01)
For j = 1 To DataNum
    X0(j, 1) = X1(j)
    X0(j, 2) = X2(j)
    X0(j, 3) = X3(j)
Next j
Y0 = Array(0.112, 0.16, 0.154, 0.206, 0.15, 0.19, 0.08, 0.153, 0.09, 0.173, 0.076, 0.187, 0.15, 0.156)
End Sub

Public Sub InitPop()  '初始化種群
Dim i%, j%, k%
Randomize
For i = 1 To Popsize
    For k = 1 To VaryNum
        For j = 1 To GeneLength
             OriPool(i).Gene(k, j) = Int(2 * Rnd)
        Next j
    Next k
    For k = 1 To VaryNum
        For j = 2 To GeneLength
            OriPool(i).Gene(k, j) = (OriPool(i).Gene(k, j) + OriPool(i).Gene(k, j - 1)) Mod 2 '產生格雷碼
        Next j
    Next k
Next i
End Sub

Public Function Decoding(Pool#(), L%) As Double    '解碼
Dim j%, N#
    N = (Max_Var - Min_Var) / (2 ^ GeneLength - 1)
    Decoding = Min_Var
    For j = 1 To GeneLength
        Decoding = Decoding + Pool(L, j) * 2 ^ (j - 1) * N '解碼
    Next j
End Function

Public Sub CalculateFitness()  '計算種群適應度
Dim i%, j%, f(Popsize) As Double
For i = 1 To Popsize
    For j = 1 To VaryNum
        a(i, j) = Decoding(OriPool(i).Gene, j) '對這個種群解碼
    Next j
Next i
For i = 1 To Popsize
    For j = 1 To DataNum
        OriPool(i).Value(j) = a(i, 1) + a(i, 2) * X0(j, 1) + a(i, 3) * X0(j, 2) + a(i, 4) * X0(j, 3) + a(i, 5) * X0(j, 1) * X0(j, 2) + a(i, 6) * X0(j, 1) * X0(j, 3) + a(i, 7) * X0(j, 2) * X0(j, 3) + a(i, 8) * X0(j, 1) ^ 2 + a(i, 9) * X0(j, 2) ^ 2 + a(i, 10) * X0(j, 3) ^ 2
    Next j
Next i
For i = 1 To Popsize
    f(i) = 0    '另初值為零,得注意這里
    For j = 1 To DataNum
        f(i) = f(i) + (OriPool(i).Value(j) - Y0(j)) ^ 2    '剩余平方和
    Next j
Next i
For i = 1 To Popsize
    If FunctonMode = "MinImization" Then        '形式F(X)=Cmax-f(x)
       If Cmax > f(i) Then
          OriPool(i).Fitness = Cmax - f(i)
       Else
          OriPool(i).Fitness = 0
       End If
    ElseIf FunctonMode = "MaxImization" Then    '形式F(X)=f(x)-Cmin
       If Cmin < f(i) Then
          OriPool(i).Fitness = f(i) - Cmin
       Else
          OriPool(i).Fitness = 0
       End If
    End If
Next i
End Sub

Public Sub FindBestandWorstIndividual()     '尋求每代最優和最差個體
Dim i%
BestIndividual = OriPool(1)
WorstIndividual = OriPool(1)
For i = 1 To Popsize
    If OriPool(i).Fitness > BestIndividual.Fitness Then
       BestIndividual = OriPool(i)
       Best_Index = i
    ElseIf OriPool(i).Fitness < BestIndividual.Fitness Then
       WorstIndividual = OriPool(i)
       Worst_Index = i
    End If
Next i
If Generation = 0 Then
   CurrentBest = BestIndividual
Else
   If BestIndividual.Fitness > CurrentBest.Fitness Then CurrentBest = BestIndividual
End If
End Sub

Public Sub FindEexllent()  '尋求精英個體
Dim i%, j%, CurrentPool(Popsize) As Individual, Temp As Individual
For i = 1 To Popsize
    CurrentPool(i) = OriPool(i)
Next i
For i = 1 To Popsize
    For j = i + 1 To Popsize
        If CurrentPool(i).Fitness <= CurrentPool(j).Fitness Then
           Temp = CurrentPool(i)
           CurrentPool(i) = CurrentPool(j)
           CurrentPool(j) = Temp
        End If
    Next j
Next i
For i = 1 To GoodNum
    MatePool(i) = CurrentPool(i)
Next i
End Sub

Public Sub SelectOperator()  '比例選擇法
Dim i%, Cfitness(Popsize) As Double, Sum As Double, P As Double
Randomize
Sum = 0
For i = 1 To Popsize
    Sum = Sum + OriPool(i).Fitness '計算適應度總和
Next i
For i = 1 To Popsize
   Cfitness(i) = OriPool(i).Fitness / Sum  '選擇概率
Next i
For i = 2 To Popsize
    Cfitness(i) = Cfitness(i) + Cfitness(i - 1)
Next i
For i = GoodNum + 1 To Popsize
    P = Rnd * Cfitness(Popsize)
    Index = 1
    Do While P > Cfitness(Index)
       Index = Index + 1
    Loop
    MatePool(i) = OriPool(i)
Next i
For i = 1 To Popsize
    OriPool(i) = MatePool(i) '選擇后個體賦值給原種群
Next i
End Sub


Public Sub OrderSelection()          '排序選擇
Dim i%, j%, SumFitness#, Cfitness(Popsize) As Double, C#, P#
Dim CurrentPool(Popsize) As Individual, Temp As Individual
Dim Index As Integer
Randomize
For i = 1 To Popsize
    CurrentPool(i) = OriPool(i)
Next
SumFitness = 0
For i = 1 To Popsize
    SumFitness = SumFitness + CurrentPool(i).Fitness    '適應度總和
Next i
If SumFitness = 0 Then SumFitness = 10 '如果適應度和為零,則強迫為某一個值,防止出錯!
For i = 1 To Popsize     '適應度由大至小進行排列
    For j = i + 1 To Popsize
        If CurrentPool(i).Fitness < CurrentPool(j).Fitness Then
           Temp = CurrentPool(i)
           CurrentPool(i) = CurrentPool(j)
           CurrentPool(j) = Temp
        End If
    Next j
Next i
Cfitness(1) = CurrentPool(1).Fitness / SumFitness         '第一個的概率
C = Cfitness(1)
For i = 1 To Popsize
    Cfitness(i) = C * (1 - C) ^ (i - 1)
Next i
For i = 2 To Popsize
    Cfitness(i) = Cfitness(i) + Cfitness(i - 1)         '累計概率
Next i
For i = GoodNum + 1 To Popsize
    P = Rnd * Cfitness(Popsize - 40) '產生隨機數
    Index = 1
    Do While P > Cfitness(Index)
       Index = Index + 1
    Loop
    MatePool(i) = CurrentPool(Index)
Next i
For i = 1 To Popsize
    OriPool(i) = MatePool(i)  '選擇后個體賦值給原種群
Next i
End Sub

Public Sub SampleCode(Sample#()) '產生樣本
Randomize
For j = 1 To GeneLength
    Sample(j) = Int(2 * Rnd)
Next j
End Sub

Public Sub CrossoverOperator()  '交叉算法,精英個體不交叉、變異直接進入下一代
Dim i%, j%
Dim CoupleNum%, Wife%, Husband%
Dim TempW(GeneLength) As Double, TempH(GeneLength) As Double
Dim SampleW(GeneLength) As Double, SampleH(GeneLength) As Double

CoupleNum = CInt(Popsize * Pc / 2)   '交叉對數
Randomize
For i = 1 To CoupleNum
    Wife = Int((Popsize - GoodNum) * Rnd + GoodNum + 1)
    Husband = Int((Popsize - GoodNum) * Rnd + GoodNum + 1)
    Do While Husband = Wife
       Husband = Int((Popsize - GoodNum) * Rnd + GoodNum + 1)
    Loop
    For k = 1 To VaryNum
        Call SampleCode(SampleW())    '均勻交叉樣本代碼1
        Call SampleCode(SampleH())    '均勻交叉樣本代碼2
        For j = 1 To GeneLength
            TempW(j) = OriPool(Wife).Gene(k, j)      '存放臨時數據
            TempH(j) = OriPool(Husband).Gene(k, j)
        Next j
        For j = 1 To GeneLength
            If SampleW(j) = 1 Then
               OriPool(Wife).Gene(k, j) = TempH(j)     '樣本1中為1的表示由父提供代碼,0表示母提供代碼
            End If
            If SampleH(j) = 0 Then
               OriPool(Husband).Gene(k, j) = TempW(j) '樣本1中為1的表示由父提供代碼,0表示母提供代碼
            End If
        Next j
    Next k
Next i
End Sub

Public Sub MutationOperator()  '變異算法,精英個體不交叉、變異直接進入下一代
Dim i%, j%, TemRnd#, mm%
For i = GoodNum + 1 To Popsize
    For k = 1 To VaryNum
        For j = 1 To GeneLength
            TemRnd = Rnd
            If TemRnd <= Pm Then
               OriPool(i).Gene(k, j) = (OriPool(i).Gene(k, j) + 1) Mod 2
               mm = mm + 1
            End If
        Next j
    Next k
Next i
'Debug.Print mm  '突變數目
End Sub


Private Sub Command1_Click()
Dim i%, j%
Call InitPop    '初始化

For Generation = 1 To MaxNum
    Call CalculateFitness
    Call FindBestandWorstIndividual
    Call FindEexllent
    'Call SelectOperator   '比例選擇
    Call OrderSelection   '排序選擇
    Call CrossoverOperator
    Call MutationOperator
    Debug.Print "當前運算到第"; Generation; " 代    ";
    Debug.Print "BestIndividual.Fitness="; Cmax - BestIndividual.Fitness
   ' Debug.Print "WorstIndividual.Fitness="; WorstIndividual.Fitness;
    'Debug.Print "CurrentBest.Fitness="; CurrentBest.Fitness
Next Generation

'#######結果輸出########
    For j = 1 To VaryNum
        aa(j) = Decoding(CurrentBest.Gene, j) '對這個種群解碼
    Next j
    For i = 1 To VaryNum
        Debug.Print "a("; i; ")="; aa(i)
    Next i
    For i = 1 To DataNum
        Debug.Print "CurrentBest.Value("; i; ")="; CurrentBest.Value(i)
    Next i
    erro = 0
    For j = 1 To DataNum
        erro = erro + (CurrentBest.Value(j) - Y0(j)) ^ 2         '標準方差
    Next j
    Debug.Print "剩余平方和Erro^2="; erro
'#######結果輸出########
End Sub















?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕第一页久久| 日韩欧美一区二区不卡| 免费成人你懂的| 午夜欧美2019年伦理| 亚洲人成网站在线| 亚洲欧美日韩国产一区二区三区| 国产亚洲欧美一级| 久久久久久黄色| 久久久久免费观看| 国产精品网站在线| 中文字幕亚洲精品在线观看 | 一区二区三区在线不卡| 日本一二三四高清不卡| 精品国产乱码久久久久久图片 | 国产黄色91视频| 精品一区二区三区久久久| 九色porny丨国产精品| 精品在线视频一区| 国产剧情一区二区| bt7086福利一区国产| 91欧美激情一区二区三区成人| 91麻豆免费观看| 欧美日韩mp4| 日韩久久久精品| 国产蜜臀97一区二区三区| 综合网在线视频| 丝袜美腿亚洲色图| 久久99精品久久只有精品| 国产乱子轮精品视频| eeuss影院一区二区三区| 91丨九色丨国产丨porny| 欧美日韩在线观看一区二区| 欧美电影精品一区二区| 国产精品天天摸av网| 亚洲午夜在线电影| 国产精品一卡二卡| 色综合色狠狠综合色| 91精品免费在线| 国产精品入口麻豆九色| 午夜伦欧美伦电影理论片| 国产精品综合视频| 欧美影视一区在线| 久久久久久综合| 日韩高清在线不卡| 99国产精品一区| 精品伦理精品一区| 亚洲一区二区视频| 国产高清一区日本| 欧美日韩成人综合天天影院 | 99久久精品免费看国产| 69堂精品视频| 亚洲另类春色校园小说| 国内欧美视频一区二区| 欧美日免费三级在线| 国产精品久久久久久亚洲伦 | 亚洲色图制服丝袜| 韩国毛片一区二区三区| 欧美视频在线一区| 亚洲欧美一区二区不卡| 国产伦精品一区二区三区免费迷 | 三级成人在线视频| 91亚洲男人天堂| 亚洲欧洲av色图| 狠狠狠色丁香婷婷综合久久五月| 色欧美乱欧美15图片| 国产日韩视频一区二区三区| 日产精品久久久久久久性色| 在线看国产一区| 日韩毛片视频在线看| 国产激情精品久久久第一区二区| 欧美一区二区三区系列电影| 亚洲一二三区不卡| 日本道免费精品一区二区三区| 国产日韩v精品一区二区| 蜜桃av一区二区三区电影| 欧美日本一区二区| 亚洲成a人片在线不卡一二三区| 色八戒一区二区三区| 亚洲人成影院在线观看| 99久久精品国产观看| 国产欧美精品在线观看| 国产毛片精品视频| 国产偷国产偷精品高清尤物| 国产一区二区三区香蕉| 日韩一区二区三区电影| 蜜臀av性久久久久蜜臀aⅴ四虎 | 国产精品天干天干在线综合| 国产高清在线观看免费不卡| 国产欧美日韩卡一| 成人综合婷婷国产精品久久免费| 欧美精品一区二区久久婷婷| 国模无码大尺度一区二区三区| 久久久久久久久久久久久久久99| 国产成都精品91一区二区三| 国产精品美女视频| 91福利视频久久久久| 亚洲成人自拍偷拍| 日韩欧美www| 成人18视频在线播放| 亚洲视频电影在线| 欧美日韩电影一区| 国产精品77777| 亚洲愉拍自拍另类高清精品| 欧美精品三级日韩久久| 美女久久久精品| 国产精品入口麻豆原神| 色综合一区二区| 男人的天堂久久精品| 精品乱人伦小说| 972aa.com艺术欧美| 天天综合日日夜夜精品| 欧美精品一区二区在线观看| 不卡视频免费播放| 丝袜a∨在线一区二区三区不卡| 视频一区国产视频| 久久久久国产精品免费免费搜索| 成人黄色av电影| 免费一级片91| 一区二区三区四区精品在线视频| 在线综合视频播放| 不卡一区在线观看| 奇米在线7777在线精品| 中文字幕亚洲精品在线观看| 日韩欧美国产wwwww| 99久久伊人精品| 久久精品国产亚洲5555| 亚洲男同性视频| 久久久久久久综合狠狠综合| 欧美日韩中文字幕一区| 福利电影一区二区| 美女视频黄免费的久久| 一区二区激情小说| 中文字幕制服丝袜成人av| 91精品国产欧美一区二区| 色婷婷国产精品综合在线观看| 国产精品亚洲成人| 久久99久久99| 日一区二区三区| 一区二区三区小说| 国产精品午夜电影| 久久久久高清精品| 精品国产百合女同互慰| 91精品在线一区二区| 欧洲人成人精品| 91麻豆.com| 成人免费av在线| 国产精品一线二线三线精华| 日韩和的一区二区| 亚洲高清三级视频| 亚洲线精品一区二区三区 | 欧美午夜电影一区| 色婷婷国产精品久久包臀| 成人白浆超碰人人人人| 国产福利一区二区| 国产91精品精华液一区二区三区| 蜜臀av亚洲一区中文字幕| 奇米精品一区二区三区四区 | 国产精品免费视频网站| 久久精品综合网| 欧美极品aⅴ影院| 中文字幕精品一区二区精品绿巨人 | 91丝袜国产在线播放| 成人av第一页| 色综合天天性综合| 色婷婷av一区二区三区之一色屋| 91在线云播放| 欧美日韩国产一级片| 欧美精品久久久久久久多人混战| 337p亚洲精品色噜噜狠狠| 欧美日韩日日夜夜| 日韩一区二区三区免费看| 欧美sm美女调教| 国产日韩欧美a| 日韩美女精品在线| 亚洲成人777| 国内外成人在线| 99久久精品国产网站| 欧洲一区在线观看| 日韩欧美视频在线| 欧美激情一区二区三区在线| 亚洲毛片av在线| 久久精品国产亚洲a| 国产.欧美.日韩| 欧美在线|欧美| 久久女同互慰一区二区三区| 18欧美亚洲精品| 日韩高清一区在线| 国产福利视频一区二区三区| 99re成人精品视频| 欧美一区二区黄色| 亚洲欧美在线aaa| 日韩综合一区二区| 国产激情一区二区三区| 91高清视频在线| 久久久久久久综合狠狠综合| 一区二区三区四区亚洲| 开心九九激情九九欧美日韩精美视频电影| 成人一区在线观看| 欧美一二三四在线| 亚洲少妇30p|