求SCE-UA算法vba代码

作者&投稿:茌惠 (若有异议请与网页底部的电邮联系)
~

' 首先定义几个常用的变量

Dim t, t0, t_min, t_max, t_final As Double

Dim r, delta_e, e, e_best, e_max, e_min As Double

Dim n_accept, n_iter As Integer

Dim s, s_best, s_new As Variant

' 初始化参数

t0 = 100

t_min = 1e-6

t_max = 100

t_final = 1e-6

n_accept = 0

n_iter = 0

' 计算初始解的能量

e = calculateEnergy(s)

e_best = e

s_best = s

' 主循环

Do

t = adjustTemperature(t0, t_min, t_max, t_final, n_accept, n_iter)

' 生成新的解

s_new = generateNewSolution(s)

' 计算新的解的能量

e_new = calculateEnergy(s_new)

' 计算能量差

delta_e = e_new - e

' 如果新的解更优,则接受新解

If delta_e < 0 Then

s = s_new

e = e_new

' 更新最优解

If e_new < e_best Then

s_best = s_new

e_best = e_new

End If

' 增加接受次数

n_accept = n_accept + 1

Else

' 否则,以概率p接受新解

r = Rnd()

If r < Exp(-delta_e / t) Then

s = s_new

e = e_new

' 增加接受次数

n_accept = n_accept + 1

End If

End If

' 增加迭代次数

n_iter = n_iter + 1

Loop Until n_iter > MAX_ITER

' 返回最优解

S

SCE-UA算法的思想是采用欧氏距离来度量两个解的相似度,并利用此信息来调整模拟退火算法的参数,以提高算法的收敛速度。

SCE-UA算法的基本步骤如下:

  • 选取一个初始解

  • 计算初始解的能量

  • 设置初始温度

  • 设置冷却率

  • 设置种群大小

  • 进入循环

  • 根据当前温度生成新的解

  • 计算新的解的能量

  • 计算能量差

  • 如果新的解更优,则接受新解

  • 否则,以概率p接受新解

  • 计算新解与种群中其他解的欧氏距离

  • 根据欧氏距离调整温度

  • 如果满足终止条件,则退出循环

  • 返回最优解

  • SCE-UA算法的优点在于它能够更好地利用种群信息,从而提高算法的收敛速度。但是,SCE-UA算法的缺点是需要额外的存储空间来保存种群信息。




求SCE-UA算法vba代码
SCE-UA算法的优点在于它能够更好地利用种群信息,从而提高算法的收敛速度。但是,SCE-UA算法的缺点是需要额外的存储空间来保存种群信息。

林剑艺代表论著
此外,林剑艺还参与了水库优化运营的算法研究,提出了一种Pareto Strength SCE-UA算法,该成果在2008年的4th International Conference on Natural Computation (ICNC)上发表([3])。在生态学领域,林剑艺与Cui S.H.、Cameron S.合作,开发了一种基于网络框架的生态指标定量选择方法,并在《Ecological Indi...

比如县13592317684: 求VBA代码 初学者,求基础简单的代码^ - ^ -
朱阮健胃: 代码如下. '计数代码 Private Sub CommandButton1_Click()Range("F6").Value = Application.WorksheetFunction.Count(Range("A:A")) End Sub '求和代码 Private Sub CommandButton2_Click()Range("G6").Value = Application.WorksheetFunction.Sum(Range("A:A")) End Sub

比如县13592317684: Excel应用 - 求VBA代码
朱阮健胃: 1) Sub aaa() Dim arry arry = Range("a1:b2") Range("c1:d2") = arry End Sub运行前:运行后:2) 输入application.worksheetsfunction.函数

比如县13592317684: 求VBA代码 -
朱阮健胃: 使用EXCEL,在[1,1]中存放n,在[1,2]中存放结果s.代码如下: n = Sheet1.cell(1, 1) s = 0 For i = 1 To n s = s + 1 / n Next i Sheet1.Cells(1, 2) = Round(s, 3) MsgBox "完成"

比如县13592317684: 求VBA代码如图 -
朱阮健胃: J1结果应该是1415是倒数第14个,不过要变为13也可以 试下 Sub 倒数() Dim i, r, n r = Range("i65536").End(xlUp).Row For n = 1 To Range("i65536").End(xlUp).Row For i = Range("i65536").End(xlUp).Row To 1 Step -1 x = ...

比如县13592317684: excel vba 代码 -
朱阮健胃: Dim OldRng Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column = 4 And Target.Count = 1 Then OldRng = ActiveCell End SubPrivate Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 4 Then If ...

比如县13592317684: 求一段vba代码,很简单,但实用 -
朱阮健胃: Sub BeFile()Set fs = CreateObject("Scripting.FileSystemObject")'Set a = fs.CreateTextFile("C:\a.txt", True)If fs.FileExists("C:\a.txt") = False ThenDim strPath As StringstrPath = Application.ActiveWorkbook.FullNameApplication....

比如县13592317684: 求助一段VBA代码(实例) -
朱阮健胃: Sub iCopy() Dim sh As Worksheet, c As Range, arr1, arr2, r&, rn&Set sh = Worksheets("Sheet1") '表1(源数据表) Set c = Worksheets("Sheet2").Range("A1") '表2(结果表) + 结果位置(第1个单元格)With sh '操作 表1r = .Cells(...

比如县13592317684: 求一段vba的代码 -
朱阮健胃: d2公式=sum(d1,a2*6) 公式下拉完成 如果一定要用VBA处理,可用单元格事件完成 即A列输入倍数,得到后面的结果 代码如下 Private Sub Worksheet_Change(ByVal Target As Range)Dim r&If Target.Row > 1 And Target.Column = 1 And ...

比如县13592317684: VBA代码编写,在窗体的文本框TextBox1中输入不大于9的整数,然后计算其阶乘后在文本框TextBox2中输出 -
朱阮健胃: Private Sub CommandButton1_Click()Dim a, b1, b2, i, tmpSet b1 = Me.TextBox1Set b2 = Me.TextBox2a = b1.TextIf Len(a) = 0 Then tmp = "#Len = 0": GoTo 1000If Not IsNumeric(a) Then tmp = "#Not Is Number": GoTo 1000a = a * 1...

比如县13592317684: Excel求帮写一条vba代码 -
朱阮健胃: Sub tt() Dim Col As Integer With Sheets("sheet2") Col = .Rows(1).Find(Sheets("sheet1").Range("b1").Value, , , xlWhole).Column .Cells(3, Col).Resize(9, 5) = Sheets("sheet1").Range("b3:f11") End With Sheets("sheet1").Range("b3:f11").ClearContents End Sub

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网