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>)中,我们提到 ...
随机推荐
- iOS版本设置
Base SDK指的是当前编译所用的SDK 版本: iOS Deployment Target指的是,编译后的 app 可在 终端的哪个 版本上运行. 设置方法: 点击xcode工程左侧项目名称-&g ...
- JAVA读取XML文件并解析获取元素、属性值、子元素信息
JAVA读取XML文件并解析获取元素.属性值.子元素信息 关键字 XML读取 InputStream DocumentBuilderFactory Element Node 前言 最 ...
- Javascript(es2016) import和require用法和区别
http://blog.csdn.net/chinaycheng/article/details/52559439 其中这个总结很到位: 加载方式 规范 命令 特点 运行时加载 CommonJS/AM ...
- golang语言中sync/atomic包的学习与使用
package main; import ( "sync/atomic" "fmt" "sync" ) //atomic包提供了底层的原子级 ...
- BCHABC/BCHSV的矛盾所在
BCHABC: 将BCH以后发展智能合约: 消息方面: 吴忌寒:BCH分叉不可避免 未来可能继续分叉 近日,吴忌寒在北大光华管理学院的区块链培训课程上发表演讲表示,在这种言论自由地环境下,我认为分裂就 ...
- EF利用重写SaveChanges()方法实现 审计日志记录
先上一段最近项目中的代码,此代码可以放到自己项目中的dbContext中 public override Task<int> SaveChangesAsync() { List<Au ...
- Centos7上卸载openJdk安装,安装自己的JDK1.8
1.下载jdk-1.8,官网下载1.8 注意:不要使用wget命令去下载jdk,若能够下载下来,解压的时候也会报错的: 2.卸载openjdk (1)使用 rpm -qa | grep java ...
- [中英对照]Introduction to DPDK: Architecture and Principles | DPDK概论: 体系结构与实现原理
[中英对照]Introduction to DPDK: Architecture and Principles | DPDK概论: 体系结构与实现原理 Introduction to DPDK: ...
- 高级数据库技术SQL
- RAPID程序设计
1.ABB机器人软件 RobotWare 是ABB提供的机器人系列应用软件的总称. RobotStudio是ABB公司自行开发的机器人模拟软件, 能在PC机上模拟几乎所有型号的ABB 机器人几乎所有的 ...