我在R中检查一个简单的移动平均交叉策略而不是对2维参数空间(长期移动平均线的长度,长期移动平均线的长度)进行大量模拟,我想实施粒子群优化算法,以找到最佳参数值。我一直在浏览网页,并且正在阅读这个算法非常有效。此外,算法的工作方式让我着迷...
你们中的任何人都有在R中实现这个算法的经验吗?是否有可用的有用包装?
非常感谢您的评论。
马丁
答案 0 :(得分:17)
好吧,CRAN上有一个名为pso的软件包,实际上它是一个粒子群优化器(PSO)。
我推荐这个包。
正在积极开发(最后更新时间为2010年9月22日)并且与PSO的reference implementation一致。此外,该软件包还包括诊断和绘制结果的功能。
它看起来似乎是一个复杂的包,但主要的功能界面(函数 psoptim )很简单 - 只需传入一些描述问题域的参数和一个成本函数。
更确切地说,当您调用 psoptim 时传入的关键参数:
问题的维度,作为向量 (参数);
每个的下限和上限 变量( lower,upper );以及
成本函数( fn )
psoptim 方法签名中还有其他参数;那些通常与收敛标准等有关。)
R中是否还有其他PSO实现?
对于(并行PSO),有一个名为ppso的R包。它可以在R-Forge上找到。我对这个包装一无所知;我已经下载并浏览了文档,但就是这样。
除了这两个,我没有意识到。大约三个月前,我寻找更流行的元启发式的R实现。这是我所知道的唯一的pso实现。与Gnu科学图书馆GSL的R绑定具有模拟退火算法,但没有一个生物启发的元启发式算法。
另一个要查看的地方当然是优化的CRAN Task View。除了我在这里所述的内容之外,我没有找到另外的PSO实现,尽管那里列出了不少的软件包,其中大多数我除了查看名称和一句话摘要外没有检查。