VBA中的高精度计时器
Excel中偶尔会用到高精度的计时器,如性能监视或统计,在一些水文应用(如水文数据查询或水文数据处理)中我们也可能非常需要了解整个程序的运行瓶颈在哪,以便有针对性地对程序进行改进,这就需要我们使用VBA调用API函数QueryFrequency与QueryCounter来实现,这里水文工具集对这些API调用进行了封装,包装为一个VBA的类,方便重复使用且易于调用。具体代码如下:
阅读全文 >
粒子群优化算法初始化为一群随机粒子(随机解),然后通过迭代找到最优解,在每一次迭代中,粒子通过跟踪两个“极值”来更新自己。第1个就是粒子本身所找到的最优解,这个解叫做个体极值pBest,第2个极值是整个种群目前找到的最优解,这个极值是全局极值gBest;或者只是用其中一部分最优粒子的邻居,那么在所有邻居中的极值就是局部极值lBest。
分别采用全局和局部不同极值更新粒子的迭代方程,称为全局版和局部版的PSO算法。全局版和局部版的PSO算法各有利弊,前者收敛速度快但有时会陷入局部最优值,后者收敛速度慢一点,但很容易跳出局部最优。吸取PSO算法的优点,将局部和全局搜索的PSO算法相结合,提出局部和全局搜索相结合的粒子群算法(Local and Global Combined Particle Swarm Optimization, LGCPSO)。
阅读全文 >
自组织迁移算法(SOMA)中比较重要的策略参数是PRT、PathLength以及Step这3个参数。PRT参数决定了当前个体如何向领先者移动。一般说来,随着PRT参数值的增加,SOMA的局部收敛速度加快。当PRT==1时,SOMA的行为就完全确定化。研究表明PRT参数的最优值在0.1附近。
阅读全文 >
Excel中使用VBA把图表保存为一个GIF文件是很容易的:只需要使用Chart对象的Export函数。下面是一个简单的宏,它把当前的图表保存为名为mychart.gif的GIF文件:
Sub ExportToGIF()
If ActiveChart Is Nothing Then
MsgBox "请先选择一个图表"
Else
ActiveChart.Export "mychart.gif"
End If
End Sub
转载自: http://wiki.mbalib.com/wiki/遗传算法
遗传算法的概念
遗传算法是一类借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的随机化搜索方法。它是由美国的J.Holland教授1975年首先提出,其主要特点是直接对结构对象进行操作,不存在求导和函数连续性的限定;具有内在的隐并行性和更好的全局寻优能力;采用概率化的寻优方法,能自动获取和指导优化的搜索空间,自适应地调整搜索方向,不需要确定的规则。遗传算法的这些性质,已被人们广泛地应用于组合优化、机器学习、信号处理、自适应控制和人工生命等领域。它是现代有关智能计算中的关键技术之一。
阅读全文 >
局部搜索算法是从一个初始解X出发,然后不断地在X的领域内搜索比X更好的解X’。如果找到比X更好的解,就用X’代替X,继续局部搜索;否则搜索结束。
引入局部搜索策略的差分进化算法的基本原理是在每一代中用DE搜索到的最佳个体Xbest,在Xbest的附近再进行k次局部搜索,得到k个个体,找到这k个个体中适应度最佳的个体Xkbest,若Xkbest适应度比Xbest更优,则用Xkbest替代Xbest,否则直接返回。在Xbest附近进行局部搜索用公式表示如下:
阅读全文 >