vba遗传算法之非一致性突变
http://www.docin.com/p-959323141-f4.html

Sub 非一致性变异()
Dim totalGenerate As Integer, currentGenerate As Integer, ak As Double, bk As Double, vk As Double, vk1 As Double, vk2 As Double, i As Integer
Dim p As Integer, mytemp As Double
totalGenerate = : ak = #: bk = #: vk = 1.5: p =
Randomize
mytemp1 = Rnd
mytemp2 = Rnd
dety1 = (bk - vk)
For currentGenerate = To totalGenerate
vk = 1.5
vk1 = vk + (bk - vk) * ( - mytemp1 ^ ( - currentGenerate / totalGenerate) ^ (p))
Cells(currentGenerate, ) = vk1
vk2 = vk + (vk - ak) * ( - mytemp2 ^ (( - currentGenerate / totalGenerate) ^ (p)))
Cells(currentGenerate, ) = vk2
If Rnd < 0.5 Then
vk = vk1
Else
vk = vk2
End If
Cells(currentGenerate, ) = vk
Cells(currentGenerate, ) = ak
Cells(currentGenerate, ) = bk Next currentGenerate End Sub
p=2:




比如定模型参数时,参数范围为[1,3],初始值为1.5,要突变这个1.5可以用以下代码:

Sub 非一致性变异()
Dim totalGenerate As Integer, currentGenerate As Integer, ak As Double, bk As Double, vk As Double, vk1 As Double, vk2 As Double, i As Integer
Dim p As Integer, mytemp As Double
totalGenerate = : ak = : bk = : vk = 1.5: p =
Randomize
mytemp1 = Rnd
mytemp2 = Rnd
dety1 = (bk - vk)
For currentGenerate = To totalGenerate
vk = 1.5
vk1 = vk + (bk - vk) * ( - mytemp1 ^ ( - currentGenerate / totalGenerate) ^ (p))
Cells(currentGenerate, ) = vk1
vk2 = vk - (vk - ak) * ( - mytemp1 ^ (( - currentGenerate / totalGenerate) ^ (p)))
Cells(currentGenerate, ) = vk2
If Rnd < 0.5 Then
vk = vk1
Else
vk = vk2
End If
Cells(currentGenerate, ) = vk
Cells(currentGenerate, ) = ak
Cells(currentGenerate, ) = bk 'Cells(currentGenerate, 15) = vk + Sgn(0.5 - Rnd) * (bk - vk) * (1 - mytemp1 ^ (1 - currentGenerate / totalGenerate) ^ (p)) 'Round(2 * (0.5 - Rnd()), 0) Next currentGenerate End Sub
vba遗传算法之非一致性突变的更多相关文章
- Ruby操作VBA的注意事项和技巧(1):乱码、获取VBA活动和非活动窗口的名称与路径、文件路径的智能拼接与截取(写入日期)
1.VBA编辑器复制粘贴出来的代码乱码 解决方法:切换到中文输入模式再复制出来就行了 2.获取VBA活动和非活动窗口的名称与路径 Dim wbpath, filename As String ...
- R语言中的遗传算法详细解析
前言 人类总是在生活中摸索规律,把规律总结为经验,再把经验传给后人,让后人发现更多的规规律,每一次知识的传递都是一次进化的过程,最终会形成了人类的智慧.自然界规律,让人类适者生存地活了下来,聪明的科学 ...
- VBA Dumper v0.1.4.2, 提取office文档中的VBA代码,监查宏病毒恢复代码(演示版
http://club.excelhome.net/thread-970051-1-1.html VBA Dumper 0.1.4.2更新,填补国内同类程序空白 此程序为演示版,可以在无office的 ...
- MySQL中一致性非锁定读
一致性非锁定读(consistent nonlocking read)是指InnoDB存储引擎通过多版本控制(multi versionning)的方式来读取当前执行时间数据库中行的数据,如果读取的行 ...
- MySQL一致性非锁定读
一致性非锁定读(consistent nonlocking read)是指InnoDB存储引擎通过多版本控制(multi versionning)的方式来读取当前执行时间数据库中行的数据,如果读取的行 ...
- RMAN冷备份、一致性备份脚本
RMAN冷备份.一致性备份脚本 run{ shutdown immediate; startup mount; allocate channel c1 type disk; allocate chan ...
- Predicting effects of noncoding variants with deep learning–based sequence model | 基于深度学习的序列模型预测非编码区变异的影响
Predicting effects of noncoding variants with deep learning–based sequence model PDF Interpreting no ...
- 遗传算法(Genetic Algorithm)——基于Java实现
一.遗传算法原理介绍 遗传算法(Genetic Algorithm)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法.遗传算法是从代表问 ...
- 操作系统篇-调用门与特权级(CPL、DPL和RPL)
|| 版权声明:本文为博主原创文章,未经博主允许不得转载. 一.前言 在前两篇文章(<操作系统篇-浅谈实模式与保护模式>和<操作系统篇-分段机制与GDT|LDT>)中,我们提到 ...
随机推荐
- apache jmeter 压力测试
前面讲了linux下的压力测试,今天来个windows下的,用jmeter为例 我用了两个apache-jmeter-3.1和apache-jmeter-4.0分别进行了测试, 前者高并发电脑卡死时间 ...
- SAP ALV 修改数字需要添零问题
问题描述: 修改左列数字,如果想要输入3,那么要输3000,敲空格,才会在ALV里显示为3. 原因: 变量ERFMG引用的域类型小数点位置为3位,当输入数字1时,默认往前数3位,作为小数点位置,变成0 ...
- Java_10 继承
1 继承的好处 继承的出现提高了代码的复用性,提高软件开发效率. 继承的出现让类与类之间产生了关系,提供了多态的前提. 2 继承的注意事项 在Java中,类只支持单继承,不允许多继承,也就是说一个类只 ...
- 解决input 有readonly属性 各个浏览器的光标兼容性问题
<input type='text' readonly unselectable='on' onfocus='this.blur()'/> 目标:input 只能读,但是在ie.火狐浏览器 ...
- webapi 设置不显示接口到swaggerUI
请添加如下属性: [ApiExplorerSettings(IgnoreApi = true)]
- c# 24种设计模式
备忘录模式(Memento Pattern) 策略模式(Strategy Pattern) 抽象工厂模式(Abstract Factory Pattern) 代理模式(Proxy Pattern) 单 ...
- C# 在网页中将Base64编码的字符串显示成图片
在写一个接口,返回的json里面有图片,是Base64编码的字符串. 测试接口的时候,发现原来在html显示,是直接可以将Base64编码的字符串显示成图片的. 格式如下: <img src=d ...
- PHP Jquery 代码操作 内容 属性 样式 事件 Json数据
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- memcache的add和set区别
add可以做memcache锁 使用场景:用户兑换商品,在网络不好的情况下,点击多次,set会将多次提交全纪录下来,add只会记录一次
- spring Springmvc mybatis maven整合
一.准备工作 1. 首先创建一个表: CREATE TABLE `t_user` ( `USER_ID` int(11) NOT NULL AUTO_INCREMENT, `USER_NAME` ch ...