form1.frm

来自「水库调度的遗传算法」· FRM 代码 · 共 533 行 · 第 1/2 页

FRM
533
字号
VERSION 5.00
Begin VB.Form Form1 
   Caption         =   "遗传算法"
   ClientHeight    =   3495
   ClientLeft      =   60
   ClientTop       =   450
   ClientWidth     =   6390
   LinkTopic       =   "Form1"
   ScaleHeight     =   3495
   ScaleWidth      =   6390
   StartUpPosition =   3  '窗口缺省
   Begin VB.CommandButton Command2 
      Caption         =   "结束"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   12
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   615
      Left            =   3480
      TabIndex        =   11
      Top             =   2760
      Width           =   1455
   End
   Begin VB.Data Data1 
      Caption         =   "Data1"
      Connect         =   "Access 2000;"
      DatabaseName    =   ""
      DefaultCursorType=   0  '缺省游标
      DefaultType     =   2  '使用 ODBC
      Exclusive       =   0   'False
      Height          =   495
      Left            =   3120
      Options         =   0
      ReadOnly        =   0   'False
      RecordsetType   =   1  'Dynaset
      RecordSource    =   ""
      Top             =   0
      Width           =   1695
   End
   Begin VB.TextBox Text5 
      Height          =   495
      Left            =   4800
      TabIndex        =   10
      Text            =   "0.01"
      Top             =   1680
      Width           =   1215
   End
   Begin VB.TextBox Text4 
      Height          =   495
      Left            =   4800
      TabIndex        =   9
      Text            =   "0.6"
      Top             =   720
      Width           =   1215
   End
   Begin VB.TextBox Text3 
      Height          =   495
      Left            =   1800
      TabIndex        =   6
      Text            =   "100"
      Top             =   1920
      Width           =   1215
   End
   Begin VB.TextBox Text2 
      Height          =   495
      Left            =   1800
      TabIndex        =   5
      Text            =   "30"
      Top             =   1200
      Width           =   1215
   End
   Begin VB.TextBox Text1 
      Height          =   495
      Left            =   1800
      TabIndex        =   4
      Text            =   "12"
      Top             =   480
      Width           =   1215
   End
   Begin VB.CommandButton Command1 
      Caption         =   "遗传算法"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   12
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   615
      Left            =   1080
      TabIndex        =   3
      Top             =   2760
      Width           =   1575
   End
   Begin VB.Label Label6 
      Caption         =   "变异概率"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   10.5
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   375
      Left            =   3240
      TabIndex        =   8
      Top             =   1680
      Width           =   1095
   End
   Begin VB.Label Label5 
      Caption         =   "交叉概率"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   10.5
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   375
      Left            =   3240
      TabIndex        =   7
      Top             =   840
      Width           =   1095
   End
   Begin VB.Label Label3 
      Caption         =   "进化代数"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   10.5
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   375
      Left            =   240
      TabIndex        =   2
      Top             =   2040
      Width           =   1095
   End
   Begin VB.Label Label2 
      Caption         =   "种群数目"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   10.5
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   375
      Left            =   240
      TabIndex        =   1
      Top             =   1200
      Width           =   1095
   End
   Begin VB.Label Label1 
      Caption         =   "个体大小"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   10.5
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   375
      Left            =   240
      TabIndex        =   0
      Top             =   480
      Width           =   1095
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub Command1_Click()
Screen.MousePointer = 11

For j = 1 To 12
    If j = 1 Or j = 2 Or j = 3 Or j = 4 Then '汛期
    '5月末、6月末、7月末、8月末=6~8月份为汛期
       max_water_level(j) = 695
       min_water_level(j) = 685
    Else                                      '非汛期
       max_water_level(j) = 704
       min_water_level(j) = 685
    End If
Next j
'读取已知参数
insize = Val(Text1.Text)      '个体大小
popsize = Val(Text2.Text)     '种群大小
Maxgen = Val(Text3.Text)      '进化代数
pc = Val(Text4.Text)          '交叉概率
pm = Val(Text5.Text)          '变异概率
'***赋值语句
zd = 685          '死水位
capacity = 30     '装机容量
bzcl = 7.8        '保证出力
min_Q = 120       '最小下泄流量
Call generatepopulation
Call evaluatepopulation
Call outputreport
l = 1
Do While l < Maxgen          '在最大的叠代次数下进行
    Call generatenextpopulation  '产生下一代群体
    Call evaluatepopulation
    Call outputreport
    l = l + 1
Loop

Screen.MousePointer = 1
End Sub
Public Sub outputreport()
   Data1.DatabaseName = App.Path + "\结果数据库.mdb"
   Data1.RecordSource = "select * from 结果表"
   Data1.Refresh
   Data1.Recordset.AddNew
   
   Data1.Recordset.Fields("序号") = l
   Data1.Recordset.Fields("平均发电量") = averagefitness
   Data1.Recordset.Fields("最好发电量") = bestfitness
   Data1.Recordset.Fields("位置好") = bestindex
   Data1.Recordset.Fields("最差发电量") = worstfitness
   Data1.Recordset.Fields("位置差") = worstindex
   '电量
   Data1.Recordset.Fields("5电量") = E(bestindex, 1)
   Data1.Recordset.Fields("6电量") = E(bestindex, 2)
   Data1.Recordset.Fields("7电量") = E(bestindex, 3)
   Data1.Recordset.Fields("8电量") = E(bestindex, 4)
   Data1.Recordset.Fields("9电量") = E(bestindex, 5)
   Data1.Recordset.Fields("10电量") = E(bestindex, 6)
   Data1.Recordset.Fields("11电量") = E(bestindex, 7)
   Data1.Recordset.Fields("12电量") = E(bestindex, 8)
   Data1.Recordset.Fields("1电量") = E(bestindex, 9)
   Data1.Recordset.Fields("2电量") = E(bestindex, 10)
   Data1.Recordset.Fields("3电量") = E(bestindex, 11)
   Data1.Recordset.Fields("4电量") = E(bestindex, 12)
   '水位
   Data1.Recordset.Fields("5水位初") = upwater_level(bestindex, 0)
   Data1.Recordset.Fields("5水位末") = upwater_level(bestindex, 1)
   Data1.Recordset.Fields("6水位末") = upwater_level(bestindex, 2)
   Data1.Recordset.Fields("7水位末") = upwater_level(bestindex, 3)
   Data1.Recordset.Fields("8水位末") = upwater_level(bestindex, 4)
   Data1.Recordset.Fields("9水位末") = upwater_level(bestindex, 5)
   Data1.Recordset.Fields("10水位末") = upwater_level(bestindex, 6)
   Data1.Recordset.Fields("11水位末") = upwater_level(bestindex, 7)
   Data1.Recordset.Fields("12水位末") = upwater_level(bestindex, 8)
   Data1.Recordset.Fields("1水位末") = upwater_level(bestindex, 9)
   Data1.Recordset.Fields("2水位末") = upwater_level(bestindex, 10)
   Data1.Recordset.Fields("3水位末") = upwater_level(bestindex, 11)

⌨️ 快捷键说明

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