Archive for '博客'

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附近。
阅读全文 >

VBA以GIF文件格式导出Excel图表

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附近进行局部搜索用公式表示如下:
阅读全文 >

自由搜索算法

自由搜索(Free Search,FS)算法是一种新的群集智能优化算法,该算法全局搜索能力好,收敛速度快。

自由搜索算法基本原理

自然环境中,群居动物个体间的相互联系支撑其觅食过程。群集智能优化算法中,个体的行为和它们之间的相互联系反映了寻优搜索的特征。自由搜索算法中,个体的嗅觉、机动性和它们相互之间的关系被抽象、建模。该模型中,个体具有各自的特征,嗅觉被定义为灵敏度,嗅觉使个体在搜索域内具有辨别能力。寻优过程中,个体不断调节其灵敏度,这一点类似于自然界中的学习和掌握知识的过程。
阅读全文 >